Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
16 Cards in this Set
- Front
- Back
What is the purpose of software design?
|
To enable programmers to implement the requirements by designating the projected parts of the implementation.
|
|
What are the goals of software design?
|
Sufficiency, Understandability, Modularity, Cohesion, Coupling, Robustness, Flexibility, Reusability, Information hiding, Efficiency, Reliability
|
|
What makes a design sufficient?
|
It provides the components for an implementation that satisfies the requirements.
|
|
What makes a design flexible?
|
Designs must be able to anticipate changes in the requirements.
|
|
What is design modularity?
|
Being divided into separately named and addressable components.
|
|
What makes software robust?
|
Being able to deal with a wide variety of input.
|
|
What is software efficiency?
|
It must execute within acceptable time and space requirements.
|
|
What is cohesion?
|
It is organized so like minded elements are grouped together.
|
|
What is coupling?
|
Organized to minimize dependence between elements.
|
|
How is inheritance indicated and how is it implemented?
|
With an open triangle and solid line.
class MyClass extends MyOtherClass{...} |
|
How are abstract classes denoted?
|
With italics.
|
|
What is realization and how is it denoted?
|
It is denoted by an open triangle and dotted line.
class MyClass implements MyInterface {...} |
|
What is aggregation and how is it denoted?
|
Indicates the structural inclusion of objects of one class by another. The "has-a" relationship. Denoted by an open diamond with a solid line arrow.
class Company{employee emp;} |
|
What is composition and how is it denoted?
|
The aggregated object exists only during the lifetime of the composing object. It is denoted by a closed diamond on a solid line arrow.
class Company { class Employee emp;{...} } |
|
What is dependency and how is it denoted?
|
If the class at arrow's end were to change, the dependent class would change as well. Denoted by a dotted arrow.
class MyClass { void myFunc(RefClass ref); } |
|
What is the purpose and goal of formal methods in requirements?
|
Formal methods are built on mathematical axioms and can be proven with mathematical correctness.
|