Vous êtes sur la page 1sur 33

Université Joseph KI-ZERBO

INSTITUT DE FORMATION OUVERTE ET A DISTANCE(IFOAD)

Génie Logiciel

Enseignante: Nabi Rasidatou

Année universitaire: 2022-2023


PLAN DU COURS
 Généralités sur le GL
 Cycles de vie du logiciel
 Ingénierie du logiciel
 Gestion de la qualité du logiciel
 Gestion du versionnement
 Évaluation des coûts et délais
Cycles de vie du logiciel
Processus de développement : définition et raison d’être

● Processus : ensemble ordonné de tâches


– avec prise en compte de contraintes

– et utilisation de ressources

– produisant un résultat attendu.

● Pourquoi un processus ?
– Impose une démarche cohérente et la structuration des activités
– Guide les actions en permettant d’examiner, de comprendre, de
contrôler et d'améliorer les activités qui composent le processus

3
Cycles de vie du logiciel
Modèles de processus : définition et motivations
● Modèle : représentation de l’enchaînement des étapes jusqu’au résultat
souhaité (entrées et résultats des étapes généralement connus)
● Existence de plusieurs modèles de processus : certains sont des
prescriptions et d’autres sont des descriptions

Pourquoi modéliser un processus ?


Un modèle constitue pour l’équipe une compréhension commune des activités, des
contraintes et des ressources

– Permet de déceler les incohérences, les redondances et les omissions dans le


processus, ce qui permet une amélioration du processus au fur et à mesure de la
résolution des problèmes détectés

– Un modèle reflète les objectifs de développement et montre explicitement comment les


caractéristiques du produit doivent être atteints
– chaque développement est différent et un processus pouvant être adapté à différentes
situations , le modèle du processus aide à comprendre ces différences

4
Cycles de vie du logiciel
Définition et importance
● Cycle de vie du logiciel (CdV) = modèles de processus de
développement et d’exploitation du logiciel (Représentation
de l’enchaînement des étapes pour créer et exploiter un
logiciel)

● Le CdV facilite
– Planification et gestion du projet
– Contrôle de la qualité
– Communication
– Identification des métiers et des techniques propres à chaque étape

5
Cycles de vie du logiciel
Classes de CdV

● Deux principales classes de CdV généraux


– CdV séquentiels
– CdV itératifs


Cycles spécifiques liés à des environnements ou
outils particuliers

6
Cycles de vie du logiciel
CdV séquentiels : généralités
● Caractéristiques
– date de fin des étapes précisément définies : tout est planifié au début
– production de documents bien définis à chaque étape
– étape i se termine complètement avant le début de l’étape i + 1
– résultats de l’étape i sont utilisés dans l’étape i + 1
– les problèmes d’une étape remettent en cause l’étape précédente
– Mettent plus l’accent sur les phases en amont du codage
● Principaux avantages
– Simplicité
– La planification se fait une seule fois
– Possibilité de faire la conception détaillée et le codage en parallèle
● Principaux inconvénients
– Rigidité des spécifications
– Effet tunnel possible
37
Cycles de vie du logiciel
CdV séquentiels : cascade (waterfall)(1)
Analyse des besoins
(validation)

Conception
générale
(vérification)

Conception détaillée
(vérification)

Codage (tests
unitaires)

Intégration (tests
d’intégration)

Qualification (tests
de validation)

Exploitation &
maintenance 8
Cycles de vie du logiciel
CdV séquentiels : cascade (waterfall)(2)
● Autres inconvénients
– validation se fait sur des documents uniquement et tard dans le
processus
– coût d’une erreur est d’autant plus élevée qu’elle est
découverte tard


Adapté pour les petits projets aux contours bien
maîtrisés

9
Cycles de vie du logiciel
CdV séquentiels : cycle en V (1)
Analyse des Test
besoins d’acceptation

Spécifications Test
externes système

Conception Test
générale d’intégration

Conception Tests
détaillée unitaires

Codage 10
Cycles de vie du logiciel
CdV séquentiels : cycle en V(2)
● Autres caractéristiques
– Chaque étape de conception prépare une étape de validation et vérification
Autres avantages
– Toute description est associée aux tests y relatifs

Autres inconvénients
– Absence de maintenance
– Pas de maintenance
● Cycle le plus utilisé
Cycles de vie du logiciel
CdV itératifs : généralités

● Principe : itérer sur certaines phases du cycle de vie


Idée : lever les inconvénients des modèles
séquentiels pour
– minimiser les risques d’inadéquation
– prendre en compte les évolutions des besoins

● Livraison : par incrément ou totale (d’un bloc)

● Risque : remise en cause incréments précédents


