Software development process models

Reading Time: 4 minutes

Waterfall model

  • The waterfall model is a linear and sequential software development model in which each phase must be completed before the next phase begins.
  • It is suitable for projects with well-defined requirements.

Waterfall model phases

  • Requirement analysis
  • System design
  • Implementation
  • Testing
  • Deployment
  • Maintenance

Waterfall model key characteristics

  • No overlapping phases
  • No going back easily
  • Documentation-heavy

Waterfall model advantages

  • Simple and easy to manage
  • Clear milestones
  • Good for fixed requirements

Waterfall model disadvantages

  • Not flexible
  • Late error detection
  • Poor for dynamic projects

V-model (verification & validation model)

  • The v-model is an extension of the waterfall model where each development phase is associated with a corresponding testing phase.
  • Testing is planned in parallel with development.

V-model structure

  • Left side → development
  • Right side → testing

Left side of v (verification – development phases)

  • These are planning and design stages
  1. Requirements analysis : gather and document user requirements.
  2. System design : high-level design of the overall system architecture.
  3. High-level design (hld) : defines modules and their interactions.
  4. Low-level design (lld) : detailed design of each module.
  5. Coding (implementation) : actual development of the software.

Right side of v (validation – testing phases)

  • Each development phase has a matching test phase:
  1. Unit testing : low-level design tests individual modules.
  2. Integration testing : high-level design tests interaction between modules.
  3. System testing : system design tests the complete system.
  4. Acceptance testing : requirements analysis ensures system meets user requirements.

V-model advantages

  • Early test planning
  • Better defect detection
  • Higher quality than waterfall

Spiral model

  • The spiral model is a risk-driven, iterative software development model that combines elements of design and prototyping in stages.
  • Developed by barry boehm.

Each spiral includes

  • Planning
  • Risk analysis
  • Engineering
  • Evaluation

Spiral model: Planning

  • Identify objectives for that phase.
  • Define requirements, alternatives, and constraints.
  • Estimate cost, schedule, and resources.
  • Basically: what are we going to build in this cycle?

Spiral model: Risk analysis

  • Identify possible risks (technical, cost, schedule, performance).
  • Analyze their impact.
  • Develop strategies to reduce or eliminate risks (e.g., prototypes, simulations).
  • This is the most important phase in the spiral model.

Spiral model: Engineering

  • Design, develop, and test the product increment.
  • Includes coding, integration, and verification.
  • This is where the actual development happens.

Spiral model: Evaluation

  • Customer reviews the work done.
  • Feedback is collected.
  • Decide whether to continue, modify, or stop the project.
  • Ensures continuous customer involvement.

Spiral model key feature

  • Focuses mainly on risk identification and reduction.

Spiral model advantages

  • Strong risk management
  • Flexible
  • Suitable for large projects

Agile model

  • The agile model is an iterative and incremental software development approach that focuses on customer collaboration, flexibility, and continuous improvement.
  • Based on the agile manifesto (2001).

Core principles

  • Customer collaboration
  • Responding to change
  • Working software over documentation
  • Individuals & interactions over processes

Agile model: Scrum

  • Scrum is an agile framework that divides development work into small time-boxed iterations called sprints.

Scrum key features

  1. Sprint: a short, fixed time period (usually 2–4 weeks) in which a working product increment is developed.
  2. Product backlog: a prioritized list of all features, requirements, and improvements needed in the product.
  3. Sprint backlog: a list of selected tasks from the product backlog that the team commits to completing during a sprint.
  4. Daily scrum (daily stand-up): a short 15-minute daily meeting where team members discuss what they did yesterday, what they will do today, and any obstacles.
  5. Sprint review: meeting held at the end of the sprint to demonstrate the completed work to stakeholders.
  6. Sprint retrospective: meeting where the team reflects on what went well and what can be improved in the next sprint.
  7. Increment: a working version of the product delivered at the end of each sprint.

Agile model: scrum roles

  • Product owner: represents the customer. Manages and prioritizes the product backlog. Ensures the team works on the most valuable features.
  • Scrum master: facilitates scrum practices. Removes obstacles for the team. Ensures the team follows scrum principles.
  • Development team: cross-functional group of professionals (developers, testers, designers). Responsible for delivering the product increment. Self-organizing and collaborative.

Agile model: extreme programming (xp)

  • Definition: extreme programming (xp) is an agile methodology that emphasizes coding quality, customer satisfaction, and frequent releases.
  • Key practices:
    • Pair programming: two programmers work together on the same code (one writes, one reviews).
    • Test-driven development (tdd)
    • Continuous integration
    • Supports frequent releases and customer feedback