CodeGym/Java Course/Module 3. Java Professional/Waterfall - Waterfall Model

Waterfall - Waterfall Model

Available

Cascade model device

The waterfall model, also known as Waterfall, is one of the most well-known approaches to software development. The author of the model is Winston Royce. In 1970, he described the essence of his innovation in an article detailing its advantages and disadvantages. In the same place, he explained how this model can be refined to an iterative model. Initially, in the waterfall model, the development stages go in the following order:

  • Definition and coordination of requirements;
  • Project approval;
  • Coding;
  • Creation of a working version of the software product;
  • Testing and debugging;
  • Software installation;
  • Support.

According to the waterfall model, the execution of actions by the developer occurs sequentially - point by point. To begin with, work is being completed to determine and agree on software requirements in the form of a list to be completed.

After that, there is a transition to the creation and approval of the project, as a result of which documentation is written describing how to implement the previously agreed software requirements.

If the design is completed, the developers take on the implementation. Next comes the merging of the code - the integration of individual parts of the project, which were worked on by various team members.

The next step is testing and debugging the product. Previously found errors are fixed here.

Finally, the program is installed and supported. It involves making, if necessary, changes to the functionality and eliminating the errors found.

The cascade model assumes that you can move to the next stage of development strictly sequentially - only after the completion of the previous task. The possibility of rollback or inconsistency in the phases is not provided.

Advantages and disadvantages

From time to time, the waterfall model is criticized because of its lack of flexibility. Many do not like it because the goal of project management prevails in it, while meeting deadlines, cost and quality of development are much more important.

However, when it comes to large projects, then management is often more important in them, since this reduces the risks of the project and improves transparency in the work.

Despite the shortcomings, the PMBOK 3rd version formally specifies only the “cascade model” methodology. Other options, including iterative project management, are not offered.

Advantages of the waterfall model:

  • Team development is easier to control. The customer is familiar with what the programmers are currently working on, he can change the deadlines and budget of the project.
  • The cost of development is approved at the first stage. After agreeing on all stages of implementation, the software product is written continuously.
  • Experienced testers are not needed. For the testing phase, you can use the program documentation.

Disadvantages of the waterfall model:

  • Since testing starts at the stage of completion of development, if a bug is discovered, it will cost more to fix it than at the initial stage. After all, testers will find an error only when the developer has already finished writing the code, and copywriters - the documentation.
  • The customer gets acquainted with the finished product after the development is completed. Accordingly, he can evaluate the product only when it is almost completely ready. If he does not like the result, the cost of the project budget will increase markedly due to the need for correction.
  • The more technical documentation, the longer it takes to complete the work. Such documentation requires more changes and approvals.

"Waterfall" is often used in projects in the medical and aerospace industries, where there is already a wide base of documents, on the basis of which it is possible to draw up requirements for new software.

When using the waterfall model, the main thing is to write detailed requirements. During testing, it should not turn out that there is a bug somewhere that has a detrimental effect on the entire project.

Comments
  • Popular
  • New
  • Old
You must be signed in to leave a comment
This page doesn't have any comments yet