Design Methodology Flashcards
The Design Problem
Small amount of developers but a large requirement specification.
Stages of Design
Problem understanding -> look at the problem from different angles to discover design requirements.
Identify one of more solutions.
Describe solution abstractions -. use graphical formal or other notions to describe design’s components.
Repeat process for each identified abstraction until design is expressed in primitive terms.
Phases in Design Process
- architectural design
- abstract specification
- interface design
- component design
- data structure
- algorithm design
Architectural Design
Identify sub-systems.
Abstract Specification
Specify sub-systems.
Interface Design
Describe sub-system interfaces.
Component Design
Decompose sub-systems into components.
Data Structure
Design data structures to hold problem data.
Algorithm Design
Design algorithms for problem functions.
Computer system, modular or monolithic?
Modularity, like subroutines, are more cheaper and efficient and therefore are used for computer systems.
Objectives for defining system modules.
Identify what they are, what they should know and how modules interact with one another.
Modularity Requirements
The modules must be:
- Autonomous -> can work by itself.
- Coherent - strength of the correlation of the elements inside the module.
- Robust - can cope with errors.
High Cohesion
Elements inside module work together well.
Low Coupling
High interdependence between modules.
Functional Decomposition
Leads to procedural abstraction.
Procedural Abstraction
Procedures represent distinct logical functions in a program.
Object Orientated Design
A collection of interacting objects, with the system state being decentralised and each object manages its own state.
Five Criteria in evaluating modular design methods.
- Modular decomposition
- Modular composability
- Modular understandability
- Modular continuity
- Modular protection