SOFTWARE ENGINEERING
LECTURE 05
EVOLUTIONARY SOFTWARE
PROCESS MODELS
INSTRUCTOR: ENGR. FAHAD REHMAN
ENGR.FAHAD97@[Link]
EVOLUTIONARY SOFTWARE PROCESS
MODELS
• Evolutionary models are software development
approaches in which the system is developed
incrementally through repeated cycles (iterations).
• Each version of the software evolves by incorporating
user feedback, purifying requirements, and enhancing
functionality.
• The development proceeds from a simple initial
version to a more complex and complete system.
WHY EVOLUTIONARY MODELS ARE
USED
• Requirements are unclear or constantly changing.
• Users prefer to see working versions early.
• Complex systems need continuous validation.
• Risk reduction is required through early feedback
MAIN TYPES OF EVOLUTIONARY
MODELS
• Prototyping Model
• Spiral Model
• Incremental Model
• Iterative Model
SPIRAL MODEL
SPIRAL MODEL
• The Spiral Model is a risk-driven software development
process model that combines elements of waterfall and
prototyping.
• Development proceeds in a series of spirals (iterations).
• Each spiral consists of planning, risk analysis, engineering,
and evaluation.
• The model emphasizes early identification and reduction of
project risks.
Why It Is Called “Spiral”
• The process is drawn as a spiral starting from the center
and moving outward.
Each loop (spiral cycle) represents a phase, and its radius
increases to show project growth.
The spiral shows that development is:
SPIRAL MODEL
PHASES OF THE SPIRAL MODEL
Each loop of the spiral has four quadrants:
Planning (Objectives Determination)
• Define goals, requirements, constraints.
• Determine alternatives (approaches, technologies).
• Estimate cost and schedule.
Risk Analysis (Risk Identification and Resolution)
• This is the core feature of the Spiral Model.
• Identify all possible risks (technical, cost, schedule, user acceptance).
• Analyze and prioritize them.
• Build prototypes or perform simulations to reduce risks.
PHASES OF THE SPIRAL MODEL
Engineering (Development and Testing)
• Develop the system or a part of it.
• Produce design documentation.
• Implement code, integrate modules.
• Conduct testing at each iteration.
Evaluation (Customer Review)
• Present the prototype or deliverables to the customer.
• Get feedback.
• Decide whether to move to the next spiral or stop the project.
WHEN TO USE SPIRAL MODEL
• Project is large and complex.
• Requirements are unclear or evolving.
• High-risk projects where early risk discovery is critical.
• You have stakeholders who want continuous refinement.
• Long-term, expensive projects (e.g., defense, banking,
aerospace).
ADVANTAGES & DISADVANTAGES
Advantages
• Early risk identification and reduction.
• Continuous user involvement improves product quality.
• Flexible to requirement changes.
• Better for large, high-budget projects.
• Prototyping improves requirement understanding.
Disadvantages
• Can become expensive due to repeated cycles.
• Requires expertise in risk analysis.
• Not suitable for small projects.
• Hard to manage if risks are not well analyzed.
• Time-consuming due to many iterations.
Questions