Software Design Flashcards
What is the importance of software principle?
The principles of software engineering offer engineers a set of guidelines to follow when writing code, aiming to achieve error free, easily understandable, and manageable code.
List some software principles
- Modularity
- Avoid ambiguity
- Avoid incorporating unnecessary features or functionality
- Abstraction
- Encapsulation
SOLID
*Single Responsibility principle:Class or module should have only one reason to change
*Open closed principle: Software entities should be open for extension but closed for modification
*Liskov substitution principle: Objects of a superclass should be substitutable by objects if its subclass without affecting the correctness of the program.
*Interface segregation principle: Clients should not be forced to depend on interfaces that they do not use.
*Dependency inversion principle: High level modules should not depend on low level modules
What is encapsulation?
Encapsulation is an approach employed to hinder users from directly accessing the state values of all variables within an object. Data members and data functions or methods connected to an instantiated class or object can both be hidden as well.
What is abstraction?
Abstraction is when a programmer hides any irrelevant data about an object or a constructed class In order to simplify a program and make user interaction with it more effective. hiding implementation details from the user providing information about what the object does instead of how it does it
What is modularity?
Breaking down the software into smaller modules
These Modules must be independent and reusable more comprehensible, testable, and maintainable
What’s TDD?
Test Driven Development: This is used by software developers by first writing automated test scripts before producing functional code.
What are software principles?
These help guide the design and development of software to ensure that it is efficient, reliable and easy to maintain.