Software Development Life Cycle (SDLC) and its Phases
Software Development Life Cycle(SDLC) and its Phases: SDLC is the short form of software development life cycle. Also referred to as Systems development life cycle. It is peculiar to software development.
SDLC describes various phases that need to be followed in prescribed format for development of a software product.
Development of every software starts with a request by a customer. It is then the responsibility of the developer to identify all the necessary stages and fulfill determined specifications of the software. SDLC is a detailed plan which prescribes various identifiable stages. Each stage performs certain activities and provides deliverables in a documented format to its succeeding stage.
The succeeding stage uses these deliverables as input and generates the results. This process continues until the software is developed successfully and delivered to the customer. In this article, we will discuss various Phases of Software Development Life Cycle.
Also See: Software Engineering Tutorials
Software Development Life Cycle(SDLC) and its Phases
Various phases that need to be followed by a software development life cycle are
1. Feasibility study
It is the first stage of software development life cycle and also very important. At this stage, developer performs research to determine whether the software product is technically and financially feasible.
The feasibility study stage analyses the functions which need to be performed by the software and formulate various strategies to implement those functions. Very high-level decisions are made at this stage regarding the evolution of software.
2. Requirement analysis and specification
The main aim of requirement analysis and specification stage is to recognize exact requirements of the customer which are then recorded properly. Initially, all the requirements regarding software are gathered properly and then each requirement is analyzed according to the need. Any inappropriate requirement is later on cancelled. Each of these requirements is then recorded into an SRS (Software Requirements Specification) document.
SRS document is written in a format which is understandable by the customer. The process of software development does not proceed further until this SRS document is approved by the customer.
Also See: Importance Of Software Engineering
Design phase makes a blueprint of the software which is based on the requirements specified in the SRS document. First of all, the programmer decides which design approach he wants to follow. Two distinct approaches are used at present. One is “traditional design” approach and the other is “object-oriented” approach.
The traditional design uses flow-oriented architecture. DFD’s (Data flow diagrams) are drawn to understand the functionality of the software. Object-Oriented design approach focuses on real world modeling of objects. It takes real-world entities as objects, identifies the problem domain of every object and formulates the solution of identified problems. After defining the architecture of software, the programmer also determines programming language which is suitable to implement this software architecture.
In the implementation phase, programmer actually develops source codes of the software. Formulation of source codes is based on the blueprint or software architecture designed in the previous phase. The implementation phase is also called “Coding” phase. Each component in the design phase in implemented as a separate module in this phase. It gives a clear view of software development process to the programmer. After writing source code, each programming module is also tested separately to detect errors and to debug them. The procedure of testing each module separately is called ‘unit testing’. Unit testing is performed to determine that every module is working properly.
Actual testing is done at this stage of development process. Various forms of testing are done at this phase to determine smooth working of software in every possible condition. Some famous classes of testing are; integration testing, system testing, α-testing, β-testing and acceptance testing. Integration of various modules of a software is never done immediately. It is done in various incremental steps. Initially, two different software modules are combined to form a partially integrated system which is then tested. This class of testing is called “integration testing”. At each integration step, resultant system is tested to debug errors. Finally, when all the modules are integrated, the resultant system turns out to be a complete software. Testing of complete software or system is called “system testing”.
α-testing and β-testing procedures are performed after integration testing and system testing. In “α-testing”, development team performs complete testing of the software. In “β-testing”, system testing is performed by actual users and feedback is taken from these users on a regular basis about working of the software. When system testing is performed by the customer himself after the product delivery, it is known as “acceptance testing”. He can reject the project if the software does not turn out to be compelling to him.
Customer is provided with a maintenance service during this phase if the software reports any bug. A software may report any type of bug when it is actually used in day-to-day life. According to a research, maintenance phase requires much more effort than the effort required to develop the software. The proportion of maintenance effort depends on the size of software. A system software like the operating system will definitely demand more maintenance effort than an application software.
So it was all about Software Development Life Cycle(SDLC) and its phases. If you have any doubts then please comment below.