Software Development Life Cycle Phases
SDLC(Software Development Life Cycle) is a conceptual model or a detailed plan on how to create, develop, implement and launch the software, it describes the stages involved in an information system development project.
There are six steps or stages of SDLC.
1. System Requirements Analysis
2. Feasibility study
3. Systems Analysis & Design
4. Code Generation
System Requirements Analysis
This stage includes a detailed study of the business needs of the application. Design focuses on high level design like, what programs are needed and how are they going to use,
Low-level design (How the individual programs are going to work?)
Interface design(What are the interfaces going to look like?)
Data design(what data will be required?)
Analysis and Design are very crucial in the whole development cycle. Much care must be taken during this phase.
The feasibility study is used to determine if the project should get the go-ahead and well-defined the scope of project will prepared. If the project is to proceed, the feasibility study will produce a project plan and budget estimates for the future stages of development.
Systems Analysis and Design
Here analysis is made on the design of the system that is going to be developed. In other words database design, the design of the architecture(frame works) chosen, functional specification design, low level design documents, high level design documents (SRS) and so on takes place. Care must be taken to prepare these design documents because the next phases namely the development phase is based on these documents & design.
Code Generation or Implementation
In this phase the designs are translated into code. Computer programs are written using a conventional programming language. Different high level programming languages like C, C++, PHP, Java are used for coding. With respect to the type of application, the right programming language is chosen to reduce the time and cost.
In this phase the application is tested. Normally programs are written as a series of individual modules, these subject to separate and detailed test or module test. The system is then tested as a whole. The separate modules are brought together and tested as a complete system. A software or system which is not tested would be treated as poor quality.
Maintenance & Enhancement
Application will need maintenance. Software will definitely undergo change once it is delivered to the end-customer. There may many reasons for the change, change could happen because of some unexpected input values into the system or addition of some functionality into the system. The software should be developed to accommodate changes.