한국   대만   중국   일본 
Modele en cascade ? Wikipedia Aller au contenu

Modele en cascade

Un article de Wikipedia, l'encyclopedie libre.

Le modele en cascade , ou ≪  waterfall  ≫ en anglais, est une organisation des activites d'un projet sous forme de phases lineaires et sequentielles, ou chaque phase correspond a une specialisation des taches et depend des resultats de la phase precedente. Il comprend les phases d'exigences, de conception, de mise en œuvre et de mise en service.

Le modele en cascade est un cycle de vie de projet issu des industries manufacturieres et du secteur de la construction , ou une conception prealable est necessaire, compte tenu des fortes contraintes materielles et des couts eleves afferents aux changements de la conception en cours de realisation. Il est utilise notamment dans les domaines de l' ingenierie et du developpement de logiciels .

Historique [ modifier | modifier le code ]

La premiere presentation decrivant un modele de phases pour le developpement de logiciels, est celle de Herbert D. Benington [ 1 ] au ≪ Symposium sur les methodes de programmation avancees pour les calculateurs numeriques ≫ le . L'article avait pour contexte le developpement d'un systeme militaire appele SAGE . Il decrivait un processus de developpement avec une phase de planification en amont, plusieurs phases de specifications, une phase de programmation (≪ codage ≫), plusieurs phases successives de tests, et une phase de validation finale. L'article fut republie en 1983 avec une preface de Benington qui precisait que la separation en phases correspondait a une logique de specialisation par metier, et qui soulignait qu'il avait omis dans les activites un prototype prealable a la realisation du projet [ 2 ] .

La premiere description du modele en cascade est souvent consideree comme etant celle de l'article de Winston W. Royce en 1970 [ 3 ] . L'article fournit une representation graphique de la cascade sans toutefois jamais utiliser le terme. Ironiquement, la publication de Royce etait une critique des insuffisances du modele. C'est ainsi que le terme s'est generalise [ 4 ] .

La premiere citation averee du terme ≪ cascade ≫ figure dans un article de 1976 de Bell et Thayer qui credite Royce pour le terme [ 5 ] .

En 1985, le departement de la Defense des Etats-Unis a repris l'approche en cascade dans sa norme DOD-STD-2167 qui specifie les relations avec les sous-traitants pour le developpement de logiciels, et qui precise que ≪ le contractant devra mettre en œuvre un cycle de developpement de logiciels qui inclut les six phases suivantes : conception prealable, conception detaillee, programmation, tests unitaires, integration et tests≫. Cette norme sera remplacee en 1994 par la specification MIL-STD-498 qui ne fait plus de reference au modele en cascade et promeut a la place un procede d'acquisition evolutives et des methodes de developpement iteratives et incrementales [ 6 ] .

Principe [ modifier | modifier le code ]

Modèle en cascade générique décrivant la succession linéaire des phases d'un projet d'ingénierie, avec la succession suivante: exigences, analyse, conception, mise en œuvre, validation et mise en service. Chaque phase livre ses produits à la phase suivante, de sorte que graphiquement ila représentation fait penser à une cascade.
Modele en cascade generique

Le modele en cascade comprend les phases et les livrables suivants :

  1. Exigences  : les exigences font l'objet d'une expression des besoins ;
  2. Analyse  : les exigences sont analysees pour etablir un cahier des charges fonctionnel  ;
  3. Conception : le produit est concu et specifie de sorte a pouvoir etre realise ;
  4. Mise en œuvre  : le produit est realise sur la base des specifications ;
  5. Validation : le produit est teste et verifie et sa conformite aux exigences est validee ;
  6. Mise en service : le produit est installe, les preparatifs pour sa mise en service sont organises, puis le produit est utilise.

Chaque phase ne commence qu'une fois les resultats de la phase precedente valides. Le point fort de cette approche est de garantir l'existence d'une documentation bien structuree [ 3 ] .

Plusieurs variantes du modele existent, dont l'ajout d'une phase de planification en amont, la realisation prealable d'un prototype, la decomposition de la phase de validation, et le retour aux phases precedentes en cas de defauts decouverts en aval.

Dans le domaine du developpement logiciel, la phase de conception determine l' architecture du systeme, la mise en œuvre correspond principalement aux activites de programmation , et la phase de validation comprend pour une grande part des tests.

Critiques [ modifier | modifier le code ]

Modèle de cascade générique présentant les phases d'un projet, avec la séquence suivante: exigences, analyse, conception, mise en œuvre, validation et mise en service. Les résultats des phases vont à la phase suivante en aval, ce qui donne une représentation graphique sous forme d'une cascade. Un retour arrière à la phase précédente est toujours possible. Les principaux livrables y sont décrits: expression de besoins, cahier des charges, modèles et spécifications, produits et documentation, les tests et la validation assurant la conformité du produit.
Modele en cascade generique avec les principaux livrables. La detection de defauts en aval necessite des retours vers les etapes precedentes, jusqu'aux exigences si celles-ci sont erronees.

