Process Models
Nishat Tasnim Sithy
Lecturer
Dept. of CSE
Eastern University, Bangladesh
Process Models
also called prescriptive models
define how software is developed, tested,
and maintained in a structured way.
provide a systematic approach to managing
software projects.
to ensure structured development, these
process models follow a systematic
.
approach known as the Software
Development Life Cycle (SDLC)
SDLC : Software Development Life Cycle
A process that development teams use to design and build high-quality
software.
Why SDLC is important?
Enhanced transparency of the development process.
Improved risk management and cost estimation.
Better customer satisfaction.
Phases of SDLC
Requirement
Design Development Testing Deployment Maintenance
Analysis
SDLC Models
01 02 03
Waterfall Model Spiral Model Iterative Model
04 05 06
V-Shaped Model RAD Model Agile Model
Waterfall Model
Also known as the Linear – Sequence Model
When to use ?
● Static requirements, clear client understanding, low-risk projects.
Example: Why:
● Developing a secure online banking platform. The requirements for security, transaction
processes, and regulatory compliance are well-
defined and stable and unlikely to change.
Waterfall Model
Steps
Requirement Gathering and
Analysis
System Design
Implementation
Testing
Deployment
Maintenace
Waterfall Model
Advantages Limitations
● Straightforward and simple to ● Not flexible, difficult to
manage. accommodate changes.
● Disciplined and well structured. ● Client feedback can’t easily be
● Logical and intuitive incorporated.
progressive ● High risk of late discovery of
● Clear goals. issues due to late testing.
● Easier to hit the deadline.
RAD Model (Rapid Application Development Model)
When to use ?
● When a project needs to be developed quickly with continuous user feedback, and low
technical risk
Why:
• Faster developments,
Example: • Better user satisfaction,
● Dropbox by Drew Heuston
• flexibility to changes,
• reduced risk of failure,
• cost-effective for small project.
Diagram
RAD Model
Advantages Limitations
● Faster Development ● Not Suitable for Large Projects
● User Centric ● Requires Active User
● Flexibility to Change Involvement
● Reduced Risk ● Higher Dependency on Skilled
● Better Cost Control Developers
● Higher Quality Assurance ● Not Ideal for Low-Budget
Projects
Spiral Model
A combination of iterative process model and a sequential linear model.
When to use ?
● Projects with evolving requirements and high-risk factors.
Example: Why:
● Microsoft used it to develop early versions Highly dependent upon earlier versions.
of Windows Receive feedback from customers.
● Game Development Frequent releases are important.
Spiral Model
Steps 1. Objectives 2. Identify
determination and resolve
and Identify the risks
Alternative
Solution
4. Review and
3. Develop next
plan for new
version of
phase
product
Spiral Model
Advantages Limitations
● Changing requirements can be ● High cost, making it unsuitable for
accommodated even at later stages. small projects.
● Requirements can be captured more ● Difficult to manage time and budget
accurately. due to unknown number of phases.
● Early customer involvement, leading to ● Process is complex.
higher satisfaction. ● Spiral may go on indefinitely.
● Suitable for large and complex projects.
● Enables early detection of potential
issues.
Agile Model
Embraces an iterative approach by breaking down projects into smaller parts for regular delivery.
When to use ?
● Projects requiring frequent updates and user feedback.
Example: Why:
● Social networking applications Allows for quick updates based on user
feedback.
● Facebook started using agile principle back in
2011
Agile Model Requirement
Analysis
Steps
Review Design
Agile
Development
Methodology
Deploy Develop
Test
Agile Model
Advantages Limitations
● Frequent delivery.
● Not suitable for handling complex
● Anytime changes are acceptable.
dependencies.
● It reduces total development time.
● Depends heavily on customer interaction.
● Resource requirements are minimum.
● The lack of formal documents creates
● Easy to manage.
confusion.
● Gives flexibility to developers.
● Lack of uniform documentation
Agile vs. Waterfall Method
Agile Model Waterfall Model
Agile method proposes incremental and iterative Development of the software flows sequentially from
approach to software design start point to end point.
The agile process is broken into individual models The design process is not broken into an individual
that designers work on models
The customer has early and frequent opportunities to The customer can only see the product at the end of
look at the product and make decision and changes the project
to the project
Agile model is considered unstructured compared to Waterfall model are more secure because they are
the waterfall model so plan oriented
Agile vs. Waterfall Method
Agile Model Waterfall Model
(contd.)
Small projects can be implemented very quickly. For
large projects, it is difficult to estimate the
All sorts of project can be estimated and completed.
development time.
Error can be fixed in the middle of the project. Only at the end, the whole product is tested. If the
requirement error is found or any changes have to be
made, the project has to start from the beginning
Development process is iterative, and the project is The development process is phased, and the phase is
executed in short (2-4) weeks iterations. Planning is much bigger than iteration. Every phase ends with the
very less. detailed description of the next phase.
Documentation attends less priority than software Documentation is a top priority and can even use for
development training staff and upgrade the software with another
team
Agile vs. Waterfall Method
(contd.)
Agile Model
In agile testing when an iteration end, shippable
Waterfall Model
All features developed are delivered at once after
features of the product is delivered to the customer. the long implementation phase.
New features are usable right after shipment. It is
useful when you have good contact with
customers.
Testers and developers work together Testers work separately from developers
At the end of every sprint, user acceptance is User acceptance is performed at the end of the
performed project.
It requires close communication with developers Developer does not involve in requirement and
and together analyze requirements and planning planning process. Usually, time delays between
tests and coding
When to use Agile model
● When new changes need to be implemented. The freedom agile gives
to change is very important. New changes can be implemented at very
little cost because of the frequency of new increments that are
produced.
● To implement a new feature the developers need to lose only the work
of a few days, or even only hours, to roll back and implement it.
● Both system developers and stakeholders alike, find they also get more
freedom of time and options than if the software was developed in a
more rigid sequential way.
● Having options gives them the ability to leave important decisions
until more or better data or even entire hosting programs are
available; meaning the project can continue to move forward without fear
of reaching a sudden standstill.
How to Choose between SDLC
Methods?
How to Choose between
SDLC Methods?
● To know which is the best model out of all the different types
of SDLC models, it is important to understand that each
of these approaches are suitable for different projects,
environments, and requirements.
● For example, if your project is simple and straightforward
with set requirements that do not need to be changed, then
Waterfall is best suited for it.
● However, if your project is large-scale and consists of
multiple components and segments, then choosing Iterative
or Spiral methodology would suit your project better.
How to Choose between SDLC
Methods?
● To answer the question simply, there is no ONE model is best
from all the SDLC models discussed.
● A preference of one method over the others cannot be determined.
● However, to select the right SDLC methodologies, you should know
all the types of SDLC models, assess the requirements of all the
stakeholders and then decide on a method that best fits your needs.
Conclusion
- Selecting the right model is a crucial step for a quality software development.
- Tailor the choice to the projects complexity, risk and flexibility requirement for
optimal result.
Thank You
References
● https://www.javatpoint.com/software-engineering-agile-model
● https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm
● https://www.geeksforgeeks.org/software-development-life-cycle-sdlc/?ref=shm