Cycles de Vie du Logiciel LFI2 Genie Logiciel/ Gestion de Projets Septembre 2008
Cycle de Vie Un ensemble structure d’activites requises pour developer un systeme Specification; Conception; Validation; Evolution.
Classes de Cycles de Vie Chute d’Eau Sequence de phases. Developpement Evolutif Specification, development et validation sont simultanes. CBSE: GL a base de composantes Assemblage de composantes existantes. Variations sur ces themes..
Cycle en Chute d’Eau
Phases et Activites
Inconvenients de la Chute d’Eau Non realiste Non flexible Ne rend pas compte des interactions entre phases Ne tolere pas les modification du cahier des charges Applicable dans des situations exceptionnelles a enjeu eleve.
Developpement Evolutif Prototypage Exploratoire Demarrer avec un concept vague du cahier des charges. Le faire evoluer au fur et a mesure du feedback usager. Finir avec un produit operationnel fini. Prototypage Disposable Demarrer avec un concept vague du cahier des charges. Le faire evoluer au fur et a mesure du feedback usager. Finir avec un cahier des charges complet.
Developpement Evolutif
Prototypage Exploratoire Carateristiques Conception ad hoc. Systeme difficile a maintenir. Processus manque de transparence. Applicabilite Systemes de taille petite ou moyenne Longevite reduite Enjeu limite
Prototypage Disposable Caracteristiques Couteux Ad Hoc Necessite validation intense pour etre utilise sur des systemes a grand enjeux. Applicabilite Trop couteuse pour les systemes a petits enjeux Trop risquee pour les systemes a grands enjeux.
Developpement base sur les composantes Reutilisation systematique avec les composantes COTS (Commercial-off-the-shelf). Etapes du processus Analyse des composantes; Ajustement du cahier des charges; Conception avec la reutilisation (descendante ou ascendante); Developpement et integration. De plus en plus utilisable quand elle est pratique.
Processus de developpement COTS
Cycles de Vie Iteratifs Les CC des logiciels evoluent toujours avec le temps, meme durant la periode du projet. Necessite de processus iteratifs. Iteration peut etre appliquee a chacun des processus discutes ci dessus. Deux approches iteratives reliees. Developpement Incremental; Developpement en Spirale.
Developpement Incremental Systeme est developpement en increments de fonctionalite. Increments les plus importants en premier. Chaque increment procede sur un cycle de vie sequentiel. Une fois un increment demarre, sa specification ne change plus. Specifications d’increments ulterieurs peuvent continuer a evoluer.
Developpement Incremental
Caracteristiques du development incremental Livraison a temps de fonctionalites a l’usager. Premiers increments peuvent servir de prototype pour solliciter des clause pour les increments qui suivents. Premiers incerments (les plus importants) sont testes plus que les autres. Risque d’echec faible.
Developpement en Spirale Spirale plutot que sequence. Chaque boucle represente une phase. Boucle choisies selon ce dont le processus a besoin. Risques explicitement analyses et resolus.
Spirale a quatre secteurs
Quatre secteurs Enonce de l’objectif. Enonce et analyse de risques. Developpement et validation. Planification.
Activites du Processus specification de logiciels. Conception et implementation de logiciels. Validation de logiciels. Evolution de logiciels.
Pecification des Logiciels Services requis et contraintes de livraison des services. Processus de l’ingenieurie des besoins Etude faisabilite; Collecte et analyse des besoins; Specification des besoins; Validation des specifications/ des besoins.
Processus de l’ingenieurie des besoins
Conception et implementation de logiciels Convertir les specifications en une implementation. Conception Concevoir une structure qui satisfait les specifications; Implementation Traduire cette structure en un programme;
Activites de conception Conception Architecturale Specification abstraite Conception d’interfaces Conception des composantes Conception des structures de donnees. Conception algorithmique
Processus de Conception
Implementation des logiciels Transformer les conceptions en programme executable. Test unitaire. Debugging.
Validation de Logiciels Verification et validation (V & V) Validation: spec reflete les besoins usagers Verification: implementation satisfait la spec. Implique des processus de review et de testing. Test: executer le systeme dans des conditions similaires a son usage.
Validation de logiciels
Types de Test Test unitaire A l’echelle de la composante/ module. Unite/ objet. Test Systeme Teste l’integration des composantes. Test d’Acceptarion A la livraison.
Phases du Test
Evolution du Logiciel SW est flexible/ malleable. Maintenance adaptative; besoins evolutifs de l’usager. Fusion entre developpement et maintenance.
Evolution du Logiciel