Design and Implementation Flashcards
COTS
Commercial Off-the-Shelf Systems
These can be bought and adapted to the users’ requirements
Define domain in the context of software engineering
A domain is a field of study that defines a set of common requirements, terminology and functionality for any software program
What is a shrink-wrap license?
An EULA that is enclosed within the software and cannot be read before purchasing the product
Name the 3 characteristics of a bad design that should be avoided
- Rigidity - hard to change because every element affects many other parts of the system
- Fragility - parts of the system break after making a change
- Immobility - hard to reuse in another application
Define the Open Close design principle
Software entities should be open for extension but closed for modifications
Define the dependency inversion principle
High level modules should not depend on low level modules. Both should depend on abstractions.
Define the Interface Segregation Principle
Clients should not be forced to depend on interfaces they do not use - take care to only add methods that should be there.
Define the Single Responsibility Principle
A class should only have one reason to change. If it has two reasons to change, it should be split into two classes.
Define Liskov’s Substitution Principle
Derived types must be substitutable for their base types - we must make sure that new derived classes can replace base classes in without any changes in the code.
Define OOA
Object oriented analysis is the procedure of identifying software engineering requirements and developing software specifications in terms of a software system’s object model, which comprises of interacting objects.
Define OOD
Object Oriented Design involves implementation of the conceptual model produced during OOA. Concepts in the analysis model are mapped onto implementing classes and interfaces.