12
Cycles de vie du logiciel
CdV itératifs : généralités

● Avantages
– Intégrations progressives
– Développements moins complexes
– Meilleure visibilité dans planification itérations

● Inconvénient
– Planification à chaque itération

13
Cycles de vie du logiciel
CdV itératifs : modèle incrémental
Cycles de vie du logiciel
CdV itératifs : modèle incrémental
● Autres caractéristiques
– Itération sur les étapes conception détaillée, codage, tests : la
réalisation se fait par incréments de fonctionnalité

● Autres avantages
– Permet de prendre en compte l’analyse des risques
– Les changements pour les utilisateurs peuvent être progressifs


Convient pour les grands projets (potentiellement
nombre important d’itérations)
Cycles de vie du logiciel
CdV itératifs : modèle avec prototypage
● Prototype
– Définition : mouture incomplète du logiciel en
développement ; il en offre
● Les principales fonctions
● Une architecture provisoire
– Trois types
● Prototype rapide ou maquette
● Prototype exploratoire
● Prototype évolutif
Cycles de vie du logiciel
CdV itératifs : modèle avec prototypage
● Prototype
– Définition

– Trois types
● Prototype rapide ou maquette :
– modèle réduit présentant les éléments d’interface ainsi que
l’enchaînement des écrans : la maquette a l’apparence externe du
logiciel mais n’en offre aucune fonction
– Permet d’avoir une idée des fonctionnalités à partir de l’interface
– Utilisé dans les phases d’analyse des besoins et de spécifications
● Prototype exploratoire
● Prototype évolutif
Cycles de vie du logiciel
CdV itératifs : modèle avec prototypage
● Prototype
– Définition

– Trois types
● Prototype rapide ou maquette
● Prototype exploratoire ou expérimental
– Mise en œuvre test de certaines fonctions (critiques) pour s’assurer
de leur faisabilité et valider les options de conception
– Utilisé dans la phase de conception
– Généralement jetable
● Prototype évolutif
– Mise en œuvre partielle des résultats de conception
– La première version constitue l’embryon du logiciel.
Cycles de vie du logiciel
CdV itératifs : modèle avec prototypage
● Idées maîtresses
– Expérimenter pour acquérir de la connaissance et comprendre
– N e pas travailler en aveugle
– Utilisateurs seuls à savoir c e que doit faire le logiciel
● Validation impossible à partir de documents
● Nécessité de voir fonctionner
– Possibilités d’accroître progressivement les fonctions
● cycles spécification – conception – fabrication – installation
● Découpage vertical de l’ensemble des tâches
– Utilisation technologies du début des années 80
● Langage de haut niveau
● Interface utilisateur graphique
Cycles de vie du logiciel
CdV itératifs : modèle avec prototypage
Cycles de vie du logiciel
CdV itératifs : modèle avec prototypage
Cycles de vie du logiciel
CdV itératifs : modèle en spirale
● Quelques risques répertoriés
– Risques répertoriés Défaillance
– de personnel Calendrier
– irréaliste
– Développement de fonctions inappropriées Développement
– d’interfaces utilisateurs inappropriées Produit « plaqué or »
– Volatilité des besoins Composants
– externes manquants Tâches externes
– défaillantes Problèmes de
– performances
– Exigences démesurées par rapport à la technologie
Cycles de vie du logiciel
CdV itératifs : modèle en spirale
● Caractéristiques
– Chaque cycle (itération) comporte quatre phases
● Détermination des objectifs, alternatives et contraintes
● Analyse et évaluation des risques et des alternatives
● Développement et vérification de la solution retenue
● Revue des résultats et planification du cycle suivant
● Avantages
– validation concrète sur prototype


limitation du risque

– flexibilité


Inconvénients
– mise en œuvre assez lourde
– pas assez documenté
● Adapté pour les projets innovants à risques et grands enjeux
Cycles de vie du logiciel
Résumé comparaison CdV séquentiels et itératifs
● Les deux familles de CdV donnent lieu à deux classes de méthodes
Clas s iq u e s A gile s
Cycles de vie Séquentiels Itératif et incrémental
Planification Prédictive Adaptative
Documentation Quantité importante Réduite au strict nécessaire
Contrôle qualité A la fin Précoce et permanent

Mesure du Respects des coûts, Satisfaction du client par la livraison de


