Structured activities to develop software
Waterfall Phases
Waterfall disadvantage
Little flexibility for change after process is underway.
When is Waterfall used
When requirements are understood and changes are limited.
Evolutionary Model Parts:
Problems of Evolutionary
Evolutionary Model Applicability
Component Based
Based on systematic reuse (reuse components from existing solutions).
Component Based Process Stages:
Process Iteration/Incremental
System requirements will always evolve through course of a project. Incremental delivery focuses on delivering increments (partial functionality) prioritizing user requirements.
Advantages of Incremental Delivery
Extreme Programming
Based on development and delivery of very small increments under functionality. Relies on constant code improvement.
Spiral Development
Process is spiral rather than linear with backtracking. Each loop is a phase in the process. Risks explicitly assessed and resolved.
Spiral Development Sectors
Software Specification
Process of establishing required services and constraints on system.
Requirements Engineering Process:
Software Design and Implementation
Process of converting system specs into executable system.
System design realizes specification and implementation translates it to executable.
Design Process
Structured Method
Systematic approach to developing a software design. Uses graphic models such as:
- Object Graph
- Sequence Model
- State Transition Model
- Structural Model
- Data Flow Model
Debugging
Translating design into program and removing errors. No generic process. Use testing.
Validation
Show that system conforms to specs and meets user requirements. Includes testing through test cases derived from real data.
Testing Stages:
Component/Unit Testing
Individual Components tested, may be functions or objects.
System Testing
Testing of the system as a whole. Test emergent properties