Design Methodology Flashcards
(46 cards)
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
Modular Decomposition
Design method supports the decomposition of a problem into smaller problems.
Modular Composability
A design method which creates modules that may be freely combined to create new systems.
Modular Understandability
A design method which encourages easily understandable modules.
Modular Continuity
Can be updated without effecting the whole system (only one or a small amount of modules).
Modular Protection
Yields architecture in which abnormal conditions at run-time only effect one or a small amount of modules.
Repository Model
All shared data is held in central database which may be accessed by all sub-systems.