succès délais et qualité valeur ajoutée
Déploiement Unitaire Incrémental (selon la cible ou selon les
fonctions)
Exemples MERISE ASD (Adaptative Software
Developpment), RAD (Rapid Application
Developpment), Crystal, UP
Cycles de vie du logiciel
Facteurs de choix d’un CdV
● Nature du produit visé (logiciel sur mesure, grand public, …
● Risques liés
– aux besoins,
– aux spécifications, à
– la faisabilité,
– à l’équipe …
● Contraintes client
● Contraintes internes à l’équipe
Cycles de vie du logiciel
Exercice : choisir un CdV pour...
● Logiciel de gestion de personnel (congé, paie, …)
● Pilotage temps réel d’un robot à distance Nouvelle

● version d’un produit grand public Besoins mal

● cernés, client pressé

● Besoins précis, développement long


Cycles de vie du
logiciel Étapes et activités (1)
Étapes Activités
● Analyse des besoins ● Analyse des besoins
● Spécifications ● Conception
● Architecture ● Programmation
● Programmation ● Validation& vérification
● Test
● Préparation des tests
● Gestion projet/planification
● Livraison
● Assurance et contrôle qualité –
● Maintenance
gestion des versions
● Production de documents
Cycles de vie du logiciel
Étapes et activités (2)
Ét a p es Analyse des besoins Spécifications C o n c e p t i o n globale
Activités
Analyse des besoins Etude de l’existant, Mise à jour du cahier Mise à jour du cahier
recueil/définition des des charges des charges
besoins utilisateurs,
cahier des charges
Co n cep t i o n Analyse des risques et Etude détaillée du Définition de
de la faisabilité des logiciel, réalisation des l’architecture interne de
besoins, prototypage, maquettes/prototypes logiciel
étude de la répartition
hardware, software
P ro g ra mma t i o n Planification des Formation, achats des Acquisition/installation
formations, préparation/ outils des outils de
acquisition des outils … développement
Validation et Réunions de validation Réunions validation Réunions de validation
vérification de documents, doc., conception/achat de documents,
conception d’outils de outils de Valid/Vérif conception d’outils de
Valid/Vérif … Valid/Vérif …
Cycles de vie du logiciel
Étapes et activités (3)
Ét a p es Analyse des besoins Spécifications C o n c e p t i o n globale
Activités
Préparation des tests Préparation des tests Planification des tests Préparation intégration
d’acceptation (recette) système, acquisition des globale
outils de test

G e s t i o n de Contrats, choix du cycle Mise à jour des Mise à jour planning


projets/planification de vie, planning, planning et de
estimation des ressources, l’estimation des
montage de l’équipe de ressources
projet
A s s u ra n c e et contrôle Etablissement des Mise à jour du plan Mise à jour du plan
qualité – g es t i o n des procédures et du plan qualité, appropriation des qualité, appropriation des
versions qualité, choix d’outil de outils de gestion de outils de gestion de
gestion des versions version version

P ro d u c t io n de Cahier des charges, plan Dossier de Dossier de conception


d o c u men t s qualité, plan de spécifications, plan de (architecture), mise à jour
développement, plan de tests système, manuel manuel utilisateur, plan
tests d’acceptation utilisateur test d’intégration
Cycles de vie du logiciel
Étapes et activités (4)

Ét a p es Co n cep t i o n Tests unitaires Test intégration Tests système


Activités détaillée - c o d a g e
Analyse des Mise à jour besoins Mise à jour besoins Mise à jour besoins Mise à jour
besoins besoins

Co n cep t i o n Mise à jour Mise à jour Mise à jour Mise à jour


conception conception conception conception
P ro g ra mma t i Code, Réalisation jeux de Réalisation jeux de Réalisation jeux de
on documentation des test test test
composants Test et mise à jour mise à jour code
code
Validation et Validation Lancement des tests Lancement des Lancement des
vérification documents et code tests tests
Cycles de vie du logiciel
Étapes et activités (4)

Ét a p es Co n cep t i o n Tests unitaires Test intégration Tests système


Activités détaillée - c o d a g e
Préparation Préparation tests Installation outils Installation outils Installation outils
des tests unitaires test test test

G e s t i o n de Mise à jour planning Mise à jour planning Mise à jour Mise à jour
projets/planifi planning planning
cation
A s s u ra n c e et
contrôle
qualité –
g es t i o n des
versions
P ro d u c t io n de Dossier de Rapport de tests Rapport test Rapport de test,
d o c u men t s conception détaillée, unitaires d’intégration mise à jour de
plan des tests documents
unitaires, mise à
jour manuel
utilisateur
Cycles de vie du logiciel
Retenir

Il existe de nombreux modèles de processus de
développement logiciel

Chaque processus est plus ou moins approprié pour
des circonstances données

Quelque soit le processus adopté, il doit être
explicitement documenté : les entrées et les
résultats des différentes activités doivent être
clairement décrits.
QUESTIONS?

Vous aimerez peut-être aussi