Final Review Flashcards
What is open Architecture?
A layered architecture in which a layer may make use of services in any layer below it (as opposed to only the layer designed to make adding, upgrading and swapping components easy
What are the changes that are valid after the program gets executed?
Post conditions
Specification Inheritance:
The combination of inheritance and specification The super class is an abstract class Implementations of the super class (if there are any) are not inherited The Interface of the super class is completely inherited
represent the interactions between the actors and the system.
Boundary
Describe Observer Pattern
• Models a 1-to-many dependency between objects
o Connects the state of an observed object, the subject with many observing objects, the observers
• Usage:
o Maintaining consistency across redundant states
Builder Pattern
- The construction of a complex object is common across several representations
- Example
- Converting a document to a number of different formats
- the steps for writing out a document are the same
- the specifics of each step depend on the format
Interface:
An abstract class which has only abstract methods An interface is primarily used for the specification of a system or subsystem. The implementation is provided by a subclass or by other mechanisms
represent the persistent information tracked by the system
Entitites
What remains true while the code is executing.
Invariance
It essentially states that, if a client code uses the methods provided by a superclass, then developers should be able to add new subclasses without having to change the client code. Formal definition for specification inheritance.
Liskov Substitution Principle
Describe an adapter
An adapter is geared towards making unrelaed components work together. They are applied to systems after they are re disigned. Inheritacne followed by delegation.
Proxy Pattern
The Proxy object is a local representatioe for an object in a different address space.
- Remote Proxy (good if information desen’t need to be changed to often).
- Standin (Virtual Proxy) - good if objects don’t need to be accessed to often.
- Access Control - Permission (ex. grades accessed by techers, student, staff)
Strategy Pattern
• Different algorithms exists for a specific task, • We can switch between the algorithms at run time
- Examples of tasks:
- Different collision strategies for objects in video games
Frameworks
A framework is a reusable partial application that can be specialized to produce custom applications.
The key benefits of frameworks are reusability and extensibility:
Reusability leverages of the application domain knowledge and prior effort of experienced developers
Extensibility is provided by hook methods, which are overwritten by the application to extend the framework.
A subsystem that provides a service to another subsystem.
Layers