2.1 Software Process & SDLC Overview
A Software Process is a structured set of activities, methods, practices, and transformations that engineers follow to produce high-quality software. The sequence of stages from initial conception to eventual decommissioning is termed the Software Development Life Cycle (SDLC).
Figure 2.1: The cyclic progression of the generic Software Development Life Cycle (SDLC) stages.
2.2 Waterfall Model (Linear Sequential)
The Waterfall Model, originally introduced by Winston Royce in 1970, is the classic linear sequential process model. Each phase must be 100% completed and formally signed off before the next phase begins, with zero overlap between stages.
Figure 2.2: The Waterfall Model enforces rigid downward phase progression with zero stage overlapping.
Pros & Cons
- Pros: Extremely simple to track and manage; precise milestone deliverables; excellent for small projects with stable, crystal-clear requirements.
- Cons: No working software produced until very late; impossible to accommodate requirement changes; extremely high risk if assumptions are mistaken early.
2.3 Incremental Model
The Incremental Model delivers software through a succession of usable builds (increments). The first increment provides core baseline functionality; subsequent increments add enriched features and secondary capabilities.
Figure 2.3: Each increment cycles through full SDLC steps to produce early shippable functionality.
2.4 RAD (Rapid Application Development) Model
The RAD Model is an incremental process emphasizing rapid construction in exceptionally short cycles (typically 60 to 90 days), leveraging visual CASE tools and reusable component assemblies.
Figure 2.4: RAD executes linear pipelines in parallel teams to achieve delivery within 60ā90 days.
2.5 Spiral Model (Risk-Driven)
Proposed by Barry Boehm in 1986, the Spiral Model is a risk-driven evolutionary process model combining the systematic control of the Waterfall model with the cyclic prototyping of iterative development.
Each loop through the spiral represents an evolutionary phase divided into four quadrants:
- Quadrant 1 (Top Left) ā Determine Objectives: Identify project objectives, alternative solutions, and constraints.
- Quadrant 2 (Top Right) ā Identify & Resolve Risks: Detailed risk analysis; build exploratory prototypes to resolve uncertainties.
- Quadrant 3 (Bottom Right) ā Develop & Verify: Engineering implementation, simulation, coding, and benchmark testing.
- Quadrant 4 (Bottom Left) ā Plan Next Phase: Customer evaluation, review progress, and plan the next spiral iteration.
Figure 2.5: The Spiral Model evaluates risk in each quadrant before advancing to subsequent outer prototype iterations.
2.6 Agile Model (Sprint Iterations)
The Agile Model is an incremental and iterative mindset rooted in the Agile Manifesto (2001). Rather than following rigid multi-year project plans, agile teams deliver small, production-ready slices of software in 1 to 4 week iterations known as Sprints.
Figure 2.6: The Agile sprint loop converts customer feedback into shippable value every 1 to 4 weeks.
2.7 V-Model (Verification & Validation)
The V-Model extends the Waterfall model by bending the lifecycle upwards following coding, establishing a direct 1-to-1 correspondence between each development/design stage on the left and its corresponding testing stage on the right.
Figure 2.7: In the V-Model, test planning activities for each testing stage begin concurrently during its corresponding design stage.