Académique Documents
Professionnel Documents
Culture Documents
d'ingénierie et
d'intégration des
systèmes
Dr. Rim zarrouk
Objectifs :
Chaque étudiant doit être capable de :
• Maitriser les principes agiles.
• Maitriser le travail en groupe dans le contexte d’un projet Scrum
• Savoir appliquer les règles Scrum dans le contexte d’un projet
réel
Préface • Evaluer les besoins technologiques d'une entreprise lors de
l'implémentation et de la configuration de systèmes intégrés.
Prérequis:
25/01/2023 2
• Chapitre 1 : Cycle de vie du logiciel
25/01/2023 3
Chapitre 2 : MODÈLES
DE CYCLES DE VIE
Plan
• Processus unifié.
+ TD 1
25/01/2023 5
Les modèles de cycles de vie
1. Modèles classiques
• Modèles linéaires
• modèle en cascade
• modèle en V
• Modèles itératifs
• Processus unifié
• 2TUP
25/01/2023 6
MODÈLES
CLASSIQUES
Linéaires
Le modèle en cascade
• Le cycle de vie en cascade a été décrit par Royce dès 1970.
25/01/2023 8
Le modèle en cascade
25/01/2023 9
Le modèle en cascade
• Chaque étape doit être achevée avant que ne débute la suivante.
• Chaque fin d’étape est matérialisé par un événement, où s’exerce une activité de contrôle
(Vérification 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)
• Les retours en arrière sur les étapes précédentes se limitent à un retour sur l’étape immédiatement
antérieure.
• Adapté aux projets dont les besoins sont clairs dès le début du projet.
25/01/2023 10
Le modèle en cascade: Bilan
• Avantage
• Facile à comprendre
• Inconvénients
• Il est rare que le client puisse fournir toutes les spécifications dès le début du projet.
25/01/2023 11
Le modèle en V
• Processus linéaire dérivé du modèle de la cascade;
25/01/2023 12
Le modèle en V
25/01/2023 13
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.
25/01/2023 14
Modèle en V: principe
• Deux sortes de dépendances entre étapes :
• Traits non continus : Une partie des résultats de l’étape de départ est utilisée
directement par l’étape d’arrivée.
25/01/2023 15
Modèle en V: Avantages
• Une meilleure spécification
25/01/2023 17
Cycle de vie linéaire
• Avantages
• Une meilleure solution si l’on maitrise le type de projet.
• Documentation abondante.
• Inconvénients
• Des difficultés surviennent s’il est impossible d’obtenir de l’utilisateur un énoncé
complet et cohérent de ses besoins.
§ Il est irréaliste de penser que l’on peut définir dès le départ, complètement et dans
le détail, ce que l’on veut réaliser et les résultats intermédiaires attendus.
• Il n’y a pas de feedback avant la livraison au client.
• L’environnement du logiciel peut être tellement mouvant qu’il est difficile de
construire le logiciel sur des spécifications figées.
§ Ils ne reflètent pas la façon dont le code est développé.
• Manque de flexibilité pour gérer les imprévus.
25/01/2023 18
MODÈLES
CLASSIQUES
Par prototypages
Modèle du prototypage
• Prototype = une version de tout ou d’une partie d’un logiciel, facile à mettre en œuvre et à modifier.
• Il n’est pas construit avec les mêmes contraintes de qualité que le logiciel final.
• Technique souvent utilisé pour la validation des spécifications MAIS peut être aussi utilisé à différentes
étapes du cycle de vie.
25/01/2023 20
Modèle du prototypage
• Initialement, les spécifications données par le client sont d’ordre général ;
• Raffinement des spécifications, des fonctionnalités et des performances par des prototypes
successifs.
• Quand le client donne son accord, le développement suit souvent un cycle de vie linéaire.
25/01/2023 21
Modèle du prototypage: Avantages
• Pour le client:
Une approche où domine l’écoute total du client.
• Pour l’utilisateur:
§ Expérimentation rapide par les utilisateurs et feedback immédiat.
§Amélioration de la COMMUNICATION entre d’une part le client et l’analyste, d’autre part l’analyste et le
concepteur
25/01/2023 22
Modèle du prototypage: Inconvénients
• Impatience du client qui croit avoir un logiciel final.
25/01/2023 23
MODÈLES
CLASSIQUES
itératifs
Modèle incrémental
• A été proposé dans les années 80
• Propose un développement du logiciel par morceaux, lesquels sont
livrés successivement au client, en venant se greffer à un noyau
logiciel.
25/01/2023 25
Modèle incrémental
25/01/2023 26
Modèle incrémental
• Un seul sous-ensemble des composants est développé à la fois
§ Un logiciel noyau est tout d’abord développé puis,
§ Des incréments sont successivement développés et intégrés
• Permet d’éviter de tout concevoir, de tout coder et de tout tester
• Les spécifications du logiciel sont figées et connues, l’étape de conception globale
est terminée.
• Certains modèles proposent de développer les différents incréments en parallèle:
25/01/2023 27
Modèle incrémental: Avantages
• Fournir des livraisons et des mises en service après chaque
intégration d’incrément ;
§ faire accepter progressivement un logiciel par les utilisateurs
• Intégration allégée: les intégrations et leurs tests sont progressifs ;
• Maintenance allégée (par incrément)
25/01/2023 28
Modèle incrémental: Inconvénients
• Un 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).
25/01/2023 29
Modèle en spirale
• A été proposé par Boehm en 1988
• Il met l’accent sur une activité particulière : l’analyse et la gestion des
risques
• Tient compte de la possibilité de réévaluer les risques et les gérer en
cours de développement.
• Le développement présente quatre grandes phases qui se succèdent au
fur et à mesure de la construction de la spirale,
• Au dernier tour de la spirale, le produit est totalement défini, les risques
résolus et le produit développé.
25/01/2023 30
Modèle en spirale
25/01/2023 31
Modèle en spirale
25/01/2023 32
Modèle en spirale
modèle
25/01/2023 33
Modèle en spirale
• Le modèle est divisé en « région-tâches »:
• Détermination des objectifs du cycle, des alternatives pour les atteindre et des
contraintes ; à partir de l'analyse préliminaire des besoins ou des résultats des
cycles précédents;
• Analyse des risques, évaluation des alternatives à partir de maquettage et/ou
prototypage;
• Développement et vérification de la solution retenue(un modèle cascade ou en
V peut être utilisé ici);
• Revue des résultats et planification du cycle suivant.
25/01/2023 34
Modèle en spirale: EXEMPLE DE RISQUES
• Risques humains
• défaillance du personnel ; surestimation des compétences; manque de motivation.
• Risques processus
• pas de gestion de projet; calendrier et budget irréalistes ;
• calendrier abandonné sous la pression des clients;
• tâches externes défaillantes ; validité des besoins ;
• développement de fonctions ou/et d’interfaces utilisateurs inappropriées.
• Risques technologiques
• changement de technologie en cours de route;
• problèmes de performance;
• exigences démesurées par rapport à la technologie.
25/01/2023 35
Modèle en spirale: exemple
25/01/2023 36
Modèle en spirale: application
• Le modèle en spirale s'applique essentiellement en interne, lorsque les
clients et les fournisseurs font partie de la même entreprise.
• Ou bien, il doit être adapté en signant des contrats partiels pour chaque itération.
25/01/2023 37
Modèle en spirale: Bilan
• Avantages
• Limitation du risque à chaque itération;
• Inconvénients
• Il est difficile de faire comprendre au client le mode d’opération de ce modèle;
• Une méthode agile est une approche itérative et incrémentale, qui est menée dans un esprit
collaboratif.
§ visent la satisfaction réelle du client en priorité aux termes d'un contrat de développement.
25/01/2023 40
Valeurs de l’agilité
• Un peu d’historique
• Dans le début des années 1980, une méthode de développement rapide d’application (le RAD) a été proposée. Elle a
été reprise en 1991 pour l’adapter au système français (RAD2).
• Dans la seconde moitié des années 90, une dizaine de méthodes agiles ont vu le jour (exples: « Extreme programming
» et SCRUM)
• En 2001-2017 grands noms du développement logiciel se sont réunis aux USA et ont réussi à extraire de leurs concepts
respectifs des critères pour définir une nouvelle façon de développer des logiciels.
• A l’issue de cette réunion est né le «Manifeste Agile» ( 4 valeurs fondamentales et 12 principes de fonctionnement).
• http://agilemanifesto.org/iso/fr/
25/01/2023 41
Valeurs de l’agilité
25/01/2023 42
Valeurs de l’agilité
1.Priorité aux personnes et aux interactions par rapport aux procédures et
aux outils …
• Ce sont les individus, leur expertise, l’esprit d’équipe (plutôt que les
processus et les outils) qui font la valeur du travail accompli:
§ Les processus qui définissent ce que doit faire chaque personne brident le potentiel
caché derrière chacun.
§ Faire interagir les gens au maximum permet d'améliorer grandement l'efficacité et
la qualité du travail fourni.
25/01/2023 43
Valeurs de l’agilité
2. Priorité aux applications fonctionnelles opérationnelles par rapport à une
documentation pléthorique
• Dans les méthodes Agiles, un seul critère permet de mesurer l'avancement d'un
projet : le logiciel qui fonctionne.
• La documentation n'est qu'un support concret qui aide à produire le logiciel.
• Les processus lourds génèrent une documentation exhaustive avec tous ses
inconvénients : ambiguïté du langage, coût de la rédaction, coût du maintien en
accord avec la réalité, etc.
25/01/2023 44
Valeurs de l’agilité
3. Priorité à la collaboration avec le client par rapport à la négociation de contrats
25/01/2023 45
Valeurs de l’agilité
4. Priorité à l’acceptation et la réactivité au changement par rapport au suivi d’un
plan.
§ Lorsqu’un plan est défini, l’équipe essaie de s’y tenir et ne fait pas attention à des
évènements extérieurs qui peuvent arriver à tout moment du projet.
§Le planning strict est à l'origine des conflits client/fournisseur classiques sur les
délais de livraison.
§Pour le client, pouvoir adapter les besoins en cours de projet est un atout
concurrentiel.
25/01/2023 46
Méthode
Classique
VS
Méthode
Agile
25/01/2023 47
Modèle agiles
• Parmi ces modèles, on trouve :
• SCRUM
• ASD (Adaptative Software Development)
• Crystal
• FDD (Feature Driven Development)
• DSDM (Dynamic Systems Development Method)
• AM (Agile Modeling)
• XP (eXtreme Programming)
• Kanban
• Ces méthodes sont regroupées par l’Agile Alliance
• www.AgileAlliance.org
25/01/2023 52
LES MÉTHODES «AGILE» DISPONIBLES
25/01/2023 53
SCRUM
Un modèle agile: SCRUM
• SCRUM a été formalisé en 1995 par:
• Jeff Sutherland http://jeffsutherland.com/
• KenSchwaber http://kenschwaber.wordpress.com/
25/01/2023 55
Un modèle agile: SCRUM
• Le coeur de Scrum est un sprint : un bloc de temps d’un mois ou moins durant lequel un incrément
du produit est réalisé.
25/01/2023 56
Un modèle agile: SCRUM
• Il est défini par ses créateurs comme un « Framework » (Cadre de
travail permettant de répondre à des problèmes complexes et
changeants tout en livrant de manière productive et créative des
produits de la plus grande valeur possible)
• Scrum est:
• Léger (Lightweight)
• Facile à comprendre (Simple to understand)
• Difficile à maîtriser (Extremely difficult to master)
25/01/2023 57
Un modèle agile: SCRUM
25/01/2023 58
Un modèle agile: SCRUM
25/01/2023 59
SCRUM: rôles
• Scrum master
• responsable devait de veiller à ce que le processus soit bien
compris et suivie
• Product Owner
• responsable de maximiser la valeur du travail qui fait l'équipe
scrum
• L'équipe
• responsable de la réalisation des travaux
25/01/2023 60
SCRUM: rôles
• Le scrum master
• responsable de la mise en œuvre des valeurs et des pratiques de
scrum.
25/01/2023 61
SCRUM: rôles
• Le product owner
• définir les caractéristiques du produit.
• Décider de la date de livraison et le contenu.
• Responsable de retour sur investissement du produit.
• Prioriser les fonctions conforment à leur valeur business
• ajuster les fonctions et leur priorité pour chaque sprint
• accepter ou rejeter les résultats
25/01/2023 62
SCRUM: rôles
• L'équipe
• ne comporte pas de rôles prédéfinis pour ses membres
25/01/2023 63
Scrum: les artifacts
• Product backlog :
• une liste priorisée de tout ce que ce qui peut être nécessaire dans le produit
• sprint backlog :
• une liste des tâches nécessaires pour transformer le backlog de produit dans
un incrément de produit potentiellement final.
• Release burndown:
• mesure le backlog des produits restant dans le temps
• Sprint burndown:
• mesure le sprint backlog restant durant le sprint
25/01/2023 64
SCRUM: Backlog du produit
• Le backlog du produit est une liste de user stories. Le product owner doit les ordonner par
priorité et estimer le temps nécessaire pour chaque user story en affectant des story points.
• Story point: Unité de mesure exprimant une estimation de l’effort demandé pour effectuer
une tâche.
• Exemple
§ Etc.
• Dans un sprint ne pas mettre les stories points > 5 -> diviser les user stories
25/01/2023 65
SCRUM: Backlog du produit
• Syntaxe de construction des User Stories :
§User Stories :
25/01/2023 66
SCRUM: Backlog du produit
25/01/2023 67
SCRUM: User Stories
25/01/2023 68
SCRUM: BurnDown Chart
25/01/2023 69
SCRUM:
bilan
25/01/2023 70
Les réunions SCRUM
25/01/2023 71
Les réunions SCRUM
• Mêlée quotidienne
25/01/2023 72
Les réunions SCRUM
• Revue de sprint
• Pour un sprint d’un mois, cette rencontre est limitée à un bloc de temps de
quatre heures.
• Identifier et ordonner les éléments majeurs qui se sont bien déroulés et les
améliorations potentielles ;
• Pour un sprint d’un mois, cette rencontre est limitée à un bloc de de trois heures.
25/01/2023 74
SCRUM: Taille de l’équipe de développement
• Une équipe de développement de taille optimale est assez petite pour demeurer agile et assez grande
§ Moins de trois membres dans l'équipe de développement diminue les interactions et entraîne des gains
de productivité moindres.
§Une équipe de développement trop petite risque de rencontrer des contraintes de compétences.
• Les grandes équipes de développement génèrent trop de complexité pour être gérées par un processus
empirique.
§ Processus empirique : basé sur l'expérience, nécessite une bonne visibilité, des inspections fréquentes et
• Inconvénients
25/01/2023 78
KANBAN-Principes
• C’est une méthode inventé à la fin des années 1950 dans les entreprises TOYOTA.
• Une simple fiche cartonnée fixée sur les bacs de pièces dans une ligne d'assemblage ou une
zone de stockage
• Le nombre de kanban en circulation doit être limité pour éviter la constitution d'encours
trop importants
25/01/2023 79
KANBAN-Principes
• Le problème à résoudre est un workflow
• La solution consiste à le visualiser
25/01/2023 81
KANBAN-Principes
25/01/2023 82
KANBAN-Principes
25/01/2023 83
KANBAN-Principes
• Est ce qu’on peut avoir 500 fichiers dans « In progress » ou « to do » ?
• Mesurer le temps de cycle (lead time): C’est le temps moyen pour traiter complètement un
élément, c’est à dire le faire passer par toutes les étapes du workflow
• Planning Poker
• Fibonacci
25/01/2023 84
SCRUM vs KANBAN
• Scrum est plus normatif que Kanban.
• Scrum impose des rôles.
• Scrum impose des itérations de durée fixe.
• Kanban limite le TAF à chaque étape du workflow, Scrum limite
• le TAF à chaque itération.
• Les deux sont empiriques.
• Scrum autorise peu de changement dans une itération.
• Le tableau Scrum est réinitialisé à chaque début d'itération.
• Avec Kanban, le tableau est généralement persistant : vous n’avez donc pas besoin de le réinitialiser et
de démarrer avec autre chose.
• Scrum impose des équipes multidisciplinaires
• Les deux permettent de travailler sur plusieurs produits simultanément
• ….
25/01/2023 85
Modèles
orientées objet
Modèles orientées objet
• Le développement orienté objet conduit à des architectures logicielles fondées sur les
objets (plutôt que sur les fonctions qu'il est censé réaliser)
• UML n’est pas une méthode mais un langage : définit des diagrammes et des notations
mais n’impose pas de méthode.
• Le Processus Unifié (PU) a été proposé afin de compléter UML avec une méthode
25/01/2023 87
Processus
unifié
Processus unifié: un modèle OO
25/01/2023 89
PU: caractéristiques
25/01/2023 90
PU: caractéristiques
• PU est conduit par les cas d’utilisation
• Toutes les activités, de l’analyse des besoins jusqu’aux tests sont guidés par
les cas d’utilisation
• A partir des cas d’utilisation, les développeurs créent une série de modèles UML.
25/01/2023 91
PU: caractéristiques
• PU est itératif et incrémental
• Découpe le projet en “mini-projet” : des ITÉRATIONS qui donne lieu à des INCRÉMENTS.
• Les itérations désignent des étapes de l’enchaînement des activités tandis que les incréments
correspondent à des stades de développement du produit.
• Une itération reprend les livrables dans l’état où les a laissé l’itération précédente et les enrichit
progressivement (incrémental).
• Chaque itération comprend un certain nombre de cas d’utilisation et doit traiter en priorité les
risques majeurs.
25/01/2023 92
PU: caractéristiques
• PU est centré sur l’architecture
• Tous les intervenants au projet de développement, du chef projet au programmeur doivent
s’accorder sur la vision commune du système à produire : l’architecture.
• L’architecture regroupe les différentes vues du système qui doit être construit.
• Elle doit prévoir la réalisation de tous les cas d’utilisation.
• Démarche à suivre:
• Créer une ébauche grossière de l’architecture
• Travailler sur les cas d’utilisation représentant les fonctions essentielles.
• Adapter l’architecture pour qu’elle prenne en compte ces cas d’utilisation.
• Sélectionner d’autres cas d’utilisation et refaire de même.
25/01/2023 93
PU: Phases & Activités
• Phase d'Inception: Identification des principaux cas d’utilisation.
• Phase d’élaboration: l’analyse et la conception de la plupart des fonctionnalités du système sont abordés.
• Analyse
• Conception
• Implémentation
• Tests ...
25/01/2023 96
PU: Phases
• Phase d’inception: Identification des principaux cas d’utilisation.
• Traduit une idée en vision de produit fini et présente une étude de rentabilité pour ce
produit.
• Un modèle simplifié des cas d’utilisation, regroupant les principaux cas d’utilisation ,est
réalisé.
• Une architecture provisoire est réalisée: une ébauche relevant les principaux sous-systèmes.
25/01/2023 97
PU: Phases
• Phase d’élaboration: l’analyse et la conception de la plupart des fonctionnalités du
système sont abordés.
• A l’issue de cette phase, le chef de projet doit être en mesure de prévoir les activités et
d’estimer les ressources nécessaires à l’achèvement du projet.
• Cette phase aboutit à l’émergence de la stabilité des cas d’utilisation, d’une architecture
de référence, d’un plan de développement et la maîtrise des risques pour permettre le
respect du contrat.
25/01/2023 98
PU: Bilan
• Avantages
• standard
• Inconvénients
• peut s’avérer lourd à mettre en place
25/01/2023 99
Agile Vs UP
• Points en commun • Points différents
25/01/2023 100
Quelques Instances du PU
• RUP : Rational Unified Process, instanciation par Rational des préceptes UP
• AUP : Agile Unified Process, partie des préceptes UP permettant l’agilité du développement.
• 2TUP : Two Tracks Unified Process, instanciation de UP proposé par Valtech prenant en
compte les aléas et contraintes liées aux changements perpétuels et rapides des SI des
entreprises.
• EssUP : Essential Unified Process, instanciation de UP proposé par Ivar Jacobson Consulting
qui propose une mouture du processus unifié qui intègre certains concepts de l’agilité.
25/01/2023 101
Un modèle OO: 2TUP
• Pourquoi 2TUP?
Réponse aux contraintes de
changement continue imposées
aux systèmes d’information de
l’entreprise.
25/01/2023 102
2TUP et UML
25/01/2023 103
2TUP: Bilan
• Avantages
• Itératif
• Inconvénients
• Plutôt superficiel sur les phases situées en aval du développement: support, maintenance
25/01/2023 104
CONCLUSION
• Quel est le meilleur cycle de vie?
25/01/2023 105
CONCLUSION
• Il n’y a pas de modèle idéal car tout dépend des circonstances: type du projet, taille du projet,
taille de l’équipe,…
• Le modèle en cascade ou en V est risqué pour les développements innovants car les spécifications et
la conception risquent d’être inadéquats et souvent remis en cause.
• Le modèle incrémental est risqué car il ne donne pas beaucoup de visibilité sur le processus complet.
• Le modèle en spirale est un canevas plus général qui inclut l’évaluation des risques.
• Souvent, un même projet peut mêler différentes approches, comme le prototypage pour les sous
systèmes à haut risque et la cascade pour les sous systèmes bien connus et à faible risque.
25/01/2023 106
Gestion de projet - iceScrum
25/01/2023 107
Gestion de projet - iceScrum
25/01/2023 108
Gestion de projet - iceScrum
25/01/2023 109
Gestion de projet - iceScrum
25/01/2023 110
Gestion de projet - iceScrum
25/01/2023 111
Gestion de projet - iceScrum
25/01/2023 112
Méthodologie d'ingénierie et
d'intégration des systèmes
Merci
25/01/2023 113