Hello, dear habrovchane! I think it will be interesting to someone to remember which models of development, introduction and use of software existed before, which models are mainly used now, why and what is it actually. This will be my little topic.
Actually, what is the
life cycle of software - a series of events occurring with the system in the process of its creation and further use. In other words, this is the time from the initial moment of creating any software product to the end of its development and implementation. The software life cycle can be represented as models.
The software life cycle model is a structure containing processes of action and tasks that are carried out in the course of development, use and maintenance of a software product.
These models can be divided into 3 main groups:
- Engineering approach
- Given the specifics of the problem
- Modern technology of rapid development
Now we will consider directly existing models (subclasses) and evaluate their advantages and disadvantages.
Coding Model and Troubleshooting
A completely simple model, typical for university students. It is for this model that most students develop, well, let's say laboratory work.
This model has the following algorithm:
- Formulation of the problem
- Performance
- Check result
- If necessary, move to the first item.
The model is also
terribly outdated. It is characteristic for 1960-1970, therefore there are practically no advantages over the following models in our review, and there are drawbacks on the face. It refers to the first group of models.
')
Cascade software life cycle model (waterfall)
The algorithm of this method, which I present in the diagram, has several advantages over the algorithm of the previous model, but also has a number of
significant drawbacks.

Benefits:
- Sequential implementation of the project stages in a strict fixed order
- Allows you to evaluate the quality of the product at each stage
Disadvantages:
- Lack of feedback between stages
- Does not meet the real conditions of the software product development
It refers to the first group of models.
Cascade model with intermediate control (whirlpool)
This model is almost equivalent to the algorithm of the previous model, however, it has feedbacks with each stage of the life cycle, and this causes a very significant drawback: a
10-fold increase in development costs . It refers to the first group of models.
V model (development through testing)
This model has an algorithm that is more close to modern methods, but still has several disadvantages. It is one of the main practices of extreme programming.

Model based prototype development
This model is based on the development of prototypes and product prototyping.
Prototyping is used in the early stages of the software life cycle:
- Clarify unclear requirements (UI prototype)
- Choose one of a number of conceptual solutions (implementation of scinaria)
- Analyze the feasibility of the project
Classification of protopips:
- Horizontal and vertical
- Disposable and evolutionary
- paper and storyboards
Horizontal prototypes - models exclusively UI without affecting the processing logic and database.
Vertical prototypes - check architectural solutions.
Disposable prototypes - for rapid development.
Evolutionary prototypes - the first approximation of the evolutionary system.
The model belongs to the second group.
Spiral software life cycle model
The spiral model is a software development process that combines both design and step-by-step prototyping to combine the advantages of an upstream and downstream concept.

Benefits:
- Quick result
- Increase competitiveness
- Changing requirements are not a problem.
Disadvantages:
- Lack of regulation stages
The third group includes such models as extreme programming (XP),
SCRUM ,
incremental model (RUP), but I would like to talk about them in a separate topic.
Thank you very much for your attention!