Software
Engineering
Lecture # 4
MUMTAZ AHMAD
0301-6927006
[email protected]
Software Development Life Cycle (SDLC)
Requirement Analysis
System Design
Development
Testing
Deployment
Maintenance
Module 2: Software Development Life Cycle (SDLC) Models
Process Models
1. Waterfall
2. V-Shape Model
3. Prototype Model (Throw Away Model)
4. Spiral Model
5. Incremental Model
6. Iterative Model
7. Evolutionary Model (Incremental + Iterative)
8. RAD (Rapid Application Development) Model
9. Agile Model (SCRUM)
Definition Prototype Model …
The Prototyping Model is one of the most popularly used Software
Development Life Cycle Models (SDLC models). This model is used when the
customers do not know the exact project requirements beforehand. In this
model, a prototype of the end product is first developed, tested, and refined
as per customer feedback repeatedly till a final acceptable prototype is
achieved which forms the basis for developing the final product.
Prototype model process
Requirement Analysis
Feasibility Study
Create a Prototype
Prototype Testing
Customer Review and Approval
Design
Coding
Testing
Installation and Maintenance
MUMTAZ AHMAD [
[email protected]] [0301-692-7006] 5
Prototype Model
How Does Prototype Model Work?
Requirement analysis
This model starts with collecting the requirements from the customers. And
these requirements of the project should be in-details.
These details are received by the Business Analyst (BA) and Product
Analyst (PA). Where BA is assigned for service.
After the feasibility study, they will move to next stage, creating the
prototype (sample or dummy) based on the data collects from the client,
and the web developer will design the Prototype-Based software.
The PA is assigned for Product-Based Software.
Prototype Model
Feasibility Study
In the next stage, the BA, HR, Architecture, and Finance teams’ head
will sit together and talk about
the cost of the product
Resources are required
Which technology is used
How much time is required to complete the product and deliver?
Prototype Model
Create a prototype
After we completed the feasibility study, will move to next stage, where
will be creating the prototype (sample or dummy) based on the data
collects from the client, and the web developer will design the prototype.
Here, we have the following types of prototype:
❑ Static prototype
❑ Dynamic prototype
Static Prototype
In the static prototype all the guidelines, screenshot, and the description
of how to build the software, how the completed product will look like and
how it will work and so on will be kept in a word document according to the
requirements.
Dynamic Prototype
The dynamic prototype is parallel to the browser, but here we can't provide
any details, only the functionality is there without entering the data.
It is like a dummy page made out of the html with having tags and links to
the various pages to the expressive features of the product.
Prototype Model
Prototype Testing
Once we build the prototype, the BA will test the prototype and perform
one round of prototype testing.
The prototype testing is testing, where we will test only the look and feel,
which means that the UI and frontend.
Customer Review and Approval
Once the prototype testing is done, it will be handed over to the customer
for their review and approval.
If the customer is not happy with the given sample, they will change the
prototype based on the customer's guidelines and feedback.
This process will go on until the customer approved and satisfied with the
prototype.
It is a bit time-consuming because we have to perform the changes again
and again in the prototype.
Prototype Model
Design
After getting the approved prototype, the high level and low-level design
for the final product and consider all the suggestions given by the customer
at the time of the final prototype.
Prototype Model
Coding
Once the design phase has been completed successfully, then move to
coding phase, where the concerned developer starts developing the product
based on their programming knowledge.
Testing
After the compilation of the development phase, it is handed over to the
test engineer. And the test engineer test the application functionality, and
all inputs and outputs.
Installation and maintenance
Once final product is developed and tested according to the final prototype,
it will be deployed to the production.
The product will go through the time to time maintenance to reduce any
interruption, which helps to avoid significant failures.
Prototype Model
Module 2: Software Development Life Cycle (SDLC) Models
Process Models
1. Waterfall
2. V-Shape Model
3. Prototype Model (Throw Away Model)
4. Spiral Model
5. Incremental Model
6. Iterative Model
7. Evolutionary Model (Incremental + Iterative)
8. RAD (Rapid Application Development) Model
9. Agile Model (SCRUM)
The Spiral Model
The Spiral Model
The Spiral model was initially developed by Barry Boehm in 1986. A
Spiral model is software development and enhancement as risk-driven and
an iterative model of SDLC.
Spiral model integrates the iterative model approach with waterfall model.
Spiral model is preferred for large and High-Risk Projects.
This is the evolutionary development model as primary and important
features are defined and developed first and remaining features are added
in spirals (iterations) of the project.
The Spiral Model
The spiral model for software development is the best-chosen software
model for risky, extensive and complicated projects.
The visual representation of this process looks like a spiral net with many
loops.
The number of loops depends on the project type and requirements.
Each loop in the spiral model has four main phases of the software
development process.
Requirement analysis Design Coding Testing and risk analysis
The Spiral Model
Definition Spiral Model
The Spiral model for software development combines elements of iterative
and incremental development methodologies.
It consists of four phases that are executed in a cyclic or spiral fashion.
Each iteration of the Spiral model is referred to as a "spiral.“
This combination allows flexibility and adaptation as a project progresses.
Phases of Spiral Model
Phases of Spiral Model
Planning / Requirement Gathering
Risk Analysis
Engineering / Coding / Testing
Evaluation
How Does Spiral Model Work?
Phases of Spiral Model
Phases of Spiral Model
Planning / Requirement Gathering
Risk Analysis
Engineering / Coding / Testing
Evaluation
Planning / Requirement Gathering …
Requirement Gathering, Cost Estimation, Resource Allocation.
Requirements are collected in BRS (Business Requirements Specifications)
and SRS (System Requirement Specifications) documents.
Feasibility study completed, reviews and walkthroughs are conducted in
order to streamline the requirements further.
Planning / Requirement Gathering
System requirements are understood by having a good communication
between the client and system analyst. Doing so helps in estimating the
cost, schedule and resource planning.
Phases of Spiral Model
Planning / Requirement Gathering
Risk Analysis
Engineering / Coding / Testing
Evaluation
Risk Analysis Phase …
Strengths and weaknesses of the project.
Identifies the risk and find alternate solutions or work to minimizes the
risk.
The project manager plans and finalizes the risk mitigation strategy.
In the initial iteration, a prototype would be delivered to the customer.
Customer executes the deployed prototype and provides feedback on the
same.
The Spiral Model
Risk Analysis Phase
Based on the feedback the software development process moves to the
next iteration and implements the points suggested by the customer.
This process continues in the form of iterations like a spiral through out the
lifecycle.
Phases of Spiral Model
Planning / Requirement Gathering
Risk Analysis
Engineering / Coding / Testing
Evaluation
Engineering / Coding / Testing …
Developers will deploy the software on the client’s site to gather feedback.
This phase in the spiral model is totally technical and needs experience and
expertise to tackle any challenge or change.
Engineering / Coding / Testing
This phase starts with designing the leading software by idolizing the
prototyped design from the baseline spiral.
The prototype design will be a guideline for software architecture, logic,
front-end and final design.
Coding, Internal Testing and deployment.
The programs are developed and integrated to form a software or a
prototype.
The product also tested to find any error in coding.
Phases of Spiral Model
Planning / Requirement Gathering
Risk Analysis
Engineering / Coding / Testing
Evaluation
Phases of Spiral Model
Planning / Requirement Gathering
Risk Analysis
Engineering / Coding / Testing
Evaluation
Evaluate (Review And Deployment) …
After the launch of a software project on the client’s site, the client is open
to sharing feedback and insightful observations about the software.
Hence, the testing team from the client side will note down all the
feedback, observations, additions and changes needed in the software or its
functionality. All the correction lists will be sent to the development team,
Again, a new baseline will begin to fix all the bugs, and after fixation of all
requirements, the final product will be ready for final launch.
Evaluate (Review And Deployment) …
After the launch of a software project on the client’s site, the client is open
to sharing feedback and insightful observations about the software.
Hence, the testing team from the client side will note down all the
feedback, observations, additions and changes needed in the software or its
functionality. All the correction lists will be sent to the development team,
Again, a new baseline will begin to fix all the bugs, and after fixation of all
requirements, the final product will be ready for final launch.
Phases of Spiral Model
Planning / Requirement Gathering
Risk Analysis
Engineering / Coding / Testing
Evaluation
When to use Spiral Model?
When to use Spiral Model? …
Risk evolution and cost of the project is important.
Risk is medium to high.
Possible to develop the prototype of the project.
Medium and high-risk projects.
Long-term project commitment required.
When to use Spiral Model?
End-users do not have much idea about their needs.
Requirements are not clear and complex.
New product line.
Significant changes are expected.
Where Spiral Model Used?
Where Spiral Model Used?
Microsoft for start developing newer versions of windows.
Projects where software Gantt chart development required.
Game development projects.
Pros and Cons
Pros of Spiral Model …
Best Model To Handle Risky Projects: It is very common that many
unknown risks arise through a software development process. As the spiral
model can address the rising issues and reduce the impacts of uncertainty,
it is the perfect pick for a risky project.
Good Choice For Large Projects: All the SDLC methods are not suitable
for big projects. But, any large and complex projects can be handled in the
best way using the spiral model.
Pros of Spiral Model …
Flexible With Requirements: The spiral model is adaptable to any
changes or additions at any phase and any time of a software development
journey.
Better Customer Satisfaction: The client can overview during the early
phase of the software development process where the spiral method is
used. It helps to create the best customer-friendly software before
launching the final stage.
Pros of Spiral Model …
Iterative and incremental approach: The spiral model follows a
sequential combination of repetitive and incremental models in software
development. It creates the opportunity to make corrections and be more
efficient during software development.
Open to receiving any feedback: The spiral model appreciates regular
evaluation of a software project. So, there is a big opportunity to improve
the software during the development process.
Pros of Spiral Model
Better quality: You will get an improved quality outcome because of the
multiple repetitions for every development phase in the whole software
development life cycle.
Cons of Spiral Model …
Complexity: The spiral model for software development is comparatively
more complex than other SDLC methods.
Expensive: The spiral method requires more budget than other SDLC
methods. So, in normal cases, it is not suitable for small or medium size
software projects.
Too much dependency on experts: The spiral method is expert-
dependent. How much the project will be successful depends on the risk
analysis and experience of the expert developers.
Cons of Spiral Model …
Poor time management: Spiral models have an unknown number of
phases; therefore, it is complicated to track the software project deadline.
Follows multiple iterations: As the spiral method involves multiple
repetitions, many developers consider this an irritating process.
Time-consuming: Spiral methodology goes through multiple recurrences,
feedback and changes during the development process. So, it becomes a
time-consuming process to finish the software project.
Cons of Spiral Model
Require Intensive Investment: Spiral method handles threat-oriented
software projects and hence requires a significant amount of investment in
planning, risk analysis and evaluation.
The Spiral Model for software development addresses the inherent
uncertainties and complexities of modern software projects.
Its cyclic nature, combining planning, design, implementation and testing,
allows for continuous refinement and adaptation to changing requirements and
risks.
This software development life cycle (SDLC) method encourages
transparency, collaboration and the delivery of high-quality software products.
Though it is one of the best SDLC methods, it is not suitable for every
project.
Yet, for the project where uncertainty and evolving requirements are
needed, you can use the spiral model without any doubt.
Module 2: Software Development Life Cycle (SDLC) Models
Process Models
1. Waterfall
2. V-Shape Model
3. Prototype Model (Throw Away Model)
4. Spiral Model
5. Incremental Model
6. Iterative Model
7. Evolutionary Model (Incremental + Iterative)
8. RAD (Rapid Application Development) Model
9. Agile Model (SCRUM)