Software / System Process Flashcards
Process Specifications Logic can be expressed in 4 ways:
Structured English
Pseudocode
Decision Trees
Decision Tables
Describe Decision Tables:
Conditions and Actions on left hand side separated by thick line. Upper half has rules which are combinations of conditions. Must be action for each rule. If n binary conditions then n^2 rules.
What does software design stage focus on?
On how to build the system.
Software pyramid with design:
Design, code, test, maintenance.
Software Design three important concepts:
abstraction, refinement, modularity.
Software Design has 4 outputs:
architectural design, data design, component design, interface design.
Software design must focus on more than just functional requirements, list 3:
Non-functional requirements: maintainability, security (encapsulation), availability (fault tolerance).
Two metrics to evaluate Design Quality.
Coupling and Cohesion.
Coupling?
The degree of the closeness of
the relationship between classes. Good coupling is when methods do not refer to each other. Bad = method refers to inside of another method.
Cohesion?
The degree to which attributes and methods of a class support a single object. Bad = class represents many objects, not just one.
Two types of coupling?
Interaction (message passing) and Inheritance.
Three types of cohesion:
Method cohesion. Class cohesion. Generalisation/specialisation cohesion (ie hierarchy extends cohesion)
3 design strategies:
Custom development (in house), Purchase packaged software, outsource.
Design Quality - maximise and minimise what?
Maximise cohesion, minimise coupling.
Levels of coupling:
No coupling, Data (used entirely), Stamp (used partly), Control (variable passed controls method), Global(refers to global data), Pathological (method1 refers to inside method2).