Flashcards in Exam Review Deck (22)
Three types of Cohesion?
1 - Operation cohesion: The degree to which an operation focuses on a single functional requirement. 2 - Class cohesion: The degree to which a class is focused on a single requirement. 3 - Specialisation: The semantic cohesion of inheritance hierarchies. A class should only a subclass of a class if the former represents a subset of the latter.
What is the Liskov Principle?
A derived object can be treated as if it were a base object. Note that by base and derived object we mean in terms if class inheritance.
What are the main principles of USDP and role of phases and workflows?
A process that is use-case driven, architecture-centric, iterative, and incremental. It is based on the iteration of phases, each of which consists of workflows.
Explain in what sense eXtreme Programming is Agile?
XP is Agile in the sense that there is no emphasis on early analysis and design documentation. It is suitable when requirements are subject to important changes.
4 Main principles if eXtreme Programming?
Communication (User Devs), Simplicity (choose always the simplest solution), Feedback (use it to avoid unjustified optimism) and Courage ( rather than trying to fix unfixable code to restart from scratch).
What is a component?
A replaceable part of a system defined primarily in terms of interfaces it provides and requires to operate.
What are the 4 types of visibility?
1 - Public (accesible by any class) 2 - Private (accessible by the class it belongs to) 3 - Protected (Access by the class that includes it or a subclass) 4 - Package (Access to objects in the same package)
What is the Facade Pattern and the cost to use it?
Provides a clear interface to a software component consisting of several classes. Apart from design and implementation, additional message passing is introduced as overheads.
How are WhiteBox and BlackBox used in Reuse?
Whitebox allows for reuse of other artefacts other than software components. Blackbox needs a level of granularity higher than that of classes due to class coupling. Whitebox offers more reuse mechanisms including inheritance, templates and parameterizations.
What businesses are good for Reuse?
Companies with large portfolio of projects and/or large product range with common subparts, consultancy firms in vertical markets, companies that design embedded software...
What are the 3 workflows of SELECT Perspective?
1 - Supply (Deliver and maintain components) 2 - Manage (Acquire, publish and retrieve components) 3- Consume (Deliver solutions based on reusable components produced by suppliers)
What is a Pattern?
An abstract solution to a commonly reoccurring problem in a given context.
What does a Pattern Template consist of?
Name: Problem: Context: Forces: Solution:
What are the 3 types of Patterns?
Creational Patterns, which are concerned with the construction of instances. Structural Patterns, which are concerned with how classes and objects are organised. Behavioural Patters, which addressed issues that arise when assigning responsibilities to classes.
What is the Singleton Pattern?
How do we ensure only one instance exists the class is created? Create a class with a class operation getInstance(), which when a class is first accessed an instance is created and returns the objects identity to the requesting object. On subsequent access of the getInstance() operation no additional instance is created but the identity is returned to the requesting object. Note that the class constructor is made private else other objects could invoke it!
What is the Composite Pattern?
How to represent whole hierarchies so that both the whole and part objects offer the same interface to client objects? Resolved by combining inheritance and aggregation hierarchies. Both the subclasses leaf and composite have polymorphically redefined operation anOperation(). In composite, a simple loop construct invokes the leaf's operation. Also, has an additional operation to add/remove components from the aggregation hierarchy.
What is the State Pattern?
An object has different behaviours dependent on its state and responds differently according to its state. Solution is to have one subclass for each state of the class. Each of these objects have the sole responsibility of the state's behaviour as a subclass inherits the parent's properties and methods. Methods are redefined in the subclasses so that the correct behaviour is encapsulated.
What is coupling?
A measure of how design components are interconnected / dependent to each other. Lower the better.
What is cohesion?
A measure of the degree to which an element contributes to a single purpose. Higher is better.
When does one use Non-Algorithmic logic description?
Use for non-complex operations. Focuses on the 'what' or result (blackbox) over the 'how' the result is achieved. And possibly if no decision has been made in terms of the best way to achieve the result.
When does one use Algorithmic logic description?
Used for complex operations (can be constructed top down). Used when a decision has been made about the best method to use. Good for detailed specification, good for analysis and good for those not familiar with specifications.