The “life cycle of the software”, means all stages of the software development, from its conception to demise. That is, the adequacy of the methods used. The software life cycle usually includes at least the following activities:
Here is the definition of objectives, consisting of defining the purpose of the project and its inclusion in a global strategy. It needs analysis and feasibility, i.e. the expression, collection and formalization of the needs of the applicant (the client) and all the constraints. So far the agile software development life cycle is concerned, you will get the best here now.
- This is the development of the specifications of the general architecture of the software.
- Detailed design, consisting of precisely defining each subset of the software.
- Integration, whose objective is to ensure the interfacing of the various elements (modules) of the software, it is subject to integration tests recorded in a document.
- Qualification, i.e. the verification of the conformity of the software to the initial specifications.
- Documentation, aimed at producing the necessary information for the use of the software and for further developments.
Life cycle models
In order to be able to have a common methodology between the customer and the service company carrying out the development, life cycle models have been developed defining the stages of development as well as the documents to be produced to validate each steps before moving on to the next. At the end of each phase, reviews are organized before moving on to the next one.
- The cascading life cycle model was developed as early as 1966, and then formalized around 1970. It defines sequential phases at the end of each of which documents are produced to check compliance before moving on to the next one.
- The above activities are not organized chronologically: the correction of defects is often mixed with programming or design; documentation is often done in parallel with other activities, etc.
In addition, often, the life of software does not freeze after the first delivery to the customer (or sale in stores). It continues to evolve in several ways, defects detected after delivery can be corrected; additional features can be added, etc. We call all the activities of modification of the software after its first release on the market maintenance of the software.
Most of the post-delivery activities are related to adding features. In fact, it often happens that 80% of the total cost of software is due to its maintenance. To facilitate maintenance activities, it is important that the software is well written, or maintainable. In addition, if one or more modules of the software are supposed to be reused in other software, it is necessary that these modules are well written from another point of view that we call re-usability. While the details of maintainability and reusability are beyond the scope of this book, you will be dealing with a small portion of the basic rules necessary to apply in order to obtain a maintainable program.