SOFTWARE DEVELOPMENT LIFE CYCLE
(SDLC)
Introduction to SDLC
SDLC: Software Development Life
Cycle is a combination of various stages when developing
a new software from start to finish. SDLC
is a systematic procedure of developing any application or software from
beginning to end. SDLC consists of a detailed plan which explains how to plan, build, and maintain specific software. Every phase of the SDLC life cycle has its own process and deliverables that feed into the next phase. It is a process which is used by different organizations to
check whether the development process of an application is going on in a proper
manner or not. It is a combination of different phases. These phases are as
following :
Phases of SDLC
1. Planning & Requirement
gathering :
“What are the current problems?”
This is the first and the most important stage in the SDLC process. A phase where Client share their requirement about the application. This stage gives a clearer picture of the scope of entire project
and the anticipated issues, opportunities, and directives which
triggered the project. Business requirements are gathered in this phase. Business analyst and Project Manager set up a meeting with the customer
to gather all the information like what the customer wants to build, who
will be the end-user, what is the purpose of the product. Before
building a product a core understanding or knowledge of the product is
very important.
The objective of this phase is to ensure that there is a somewhat reasonable expectation that a reliable, effective solution can be built on time and within cost to meet the customer request.
Finally a Requirement Specification document is created which serves
the purpose of guideline for the next phase of the model. The testing
team follows the Software Testing Life Cycle and starts the Test Planning phase after the requirements analysis is completed.
2. Analysis & Feasibility Study:
“What do we want?”
The best possible way to
do work . Once the requirement analysis phase is completed the next step is to define and document software needs. This process conducted with the help of 'Software Requirement Specification' document also known as 'SRS' document. It is a joint work done by group of people. Here they discuss about
the Software and Hardware which supports the application with their platforms . This phase converts the client/user language into Technical Language.
3. Designing:
“How will we get what we want?”
This phase of the SDLC starts by turning the software specifications into a design plan called the Design Specification. In this phase the testers comes up with the Test strategy, where they mention what to test, how to test. This design phase serves as input for the next phase of the model.
There are two kinds of design documents developed in this phase:
1. High Level Design (HLD): It describes the
Architecture of an application’s module look and how each and every module
communicated with each other. It describes each module into brief. Exactly like
what back-end and front-end to be used. What language is used for both front
& back-end .
- Brief description and name of each module
- An outline about the functionality of every module
- Interface relationship and dependencies between modules
- Database tables identified along with their key elements
- Complete architecture diagrams along with technology details
It
is developed by Tech. Architect, Professional Architect or Tech. Managers who
have 10+ years of experience.
2. Low Level Design (LLD): This is more emphasized
on format and appearance. It describes each module in details.
- Functional logic of the modules
- Database tables, which include type and size
- Complete detail of the interface
- Addresses all types of dependency issues
- Listing of error messages
- Complete input and outputs for every module
It is done by
Senior Developers, Senior Software Engineer who has min . of 4+ years of
experience.
(HLD is a Macro Level Design
where LLD is Micro Level Design)
4. Development / Coding:
“Let’s create what we want.”
This is the stage where the actual development starts. Based on the
requirement, developers generate Pseudo Code against LLD in machine readable
form.
In this stage, developers test for defects and deficiencies, they fix those issues until the product meets the original specifications.
5. Integration & Testing:
“Did we get what we want?”
To ensure that the
application is working as per client/user requirement specifications. Testing
team checks whatever the Pseudo Code, is accessible or not and also to ensure that the application developed by developers is working correctly or not. If
testing team finds the Defect, they communicate with the development team and then developer modifies the code as per the requirement. This process is repeated till the source code is defect free or it matches the
requirement.
The testing has to be done methodically using a defined process and variety of tests have to be conducted on the software to see that the software meets the requirements specifications.
6. Implementation:
“Let’s start using what we got.”
Software/ Application
installed at client’s premises, after development gets over. At this stage, the goal is to deploy the software to the production environment so users can start using the product.
7. Maintenance:
“Let’s get this closer to what we want.”
Services provided to
client/user after the delivery of software/application. The plan almost never turns out perfect when it meets reality. Further,
as conditions in the real world change, we need to update and advance
the software to match.