The term software lifecycle describes the development of an application, from the concept phase right up to the retirement phase. The purpose of such a plan is to define the various intermediate phases required to validate the development of the application, i.e. to ensure the software conforms to the requirements for the application and verification of development procedures, i.e. to make sure the methods employed are appropriate.
Such plans originate from the fact that errors detected late in the implementation phase can end up being costly to rectify. The lifecycle allows for errors to be detected at as early a stage as possible and therefore enable developers to concentrate on the quality of the software, implementation time frames and associated costs.
The basic software lifecycle involves the following procedures:
- Defining goals defining the outcome of the project, and its role in a global strategy.
- Analysis of requirements and feasibility, i.e. gathering, examining and formulating the customer's requirements and examining any restrictions that may apply.
- General design General architectural requirements of the application.
- Detailed design, precise definition of each application sub-set.
- Programming (programming and implementation) is the implementation of a programming language to create the functions defined during the design stages.
- Unit testing, individual testing of each application sub-set to ensure they are implemented according to specifications.
- Integration, to ensure that the different modules integrate with the application. This is the purpose of the integration testing which is carefully documented.
- Beta Testing (or debugging), to ensure that the software conforms to original specifications.
- Documentation serves to document necessary information for software users and for future development.
- Maintenance, all corrective procedures (corrective maintenance) and minor software updates (ongoing maintenance).
The order and presence of each of these procedures in the lifecycle of an application depends on the type of lifecycle model agreed between the client and the development team.
To facilitate a common methodology for both the client and the software company, lifecycle models have been updated to reflect the development stages involved and the documentation required, so that each stage is validated before moving on to the next stage.
The waterfall lifecycle model was designed in 1966 and then finalized around 1970. It is defined as a sequence of phases, at the end of each one documentation is gathered to ensure it conforms to specifications and requirements prior to moving on to the next phase:
The V lifecycle model stems from the principle that the procedures used to test if the application conforms to specifications must have been created in the design phase.
This document, titled « Software lifecycle », is available under the Creative Commons
license. Any copy, reuse, or modification of the content should be sufficiently credited to CCM