Dans son article fondateur, W.W. Royce critique le modele en cascade [ 3 ] . Il remarque que chaque phase doit pouvoir necessairement renvoyer a la phase precedente en cas de defauts constates en aval (par exemple, en cas d'erreur decouverte lors des tests, il est necessaire de retourner a la phase de programmation). Il constate en outre que les exigences et la conception influent sur toutes les phases en aval, de sorte qu'un retour a ces etapes est souvent necessaire. Il recommande enfin le recours a une conception preliminaire. Son modele revise reste toutefois proche au modele original.

Le modele en cascade se base sur des exigences exprimees en debut de projet. Toutefois les exigences et besoins peuvent se montrer incomplets ou de qualite insuffisante (ambiguite, incoherence, etc.) [ 5 ] . De plus, le client peut ne pas etre pleinement conscient de ses exigences avant d'avoir vu le logiciel fonctionner. Ceci peut conduire a revoir la conception, redevelopper une partie du logiciel, et retester le produit et donc augmenter les couts [ 7 ] . C'est pourquoi le modele en cascade est particulierement adapte a des projets dont les exigences sont bien comprises et robustes realises avec une technologie bien maitrisee [ 8 ] .

La structuration des phases par specialisation d'activite preconise par le modele en cascade est source de rigidite dans l'organisation des travaux, ne favorise pas suffisamment l'implication du client tout au long du projet, et decourage la prise en compte des changements [ 9 ] . Ce dernier point explique l'emergence des les annees 1980 d'une approche incrementale du developpement [ 10 ] .

Evolutions [ modifier | modifier le code ]

Le cycle en V utilise une decomposition de phase similaire a la cascade, mais en renforcant la validation [ 11 ] . Celle-ci se deroule en plusieurs etapes distinctes, chacune verifiant par des tests appropries la conformite d'une des phases en amont. La presentation graphique du modele represente alors un V lorsqu'on met en regard des phases de validation avec les phases validees.

Les auteurs du Processus Unifie reconnaissent l'interet du phasage sequentiel du projet. Mais au lieu de separer artificiellement les activites par phase, ils preconisent des activites integrees, au sein de phases organisees par degre de maturation du produit: creation [ 12 ] ( ≪  inception  ≫ en anglais), elaboration [ 13 ] , construction [ 14 ] , et transition [ 15 ] et de decouper chacune de ces phases en plusieurs iterations [ 16 ] .

Voir aussi [ modifier | modifier le code ]

Articles connexes [ modifier | modifier le code ]

Notes et references [ modifier | modifier le code ]

  1. (en) United States , Navy Mathematical Computing Advisory Panel , United States et Office of Naval Research , Symposium on advanced programming methods for digital computers : Washington, D.C., June 28, 29, 1956 , Office of Naval Research, Dept. of the Navy, ( OCLC   10794738 , lire en ligne )
  2. Herbert D. Benington , ≪  Production of Large Computer Programs  ≫, IEEE Annals of the History of Computing , vol.  5, n o  4,‎ , p.  350?361 ( ISSN   1058-6180 , DOI   10.1109/MAHC.1983.10102 , lire en ligne , consulte le )
  3. a b et c (en) W. W. Royce , ≪  Managing the Development of Large Software Systems: Concepts and Techniques  ≫, Proceedings of the 9th International Conference on Software Engineering , IEEE Computer Society Press, iCSE '87,‎ , p.  328?338 ( ISBN   9780897912167 , lire en ligne , consulte le )
  4. (en) Conrad Weisert, ≪  Waterfall Methodology: There's no such thing!  ≫, sur www.idinews.com (consulte le )
  5. a et b (en) T. E. Bell et T. A. Thayer , ≪  Software Requirements: Are They Really a Problem?  ≫, Proceedings of the 2Nd International Conference on Software Engineering , IEEE Computer Society Press, iCSE '76,‎ , p.  61?68 ( lire en ligne , consulte le )
  6. (en) C. Larman et V. R. Basili , ≪  Iterative and incremental developments. a brief history  ≫, Computer , vol.  36, n o  6,‎ , p.  47?56 ( ISSN   0018-9162 , DOI   10.1109/MC.2003.1204375 , lire en ligne , consulte le )
  7. (en) David Lorge Parnas et Paul C. Clements , ≪  A rational design process: How and why to fake it  ≫, IEEE Transactions on Software Engineering , vol.  SE-12, n o  2,‎ , p.  251?257 ( ISSN   0098-5589 , DOI   10.1109/TSE.1986.6312940 , lire en ligne , consulte le )
  8. (en) Barry Boehm et Frank Belz , ≪  Experiences with the Spiral Model As a Process Model Generator  ≫, Proceedings of the 5th International Software Process Workshop on Experience with Software Process Models , IEEE Computer Society Press, iSPW '90,‎ , p.  43?45 ( ISBN   9780818621048 , lire en ligne , consulte le )
  9. (en) Daniel D. McCracken et Michael A. Jackson , ≪  Life Cycle Concept Considered Harmful  ≫, SIGSOFT Softw. Eng. Notes , vol.  7, n o  2,‎ , p.  29?32 ( ISSN   0163-5948 , DOI   10.1145/1005937.1005943 , lire en ligne , consulte le )
  10. (en) Tom Gilb , ≪  Evolutionary development  ≫, ACM SIGSOFT Software Engineering Notes , vol.  6, n o  2,‎ , p.  17?17 ( DOI   10.1145/1010865.1010868 , lire en ligne , consulte le )
  11. ≪  V-Model: Qu'est-ce que c'est et comment l'utiliser ? | SUPINFO, Ecole Superieure d'Informatique  ≫, sur www.supinfo.com (consulte le )
  12. ≪  phase de creation  ≫, sur www.granddictionnaire.com (consulte le )
  13. ≪  phase d'elaboration  ≫, sur www.granddictionnaire.com (consulte le )
  14. ≪  phase de construction  ≫, sur www.granddictionnaire.com (consulte le )
  15. ≪  phase de transition  ≫, sur www.granddictionnaire.com (consulte le )
  16. (en) Kroll, Per. , The rational unified process made easy : a practitioner's guide to the RUP , Addison-Wesley , ( ISBN   0-321-16609-4 et 9780321166098 , OCLC   51242053 , lire en ligne )