Skip to content
View EnryMarch10's full-sized avatar
🎯
Focusing
🎯
Focusing
  • Alma Mater Studiorum - Università di Bologna
  • Italy
  • 05:20 (UTC +02:00)
  • LinkedIn in/enrymarch10

Highlights

  • Pro

Organizations

@DarwinsQuest @Delakilo

Block or report EnryMarch10

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
EnryMarch10/README.md

Enrico Marchionni

Views Counter

I'm a student in Computer Science and Engineering 💻 at the Alma Mater Studiorum - University of Bologna.

📖 Philosophy of Software Development

Project Phases (not strictly in waterfall)

  1. Requirements engineering
    • which behaviour? Specification document
  2. Design
    • Architectural
      • which macro structure? System architecture document
    • Detailed
      • which micro structure? Detailed design document
  3. Implementation
    • which runnable code? Working code repository
  4. Testing and Maintenance
    • which requirements are met? Satisfying and tested code repository
  5. Deployment
    • is the system successfully online? Running system

Adaptive Project Phases

Take a look at the Agile Manifesto initiative of 2001.

Do not refuse change, rather embrace it.

⚙️ Software Engineering Principles

Rigour & formality, separation of concerns, modularity, abstraction, anticipation of change, generality, incrementality

🧑‍💻 Programming Principles

General

DRY (don't repeat yourself): Ensure that all code is unique and avoid duplication.

KISS (keep it simple, stupid): Prioritize understandability! In most cases, simplicity is best.

OOP - SOLID

SRP (single responsability principle): "Software entities (ex. classes) should have only one reason to change."

OCP (open/closed principle): "Software entities should be open for extension but closed for modification."

LSP (Liskov's substituability principle): "Extended code must be substituable for their base version."

ISP (Interface segregation principle): "Make fine grained abstractions that are client specific."

DIP (dependency inversion principle): "High-level modules should not depend on low-level modules. Both should depend on abstractions."

📊 Stats

Streak

Stats

Top Languages

Popular repositories Loading

  1. 3D-CT-projection-cuda 3D-CT-projection-cuda Public

    Bachelor's thesis

    C 2

  2. LCMC-FOOL LCMC-FOOL Public

    Languages, Compilers and Computational Models - Project FOOL Compiler

    Java 1

  3. OOP-lab06 OOP-lab06 Public

    Object Oriented Programming - lab 6

    Java

  4. OOP-labTest OOP-labTest Public

    Object Oriented Programming - lab test

    Java

  5. OOP-lab07 OOP-lab07 Public

    Object Oriented Programming - lab 7

    Java

  6. OOP-lab08 OOP-lab08 Public

    Object Oriented Programming - lab 8

    Java