Software Process Models

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

  1. It may not be possible to prototype some of the most important parts of the system such as safety-critical functions
  2. An implementation has no legal standing as a contract between customer and contractor
  3. 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

Spiral Model