Ressources

Waterfall mal interprété

Waterfall est mal interprĂ©tĂ©, dans cette page nous revenons sur Waterfall en analysant le document d’origine et en nous aidant de l’article The Myth of the ‘Waterfall’ SDLC —> The Many Misconceptions of Waterfall

Lorsqu’on Ă©voque Waterfall on pense tout Ă©videment au modĂšle ci-dessous avec un enchaĂźnement de tĂąche successive conduisant Ă  un effet tunnel. Mais si nous lisons attentivement le papier d’origine, nous nous rendons compte que ce modĂšle n’a jamais existĂ©.

Activités communes à tout effort de programmation

There are two essential steps common to all computer program developments, regardless of size or complexity. There is first an analysis step, followed second by a coding step as depicted in Figure 1.

waterfall0

Les étapes supplémentaires que Royce estime nécessaires pour un « grand » effort sont ensuite indiquées dans la figure 2 de son document.

A more grandiose approach to software development is illustrated in Figure 2. The analysis and coding steps are still in the picture, but they are preceded by two levels of requirements analysis, are separated by a program design step, and followed by a testing step. These additions are treated separately from analysis and coding because they are distinctly different in the way they are executed. They must be planned and staffed differently for best utilization of program resources.

Waterfall incomplet

Jusqu’à prĂ©sent, cela ressemble encore aux caractĂ©ristiques communĂ©ment attribuĂ©es Ă  la Waterfall. Mais cette idĂ©e ne tient absolument pas compte de la ligne qui suit la citation ci-dessus et de la figure qui l’accompagne. Le paragraphe qui suit immĂ©diatement la citation ci-dessus est le suivant :

Figure 3 portrays the iterative relationship between successive development phases for this scheme. The ordering of steps is based on the following concept: that as each step progresses and the design is further detailed, there is an iteration with the preceding and succeeding steps but rarely with the more remote steps in the sequence.

Waterfall itératif

Puis sur la mĂȘme page, Royce croĂźt Ă  ce modĂšle mais emmet nĂ©anmoins des critiques

I believe in this concept (figure 3), but the implementation described above is risky and invites failure. The problem is illustrated in Figure 4

La boucle de feedback de la figure 3 ne permet pas d’anticiper les problùme :

  • La phase de test n’arrivant qu’à la fin du cycle de vie, si des system requirement (latence, performance 
) ne sont pas satisfaits une refonte complĂšte du systĂšme pourrait ĂȘtre necessaire

    The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial differential equations of mathematical physics for instance. Yet if these phenomena fail to satisfy the various external constraints, then invariably a major redesign is required.

Nous avons donc des impacts forts entre le test —> le code —> l’analyse. Les itĂ©rations ne sont donc pas cantonnĂ©es uniquement Ă  la phase prĂ©cĂ©dente.

Waterfall itératif 2

A la fin de la page 2, Royce affirme donc que le processus de base qu’il a dĂ©crit jusqu’à prĂ©sent [c’est-Ă -dire ce qui est illustrĂ© Ă  la figure 3, et NON ce qui est illustrĂ© Ă  la figure 2] est fondamentalement sain. Mais qu’il peut ĂȘtre amĂ©liorĂ© par les Ă©tapes supplĂ©mentaires qu’il recommande.

However, I believe the illustrated approach to be fundamentally sound. The remainder of this discussion presents five additional features that must be added to this basic approach to eliminate most of the development risks.

Les 5 étapes

La suite du papier décrit ces 5 étapes

  • Program Design Comes First
  • Document the Design
  • Do It Twice
  • Plan, Control and Monitor Testing
  • Involve the Customer

Proposition finale

Toutes les recommandations ci-dessus sont reprises dans le diagramme final de l’article de Royce [Figure 10], qui montre un processus beaucoup plus complexe que celui que l’on attribue gĂ©nĂ©ralement Ă  la « cascade ».

Waterfall final schema

Conclusion

Waterfall est bien itératif