What Is SDLC?
What Is SDLC?
What Is SDLC?
dustry to design, develop and test high quality softwares. The SDLC aims
to produce a high quality software that meets or exceeds customer expec-
tations, reaches completion within times and cost estimates.
The software development life cycle (SDLC) is a framework defining tasks per-
formed at each step in the software development process.
What is SDLC?
SDLC is a process followed for a software project, within a software organ-
ization. It consists of a detailed plan describing how to develop, maintain,
replace and alter or enhance specific software. The life cycle defines a
methodology for improving the quality of software and the overall devel-
opment process.
This DDS is reviewed by all the important stakeholders and based on var-
ious parameters as risk assessment, product robustness, design modular-
ity, budget and time constraints , the best design approach is selected for
the product.
A design approach clearly defines all the architectural modules of the prod-
uct along with its communication and data flow representation with the
external and third party modules (if any). The internal design of all the
modules of the proposed architecture should be clearly defined with the
minutest of the details in DDS.
Stage 4: Building or Developing the Product
In this stage of SDLC the actual development starts and the product is
built. The programming code is generated as per DDS during this stage. If
the design is performed in a detailed and organized manner, code gener-
ation can be accomplished without much hassle.
SDLC Models
There are various software development life cycle models defined and de-
signed which are followed during software development process. These
models are also referred as "Software Development Process Models". Each
process model follows a Series of steps unique to its type, in order to en-
sure success in process of software development.
Following are the most important and popular SDLC models followed in the
industry:
Waterfall Model
Iterative Model
Spiral Model
V-Model
The other related methodologies are Agile Model, RAD Model, Rapid Appli-
cation Development and Prototyping Models.
The Waterfall Model was first Process Model to be introduced. It is also referred to as a lin-
ear-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.
Waterfall model is the earliest SDLC approach that was used for software development .
The waterfall Model illustrates the software development process in a linear sequential flow;
hence it is also referred to as a linear-sequential life cycle model. This means that any phase
in the development process begins only if the previous phase is complete. In waterfall model
phases do not overlap.
All these phases are cascaded to each other in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases. The next phase is started only after the de-
fined set of goals are achieved for previous phase and it is signed off, so the name "Waterfall
Model". In this model phases do not overlap.
The advantage of waterfall development is that it allows for departmentalization and control.
A schedule can be set with deadlines for each stage of development and a product can pro-
ceed through the development process model phases one by one.
Development moves from concept, through design, implementation, testing, installation, trou-
bleshooting, and ends up at operation and maintenance. Each phase of development proceeds
in strict order.
Disadvantage
The disadvantage of waterfall development is that it does not allow for much reflection or re-
vision. Once an application is in the testing stage, it is very difficult to go back and change
something that was not well-documented or thought upon in the concept stage.
The following table lists out the pros and cons of Waterfall model:
Pros Cons
In Iterative model, iterative process starts with a simple implementation of a small set of the
software requirements and iteratively enhances the evolving versions until the complete sys-
tem is implemented and ready to be deployed.
An iterative life cycle model does not attempt to start with a full specification of require-
ments. Instead, development begins by specifying and implementing just part of the software,
which is then reviewed in order to identify further requirements. This process is then re-
peated, producing a new version of the software at the end of each iteration of the model.
The key to successful use of an iterative software development lifecycle is rigorous validation
of requirements, and verification & testing of each version of the software against those re-
quirements within each cycle of the model. As the software evolves through successive cy-
cles, tests have to be repeated and extended to verify each version of the software.
The disadvantage with this SDLC model is that it is applicable only to large and bulky soft-
ware development projects. This is because it is hard to break a small software system into
further small serviceable increments/modules.
The following table lists out the pros and cons of Iterative and Incremental SDLC Model:
Pros Cons
The spiral model combines the idea of iterative development with the systematic, controlled
aspects of the waterfall model.
Spiral model is a combination of iterative development process model and sequential linear
development model i.e. waterfall model with very high emphasis on risk analysis.
It allows for incremental releases of the product, or incremental refinement through each iter-
ation around the spiral.
Identification:This phase starts with gathering the business requirements in the base-
line spiral. In the subsequent spirals as the product matures, identification of system
requirements, subsystem requirements and unit requirements are all done in this
phase.
Then in the subsequent spirals with higher clarity on requirements and design details a
working model of the software called build is produced with a version number. These
builds are sent to customer for feedback.
Based on the customer evaluation, software development process enters into the next iteration
and subsequently follows the linear approach to implement the feedback suggested by the
customer. The process of iterations along the spiral continues throughout the life of the soft-
ware.
This method is consistent with approaches that have multiple software builds and releases
and allows for making an orderly transition to a maintenance activity. Another positive aspect
is that the spiral model forces early user involvement in the system development effort.
On the other side, it takes very strict management to complete such products and there is a
risk of running the spiral in indefinite loop. So the discipline of change and the extent of tak-
ing change requests is very important to develop and deploy the product successfully.
The following table lists out the pros and cons of Spiral SDLC Model:
Pros Cons