The management model called the cascade model is based on the phases defined by Royce, but provides for a single iteration .
In his essay, Royce does not mention the term waterfall once.
The model in Cascade owes its great notoriety to the American standard DoD-STD-2167, which is based on an extremely simplified form of the management model developed by Royce, which had not been sufficiently understood by the authors, such as David Maibor - one of the authors of the standard - conceded it years later, this error was due to a misunderstanding of the iterative and incremental models.
- Analysis: planning, analysis and specification of requirementsns
- Design: system design and specification
- Implementation: programming and testing of modules
- Test: system integration, system and integration tests
- Operation: delivery, maintenance, improvement
The following diagram illustrates why the linear management model is qualified as a "cascade model.
The waterfall model based on the requirements of Winston Walter Royce divides the development process into five project phases, which are: analysis, design, implementation, testing and operation. The diagram already presents one of the extensions of the model recommended by Royce: the verification of the results of each phase taking into account the requirements and specifications developed beforehand.
Extensions of the simple cascade model complete the basic model with iterative functions, for example with backtracks allowing to compare the results of each phase with the hypotheses drawn from the previous phase and thus to verify them.
The phases of the cascade model
In the cascade model, the different phases of a development process are linked. Each phase ends with an intermediate result (step) , for example with a catalog of requirements in the form of specifications, with the specification of a software architecture or with an application to the stage alpha or beta.
Each software project begins with an analysis phase including a feasibility study and a definition of needs. The costs, performance and feasibility of the software project are estimated during the feasibility study . This allows you to create specifications (a rough deion of needs), a project plan, project budgeting and, if necessary, a quote for the client.
The requirements are then defined in detail . This definition includes an actual analysis and a target concept. While the actual analyzes describe the problems, the target concept makes it possible to define which functionalities and which properties the software product must offer in order to meet the needs. The definition of needs makes it possible in particular to obtain specifications,a detailed deion of how the project requirements are to be met as well as a plan for the acceptance test.
Finally, the first phase of the cascade model provides for a analysis of the needs definition , during which complex problems are broken down into smaller sub-tasks and corresponding resolution strategies are developed.
The design phase is used to develop a concrete resolution concept based on the needs, tasks and strategies determined beforehand. During this phase, developers develop the software architecture as well as a detailed software construction plan and thus focus on concrete elements such as interfaces, frameworks or libraries. Theresult of the design phase includes a design document with a software construction plan, as well as test plans for the different elements.
The software architecture developed during the design phase is carried out during the implementation phase which includes software programming , troubleshooting and the module tests . During the implementation phase, the software project is translated into the desired programming language. The different software components are developed separately, checked as part of module tests and integrated step by step into the overall product. The result of the implementation phase is a software product that will be tested for the first time as a product.it global in the next phase (alpha test).
The test phase includes the integration of the software into the desired target environment . Typically, software products are first delivered to a selection of end users in the form of a beta version (beta tests). It is then determined whether the software meets the needs previously defined using the acceptance tests developed during the analysis phase. A software product having successfully passed the beta tests is ready for delivery.
After having successfully passed the test phase, the software is put into production for exploitation. The last phase of the cascade model includes delivery , maintenance and software improvement .
Cascade model evaluation
The cascade model offers a clear hierarchical structure for development projects in which the different phases of the project are clearly delimited. Since each phase ends with a step, the development process can be easily followed. The strong point of the model is found in the documentation of the stages of the process. The knowledge acquired is recorded in the requirements and design documents.
In theory, the cascade model must create the conditions for a rapid and inexpensive realization of projects through meticulously planned planning. However, the benefits of the cascade model are controversial in practice . On the one hand, the project phases are rarely clearly delimited in software development. PFor complex software projects in particular, developers are often confronted with the fact that the different components of an application are in different phases of development at the same time. On the other hand, the linear unfolding of the cascade model often does not correspond to real conditions.
The cascade model does not strictly speaking provide for adaptations during the project. A software project, in which all the details of development are already defined at the start of the project, can only succeed when a lot of time and money has been invested from the start in analysis and design. Added to this is the fact that larger software projects sometimes already obsolete when they were introduced .
Overview of benefits anddisadvantages of the cascade model
| Advantages || Disadvantages |
| A simple structure thanks to clearly delimited project phases. || Complex or multi-level projects can only rarely be divided into clearly defined project phases. |
| Good documentation of the development process by clearly defined steps. || A small margin for adjustments to the progress of the project due to changed requirements. |
| Costs and lworkload can be estimated from the start of the project. || The end user is only integrated into the production process after programming. |
| Projects structured according to the cascade model can be easily represented on a time axis. || Errors are sometimes detected only at the end of the development process. |
The cascade model is mainly used in projects for which needs and processes can be defined precisely from the phase of planning and for which it can be assumed that the assumptions will change little throughout the course of the project. Strictly linear management modelsThey are therefore mainly suitable for smaller, simple and clearly structured software projects . Royce had already reached this conclusion in the 1970s. The alternative to the linear management model he proposed, later known as the cascade model, therefore included three essential extensions:
A check after each project phase
According to Royce, the results of each phase of the project must be compared and verified immediately using the documents prepared beforehand. For example, it would be necessary to check that a module meets the requirements defined beforehand immediately after its development and not only at the end of the development process.
At least two iterations
According to Royce, the cascade model should be performed at least twice: a first time for the development of 'a prototype and a second for the development of the actual software product .
Tests integrating the end user
As the third extension of the cascade model, Royce recommended in his essay a measure that is now part of the standard procedure in product development: the integration of the end user into the production process. Royce proposed to integrate the user three times in the software development process: during the planning of the software as part of the analysis phase, between the software design and its implementation and during the test phase before midavailable to the software.
Alternatives to the cascade model
Due to the strictly linear sequence of the project phases which follow each other sequentially, the Cascade model is only suitable for small software projects, if it is suitable for any project. On the other hand, complex and multi-level processes cannot be represented with this model. This is the reason why different alternative approaches have been developed over time.
While models like the spiral model or the V-cycle model are considered improvements to the classic cascade model , concepts such as “extreme programming, agile software development or iterative prototyping are based on a completely different approach and generally allow flexible adaptationto current modifications and new needs.