IMPORTANCE OF SYSTEM DESIGN IN SOFTWARE DEVELOPMENT Flashcards
System design provides a detailed plan that developers must follow during the
implementation phase.
BLUEPRINT FOR DEVELOPMENT
Many possible problems may be recognized and corrected during the design phase.
EARLY DETECTION ISSUES
A well-designed system is easier to scale and maintain.
SCALABILITY AND MAINTENANCE
A class should have only one reason to
change. It should have a single, well-defined responsibility. When a class has multiple responsibilities, changes to one can impact others.
SINGLE RESPONSIBILITY PRINCIPLE (SRP)
Software entities (classes, modules,
functions, etc.) should be open for extension but closed for modification.
OPEN/CLOSED PRINCIPLE (OCP)
Subtypes must be substitutable for their
base types without altering the correctness of the program.
LISKOV SUBSTITUTION PRINCIPLE (LSP)
Client-specific interfaces are better than
one general-purpose interface. Clients
should not be forced to implement a function they do not need.
INTERFACE SEGREGATION PRINCIPLE (ISP)
This principle states that our classes should depend upon interfaces or abstract classes instead of concrete classes and functions.
DEPENDENCY INVERSION PRINCIPLE (DIP)