Modeling Phase/Feasibility study
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.The main aim of feasibility study is to determine whether it would be financially and technically feasible to develop the product
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.
Design This determines the data structures, the software architecture, the interface representations and the procedural (algorithmic) detail that goes into the software.
Code Generation Here the actual programming is done to obtain the machine code; it is an implementation of the design.
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.
Installation The software is released to the customer.
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.