Depending upon the size, complexity and the quality standards, the SDLC is divided into a number of stages each of which contribute to the software development process in one way or the other. The six main stages of a generalized SDLC are:
Requirement Analysis/Planning: The requirement analysis stage includes creating a blueprint that decides the order in which the various big and small activities will take place throughout the SDLC. The main steps taken during the planning phase are as follows:
- Checking the economic, operational, legal, political, human factors and technical feasibility of the software project.
- Setting reasonable time, cost and resource constraints within which the software has to be developed.
- Assessing Quality Assurance requirements.
- Risk Analysis.
- Market and end-user requirement analysis.
- Creation of SRS (Software Requirement Specification) document that contains a handy gist of the entire requirement analysis phase for quick reference.
Design: With reference to the final SRS, a well-organized DDS (Design Document Specification) document is created that breaks down the entire project into feasible modules with sufficient attention to internal and external details.
In addition to this, certain process diagrams, screen layouts, pseudocode and business rule documents are also created for assisting the teams engaged in the design phase for optimizing the software development process.
The DDS is accompanied with the data flow and communication representations of the software with the third party and external modules for clarifying the suggested software design. Finally, the DDS is reviewed by the concerned authorities and the best suited design approach is adopted that conforms to the specified parameters of time, budget, risk assessment, design modularity and product robustness.
Development: Coding commences from this phase only according to the DDS specifications. The efficiency and the speed of code creation for different software modules largely depend upon the quality of DDS.
The IDE (Integrated Development Environment), debuggers, compilers, programming and scripting languages being selected for the software development depends upon the organisation guidelines and the nature as well as utility of the software. The main stages involved in development phase are:
- User Interface Design
- Technical Design
- Code Development
Testing: Testing process may or may not be the part of every single SDLC phase, depending upon the project requirement.
However, within the SDLC model, the testing phase takes place after the development phase to fix the reported bugs and errors till it adheres to the quality standards as specified in the SRS documentation. The testing phase is divided into a series of steps that deals with the testing of different facets of the system as mentioned below:
- Defect testing (including defect tracking)
- Path testing
- Data set testing
- Unit testing
- System testing
- Integration testing
- Black-box testing
- White-box testing
- Regression testing
- Automation testing
- User acceptance testing
- Software performance testing
- Deployment: Usually the software is released only after its formal completion but sometimes a beta- release of the product may also be released if the business strategy of the concerned organisation triggers it. In case of beta-release, the software is just few steps away from the final stage of completion and may consist of few or no bugs.
The software may either be released in a limited user segment first that is engaged in real business environment for which the software has been created so that it can be evaluated and upgraded if needed before the official market release. Or the software can directly be released in the market where anyone can use it for free within its trial period or forever.
- Maintenance: After the initial release, the product is regularly updated on the basis of the feedback generated from different client base in order to make it more suitable for the intended users and their daily requirements.