Development Life Cycle, SDLC for short, is a well-defined, structured sequence
of stages in software engineering to develop the intended software product.
provides a series of steps to be followed to design and develop a software
product efficiently. SDLC framework includes the following steps:
This is the first step where the user initiates the request for a
desired software product. He contacts the service provider and tries to
negotiate the terms. He submits his request to the service providing
organization in writing.
This step onwards the software development team works to carry on
the project. The team holds discussions with various stakeholders from problem
domain and tries to bring out as much information as possible on their
requirements. The requirements are contemplated and segregated into user
requirements, system requirements and functional requirements. The requirements
are collected using a number of practices as given -
the existing or obsolete system and software,
interviews of users and developers,
to the database or
answers from the questionnaires.
After requirement gathering, the team comes up with a rough plan
of software process. At this step the team analyzes if a software can be made
to fulfill all requirements of the user and if there is any possibility of
software being no more useful. It is found out, if the project is financially,
practically and technologically feasible for the organization to take up. There
are many algorithms available, which help the developers to conclude the
feasibility of a software project.
At this step the developers decide a roadmap of their plan and try
to bring up the best software model suitable for the project. System analysis
includes Understanding of software product limitations, learning system related
problems or changes to be done in existing systems beforehand, identifying and
addressing the impact of project on organization and personnel etc. The project
team analyzes the scope of the project and plans the schedule and resources
Next step is to bring down whole knowledge of requirements and
analysis on the desk and design the software product. The inputs from users and
information gathered in requirement gathering phase are the inputs of this
step. The output of this step comes in the form of two designs; logical design
and physical design. Engineers produce meta-data and data dictionaries, logical
diagrams, data-flow diagrams and in some cases pseudo codes.
This step is also known as programming phase. The implementation
of software design starts in terms of writing program code in the suitable
programming language and developing error-free executable programs efficiently.
An estimate says that 50% of whole software development process
should be tested. Errors may ruin the software from critical level to its own
removal. Software testing is done while coding by the developers and thorough
testing is conducted by testing experts at various levels of code such as
module testing, program testing, product testing, in-house testing and testing
the product at user’s end. Early discovery of errors and their remedy is the
key to reliable software.
Software may need to be integrated with the libraries, databases
and other program(s). This stage of SDLC is involved in the integration of
software with outer world entities.
This means installing the software on user machines. At times, software
needs post-installation configurations at user end. Software is tested for
portability and adaptability and integration related issues are solved during
Operation and Maintenance
This phase confirms the software operation in terms of more
efficiency and less errors. If required, the users are trained on, or aided
with the documentation on how to operate the software and how to keep the
software operational. The software is maintained timely by updating the code
according to the changes taking place in user end environment or technology.
This phase may face challenges from hidden bugs and real-world unidentified
As time elapses, the software may decline on the performance
front. It may go completely obsolete or may need intense up gradation. Hence a
pressing need to eliminate a major portion of the system arises. This phase
includes archiving data and required software components, closing down the
system, planning disposition activity and terminating system at appropriate