Types of Design
Business Systems
Examples
- Internet sites.
- Inventory management.
- Games.
- Payroll.
Life Cycle Models
Planning
- Plan in increments during development.
- Testing and quality planning as needed.
- Informal change control (at will).
Requirements
- Informal specification (description, use cases).
Design
- Design and coding combined (agile).
Implementation
- Pair programming.
- Informal code check-in.
- As-needed code reviews.
Testing
- Little or no testing group.
Mission critical systems
Examples
- Embedded software.
- Software Tools.
- Web Services; ie payment and booking.
Life Cycle Models
- Staged delivery.
- Reduce risks by installing in parts.
- Spiral development.
- A combination of prototyping and Waterfall.
Planning
- Some initial planning.
- Basic testing.
- Formal change control (document changes).
Requirements
- As needed requirements reviews to ensure correctness.
Design
- Design the archetecture (high level) before coding.
- No strict design format.
Implementation
- Pair programming.
- Informal code check-in.
- As-needed code reviews.
Testing
- Identified testing group.
Life critical systems
Examples
- Avionics.
- Embedded software in cars or machines.
- Medical devices.
- Operating systems.
- Military systems.
Life Cycle Models
- Life critical.
- Staged delivery.
- Spiral development.
Planning
- Extensive initial planning and test plan; may be legally required.
- Rigorous change control; change planned before you make it.
Requirements
- Formal requirement inspections and specifications.
Design
- Archetecture designed before coding.
- Formal archetechture inspections.
- Formal detailed design.
- Formal design inspections.
Implementation
- Pair Programming.
- Formal code check in (plan change before implenting).
- Formal code reviews.
Testing
- Testing group separate from the developers.