Software Development Life Cycle: Basics
SDLC also known as Classic development life cycle is a process by which we define the stages of software development right from its beginning to its maintenance to its sun set. Let’s see what these are.
There are basically seven stages of a Software development life cycle:
- Preliminary Investigation: At this stage the needs of the new system are identified. Detailed information about the system and the customer requirements are collected. This is done by business analysts as they are the ones who understand customer’s business hence can elicit their exact requirements and propose a solution for the same. These requirements are then organised and documented in the form of Business Requirement Specification document or BRS. This document contains all the specifications and system requirements.
- Feasibility Study: At this stage business and development team together study the requirement and discuss the conclusion about feasibility of the requirements and the proposed solution. If anything in the requirement list seems not to be feasible then the investigation and negotiation with the customer is done again and eventually a point of feasibility is reached.
- Analysis: At this state proper analysis of the requirement is done. This phase has an entry criterion i.e. the BRS. With the study of BRS, each specification of the software is determined. This also includes recognizing of required resources and dependencies of the software that is to be developed. The Exit criteria of the Phase is SRS i.e. Software Requirement Specification.
- Design: This is where actual design of the software is created. Basically this is driven by the team lead, Architects and technical experts. Here they make the flow diagrams, logic of each functionality, ER diagrams etc. The output of this phase is HLD and LLD.HLD is High level design-This contains the high level flow of a software. This describes how each function would interact with another. The overall high level logic of the system is defined. For Example: Login to the System then takes the user to the Home page.LLD is Low level design-This contains the low level design and logic of each functionality. What and how each unit should perform and implemented are defined here.The Entry criteria of this stage is SRS and the exit criteria is Detailed Design Document.
- Coding Phase: Based on the detailed design document each module is coded and finally integrated to make a meaningful system. This stage also includes the unit testing and white box testing. This stage consumes the major chunk of development time and also leads to the infusion of defects in a system.The entry criteria of this phase is Detailed Design Document and the exit criteria is software in execution.
- Testing: Actual testing with the intent of finding defects starts from here. This stage includes both black box as well as white box testing. Testers do the system testing and systems integration testing. If any defect is found it is logged against its owner which is a developer of the module or system.
- Maintenance: In maintenance phase, any required changes to the system are made. This also includes the enhancements to be made in the system. Business analyst checks the software against the pre defined standards.