Software Development Life Cycle

Software Development Life Cycle (SDLC) is a process followed in a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. It defines a methodology for improving the quality of software and the overall development process.

  • SDLC is a process used by IT analysts in order to develop or redesign high quality software system, which meets both the customer and the real-world requirement.

  • It takes into consideration all the associated aspects of software testing, analysis and post-process maintenance.

The important phases of SDLC are depicted in the following illustration −


Planning Stage

Every activity must start with a plan. Failing to plan is planning to fail. The degree of planning differs from one model to another, but it's very important to have a clear understanding of what we are going to build by creating the system's specifications.

Defining Stage

In this phase, we analyze and define the system's structure. We define the architecture, the components, and how these components fit together to produce a working system.

Designing Stage

In system design, the design functions and operations are described in detail, including screen layouts, business rules, process diagrams and other documentation. The output of this stage will describe the new system as a collection of modules or subsystems.

Building Stage

This is the development phase. We start code generation based on the system's design using compilers, interpreters, debuggers to bring the system to life.


Implementation is a part of the Building Stage. In this phase, we start code generation based on the system's design using compilers, interpreters, debuggers to bring the system to life.

Testing Stage

As different parts of the system are completed; they are put through a series of tests. it is tested against the requirements to make sure that the product is actually solving the needs addressed during the requirement phase.

  • Test plans and test cases are used to identify bugs and to ensure that the system is working according to the specifications.

  • In this phase, different types of testing like unit testing, manual testing, acceptance testing and system testing is done.

Defect Tracking in Testing

Software test reports are used to communicate the results of the executed test plans. This being the case, a report should contain all test information that pertains to the current system being tested. The completeness of reports will be verified in walkthrough sessions.

Testing for a project seeks to accomplish two main goals −

  • Detect failures and defects in the system.

  • Detect inconsistency between requirements and implementation.

The following flowchart depicts the Defect Tracking Process

Defect Tracking

To achieve the main goals, the testing strategy for the proposed system will usually consist of four testing levels.

These are unit testing, integration testing, acceptance testing, and regression testing. The following subsections outline these testing levels, which development team roles are responsible for developing and executing them, and criteria for determining their completeness.


After the test phase ends, the system is released and enters the production environment. Once the product is tested and ready to be deployed it is released formally in the appropriate market. Sometime product deployment happens in stages as per the organization’s business strategy.

The product may first be released in a limited segment and tested in the real business environment (UAT- User acceptance testing). Then based on the feedback, the product may be released as it is or with suggested enhancements in the targeting market segment.

Post SDLC Process

After the product is released in the market, its maintenance is done for the existing customer base.

Once in the production environment, the system will suffer modifications because of undetected bugs or other unexpected events. The system is evaluated and the cycle is repeated for maintaining the system.

Role of Business Analyst during SDLC Process

As we can see the below diagram, BA is involved in driving business requirement and converting them to solution requirements.

He is involved in translating the solution features into software requirements. Then leads in analysis and designing phase, dictates in code development, then follows the testing phase during bug fixing as a change agent in the project team and ultimately fulfills the customer requirements.

SDLC Process