Week 2- SOLID Design Principles Flashcards
Design Principals (19 cards)
What is software design?
A creative activity identifying software components and their relationships based on customer requirements.
What is the process of realizing the design as a program called?
Implementation.
What does COTS stand for in the context of software systems?
Commercial Off-The-Shelf systems.
What are Software Design Principles?
A set of guidelines that helps developers make a good system design.
What does the Single Responsibility Principle state?
A class should have one and only one reason to change, meaning it should have only one job.
What is the Open/Closed Principle?
Objects should be open for extension but closed for modification.
What does Liskov Substitution Principle entail?
Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
What is the Interface Segregation Principle?
Many client-specific interfaces are better than one general-purpose interface.
What does the Dependency Inversion Principle state?
Entities must depend on abstractions, not on concretions.
What does the DRY principle stand for?
Don’t Repeat Yourself.
What is the KISS principle?
Keep it simple, stupid!
What does YAGNI stand for?
You Ain’t Gonna Need It.
Fill in the blank: A class should have ______ reason to change.
one and only one.
True or False: The Open/Closed Principle allows modification of existing code.
False.
What should clients not be forced to implement according to the Interface Segregation Principle?
A function they do not need.
What is the main focus of the Dependency Inversion Principle?
High-level modules should not depend on low-level modules but on abstractions.
According to the DRY principle, how often should small pieces of knowledge occur in the system?
Exactly once.
What is the main message of the KISS principle?
Avoid unnecessary complexity.
Fill in the blank: According to YAGNI, implement things when you actually ______ them.
need.