Cours Génie Logiciel
2ème GI
ACADEMIE MILITAIRE
2024-2025
CHAPITRE 2:
CYCLES DE VIE D’UN
LOGICIEL
11/09/2024 2
Plan du chapitre
1. Introduction
2. Le cycle de vie d’un logiciel
3. Les activités
4. Les modèles de cycle de vie
Modèle en cascade
Modèle en V
Modèle par prototypage (par incrément, en spirale, …)
11/09/2024 3
1. Introduction
• Dans la réalisation d'un programme simple, fait par
une personne, il est possible de distinguer 3 phases:
1. la phase d'analyse du problème;
2. la phase de codage et de mise au point;
3. la phase d'opération (le programme est opérationnel).
• Cette approche n'est pas appropriée pour un projet
important impliquant plusieurs personnes.
• On n’arrive plus à maitriser le processus de développement
• Le client n’est pas satisfait
• C’est difficile et couteux de maintenir après
• …
• Solution: l’arrivée du GL et la proposition de cycles de
vie de logiciels
11/09/2024 4
2. Cycle de vie du logiciel
• Cycle de Vie du Logiciel (CVL)
• démarre par la décision de développement d’un logiciel
• se termine par la mise en service du logiciel
• Décrit les principales phases de son développement et les produits
livrables
• Processus logiciel
• Un processus ou un procédé logiciel (software process) est un
ensemble d’activités conduisant à la production d’un logiciel
• Décrit les tâches bas niveau qui le composent ainsi que leur
enchaînement, les artefacts nécessaires et les acteurs responsables
de ces différentes tâches
11/09/2024 5
2. Cycle de vie du logiciel
En anglais : Software Development Life Cycle (SDLC)
11/09/2024 6
2. Cycle de vie du logiciel
Apports du SDLC :
• Réduire le coût de développement des logiciels
• Améliorer la qualité des logiciels fournis
• Raccourcir les délais
• Aider les développeurs à mieux comprendre le Pourquoi?
Limites et risques du SDLC :
• Réduire la communication et la collaboration entre les départements
(l’organisation consiste à ne passer à une étape que si on a terminé et
validé l’étape avant)
• Non flexible (processus linéaire)
• Risque de défaillance : si l’équipe n’évalue pas correctement à la 1ère
phase, les besoins du marché, cela peut conduire à un échec du produit
11/09/2024 7
2. Cycle de vie du logiciel
Avant-projet Exploitation &
Développement Maintenance
Retrait
de projet
Gestion
Initiation Planification, Pilotage & Suivi
du projet Gestion de qualité Évaluation
Analyse
Activités techniques
Conception
Implémentation
Étude Tests Maintenance
&
préalable
Installation Assistance
Documentation
Vérification et Validation (V&V)
Gestion des configurations
11/09/2024 8
3. Les activités de développement
• Plusieurs activités :
• Analyse des besoins
• Conception globale
• Conception détaillée
• Implémentation
• Tests
• Installation
• Maintenance
• Activités Parallèles, Processus globaux
11/09/2024 9
3.0 Etude Préalable
Le Pourquoi ?
• Définition globale du problème
• Évaluation des stratégies possibles
Documents élaborés dans cette phase
rapport d’analyse préliminaire + cahier des charges du projet
11/09/2024 10
3.1 Analyse des besoins
Le Quoi ?
• Objectif : exprimer les besoins de l’utilisateur sous forme
précise
• Définition : l’analyse comprend les étapes suivantes:
• Étude d’un problème dont les limites sont définies
• Le choix d’une solution
• La définition et l’élaboration de cette solution en vue d’un traitement
informatique (fonctions, données, entrées/sorties et caractéristiques
utilisateurs)
11/09/2024 11
3.1 Analyse des besoins
• Entrée
Cahier des charges du projet
• Tâches
analyse des besoins de l’utilisateur
spécification du logiciel à réaliser
• Sortie
spécification du logiciel :
fonctions du logiciel
performances requises
interfaces (utilisateur, autres logiciels, matériel)
contraintes de réalisation
• Documents élaborés dans cette phase
• Cahier des charges du logiciel, document de spécification
(Spécifications globales du système & Spécifications des sous-systèmes)
11/09/2024 12
Le Comment ?
3.2 Conception globale
Processus durant lequel on doit IMAGINER, PROPOSER
une architecture pour satisfaire les spécifications
(objectifs et contraintes)
Décomposition en modules, et mise en évidence des
frontières entre ces modules, structuration de l’ensemble
Recherche de plusieurs solutions, comparaison et choix
entre les différentes alternatives de conception
A la fin de cette étape on doit disposer d’un modèle :
COMPLET
COHERENT
MAINTENABLE
TESTABLE
11/09/2024 13
3.2 Conception globale
Entrée
Document de spécification
Tâches
Trouver une solution pour réaliser le logiciel
Définir l’architecture du logiciel :
les composants de l’architecture
les interfaces entre les composants
Sortie
Architecture du logiciel à réaliser
Documents élaborés dans cette phase
document de conception globale
11/09/2024 14
3.3 Conception détaillée
• Étape qui achève la conception globale, sur le plan
ALGORITHMIQUE et STRUCTURATION de DONNEES,
jusqu’à un niveau satisfaisant pour permettre le
CODAGE.
• Les principales activités sont :
• Description précises des traitements, des données et
des interfaces de chaque module
• Résolution des algorithmes
11/09/2024 15
3.3 Conception détaillée
• Entrée
Document de conception globale
• Tâches
• raffiner la décomposition jusqu’à aboutir à des
composants élémentaires
• détailler chaque composant élémentaire
• Sortie
description détaillée de chaque composant :
interfaces
Algorithmes
• Documents élaborés dans cette phase
• document de conception détaillée
11/09/2024 16
3.4 Implémentation
• Entrée
Document de conception détaillée
• Tâches
Transformation des descriptions des composants
en code, écrit dans un langage de programmation
• Sortie
Composants logiciels compilés
• Documents élaborés dans cette phase
Document technique d’implémentation
11/09/2024 17
3.5 Tests & intégration
Tests unitaire
Tests des modules
Tests d’intégration
Composition progressive des modules
Tests des regroupements
Tests du système
Test en vraie grandeur du système complet
Documents : rapport de test
Tests de non régression
A la suite d'une modification, montrer que le logiciel n'est pas altéré par rapport à sa
version précédente.
11/09/2024 18
3.6 Installation
• Entrée
logiciel assemblé
• Tâches
Installer le logiciel chez le client, dans son
environnement d’exploitation
Effectuer les tests de réception en utilisant un
document de validation
• Sortie
• logiciel installé
• fourniture des documents :
• manuel d’installation
• manuel d’exploitation
11/09/2024 19
3.7 Exploitation et Maintenance
• Il y a différents types de maintenance :
• La correction des défauts résiduels (Maintenance
CORRECTIVE : 20%)
• L’adaptation du logiciel à un nouvel environnement
(Maintenance ADPATATIVE : 20%)
• La mise à jour du logiciel à la suite de modification des
spécification d’un point de vue fonctionnel ou
performance (Maintenance EVOLUTIVE : 60%)
• La maintenabilité ou la facilité de la maintenance
est préparée lors des étapes de conception.
11/09/2024 20
La Documentation
• C'est l'enregistrement de tout ce qui pourrait être connu à
propos d'un système.
• Elle permet la communication entre les différents intervenants :
analystes, concepteurs, développeurs, testeurs, …
• Indication de l'évolution et du comportement du système :
Gestion du projet
• Trace de toute prise de décision, toutes les informations du
système : Maintenance
• Utilisation et administration du système : Utilisateurs
• etc..
• Il y a plusieurs types de documentation (principalement le
manuel d’utilisation et le document technique de conception et
développement)
11/09/2024 21
Vérification & Validation (V&V)
Vérification : « Est ce que nous construisons bien le
produit? »
Validation : « Est ce que nous construisons le bon
produit? »
A la livraison du logiciel:
Validation des besoins
=> Contrôle du respect des spécifications du logiciel et des besoins
=> Démonstration que les performances réelles sont conformes aux
spécifications de performances
Vérification de tous les éléments constituant la fourniture
du logiciel : code, rapports, manuels, documentation,
jeux de tests, etc.
11/09/2024 22
Gestion de configuration
Par cette activité on cherche à gérer l’ensemble des
composants d’un logiciel.
• Entrée: les composants + description des configurations
• Tâches: gérer les composants du système, leur évolution,
leur mise à jour, leur intégration.
• Sortie: documents décrivant:
• les exécutables
• les configurations
11/09/2024 23
Approche traditionnelle avec les activités
définies
POURQUOI ? Pré-Analyse Non => Abandon
Oui + Cahier des charges du Projet
QUOI ? Analyse
Cahier des Charges
COMMENT ? Conception
Découpage en modules Développement
Implémentation
Code
Test
Logiciel opérationnel
Maintenance
11/09/2024 24
4. Modèles de Cycle de vie du logiciel
Plusieurs modèles de cycle de vie existent:
Modèle de la cascade (plusieurs variantes)
Modèle en V
Modèle du prototypage
Modèle en spirale
Modèle incrémental
Modèle Agile
A l’avenir ….. ??
25
4. Modèles de Cycle de vie du logiciel
Il existe deux types de modèles dans lesquels s’insèrent deux classes de
méthodes:
26
4. Modèles de Cycle de vie du logiciel
Choix d’un Modèle
Aucun modèle n’est meilleur que l’autre
Le choix se fait selon certains critères tels que la nature du projet, sa
taille, la nature du client et les compétences de l’équipe
11/09/2024 27
4.1 Modèle de la cascade
Analyse V&V Royce70, Boehm76
• Documents à la fin de chaque phase
Conception V&V
Codage V&V
Tests unitaires V&V
Intégration
et Tests V&V
Exploitation /
Maintenance
11/09/2024 28
4.1 Modèle de la cascade
• Chaque fin d’étape est matérialisée par un événement où s’exerce une
activité de contrôle (VERIFICATION et VALIDATION) afin d’éliminer au
plus tôt les anomalies des produits réalisés. Le passage à l’étape suivante
est conditionné par le résultat de contrôle (acceptation, rejet, ajournement)
• Autant que possible, les retours en arrière sur les étapes précédentes se
limitent à un retour sur l’étape immédiatement antérieure.
• Avantages
• Facile à comprendre (bien structuré et clair)
• Le plus utilisé dans l’industrie
• Limites
• Rigide aux changements: Il est rare que le client puisse fournir toutes les
spécifications dès le début du projet.
• Le client ne reçoit pas les résultats concrets pendant le développement du
logiciel et il ne voit rien qu’à la fin
11/09/2024 27
4.2 Modèle en V
Installation
Analyse
et Tests
V&V
Conception Intégration
Globale et Tests
Conception
Tests unitaires
Détaillée
Codage
11/09/2024 30
Modèle en V : Principe
• Les premières étapes du cycle doivent préparer les
dernières étapes, essentiellement les activités de
vérification et de validation.
• Deux sortes de dépendances entre étapes :
• Traits continu : correspondent à l’enchaînement et à l’itération éventuelle
du modèle de la cascade, les étapes se déroulent séquentiellement en
suivant le V de gauche à droite
• Traits non continus : Une partie des résultats de l’étape de départ est
utilisée directement par l’étape d’arrivée.
Par exemple : à l’issue de la conception, le protocole d’intégration et les
jeux de tests d’intégration doivent être complètement décrits.
11/09/2024 29
Modèle en V : Avantages & Limites
• Avantages :
• Avec toute décomposition doit être décrite la recomposition, toute
description d’un composant est accompagnée de tests .
• Principe qui évite un écueil (obstacle) bien connu de la spécification : on
énonce une propriété qu’il est impossible de vérifier objectivement une
fois le logiciel réalisé.
• L’obligation de concevoir les jeux de tests et leurs résultats oblige à une
réflexion et à des retours sur la description en cours.
• Les étapes de la branche droite du V peuvent être mieux préparés et
planifiés.
• Bien adapté pour les projets bien définis et les projets à haut risque
(Industrie aérospatiale, médicale ou automobile)
• Limites:
• Pas de résultats intermédiaires dont on peut discuter avec le client.
• Le client est toujours isolé après l’analyse et refait apparition à la livraison.
• Demande plus de temps et d’argent
11/09/2024 30
4.3 Modèles - Prototypage
Analyse
Spécifications et sélection
préliminaire des nouvelles État non
des besoins satisfaisant
fonctions
Construction
du prototype
Évaluation
expérimentation
État satisfaisant
Expression claire
des besoins réels
Spécifications
définitives
11/09/2024 31
Modèle du Prototypage
• Principe
• Initialement, les spécifications données par le client sont d’ordre général
• Raffinement des spécifications, des fonctionnalités et performances par
des prototypes successifs.
• Plusieurs techniques de réalisation
(langage de spécif. exécutable, L4G, langages de très haut niveau, etc.)
On distingue 3 catégories de prototypes:
1- Maquette (ou prototype jetable)
2- Prototype exploratoire
(permet de choisir entre plusieurs solutions)
3- Prototype évolutif
(prototype évoluant vers la solution finale)
11/09/2024 32
Modèle du Prototypage
Situations favorables au prototypage:
1- Utilisateur incapable de graduer ses besoins
2- Besoins mouvants
3- Souplesse exigée: incapacité de pointer les parties
stables et paramétrisables
4- Système très interactif, convivialité critique de l’interface
5- Système informationnel
11/09/2024 33
Modèle du Prototypage
Situations favorables au prototypage (suite):
6- Système rarement actif, performance non essentielle mais
importance des facteurs humains
7- Usagers réticents à se familiariser avec les outils
informatiques
8- Nécessiter de vérifier des concepts nouveaux
9- Nouveau domaine d’application pour l’informaticien
10- Usager souhaitant utiliser rapidement une version
incomplète du système.
11/09/2024 34
Modèle du Prototypage
Situations défavorables au prototypage:
1- Trop grande urgence et importance critique du système
(système électoral, système de gestion des jeux olympiques,
etc…).
2- Carence d’outils informatiques adéquats pour le prototypage.
3- Opposition de la direction ou du chef de projet.
4- Non disponibilité de l’utilisateur final pour collaborer.
11/09/2024 35
Modèles Prototypage : avantages et limites
Avantages
• Le client participe activement dans le développement du produit;
• Le client reçoit des résultats tangibles rapidement ; expérimentation rapide
ou des fonctions voulue par les utilisateurs
• Introduction d’un feedback immédiat de la part des utilisateurs
• Amélioration de la COMMUNICATION entre d’une part le client et
l’analyste, d’autre part l’analyste et le concepteur
• Le prototype peut servir d’apprentissage pour les futurs utilisateurs
Limites
- Le prototype est un prétexte pour la non application des approches
méthodologiques ;
- - Risque de tomber dans le syndrome du « jamais fini »
11/09/2024 36
Modèle du Prototypage
Critères d’arrêt du cycle de prototypage:
1- Temps limité pour la réalisation du système ou disponibilité
limitée de l’utilisateur.
2- Limites budgétaires.
3- Qualité suffisante des résultats ( obtention d’un consensus).
4- Economie d’échelle: comparaison des gains escomptés par
une autre itération versus le coût de celle-ci.
5- Atteinte des objectifs.
11/09/2024 37
4.4 Modèle enPlanification
spirale
Communication Analyse des risques
avec le client
Ingénierie
Évaluation par
le client
Construction et
déploiement
11/09/2024 38
Modèle en spirale : Principe
Modèle plus général que les autres modèles
Il met l’accent sur une activité particulière : l’analyse des
risques
Le modèle est divisé en « région-tâches » qui sont :
Communication avec le client et détermination des objectifs du cycle, des
alternatives pour les atteindre, les contraintes à partir du résultat
précédent, analyse préliminaire des besoins…
Planification des activités du projet
Analyse des risques, évaluation des alternatives…
Ingénierie nécessaire à la réalisation des activités
Déploiement des activités
Vérification de la solution retenue par le client et planification du cycle
suivant.
11/09/2024 39
Modèle en spirale : Principe …
• Les activités du projet commencent par le spiral le plus
profond
• Chaque tour passe par les région tâches
• L’accomplissement des phases du projet est le résultat de
l’application des tâches prescrites par les régions
• Un tour du modèle résulte en un prototype
• On obtient un raffinement du produit en parcourant
plusieurs tours du modèle
11/09/2024 40
Modèle en spirale : Exemple
Planification
Analyse
Communication des risques
avec le client
Les phases du modèle
a) Spécification a
du logiciel b
b) Prototype 1 Évaluation c Ingénierie
c) Prototype 2 par le client d
d) Produit final
Construction et
déploiement
11/09/2024 41
Modèle en spirale : explication de l’exemple
Le premier tour résulte de la spécification du logiciel, les
tâches à réaliser pour cette spécification :
Communiquer avec le client pour obtenir les spécifications
Planifier le projet et les étapes de l’analyse des spécifications
Évaluer les risques technologiques des techniques d’analyse
Décider sur les techniques à utiliser pour l’analyse des spécifications
Réalisation proprement dite de l’analyse des spécifications
Présenter les résultats au client
On réalisera les autres tours du modèle de la même
façon
On profitera de la région « planification » pour réajuster
le plan du projet
11/09/2024 42
Modèle en spirale
D
Barry W. Boehm, A Spiral Model of Software Development and Enhancement,
IEE Computer, May 1988.
11/09/2024 43
Modèle en spirale : Avantages et Limites
AVANTAGES
Modèle réaliste et naturel
Conserve le caractère « étapiste » du modèle en cascade
mais l’intègre dans une approche itérative
Le risque est un facteur qui est tenu en compte
explicitement dans ce modèle.
Limites
Il est difficile de faire comprendre au client le mode
d’opération de ce modèle
L’évaluation des risques exige une expertise spécifique
11/09/2024 44
4.5 Modèle Incrémental : Principe
Développer des application en étendant
PROGRESSIVEMENT ses fonctionnalités.
Les spécifications du logiciel sont figées et connues,
l’étape de conception globale est terminée
La stratégie consiste à développer le logiciel par extension
successives à partir d’un produit « Noyau » du logiciel.
Permet d’éviter de TOUT CONCEVOIR, de TOUT CODER
et de TOUT TESTER comme l’approche en cascade
Cette technique a des répercussions sur la répartition des
efforts en fonction du temps, puisqu’il existe une possibilité
de recouvrement des étapes.
11/09/2024 45
Modèle Incrémental : Principe
Incrément 1 Conception Conception Programmation Tests
globale détaillée
Conception Conception Programmation …
Incrément 2
globale détaillée
Incrément 3 Conception Conception …
globale détaillée
temps
11/09/2024 46
Modèle Incrémental : Avantages et Limites
AVANTAGES
• Chaque développement est moins complexe
• Les intégrations sont progressives
• Il peut y avoir des livraisons et des mises en service après chaque
intégration d’incrément
• Permet d’optimiser le temps et le partage de tâche (contrairement
aux autres modèles)
• Diminution d’effort pendant la phase de tests d’intégration
Limites
• Le risque majeur de ce modèle est de voir remettre en cause le
noyau ou les incréments précédents (définition globale des
incréments et de leurs interactions dès le début du projet).
• Les incréments doivent être indépendants aussi bien
fonctionnellement qu’au niveau des calendriers de développement.
11/09/2024 49
Question synthèse :
Quel serait d’après vous le meilleur modèle de cycle de
vie pour un projet informatique donné ?
Précisez des critères de choix en fonction des caractéristiques du
projet ainsi que du contexte de développement de ce projet.