0% found this document useful (0 votes)
4 views40 pages

Process Models

The document discusses various software development process models, including Waterfall, Incremental, Rapid Application Development (RAD), Spiral, and Agile. Each model has distinct characteristics, advantages, and limitations, with a focus on aspects like customer feedback, risk management, and delivery timelines. The document also provides guidance on selecting the appropriate model based on project requirements and conditions.

Uploaded by

qasimmehboob39
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views40 pages

Process Models

The document discusses various software development process models, including Waterfall, Incremental, Rapid Application Development (RAD), Spiral, and Agile. Each model has distinct characteristics, advantages, and limitations, with a focus on aspects like customer feedback, risk management, and delivery timelines. The document also provides guidance on selecting the appropriate model based on project requirements and conditions.

Uploaded by

qasimmehboob39
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Process Models(Continued)

By Amina Mustansir
Assistant Professor
Department of Software Engineering
FCIT
Recap
Waterfall vs Prototyping
• Waterfall is like building a house: you plan everything upfront, then
execute step by step.
• Prototyping is like sketching and revising designs with the client
before final construction.
• Waterfall emphasizes planning and documentation, while Prototyping
emphasizes user feedback and adaptability.
Incremental Model
The incremental model
• A software development approach where the product is built and delivered in
small, functional increments, each going through requirements, design,
coding, and testing.
• This allows early delivery of working software, continuous customer feedback,
and flexibility to adapt to changes.
Features
• Step-by-step development: The system is not delivered all at once;
instead, it is divided into increments.
• Early working software: A usable version is delivered in the first
increment, even if limited in functionality.
• Customer feedback loop: Each increment is evaluated by the
customer, and feedback is incorporated into subsequent releases.
• Flexibility: New features can be added in later increments without
disrupting the existing system.
• Risk management: By delivering in parts, risks are identified and
mitigated earlier compared to the waterfall model.
• Parallel activities: Requirements, design, and testing occur for each
increment, making the process iterative and evolutionary.
Steps
• Requirements Analysis – Identify core requirements for the first
increment.
• Design & Implementation – Build the initial version with essential
functionality.
• Testing & Delivery – Deliver the increment to the customer for use.
• Feedback & Refinement – Gather customer input and adjust
requirements for the next increment.
• Repeat Cycle – Continue until the complete system is developed.
Advantages
• Early delivery of usable software (customers don’t wait until the end).
• Reduced risk of failure since problems are detected early.
• Better customer satisfaction due to continuous involvement.
• Scalability – easy to add new features incrementally.
Limitations
• Requires careful planning to decide which features go in each
increment.
• Integration challenges may arise as increments grow.
• Customer dependency – frequent feedback is essential, which may
not always be available.
Comparison
Incremental model
• This approach has the advantages that : -

• Less staffing available for a complete implementation by the business


deadline that has been established for the project (Early increments can be
implemented with fewer people)
• Early delivery is guaranteed
• Progress of the whole project is not delayed if one of the resources is not
available for part of it
• Increments can be planned to manage technical risks
Incremental Model
Communication
Planning
Modeling (analysis, design)
Construction (code, test)
Deployment (delivery, feedback)
Delivery of
Increment # n

Software Functionality and Features


nth
increment

Increment # 2

Delivery of
Increment # 1 2nd
increment

Delivery of
1st increment
Project Calendar Time
Rapid Action Development
Rapid Application Development
• A software process model that emphasizes
• short development cycles (60–90 days)
• high user involvement
• parallel development using automated tools.
• It is designed to deliver functional systems quickly while maintaining quality

• Rapid Application Development is an adaptation of linear sequential software development


process model that emphasises an extremely short development cycle.
• A component-based construction approach is used.
• To use this approach, the project scope must be constrained and the requirements should be well
understood.
• A task that should take no more than ninety days to complete is modelled, generated and
implemented.
• There can be several teams working on different components during this ninety day time-box
Key Features
• Time-boxed development: Each cycle is limited to about 60–90 days,
ensuring fast delivery.
• Incremental approach: The system is divided into modules, each developed
and delivered separately.
• Parallel teams: Multiple teams work simultaneously on different modules
to accelerate progress.
• Prototyping & user feedback: Continuous interaction with users ensures
evolving requirements are captured.
• Automated tools: CASE (Computer-Aided Software Engineering) tools, code
generators, and reusable components are heavily used to speed up
development.
RAD Process Phases
• Business Modeling – Understand information flow and business
functions.
• Data Modeling – Define data objects and relationships.
• Process Modeling – Define processes to manipulate data.
• Application Generation – Use automated tools to build prototypes
quickly.
• Testing & Turnover – Test modules and integrate them into the final
system
Advantages
• Fast delivery of usable software.
• High customer satisfaction due to continuous involvement.
• Flexibility to adapt to changing requirements.
• Reduced risk of building the wrong product since prototypes are
validated early.
Limitations
• Requires skilled developers and designers to work in parallel.
• Not suitable for very large, complex systems where modularization is
difficult.
• High dependency on user availability for feedback.
• Costly infrastructure (tools, skilled teams) may be needed.
Spiral Model
The Spiral model
• An evolutionary software process model that combines iterative development with
systematic risk analysis.
• It emphasizes repeated cycles (spirals) of planning, risk assessment, engineering, and
evaluation to ensure high-quality software.

