Created by Maximilian Zeyda
over 7 years ago
|
||
Question | Answer |
What is Object Design specifically regarding its relationship to Requirements Analysis and System Design? | - Object Design bridges the gap between Analysis Model and the hardware/software platform defined during System Design - During Object Design we refine and detail application and solution objects and add additional solution objects to bridge the object design gap |
What is Component-based Software Engineering? | The Design Gap is filled with available components -> 0% coding |
What is COTS-Development? | Special form of Component-based Software Engineering The Design gap is filled with commercial-off-the-shelf components |
What is the difference between Black Box Reuse and White Box Reuse? | Black Box Reuse/ Composition: New class is created by the aggregation of existing classes and offers aggregated functionality White Box Reuse/Inheritance: New subclass reuses functionality of the superclass and may offer new functionality |
What is Generalization? What is Specialization? | Generalization: The discovery of an inheritance association between 2 classes, where the subclass is discovered first Specialization: The discovery of an inheritance association between 2 classes, where the superclass is discovered first |
What is the difference between Inheritance and Delegation? | Inheritance: Extends a superclass with a subclass containing a new operation or overriding an existing operation Delegation: Catches an operation and sends it to another object |
Name 1 advantage and 1 disadvantage of Delegation | Advantage: Flexible, because any object can be replaced at run time Disadvantage: Inefficient, because objects are encapsulated |
Name 2 advantages and 2 disadvantages of Inheritance | Advantages: - Straightforward to use - Supported by many programming languages Disadvantages: - Inheritance exposes the public methods of the parent class - Changes in the parent class force the subclass to change as well (at least recompile) |
Name the 2 goals of inheritance and in which stages of the engineering process they occur | 1. Identification of taxonomies -> Generalization or Spezialization Used during Analysis 2. Identifying Inheritance for Reuse -> Implementation Inheritance or Specification Inheritance Used during Object Design |
How is "Implementation Inheritance" defined? | Subclassing from an implementation -> A class is already implemented that does almost the same as the desired class |
How is "Specification Inheritance" defined? | Subclassing from a Specification -> The Specification is an abstract class where at least one operation is abstract which means the operation is specified but not yet implemented |
Name the 2 ways abstract operations can be implemented in Java | By Method Overriding or Strict Inheritance |
Name the 3 types of Design Patterns and two examples for each | Structural: Composite, Bridge Behavioral: Strategy, Observer Creational: Builder, Abstract Factory |
"must interface with an existing object" | Adapter Pattern |
"Must interface to several systems, some of them to be developed in the future" "An early prototype must be demonstrated" "Must provide backward compatibility" | Bridge Pattern |
"Complex structure" "Must have variable width and depth" | Composite Pattern |
"Must interface to existing objects" "Must interface to existing API" "Must interface to existing server" | Facade Pattern |
"Must be location transparent" | Proxy Pattern |
"Must be extensible" "Must be scalable" | Observer Pattern |
"Must provide a policy independent from the mechanism" "Must allow to change algorithms at run time" | Strategy Pattern |
What are the 4 Typical Design Goals addressed by Design Patterns? | - Extensibility - Customizability - Scalability - Reusability |
Want to create your own Flashcards for free with GoConqr? Learn more.