Cycles de Vie du Logiciel LFI2 Genie Logiciel/ Gestion de Projets

Download Report

Transcript Cycles de Vie du Logiciel LFI2 Genie Logiciel/ Gestion de Projets

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