• Boehm’s (1988) spiral model couples the iterative nature of prototyping with the
controlled and systematic aspects of the linear sequential model.
• Software is developed in a series of incremental releases.
• During the early releases, there may be just a paper model, but the system becomes
increasingly more complete.
• There are a number of framework activities (Customer communication, Planning, Risk
analysis, Engineering, Construction and release, Customer evaluation).
• Unlike any of the other models, this model keeps revisiting the system throughout its
lifetime.
Key Features
• Iterative Development
• Software is developed in incremental releases, with each cycle (spiral) producing a
more complete version.
• Risk Management Focus
• Unlike the Waterfall model, the Spiral model explicitly incorporates risk analysis at
every iteration, making it suitable for large, complex, and high-risk projects.
• Customer Involvement
• Continuous feedback from stakeholders is integrated at each cycle, ensuring
alignment with user needs.
• Flexibility
• Combines elements of prototyping and the Waterfall model, allowing adaptation to
changing requirements.
Phases
• Planning
• Define objectives, alternatives, and constraints.
• Establish requirements for the iteration.
• Risk Analysis
• Identify potential risks (technical, financial, operational).
• Develop strategies to mitigate or resolve them.
• Engineering
• Actual development: design, coding, and testing of the iteration’s deliverables.
• Evaluation
• Customer reviews the product.
• Feedback is used to refine the next cycle
Advantages
• Early detection and mitigation of risks.
• Continuous customer feedback ensures relevance.
• Flexible and adaptable to requirement changes.
• Produces high-quality, reliable software.
Limitations
• Can be costly and time-consuming due to repeated risk analysis.
• Requires expertise in risk management.
• Not ideal for small or low-budget projects.
• The spiral model is a risk-driven process model generator that is used
to guide multi-stakeholder concurrent engineering of software
intensive systems
• It has two main distinguishing features.
• One is a cyclic approach for incrementally growing a system’s degree of
definition and implementation while decreasing its degree of risk.
• The other is a set of anchor point milestones for ensuring stakeholder
commitment to feasible and mutually satisfactory system solutions.
Spiral Model
Spiral Model
Spiral model is divided into a number of framework activities, named as
task regions.3-6 task regions. Each task region has its own task sets.
Advantages
• Explicit risk handling
• More realistic and appropriate for large scale projects-research based
• Evolutionary
Differences between Spiral and Incremental
Model
• Both models, incremental and spiral offer partial deliveries to the
customer at different phases BUT ….
• The Incremental Model focuses on the delivery of a fully-tested
production code in a step-by-step fashion; each step adds more
functionality
• The Spiral Model focuses on the development of prototypes at each
stage which will be used only for information gathering and then
throw-away
Agile
• What is the Agile Process Model?
• The Agile process model is an iterative and incremental approach to software development where software is
built in small cycles and customer feedback is taken continuously.
• In simple words:
👉 Build a little → test it → get feedback → improve → repeat.

• Key Characteristics of Agile


• ✔ Customer collaboration over contracts
• ✔ Working software over heavy documentation
• ✔ Responds to change quickly
• ✔ Frequent delivery of usable software
• ✔ Teamwork & communication are central

Agile Process Flow
• Requirement Gathering (User Stories)
• Requirements written as user stories
• Example: “As a user, I want to log in so that I can access my account.”
• Planning
• Decide what features go into the next iteration (Sprint)
• Sprint duration: 1–4 weeks
• Design & Development
• Simple design
• Coding happens continuously
• Testing
• Testing is done alongside development
• Bugs are fixed immediately
• Review & Feedback
• Product shown to the customer
• Feedback collected
• Deployment
• Working increment released
• Next Iteration
• Cycle repeats until product is complete
Aspect Agile Waterfall
Development Iterative Linear
Changes Easily accepted Difficult
Customer Involvement Continuous Limited
Delivery Frequent At the end
Risk Lower Higher
Popular Agile Models
• Scrum (most common)
• Extreme Programming (XP)
• Kanban
• Lean Software Development
• Advantages of Agile
• Faster delivery
• Better quality
• Early problem detection
• High customer satisfaction
• Limitations of Agile
• Less documentation
• Requires experienced team
• Not ideal for very large or safety-critical systems
How to Choose the Right Model
• Stable requirements? → Waterfall or V-Model.
• Uncertain or evolving needs? → Agile or Iterative.
• High risk, large scale? → Spiral.
• Quick prototype or experiment? → Big Bang.

You might also like