Software Development Life Cycle (SDLC) is a process used to design and develop a high-quality software. The SDLC consists of seven phases which depict various stages/phases of the development process. In this post we will try to understand What is it, its importance, various phases and how they works.
Table of Contents
- 1 What is Software Development Life Cycle (SDLC)
- 2 Importance of Software Development Life Cycle (SDLC)
- 3 Software Development Life Cycle (SDLC) Phases
What is Software Development Life Cycle (SDLC)
SDLC is the abbreviation used for Software Development Life Cycle. It is also Known as Software Development Process.
SDLC is a description of phases in the life cycle of a software application. It consists of a detailed plan as how to develop, build and enhance a specific software. Each phase of the SDLC lifecycle has its own process and deliverables that feed into the next phase.
Importance of Software Development Life Cycle (SDLC)
- It acts as a guide to the project and meet client’s objectives.
- It helps in evaluating, scheduling and estimating deliverables.
- It provides a framework for a standard set of activities.
- It ensures correct and timely delivery to the client.
Software Development Life Cycle (SDLC) Phases
Various phases of Software Development Life Cycle (SDLC) are:
- Requirement Analysis
- Feasibility Study
Fig. 1 – Software Development Life Cycle (SDLC) Phases
SDLC Phase 1- Requirement Analysis
It is the most important phase in Software Development Life Cycle (SDLC) in which all the information is gathered from customers, users and other stakeholders.
This phase gives the clear picture of the scope of the project and all the minute details (Planning, risk factors) are collected in this phase which helps to finalize the timeline boundary of the project.
Fig. 2 – Software Development Life Cycle (SDLC) Requirement Analysis Phase
SDLC Phase 2 – Feasibility Study
After the requirement phase is completed the next phase is to examine the feasibility of the system. The main aim of feasibility study is to how to achieve the scope.
In this phase a Software Requirement Specification (SRS) document is made that includes everything which should be designed and developed during the project life cycle.
The various types of feasibility Checks are:
- Economic Feasibility – Whether the project can be completed within the budget.
- Operational Feasibility – Whether the problem can be solved with the existing and proposed system in the user’s environment.
- Organizational Feasibility – Can the project be handled consistently with the company policies/objectives.
- Technical Feasibility – Can the problem be solved with the present computer system and the resources available.
- Schedule Feasibility – Whether the project can be completed within the given timeframe or not.
Fig. 3 – Feasibility Study SDLC Phase 2
SDLC Phase 3 – Design
SRS (Software Requirement Specification) is the reference document used in this phase for the product to be developed. System and software design documents are prepared as per the specification document.
Two kinds of design documents are prepared in this phase:
- High-Level Design (HLD)
- Low- Level Design (LLD)
Fig. 4 – SDLC Design Phase
High-level Design is the overall system design, covering the details at macro level.
Other key aspects in it include:
- List of modules and brief description of each module.
- Brief functionality of each module.
- Database tables identified with their key elements.
- Complete architectural diagrams (data flow, flowcharts, and data structures) with technology details.
Low-Level Design is like detailing the HLD, a micro level design document.
Other key aspects in it include:
- Detailed functional logic of module.
- Database tables with their type and size.
- All interface details.
- Listing of error messages.
- Complete input and outputs for a module.
SDLC Phase 4 – Coding
After the design phase is over, the coding phase starts. It is the longest phase of the software development life cycle.
In this phase, tasks are divided into the units or modules and it is assigned to the developer. And developers start building/writing the code as per the chosen programming language.
Developers also write unit test cases for each component to test the new code which they have written and review each other’s code, builds and deploy software to an environment.
SDLC Phase 5- Testing
After the unit testing is completed by the developer and the software is complete, it is deployed in the testing environment. The testing team then checks the functionality of the system as per the design documents shared with them.
During this testing phase, QA and testing team may find some bugs/defects which they communicate to developers. The development team fixes the bugs and send it back to QA with the updated design document, if needed to re-test.
This process continues till the software tested is defects-free, stable and working according to the business needs of the system.
Fig. 5 – SDLC Testing Phase
SDLC Phase 6 – Installation/deployment
The main phase of deployment stage is to put the solution in the production environment. Sometimes product deployment happens in stages as per the business strategy of the company.
The product must be tested in a real environment (User Acceptance Testing). The product first must be deployed in the staging environment and check for any deployment issues, and if there are no issues then the code should be deployed to production environment for client feedback.
SDLC Phase 7- Maintenance
The users start using the developed system, once the system is deployed. In this phase, some issues are discovered and it is important to resolve them to ensure smooth functioning of the software.
Bug fixing (if any), Upgradation and Enhancement of some new features are done in the maintenance phase.
NEXT: SOFTWARE DEVELOPMENT MODELS
Author: Nidhi Sethi, MCA
Also Read: Barcode Number System – Types, Structure, How it works, Application, Advantage & Disadvantage Thyristor – Working, VI Characteristics, Types, Applications, Advantage & Disadvantage Embedded System – Characteristics, Types, Advantages & Disadvantages Big Data – Categories, Attributes, Applications & Hadoop