Software Engineering
Topic # 6 - Software Process Models
Lecturer - Iqra Qayyum
1
Most popular SDLC models
Software Process Models are:
1. Build and Fix Model
2. Waterfall Model
3. Rapid Prototyping Model
4. Incremental Model
5. Synchronized and Stable Model
6. Rapid Application Model
7. Spiral Model
8. Fountain Model
2
1- Build and Fix Model
3
2- Waterfall Model
• Waterfall approach was first SDLC.
• In "The Waterfall" approach, the whole process of software
development is divided into separate phases.
• Typically, the outcome of one phase acts as the input for the next
phase sequentially.
• Requirements are very well documented, clear and fixed.
• Product definition is stable.
• Technology is understood and is not dynamic.
• There are no ambiguous requirements.
• The project is short in duration.
4
5
Phases-Waterfall Model
• Requirement Gathering and analysis
• System Design
• Implementation
• Integration and Testing
• Deployment of system
• Maintenance
6
7
Waterfall Model Pros
• Simple and easy to understand and use
• Easy to manage due to the rigidity of the model . each phase has
specific deliverables and a review process.
• It allows for departmentalization and control.
• Phases are processed and completed one at a time.
• Works well for smaller projects where requirements are very well
understood.
• Clearly defined stages.
• Easy to arrange tasks.
• Process and results are well documented.
8
Waterfall Model Cons
• High amounts of risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for ongoing projects.
• Not suitable for the projects whose requirements are at a moderate
to high risk of changing.
• Adjusting scope during the life cycle can end a project.
9
3- Rapid Prototyping Model
10
Requirements phase
4- Incremental
Verify
Model
Specification phase
Verify
Architectural design
Verify
For each build:
Perform detailed design,
implementation and integration,
test, deliver to client
Maintenance phase
Development
Maintenance Retirement
11
Incremental Model (cont.)
Build 1
Implementation,
Specification Design Deliver to client
integration
Build 2
Implementation,
Specification Design Deliver to client
integration
Build 3
Implementation,
Specification Design Deliver to client
integration
Build n
Implementation,
Specification Design Deliver to client
integration
Specification team Implementation,
Design team integration team 12
Incremental Model (cont.)
• In incremental model the whole requirement is divided into various
builds.
• Multiple development cycles take place here, making the life cycle
a “multi-waterfall” cycle” .
• Cycles are divided up into smaller, more easily managed modules.
13
Incremental Model (cont.)
• Each module passes through the requirements, design,
implementation and testing phases.
• A working version of software is produced during the first module, so
you have working software early on during the software life cycle
• Each subsequent release of the module adds function to the previous
release.
• The process continues till the complete system is achieved
14
Incremental Model (cont.)
15
Advantages of Incremental model
• Generates working software quickly and early during the software life
cycle.
• This model is more flexible – less costly to change scope and
requirements.
• It is easier to test and debug during a smaller iteration.
• In this model customer can respond to each built.
16
Disadvantages of Incremental model:
• Needs good planning and design.
• Needs a clear and complete definition of the whole system before it
can be broken down and built incrementally.
• Total cost is higher than waterfall.
17
When to use the Incremental
model
• This model can be used when the requirements of the complete
system are clearly defined and understood.
• Major requirements must be defined; however, some details can
evolve with time.
• There is a need to get a product to the market early.
• A new technology is being used
18
5- Spiral Model
• Similar to the incremental model, with more emphasis placed on risk
analysis.
• The spiral model has four phases:
1. Planning
2. Risk Analysis
3. Engineering
4. Evaluation.
• A software project repeatedly passes through these phases in iterations
(called Spirals in this model).
• The baseline spiral, starting in the planning phase, requirements are
gathered and risk is assessed. Each subsequent spirals builds on the
baseline spiral.
19
Spiral Model (Cont.…)
1. Planning Phase: Requirements are gathered during the planning
phase. Requirements like ‘BRS’ that is ‘Business Requirement
Specifications’ and ‘SRS’ that is ‘System Requirement specifications’.
2. Risk Analysis: In the risk analysis phase, a process is undertaken to
identify risk and alternate solutions. A prototype is produced at the
end of the risk analysis phase. If any risk is found during the risk
analysis then alternate solutions are suggested and implemented.
3. Engineering Phase: In this phase software is developed, along
with testing at the end of the phase. Hence in this phase the
development and testing is done.
4. Evaluation phase: This phase allows the customer to evaluate the
output of the project to date before the project continues to the next
spiral.
20
Spiral Model (Cont.…)
21
Spiral Model (Cont.…)
22
Spiral Model Pros Cons
Advantages
• High amount of risk analysis hence, avoidance of Risk is enhanced.
• Good for large and mission-critical projects.
• Strong approval and documentation control.
• Software is produced early in the software life cycle.
Disadvantages
• Can be a costly model to use.
• Risk analysis requires highly specific expertise.
• Project’s success is highly dependent on the risk analysis phase.
• Doesn’t work well for smaller projects
23
When to use Spiral Model
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment unwise because of potential changes
to economic priorities
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and exploration)
24
6- Synchronize and Stabilize model
• During the requirement analysis phase interviews of the potential
customers are conducted and requirements documents are
prepared.
• Once the requirements are captured they are specified.
• Project is divided into 3 to 4 builds.
• Each build is carried out by small teams working in parallel.
• At the end of each day code is synchronized(test and debug).
• At the end of each build, it is stabilized by freezing the build and
removing any further defects.
• Because of synchronization components always work together.
25
7- Fountain Model
26