Software Process Models
- Waterfall model
- Prototyping models
- Rapid Application Development
- Incremental development
- The spiral model
- Formal development
- Unified Process
- Agile Process
- Extreme Programming (XP)
Waterfall Model
- Separate and distinct phases of specification and development
- A linear sequential model
- Advantages:
- Process and results are well documented – Easy to manage due to the rigidity of the model
- Disadvantages:
- Cannot accommodate changing requirements
- Difficult to measure progress within stages
Prototyping
- For large and complex systems:
- A prototype ( a small version of the system) can be used to clear the vague requirements
- A prototype should be evaluated with the user participation.
- There are two types of prototyping techniques
- Throw-away Prototyping
- Evolutionary Prototyping
Throw-away Prototyping
- The objective is to understand the system requirements clearly
- Starts with poorly understood requirements. Once the requirements are cleared, the system will be developed from the beginning
- This model is suitable if the requirements are vague but stable
Throw-away Prototyping: Problems
- It may not be possible to prototype some of the most important parts of the system such as safety-critical functions
- An implementation has no legal standing as a contract between customer and contractor
- Non-functional requirements such as those concerning reliability, robustness and safety cannot be adequately tested in a prototype implementation
Evolutionary Prototyping
• A life cycle model and incrementally developed