|
Created by Maximilian Zeyda
almost 8 years ago
|
|
Question | Answer |
What are the 4 main activities of object design? | 1. Reuse: Identification of existing solutions 2. Interface specification 3. Object model restructuring 4. Object model optimization |
What is the principle of component-based software engineering? | The design gap is filled with available components -> 0% coding |
What is COTS-Development and what does it comprise? | Commercial-off-the-shelf- Development Design with standard components |
Name the 3 types of reuse in software engineering | - Existing classes - Existing interfaces - Design knowledge |
What are the two techniques to close the object design gap? | - Composition (= Black-Box-Reuse) New class is created by the aggregation of existing classes - Inheritance (= White-Box-Reuse) New class by subclassing. New class reuses the functionality of the superclass |
In which two cases is inheritance used in OOSE? | - Identification of taxonomies (during requirement analysis) - Interface Specification (during object design) |
What is implementation inheritance? | Extends a superclass with a subclass containing a new operation or overriding an existing operation |
What is delegation? | Catches an operation and sends it to another object |
Name one advantage and one disadvantage of delegation | Advantage: Flexible, because any object can be replaced at run time by another one Disadvantage: Inefficent, because objects are encapsulated |
Name advantages and disadvantages of inheritance | Advantages: - Straightforward to use - Supported by many programming languages - Easy to implement new functionality in the subclass Disadvantages: - Changes in the parents class force to change the subclass as well, at least it requires recompilation |
How does a method have to be prefixed, if it must not be overridden? (=Strict Inheritance) | final |
What is contraction? | A mechanism where implementations of methods in the super class are overridden with empty bodies in the subclass to make the superclass operations invisible |
What are the 2 types of inheritance associations? | - Generalization (subclass is discovered first) - Specialization (superclass is discovered first) |
Metamodel for inheritance | |
What are the key benefits of using frameworks? (partial applications that can be specialized to produce custom applications) | Reusability: Leverages application domain knowledge and prior effort of experienced developers Extensibility: Methods which can be overridden by the application to extend the framework |
How can frameworks be classified? | By position in the software dev process: Infrastructure/Middleware/Enterprise Frameworks By techniques used to extend them: Black-Box/White-Box Frameworks |
What is the difference between Black Box and White Box Frameworks? | White Box Frameworks: Extensibility achieved through inheritance Black Box Frameworks: Extensibility achieved through delegation |
What is the difference between Frameworks and Class Libraries regarding the control flow? | Frameworks are active and affect the control flow Class Libraries are passive and have do not influence the control flow |
Which 3 types of design patterns exist? | 1. Structural patterns 2. Behavioral patterns 3. Creational patterns |
Assign following design patterns to one of the 3 design pattern types: - Facade - Proxy - Observer - Composite - Strategy - Bridge - Adapter | Structural: Facade, Proxy, Composite, Bridge, Adapter Behavioral: Strategy, Observer |
What does the composite pattern allow regarding to problems? | Problems can be solved by modelling them as hierarchies with arbitrary width and depth |
What is the advantage of the strategy pattern? | Switching between algorithms at run time If a new algorithm is needed, we can add it without disturbing the application or other algorithms |
What is the advantage of the bridge pattern? | The bridge pattern allows to delay the binding between an interface and its subclass to the start-up time of the system |
Where is the adapter pattern often used? | To provide a new interface for a legacy system (cannot be changed, old system) |
What is the difference between Bridge and Adapter Pattern regarding the order of delegation and inheritance | Bridge: Delegation first, Inheritance second Adapter: Inheritance first. delegation second |
What is the purpose of the observer pattern? | Connects the state of an observed object (subject) with many observing objects (observers) |
There are no comments, be the first and leave one below:
Want to create your own Flashcards for free with GoConqr? Learn more.