Module 2 - SDLC - Part 2
Module 2 - SDLC - Part 2
SDLC Models
Popular SDLC Models:
SDLC Models can have a different methodology but the phases remain the
same. The development team chooses the best SDLC model to develop a
software product so that the efficient and reliable software product is developed.
By using SDLC models, you can develop a software product in a systematic
and nice way.
Each model follows a series of steps, unique to its type in order to ensure
success in process of software
SDLC Models
I)Waterfall Model:
The Waterfall Model was the first Process Model
to be introduced. It is also referred to as a linear
sequential life cycle model. It is very simple to
understand and use. In a waterfall model, each
phase must be completed before the next phase
can begin and there is no overlapping in the
phases.
In this Waterfall model, typically, the outcome of
one phase acts as the input for the next phase
sequentially.
Page 1
The sequential phases in Waterfall model are
1. Requirement Gathering and analysis − All possible requirements of the
system to be developed are captured in this phase and documented in a
requirement specification document.
2. System Design − The requirement specifications from first phase are studied
in this phase and the system design is prepared. This system design helps in
specifying hardware and system requirements and helps in defining the overall
system architecture.
3. Implementation − With inputs from the system design, the system is first
developed in small programs called units, which are integrated in the next phase.
Each unit is developed and tested for its functionality, which is referred to as Unit
Testing.
4. Integration and Testing − All the units developed in the implementation phase
are integrated into a system after testing of each unit.
5. Deployment of system − Once the functional and non-functional testing is
done; the product is deployed in the customer environment or released into the
market.
6. Maintenance − There are some issues which come up in the client
environment. To fix those issues, patches are released. Also to enhance the
product some better versions are released. Maintenance is done to deliver these
changes in the customer environment.
II) V-Model
V Model is a highly disciplined SDLC model in which there is a testing phase
parallel to each development phase. The V model is an extension of the
waterfall model in which testing is done on each stage parallel with
development in a sequential way.
The V-model is an SDLC model where the execution of processes happens in
a sequential manner in a V-shape. It is also known as the Verification and
Validation model.
Page 3
V- Model Application:
V- Model application is almost the same as the waterfall model, as both the
models are of sequential type. Requirements have to be very clear before the
project starts because it is usually expensive to go back and make changes. This
model is used in the medical development field, as it is strictly a disciplined
domain.
The following pointers are some of the most suitable scenarios to use the V-
Model application:
Requirements are well defined, clearly documented and fixed.
Product definition is stable.
Technology is not dynamic and is well understood by the project team.
There are no ambiguous or undefined requirements.
The project is short.
V-Model – Advantages:
This is a highly disciplined model and Phases are completed one at a time.
Works well for smaller projects where requirements are very well understood.
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.
V-Model – Disadvantages:
High risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high
risk of changing.
Once an application is in the testing stage, it is difficult to go back and change
functionality.
No working software is produced until late during the life cycle.
Page 4
III) Spiral Model:
Spiral model is one of the most important Software Development Life Cycle
models, which provides support for Risk Handling.
In its diagrammatic representation, it looks like a spiral with many loops. The
exact number of loops of the spiral is unknown and can vary from project to
project. Each loop of the spiral is called a Phase of the software development
process.
The exact number of phases needed to develop the product can be varied by
the project manager depending upon the project risks.
As the project manager dynamically determines the number of phases, so the
project manager has an important role to develop a product using the spiral
model.
Spiral Model-Advantages:
Risk Handling: The projects with many unknown risks that occur as the
development proceeds, in that case, Spiral Model is the best development model
to follow due to the risk analysis and risk handling at every phase.
Good for large projects: It is recommended to use the Spiral Model in large and
complex projects.
Flexibility in Requirements: Change requests in the Requirements at later
phase can be incorporated accurately by using this model.
Page 5
Customer Satisfaction: Customers can see the development of the product at
the early phase of the software development and thus, they habituated with the
system by using it before completion of the total product.
Page 6
At the end of the iteration, a working product is displayed to the customer
and important stakeholders.
Agile model believes that every project needs to be handled differently and
the existing methods need to be tailored to best suit the project requirements.
In Agile, the tasks are divided to time boxes (small time frames) to deliver
specific features for a release.
Iterative approach is taken and working software build is delivered after each
iteration. Each build is incremental in terms of features; the final build holds
all the features required by the customer. The Agile thought process had
started early in software development and started becoming popular with time
due to its flexibility and adaptability.
The most popular Agile methods include Rational Unified Process (1994),
Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive
Software Development, Feature Driven Development, and Dynamic Systems
Development Method (DSDM) (1995). These are now collectively referred to
as Agile Methodologies, after the Agile Manifesto was published in 2001.
Agile Model-Advantages:
Is a very realistic approach to software development.
Resource requirements are minimum.
Suitable for fixed or changing requirements
Delivers early partial working solutions.
Good model for environments that change steadily.
Minimal rules, documentation easily employed.
Little planning required.
Easy to manage.
Agile Model-Disadvantages:
Strict delivery management dictates the scope, functionality to be delivered,
and adjustments to meet the deadlines.
Depends heavily on customer interaction, so if customer is not clear, team
can be driven in the wrong direction.
Transfer of technology to new team members may be quite challenging due to
lack of documentation.
Page 7
V) RAD Model:
RAD Model or Rapid Application
Development model is a software
development process based on
prototyping without any specific planning.
In the RAD model, there is less attention
paid to the planning and more priority is
given to the development tasks. It targets
at developing software in a short span of
time.
SDLC RAD modeling has following
phases:
- Business Modeling
- Data Modeling
- Process Modeling
- Application Generation
- Testing and Turnover
RAD Model-Advantages:
Flexible and adaptable to changes
It is useful when you have to reduce the overall project risk
Due to code generators and code reuse, there is a reduction of manual coding
Due to prototyping in nature, there is a possibility of lesser defects
With less people, productivity can be increased in short time
RAD Model-Disadvantages:
It can't be used for smaller projects
Not all application is compatible with RAD
When technical risk is high, it is not suitable
If developers are not committed to delivering software on time, RAD projects
can fail
Requires highly skilled designers or developers
Page 8