Content

  1. Overview
  2. Predictive Models
    1. Example: Waterfall with Feedback
    2. Example: Sashimi Waterfall
    3. Example: Incremental Waterfall
  3. Adaptive Models
    1. Example: Rapid Prototyping
    2. Example: Unified Process

Overview

  • Basis of a software engineering project
    • Requirements engineering
    • Design
    • Implementation
    • Testing
    • Deployment
    • Maintenance
  • Software process model: the way these activities are organized
    • Waterfall (predictive model): activity starts after the previous one finishes
    • Unified Process (adaptive model): activity conducted sequentially in a series of iterations

Predictive Models

Assumes requirements & solution clear at the start of project.

  • Advantage
    • Knows exactly when the activity starts/ends
    • Customers knows what will be delivered without surprise -> mission-critical and safety-critical products
    • No waste of time & effort prototyping & experimenting
    • Less refactoring
  • Disadvantage
    • If requirements wrong, it is disastrous
    • Doesn't work if customer's and developer's visions of product are different, or requirements incomplete
    • No product delivered until the end
  • When will work
    • Requirements really known
    • No significant risk
    • Experienced team
    • Schedule is long enough to complete
Example: Waterfall with Feedback

  • Doesn't assume each activity completed perfectly
  • Working S/W still appears late
  • Risks are not resolved early
  • In practice, moving back is hard
Example: Sashimi Waterfall

  • Allows overlapping between activities
  • Allows some knowledge to be discovered in later activities to be used in earlier activities
Example: Incremental Waterfall

  • Allows some degree of adaptation
  • Each increment runs predictively
  • Each increment long

Adaptive Models

Accepts requirements & solution cannot be known for certain, and changes are extremely likely.

  • Advantages
    • Less detailed up-front planning and commitment
    • Can drive iterations by risk -> early risk mitigation
    • Better engagement with user
    • Can release at any time
    • Handles change & complexity better
  • Disadvantage
    • Complexity
    • Not suitable for small, low-risk project
Example: Rapid Prototyping

Example: Unified Process

results matching ""

    No results matching ""