A software development lifecycle is essentially a series of steps, or phases, that provide a model for the development and lifecycle management of an application or piece of software. Each phase produces deliverables required by the next phase of the life cycle.
Flow of Software Development life cycle
Requirement Analysis :
Customer’s requirements are gathered in this phase. This phase is the main focus of the project managers and stakeholders. Meetings with managers, stakeholders, and users are held in order to determine the requirements like; Who is going to use the system? How will they use the system? What data should be input into the system? What data should be output by the system? These are general questions that get answered during a requirements gathering phase. The requirements are contemplated and segregated into user requirements, system requirements and functional requirements.
Finally, a Requirement Specification document is created which serves the purpose of guideline for the next phase of the model.
System Design :
In this phase, the system and software design are prepared from the requirement specifications which were studied in the first phase. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. The inputs from users and information gathered in requirement gathering phase are the inputs of this step. The output of this step comes in the form of two designs; logical design and physical design. Engineers produce meta-data and data dictionaries, logical diagrams, data flow diagrams and in some cases pseudo codes.
Implementation Or Coding :
This step is also known as programming phase. The implementation of software design starts in terms of writing program code in the suitable programming language. In this phase, the code is produced so it is the main focus for the developer. This is the longest phase of the software development life cycle.
Errors may run the software from critical level to its own removal. Software testing is done while coding by the developers and thorough testing is conducted by testing experts at various levels. After the code is developed software is tested against the requirements to make sure that the product is actually addressed the requirements that gathered during the requirements phase. During this phase unit testing, integration testing, system testing, acceptance testing is done.
After successful testing phase, the product is delivered/deployed to the customer site for their use. Deployed product may be in the beta state.
This phase confirms the software operation in terms of more efficiency and fewer errors. If required, the users are trained on, or aided with the documentation on how to operate the software and how to keep the software operational. when the customers start using the developed system then the actual problems come up and needs to be solved from time to time. This phase called the maintenance phase.