Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

5 Object Design

Description

Software Engineering Flashcards on 5 Object Design, created by Maximilian Zeyda on 28/06/2017.
Maximilian Zeyda
Flashcards by Maximilian Zeyda, updated more than 1 year ago
Maximilian Zeyda
Created by Maximilian Zeyda almost 8 years ago
4
1
1 2 3 4 5 (0)

Resource summary

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)
Show full summary Hide full summary

0 comments

There are no comments, be the first and leave one below:

Similar

Network Protocols
Shannon Anderson-Rush
System Analysis
R A
SCRUM
R A
JOOSE2 Design Patterns
Isaac Jordan
Patents
Christina
Pears of Wisdom - Software Engineering Overview
Alex Poiry
2 Introduction
Alex C
Example Use Case: Emergency Management System
Stephanie Jeandell
DEPENDABLE SYSTEMS
A J
Requerimientos
Romina V.