What Is The Software Development Life Cycle?
What Is The Software Development Life Cycle?
The systems development life cycle (SDLC), also referred to as the application development
life-cycle, is a term used in systems engineering, information systems and software engineering
to describe a process for planning, creating, testing, and deploying an information system.
SDLC Models
There are various software development life cycle models defined and
designed 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
ensure 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
Application Development and Prototyping Models.
System Design: The requirement specifications from first phase are studied in
this phase and system design is prepared. System Design helps in specifying
hardware and system requirements and also helps in defining overall system
architecture.
Integration and Testing: All the units developed in the implementation phase
are integrated into a system after testing of each unit. Post integration the
entire system is tested for any faults and failures.
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.
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.
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 defined 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.
Resources with needed skill set are not available and are planned to be used on
contract basis for specific iterations.
There are some high risk features and goals which may change in the future.
Design:Design phase starts with the conceptual design in the baseline spiral
and involves architectural design, logical design of modules, physical product
design and final design in the subsequent spirals.
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.
V Model
The V - model is SDLC model where execution of processes happens in a
sequential manner in V-shape. It is also known as Verification and
Validation model.
Usually this model is followed for small projects where the development
teams are very small.
Agile Model
Here is a graphical illustration of the Agile Model:
Agile thought process had started early in the 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.
RAD Model
Following image illustrates the RAD Model:
It should be used only if the budget permits use of automated code generating
tools.
RAD SDLC model should be chosen only if domain experts are available with
relevant business knowledge.
Should be used where the requirements change during the course of the project
and working prototypes are to be presented to customer in small iterations of 2-
3 months.
Software Prototyping
The Software Prototyping refers to building software application prototypes
which display the functionality of the product under development but may
not actually hold the exact logic of the original software.
Revise and enhance the Prototype: The feedback and the review comments
are discussed during this stage and some negotiations happen with the
customer based on factors like , time and budget constraints and technical
feasibility of actual implementation. The changes accepted are again
incorporated in the new Prototype developed and the cycle repeats until
customer expectations are met.
Summary
This was about the various SDLC models available and the scenarios in
which these SDLC models are used. The information in this tutorial will help
the project managers decide what SDLC model would be suitable for their
project and it would also help the developers and testers understand basics
of the development model being used for their project.
We have discussed all the popular SDLC models in the industry, both
traditional and Modern. This tutorial also gives you an insight into the pros
and cons and the practical applications of the SDLC models discussed.
Waterfall and V model are traditional SDLC models and are of sequential
type. Sequential means that the next phase can start only after the
completion of first phase. Such models are suitable for projects with very
clear product requirements and where the requirements will not change
dynamically during the course of project completion.
The Useful Resources section lists some suggested books and online
resources to gain further understanding of the SDLC concepts.