Software Development Life Cycle (SDLC) is the overall process of developing information systems through a multi-step process from investigation of initial requirements through analysis, design, implementation and maintenance.
Phase I – Modeling Phase
In this phase we view the software product as part of a larger system or organization where the product is required. This is basically a system view where all the system elements are created.
Phase II – Software Requirements Analysis
Here we have a phase where the requirements are gathered. The information domain for the software is understood. The function, behaviour, performance and interfacing of the software are determined. The requirements of the software and the customer are decided upon.
Phase III – Design
This determines the data structures, the software architecture, the interface representations and the procedural (algorithmic) detail that goes into the software.
Phase IV – Code Generation
Here the actual programming is done to obtain the machine code; it is an implementation of the design.
Phase V – Testing
The testing is a process that goes hand in hand with the production of the machine code. There are a number of testing strategies. First unit testing is done and then integration testing. Alpha testing is to see if the software is as per the analysis model whereas beta testing is to see if the software is what the customer wanted.
Phase VI – Installation
The software is released to the customer.
Phase VII - Maintenance
This is the largest phase of the software life cycle. Maintenance can be of different types: to modify the software as the requirements of the customer evolve, to remove the residual bugs in the software etc.