UNIVERSITE ABDELHAMID IBN BADIS MOSTAGANEM 1
FACULTE DES SCIENCES EXACTES ET DE L’INFORMATIQUE
DEPARTEMENT DE MATHEMATIQUES ET INFORMATIQUE
Licence -3-
Génie Logiciel
2. Cycle de vie
2021-2022
2
2. 1 Processus de développement logiciel
Ensemble d'activités successives, organisées en
vue de la production d'un logiciel
En pratique :
Pas de processus idéal
Choix du processus en fonction des contraintes
(taille des équipes, temps, qualité...)
Adaptation de « processus types » aux besoins
réels
3
2.1 Processus de développement logiciel
Activités du développement logiciel
● Analyse des besoins
● Spécification
● Conception
● Programmation
● Test: Validation & Vérification
● Maintenance
Pour chaque activité : Utilisation et production
de documents
2.2 Activités du développement logiciel
a) Analyse des besoins:
But: Eviter de développer un logiciel non adéquat. On va étudier le
domaine d’application ainsi que l’état actuel et futur de l’environnement
du système afin d’en déterminer:
Les frontières, Le Rôle, Les ressources disponibles et requises, Les
contraintes d’utilisation et performance … etc.
2.2 Activités du développement logiciel
b)Spécification des besoins:
But: Etablir une première description du futur système. pour produire
une description de ce que doit faire le système mais sans préciser
comment il le fait
2.2 Activités du développement logiciel
c) Conception:
But: Enrichir la description du logiciel de détails d'implémentation afin
d'aboutir à une description très proche d'un programme (décrire le
comment).
●
La conception architecturale (ou conception globale) a pour but de
décomposer le logiciel en composants plus simples, définis par leurs
interfaces et leurs fonctions (les services qu'ils rendent).
●
La conception détaillée fournit pour chaque composant une description de
la manière dont les fonctions ou les services sont réalisés : algorithmes,
représentation des données.
2.2 Activités du développement logiciel
d) Programmation:
Implantation de la solution conçue
●
Choix de l'environnement de développement, du/des langage(s) de
programmation, de normes de développement...
2.2 Activités du développement logiciel
e) Gestion de configuration et intégration:
La gestion de configurations a pour but de maîtriser l'évolution et la mise à
jour des composants tout au long du processus de développement.
L'intégration a pour but de réaliser un ou plusieurs systèmes exécutables à
partir des composants (Combiner les composants).
2.2 Activités du développement logiciel
f) Validation et vérification:
La validation a pour but de répondre à la délicate question : a-t-on décrit le
bon système, celui qui répond à l'attente des utilisateurs.
La vérification répond à la question : le développement est-il correct par
rapport à la spécification globale ? Ce qui consiste à s'assurer que les
description successives et le logiciel lui-même satisfont la spécification.
2.2 Activités du développement logiciel
g) Maintenance:
Il s'agit d'apporter des modifications à un logiciel existant. C'est la
phase la plus coûteuse (70% du coût total)
Types:
●
Maintenance corrective,
●
Maintenance perfective,
●
Maintenance adaptative.
2.2 Activités du développement logiciel
12
2.2 Activités du développement logiciel
Répartition de l'effort
13
2.2 Activités du développement logiciel
Rapport effort/erreur/coût
14
2.3 Cycle de vie
modèles de cycle de vie
Les modèles de cycle de vie du logiciel décrivent à un niveau
très abstrait et idéalisé les différentes manières d’organiser la
production. Les étapes, leur ordonnancement, et parfois les
critères pour passer d’une étape à une autre sont explicités.
la différence entre étapes (découpage temporel) et activités
(découpage selon la nature du travail). Il y a des activités qui se
déroulent dans plusieurs étapes (ex : la spécification, la
validation et la vérification), voire dans toutes les étapes (ex : la
documentation).
15
2.3 Cycle de vie
L'objectif d'un tel découpage est de :
• Permettre de définir des jalons intermédiaires permettant la
validation du développement logiciel, c'est-à-dire la conformité
du logiciel avec les besoins exprimés
• La vérification du processus de développement, c'est-à-dire
l'adéquation des méthodes mises en œuvre.
• L'origine de ce découpage provient du constat que les erreurs
ont un coût d'autant plus élevé qu'elles sont détectées
tardivement dans le processus de réalisation: Le cycle de vie doit
permettre de détecter les erreurs au plus tôt et ainsi de
maîtriser la qualité du logiciel, les délais de sa réalisation et les
coûts associés
16
2.3 Cycle de vie
2.3.1 Modèle en cascade
L’un des premiers modèles proposés, inspiré du modèle de Royce (1970)
Aussi appelé modèle linéaire
Le résultat de chaque phase est un ensemble de livrables,
Une phase ne peut démarrer que si la précédente est finie
Le modèle académique par excellence
Avantages :
Facile à utiliser et à comprendre
Un procédé structuré pour une équipe inexpérimentée
Idéal pour la gestion et le suivi de projets
Fonctionne très bien quand la qualité est plus importante que les coûts et
les délais
17
2.3 Cycle de vie
2.3.1 Modèle en cascade
18
2.3 Cycle de vie
2.3.1 Modèle en cascade
Inconvénients :
Les besoins des clients sont très rarement stables et clairement
définis
Sensibilité aux nouveaux besoins : refaire tout le procédé
Une phase ne peut démarrer que si l’étape précédente est finie
Le produit n’est visible qu’à la fin
Les risques se décalent vers la fin
Très faible implication du client
19
2.3 Cycle de vie
2.3.2 Modèle en V
•Variante du modèle en cascade qui fait l’accent sur la
vérification et la validation
•Le test du produit se fait en parallèle par rapport aux
autres activités
Avantages :
Met l’accent sur lest tests et la validation et par
conséquent, ça accroît la qualité du logiciel
Chaque livrable doit être testable
Facile à planifier dans une gestion de projets
Facile à utiliser
20
2.3 Cycle de vie
2.3.2 Modèle en V
Inconvénients :
●
Ne gère pas les activités
parallèles
●
Ne gère pas explicitement les
changements des
spécifications
●
Ne contient pas d’activités
d’analyse de risque
21
2.3 Cycle de vie
Evolution du logiciel
• Les logiciels sont flexibles et peuvent évoluer
• Les exigences peuvent changer avec les
évolutions de l’environnement (législatifs,
financiers, techniques, etc)
22
2.3 Cycle de vie
2.3.3 Modèle Incrémental
Chaque incrément est une construction partielle du logiciel
Trie les spécifications par priorités et les regroupent dans des
groupes de spécifications
Chaque incrément implémente un ou plusieurs groupes jusqu’à ce
que la totalité du produit soit finie
Avantages
Développement de fonctionnalités à risque en premier
Chaque incrément donne un produit fonctionnel
Le client intervient à la fin de chaque incrément
Utiliser l’approche « diviser pour régner »
Le client entre en relation avec le produit très tôt
23
2.3 Cycle de vie
2.3.3 Modèle Incrémental
24
2.3 Cycle de vie
2.3.3 Modèle Incrémental
• Inconvénients
Exige une bonne planification et une bonne conception
Exige une vision sur le produit fini pour pouvoir le
diviser en incréments
Le coût total du système peut être cher
25
2.3 Cycle de vie
2.3.4 Prototypage
Le projet se fait sur plusieurs itérations
Les développeurs construisent un prototype selon les attentes du client
Le prototype est évalué par le client
Le client donne son feedback
Les développeurs adaptent le prototype selon les besoins du client
Quand le prototype satisfait le client, le code est normalisé selon les
standards et les bonnes pratiques
Avantages
Implication active du client
Le développeur apprend directement du client
S’adapte rapidement aux changements des besoins
Progrès constant et visible
Une grande interaction avec le produit
26
2.3 Cycle de vie
2.3.4 Prototypage
27
2.3 Cycle de vie
2.3.4 Prototypage
Prototypes
expérimenta
exploratoire évolutif
l
28
2.3 Cycle de vie
2.3.5 Modèle de spirale
Modèle itératif
Des incréments sous forme de cycle
À la fin de chaque cycle on détermine les objectifs du cycle suivant
Chaque cycle est composé des même activités que du modèle en
cascade
Inclut l’analyse de risque et le prototypage
Avantages
Identification rapide des risques
Impacts minimaux des risques sur le projet
Fonctions critiques développées en premier
Feedback rapide du client
Une évaluation continue du procédé
29
2.3 Cycle de vie
2.3.5 Modèle de spirale
30
2.3 Cycle de vie
2.3.5 Modèle de spirale
Inconvénients
L’évaluation des risques peut prendre beaucoup de temps
Le modèle est très complexe
La spirale peut s’éterniser
Les développeurs doivent être réaffectés pendant les
phases de non-développement
Les objectifs ne sont pas souvent faciles à formuler
31
2.4 Bilan des méthodes traditionnelles
• Les modèles traditionnelles sont théoriquement complets
mais proposent des approches de développement rigides et
figées.
• Ils supposent que: l'analyse est capable de spécifier
correctement les besoins et que ces besoins sont stables
• Problèmes
▫ 90% des dépenses concernent la maintenance et l'évolution
• Conséquences:
▫ Émergence des méthodes agiles
32
2.5 Définition Agile
Au milieu des années 90, un groupe d’expert en
Cycles de vie de logiciels voulaient proposer de
nouveaux modèles
Les nouveaux modèles sont plus « légers » : moins
de documentation et moins de contrôle sur le procédé
Ces modèles s’adresse à des projets de petite ou
moyenne taille avec une équipe réduite
33
2.5 Définition Agile
Ces modèles permettent de s’ajuster rapidement aux changements
des spécifications tout en garantissant des livraisons fréquentes
Ces modèles sont qualifiés de « modèles agiles »
Une méthode agile est une approche itérative et incrémentale, qui
est menée dans un esprit collaboratif,
Elle génère un produit de haute qualité tout en prenant en compte
l’évolution des besoins des clients.
34
2.5 Définition Agile
Les valeurs de l'agilité
35
2.5 Définition Agile
Les 12 principes du manifeste agile
Considérer comme
Livrer fréquemment Fonctionnels et
naturel les
Satisfaire le client une application développeurs
changements
fonctionnelle travaillent ensemble
d’exigences
Un logiciel
L’échange Le rythme de
Bâtissez le projet fonctionnel est la
d’information le plus développement doit
autour de personnes meilleure façon de
efficace est en face à être soutenable
motivées mesurer l’avancement
face indéfiniment
du projet
Architectures,
Simplicité - l'art de Vérifier en continue Régulièrement,
spécifications et
maximiser la quantité l’excellence des réflexion de l’équipe
conceptions issues
de travail à ne pas pratiques et pour être plus
d'équipes auto-
faire - est essentielle techniques efficace !
organisées
36
2.5 Définition Agile
Principales méthodologies agiles
37
2.5 Définition Agile
Principales méthodologies agiles
38
Quiz
Comment dessiner la Monalisa d’une
façon:
Incrémental
Itératif
Incrémental & Itératif