0% ont trouvé ce document utile (0 vote)
44 vues124 pages

Méthodes de Conception Logicielle 2024

Le document présente les méthodes de conception et de développement logiciel, en mettant l'accent sur l'évolution des approches, notamment le cycle en V, les méthodes agiles et le DevOps. Il détaille le Processus Unifié (UP) et le Rational Unified Process (RUP), en expliquant leurs caractéristiques, phases et modèles associés. L'objectif est de comprendre ces méthodes pour choisir la plus adaptée à un projet et de les appliquer à travers des exercices pratiques.

Transféré par

Taha Aboumehdi hassani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues124 pages

Méthodes de Conception Logicielle 2024

Le document présente les méthodes de conception et de développement logiciel, en mettant l'accent sur l'évolution des approches, notamment le cycle en V, les méthodes agiles et le DevOps. Il détaille le Processus Unifié (UP) et le Rational Unified Process (RUP), en expliquant leurs caractéristiques, phases et modèles associés. L'objectif est de comprendre ces méthodes pour choisir la plus adaptée à un projet et de les appliquer à travers des exercices pratiques.

Transféré par

Taha Aboumehdi hassani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Méthodes de conception et

développement

Amal HALLOU
[email protected]

1ère année du Cycle Ingénieur – Génie Informatique –

Année universitaire 2024 - 2025


1. INTRODUCTION

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


INTRODUCTION

Processus de développement
= Ensemble d'étapes partiellement ordonnées, qui concourent à
l'obtention d'un système logiciel ou à l'évolution d'un système
existant.
Objectif : produire des logiciels
- De qualité (qui répondent aux besoins de leurs utilisateurs)
- Dans des temps et des coûts prévisibles
- A chaque étape, on produit
- Des modèles
- De la documentation
- Du code

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


INTRODUCTION
L'évolution des méthodes de développement logiciel
1.Méthodes traditionnelles et cycle en V
bien adaptées aux projets bien définis et de grande envergure,
nécessitaient des phases strictement séquencées
manquaient de flexibilité face aux changements de besoins.
2. L'essor des méthodes agiles (années 1990-2000)
le Manifeste Agile en 2001
l'accent est mise sur l'interaction avec le client, la livraison itérative et l'adaptabilité
aux changements.
3. DevOps et l'automatisation (années 2010)
combler le fossé entre les équipes de développement et d'exploitation.
intégrer l'automatisation, l'intégration continue et le déploiement fréquent
permet d'améliorer la qualité et la rapidité des livraison
Parallèlement,
4. Développement dirigé par les modèles (Model-Driven Engineering, MDE)
automatiser la génération de code à partir de modèles abstraits,
Réduire les erreurs et facilitant la maintenance.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
INTRODUCTION

Objectifs du cours :
- Comprendre différentes méthodes de conception développement
et leur application.
- Savoir choisir la méthode la plus adaptée en fonction du contexte
du projet.
- Mettre en pratique certaines de ces méthodes à travers des
exercices et études de cas.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


INTRODUCTION

1. Processus Unifié

2. Méthodes agiles

3. Méthodes de conception logicielle

4. Autres méthodes de développement logiciel

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2.PROCESSUS UNIFIÉ

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ
•1996 : première apparition de l’UP (Unified Process)
• Évolution de l’approche Objectory Process (v1 1987 à v3 en 1995)
d’Ericsson pour le développement OO,
• Harmoniser processus de développement,
• Capitaliser les connaissances
•1998 : RUP (Rational Unified Process) version commerciale de l’UP
• Implémentation d’UP réalisé par Rational Software,
• Démarche d’organisation,
• Description et modélisation métier,
• Production de livrables documentaires.
•2003 : Rachat par IBM de Rational Software

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ
•UP est un SDP (Software Developpement Process) et un SEP (Software
Engineering Process) : il fournit des process et méthodes permettant
de répondre à qui, quoi, quand et comment dans le cadre du
développement logiciel
•aide à transformer les spécifications en logiciel,
•UP (unified process) est très souvent utilisé en tant que framework :
un ensemble de bonnes pratiques et de concept qu’il faudra ensuite
composer avec ses pratiques et méthodes,
•UP utilise UML : UP a été développé par l’un des auteurs d’UML ce qui
explique sa forte utilisation dans les process,
•UP apporte plus de questions que de réponses lors du développement
logiciel (mais au moins il permet de poser les bonnes questions)

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

•RUP est une démarche de développement qui est souvent utilisé


conjointement au langage UML
•RUP (Rational Unified Process) est :
• Piloté par les cas d’utilisation,
• Orienté vers la diminution des risques,
• Centré sur l’architecture,
• Itératif et incrémental.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
•Piloté par les cas d’utilisation
•Piloté par les risques
•Centré sur l’architecture
•Itératif incrémental

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
Piloté par les cas d’utilisation :
•tenir compte des besoins et des exigences des utilisateurs :
développement centré sur l’utilisateur,
•identifier les cas d’utilisations, les décrire avec précision et les prioriser
: détection et description des besoins fonctionnels
•organisation de ces besoins fonctionnels,
•Mettre en avant la principale qualité du logiciel : son utilité,
•Adéquation du service rendu par le logiciel avec les besoins des
utilisateurs,
•Les cas d’utilisation permettent d’exprimer ces besoins.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
Piloté par les cas d’utilisation :
•Les cas d’utilisation ont pour objectif de comprendre et structurer les
besoins des utilisateurs.
•Ils guident pour cela la conception, l’implémentation et les tests
•UP procède par une série d’enchaînements d’activités dérivés des cas
d’utilisation
•la plupart des activités (analyse, conception, implémentation et test)
sont effectuées à partir des cas d’utilisation. Les cas d’utilisation
guident ainsi le processus de développement.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
Piloté par les cas d’utilisation :

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
Piloté par les risques :
•risques majeurs identifiés au plutôt, levés le plus rapidement possible,
•ordres des itérations,
•Les risques majeurs sont traités en priorité.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
Centré sur l’architecture :
•décomposition en partie modulaire (maintenance et évolution facile),
•architecture fonctionnelle, logique, matérielle,
•modélisation de différentes perspectives indépendantes et
complémentaires,

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
Centré sur l’architecture :
•Architecture en couches et vues de Krutchen

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
Centré sur l’architecture :
•Architecture en couches et vues de Krutchen
 Vue cas d’utilisation : description du système comme un ensemble de
transactions du point de vue de l’utilisateur,
 Vue logique : créée lors de la phase d’élaboration et raffinée lors de
la phase de construction. Utilisation de diagrammes de classes, de
séquences
 Vue composants : description de l’architecture logicielle,
 Vue de déploiement : description de l’architecture matérielle du
système
 Vue implémentation : description des algorithmes, code source

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
Itératif incrémental :
•découpage en itération de courte durée (environ 1 mois),
•une partie exécutable du système final est produite de façon
incrémentale,
•Chaque itération prend en compte un certain nombre de cas
d’utilisation,
•Chaque itération donne lieu à un incrément et produit une nouvelle
version exécutable.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Caractéristiques de l’UP
L’architecture fournit la structure qui servira de cadre au travail
effectué au cours des itérations, tandis que les cas d’utilisation
définissent les objectifs et orientent le travail de chaque itération

1. orientent le développement
4. se déploie
2. guide la réalisation 5. réalise
6. définissent les objectifs
A. HALLOU
3. sert de cadre MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
PROCESSUS UNIFIÉ
Les axes de l’UP
Le Processus Unifié gère le développement suivant deux axes :
- l’axe horizontal représente le temps et montre le déroulement du
cycle de vie du processus
- l’axe vertical représente les principaux enchaînements d'activités

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ
Les axes de l’UP
l’axe horizontal
Le Processus Unifié répète un certain nombre de fois une série de
cycles constituant la vie d’un système
Chaque cycle se déroule sur une certaine durée et s’articule en 4
phases : création, élaboration, construction et transition
Chacune d’elles pouvant se subdiviser à son tour en itérations

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ
Les axes de l’UP
l’axe horizontal
Phase de création ou d’inception
Traduit une idée en vision de produit fini et présente une étude de
rentabilité pour ce produit
- Que va faire le système pour les utilisateurs ? => un modèle simplifié
des cas d’utilisation regroupant les principaux cas d’utilisation.
- A quoi peut ressembler l’architecture d’un tel système ? =>
architecture provisoire, une ébauche relevant les principaux sous-
systèmes
- Quels sont l’organisation et les coûts du développement de ce
produit ? => planifier en détail la phase d’élaboration et fournir une
estimation du projet dans son ensemble

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ
Les axes de l’UP
l’axe horizontal
Phase d’élaboration
Permet de préciser la plupart des cas d’utilisation et de concevoir
l’architecture du système
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
- la maîtrise des risques pour permettre le respect du contrat.
Les cas d’utilisation, l’architecture et les plans sont-ils assez stables et
les risques suffisamment maîtrisés pour permettre la réalisation du
développement dans le respect du contrat ?
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
PROCESSUS UNIFIÉ
Les axes de l’UP
l’axe horizontal
Phase de construction
Moment où l’on construit le produit.
Le produit contient tous les cas d’utilisation que les chefs de projet, en
accord avec les utilisateurs, ont décidé de mettre au point pour cette
version
Le produit satisfait-il suffisamment aux besoins des utilisateurs pour
que certains clients l’adoptent avant sa sortie officielle ?

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ
Les axes de l’UP
l’axe horizontal
Phase de transition
Un groupe d’utilisateurs expérimentés essayent le produit et rendent
compte des anomalies et défauts détectés.
Les développeurs corrigent les problèmes signalés et incorporent
certaines améliorations suggérées à la version suivante.
Cette phase suppose des activités comme la formation des utilisateurs
clients, la mise en œuvre d’un service d’assistance et la correction des
anomalies constatées.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ
Les axes de l’UP
l’axe vertical
Chaque cycle se conclut par la livraison d’une nouvelle version du
système.
Ce produit se compose d’un corps de code source réparti sur plusieurs
composants pouvant être compilés et exécutés et s’accompagne de
manuels et de produits associés.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ
Les axes de l’UP
l’axe vertical
•Modèle des cas d’utilisation: Expose les cas d’utilisation et leurs
relations avec les utilisateurs
•Modèle d’analyse: Détaille les cas d’utilisation et procède à une
première répartition du comportement du système entre divers objets
appropriés
•Modèle de conception: Définit la structure statique du système sous
forme de sous-système, classes et interfaces ; Définit les cas
d’utilisation réalisés sous forme de collaborations entre les sous-
systèmes, les classes et les interfaces
•Modèle d’implémentation: Intègre les composants (code source) et la
correspondance entre les classes et les composants

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ
Les axes de l’UP
l’axe vertical
•Modèle de déploiement : Définit les nœuds physiques des ordinateurs
et l’affectation de ces composants sur ces nœuds.
•Modèle de test : Décrit les cas de test vérifiant les cas d’utilisation
•Représentation de l’architecture : Description de l’architecture

Tous ces modèles sont liés. Ensemble, ils représentent le système


comme un tout.
Pour mener efficacement un cycle, les développeurs ont besoin de
construire toutes les représentations du produit logiciel.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

RUP : Organisation en phases de développement


•Initialisation (inception) : définition du problème,
• définir la vision du projet, portée, faisabilité, son business case,
• décider de sa poursuite ou de son arrêt.
•Elaboration :
• Planification des activités, affectation des ressources, analyse,
• identifier et décrire la majeure partie des besoins des utilisateurs
• construire (pas juste décrire dans un document) l’architecture de base du système et
lever les risques majeurs du projet.
•Construction :
• concevoir et implémenter l’ensemble des éléments opérationnels
• développement du logiciel par incréments successifs.
•Transition :
• Recettage et déploiement, conversion des données, formation, béta-tests, faire
A. HALLOUpasser le système des mains des développeurs
MÉTHODES DE CONCEPTION ETà celles des utilisateurs finaux.
DÉVELOPPEMENT GI21
PROCESSUS UNIFIÉ

RUP : enchaînement d’activités


•Les disciplines principales :
• La modélisation métier : discipline amont et transverse au projet,
• la capture des exigences,
• l’analyse et la conception,
• l’implémentation,
• le test,
• le déploiement.
•Les disciplines de support :
• gestion de projet, gestion de changement et de la configuration,
• environnement de développement : outils informatiques,
• documents de travail, guide méthodologique, etc.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
PROCESSUS UNIFIÉ

RUP : Vie du processus Unifié


•L’objectif du RUP est de maîtriser la complexité des projets
informatiques en diminuant les risques,
•RUP est un ensemble de principes génériques adaptés en fonctions
des spécificités des projets,
•RUP répond aux préoccupations suivantes :
• QUI participe au projet ?
• QUOI, qu’est-ce qui est produit durant le projet ?
• COMMENT doit-il être réalisé ?
• QUAND est réalisé chaque livrable ?
•Pour cela, RUP se présente comme : une architecture bidirectionnelle
sur deux axes.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
PROCESSUS UNIFIÉ

RUP : Vie du processus Unifié


RUP gère le processus de développement par deux axes :
•L’axe vertical qui représente les principaux enchaînements d’activités,
qui regroupent les activités selon leur nature. Cette dimension rend
compte l’aspect statique du processus qui s’exprime en termes de
composants, de processus, d’activités, d’enchaînements, d’artefacts et
de travailleurs.
•L’axe horizontal qui représente le temps et montre le déroulement du
cycle de vie du processus ; cette dimension rend compte de l’aspect
dynamique du processus qui s’exprime en termes de cycles, de phases,
d’itérations et de jalons.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

RUP : Vie du processus Unifié


RUP gère le processus de développement par deux axes :

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

RUP : Organisation en phase et activité de développement


•Les phases du développement sont les grandes étapes du
développement du logiciel. Le projet commence en phase d’initialisation
et termine en phase de transition.
•Les activités sont des étapes dans le développement d’un logiciel, mais
à un niveau de granularité beaucoup plus fin que les phases. Chaque
activité est répétée autant de fois qu’il y a d’itérations.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


PROCESSUS UNIFIÉ

Plusieurs PU . . .
•Il existe plusieurs processus unifiés : il y a plusieurs systèmes et
techniques/technologies variés qu’il serait impensable d’envisager un
processus qui soit adapté à tous les types des projets
•L’utilisation de ce processus pour le développement de logiciel répond
bien aux objectifs en respectant les contraintes

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

Caractéristiques
•Incrémental
•Itératif
•Piloté par les risques
•Orienté composant
•Orienté utilisateur

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

Caractéristiques
•Incrémental
définir des incréments de réalisation est en effet la meilleure pratique
de gestion des risques d’ordre technique et fonctionnel.
Chaque incrément confirme la preuve de faisabilité auprès de l’équipe
de développement et du client.
Le suivi des incréments constitue un excellent contrôle des coûts et
délais

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

Caractéristiques
•Itératif
à chaque cycle on ajoute une fonctionnalité et on améliore les
fonctionnalités précédentes

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

Caractéristiques
•Orienté composant
le découpage en modules de ce type de processus se fait aussi bien en
modélisation qu’en production, et permet la réutilisation logicielle.
Un composant est un module indépendant, qui pourrait servir pour
d’autres projets.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

Caractéristiques
•Orienté utilisateur
Les utilisateurs sont à l’origine du développement

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

Two Track Unified Process (2TUP)


La réalisation d’un système consiste à fusionner 2 branches

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

Two Track Unified Process (2TUP)


Branche Fonctionnelle
•Capture des besoins fonctionnels : elle aboutit à un modèle des besoins
centré sur le métier des utilisateurs. Son but est de minimiser le risque
de produire un système inadéquat avec les besoins des utilisateurs. La
MOE consolide les spécifications et en vérifie la cohérence et
l’exhaustivité.
•Analyse : Découpage en composants. Etude des spécifications afin de
savoir ce que le système va réellement réaliser en termes de métier.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

Two Track Unified Process (2TUP)


Branche Technique
•Capture des besoins techniques : recensement des outils, des matériels
et des technologies à utiliser ; des contraintes (temps de réponse,
contraintes d’intégration avec l’existant). Ce qui donnera lieu à une
première conception de l’architecture technique
•Conception générique : découpage en composants nécessaires à la
construction de l’architecture technique. Il est généralement conseillé
de réaliser un prototype pour assurer la validité de l’architecture. Cette
étape permet de minimiser l’incapacité de l’architecture technique à
répondre aux contraintes opérationnelles.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

Two Track Unified Process (2TUP)


Branche du milieu
•Conception préliminaire : étape délicate durant laquelle on intègre le
modèle d’analyse dans l’architecture technique. Le but ici est de savoir
dans quel composant technique on met nos fonctionnalités issues de
l’analyse.
•Conception détaillée : conception de chaque fonctionnalité
•Etape de codage : phase de programmation de ces fonctionnalités, avec
des tests au fur et à mesure
•Etape de recette : phase de validation des fonctions du système
développé

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


2TUP

2TUP et UML
•Capture des besoins fonctionnels :
•Analyse : Diagramme des cas d’utilisation, Diagrammes de séquence,
Diagrammes de collaboration
•Capture des besoins techniques :
•Conception générique : Diagramme de déploiement
•Conception préliminaire : Diagramme de packages, Diagramme de
composants, Diagramme de déploiement, Diagramme de classes
•Conception détaillée : Diagramme de classes, Diagramme de séquence,
Diagramme de collaboration, Diagramme d’états, Diagramme d’activités,
Diagramme de composants

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


3.MÉTHODES AGILES

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES

Méthodes agiles
•Question 1 : Quelles activités pouvons-nous abandonner tout en
produisant des logiciels de qualité ?
•Question 2 : Comment mieux travailler avec le client pour nous focaliser
sur ses besoins les plus prioritaires et être aussi réactifs que possible ?
•Réponse : filiation avec le RAD (Rapid Application Development) qui est
née vers les années 80. Permettant de conduire à l’amélioration de la
qualité des développements tout en réduisant les délais et en facilitant
la maitrise des coûts (RAD est une méthode basée sur la
communication)
Exemples de méthodes agiles
•XP (eXtreme Programming), DSDM (Dynamic Software Development
Method), ASD (Adaptative Software Development), CCM (Crystal Clear
Methodologies), SCRUM,
A. HALLOU FDDDE(Feature
MÉTHODES Driven
CONCEPTION ET Development)
DÉVELOPPEMENT GI21
MÉTHODES AGILES
Méthodes agiles
correspondent à un cycle de vie itératif, qui considèrent que les
changements (des besoins des utilisateurs, mais également de
l’architecture, de la conception, de la technologie) sont inévitables et
doivent être pris en compte par les modèles de développement.
privilégient la livraison de fonctionnalités utiles au client à la production
de documentation intermédiaire sans intérêt pour le client.
•Toutes les méthodes agiles prennent en compte dans leur modèle de
cycle de vie trois exigences :
• Une forte participation entre développeurs et utilisateurs,
• Des livraisons fréquentes de logiciel et ;
• une prise en compte de possibles changements dans les besoins des
utilisateurs au cours du projet.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Méthodes agiles
Les méthodes Agiles sont des pratiques qui s'appliquent aux projets de
développement logiciel
-plus pragmatiques que les méthodes traditionnelles
-permettent une grande réactivité aux demandes utilisateurs
-structures cycliques, itératives, incrémentales et adaptatives
-orientées satisfaction des besoins client
-Officialisées en 2001 par le Manifeste Agile (Agile Manifesto), signé par
17 personnalités

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Méthodes agiles
Les méthodes Agiles sont des pratiques qui s'appliquent aux projets de
développement logiciel :
-Approche collaborative, Itérative et incrémentale
-La difficulté est repartie sur plusieurs parties (Le projet est décomposé)
-Livraisons de résultats fréquents et validation continue
-Gère mieux les demandes de changements en cours
-Accepte d’introduire des changements plutôt que de suivre strictement
un plan rigide
-Orienté résultat plus que documentation
-Orienté interactions plus que processus et outils
-Collaboration avec l’utilisateur
A. HALLOU MÉTHODES DEplutôt que
CONCEPTION relation contractuelle
ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Le manifeste agile :
1. Notre priorité absolue est de satisfaire le client grâce à la livraison
précoce et continue de logiciels ayant de la valeur
2. Accueillir favorablement les changements de besoins, même tard
dans le développement. Les processus agiles exploitent le
changement pour l'avantage compétitif du client.
3. Livrer fréquemment un logiciel fonctionnel, toutes les quelques
semaines à quelques mois, avec une préférence pour les périodes les
plus courtes.
4. Les professionnels du métier et les développeurs doivent travailler
ensemble quotidiennement tout au long du projet.
5. Construire les projets autour d'individus motivés. Leur donner
l’environnement et le soutien dont ils ont besoin, et leur faire
confiance pour accomplir leur travail.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Le manifeste agile :
1. Notre priorité absolue est de satisfaire le client grâce à la livraison
précoce et continue de logiciels ayant de la valeur
2. Accueillir favorablement les changements de besoins, même tard
dans le développement. Les processus agiles exploitent le
changement pour l'avantage compétitif du client.
3. Livrer fréquemment un logiciel fonctionnel, toutes les quelques
semaines à quelques mois, avec une préférence pour les périodes les
plus courtes.
4. Les professionnels du métier et les développeurs doivent travailler
ensemble quotidiennement tout au long du projet.
5. Construire les projets autour d'individus motivés.
6. Leur donner l’environnement et le soutien dont ils ont besoin, et leur
A. HALLOU faire confiance pourMÉTHODES
accomplir leur travail.
DE CONCEPTION ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Le manifeste agile :
7. La méthode la plus efficace pour transmettre des informations au
sein d’une équipe de développement est la conversation en face-à-
face.
8. Un logiciel fonctionnel est la principale mesure d’avancement.
9. Les processus agiles favorisent un développement durable. Les
commanditaires (sponsors), développeurs et utilisateurs doivent
pouvoir maintenir un rythme constant indéfiniment.
10. Une attention continue à l’excellence technique et à une bonne
conception renforce l’agilité.
11. La simplicité – l’art de maximiser la quantité de travail non réalisé –
est essentielle.
12. Les meilleures architectures, exigences et conceptions émergent
A. HALLOU d’équipes auto-organisées.
MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Le manifeste agile :
13. À intervalles réguliers, l’équipe réfléchit aux moyens de devenir plus
efficace, puis ajuste et modifie son comportement en conséquence..

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Les 12 principes de la méthodologie Agile :
1. Satisfaire le client en lui livrant fréquemment une application
utilisable rapidement
2. Accepte les changements de l’utilisateur même dans des étapes
tardives
3. Livraisons fréquentes de fonctions qui «marchent» (toutes les deux
semaines et au plus tard tous les deux mois) Cycles très courts
4. Travail quotidien entre l’équipe projet et les utilisateurs
5. La motivation des équipes est le centre d’intérêt de la méthode
6. Privilégie les rencontres directes (Face to face) plutôt que du travail à
distance ou par mail

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Les 12 principes de la méthodologie Agile :
7. La fonction livrée est l’unité de mesure de l’avancement du projet
8. La méthodologie encourage un rythme soutenu du développement
9. Attention continue à l’excellence technique et à une meilleure
conception
10. Produire uniquement ce qui est nécessaire
11. Des équipes autogérées
12. Amélioration continue

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


EXTREME PROGRAMMING
XP : eXtreme Programming
•L’XP ensemble de pratique qui couvrent la réalisation du projet :
• adaptée pour des projets de taille moyenne et dont le contexte évolue
en permanence.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


EXTREME PROGRAMMING
XP : eXtreme Programming
•XP repose sur cinq valeurs fondamentales :
•Communication : chaque membre de l'équipe communique
quotidiennement avec ses collègues ainsi qu'avec le client
•Simplicité : la façon la plus simple d'arriver au résultat est privilégiée. Une
application simple sera plus facile à faire évoluer ensuite.
•Feedback : Chaque étape du projet est envoyée aussi rapidement et
souvent que possible au client afin qu'il teste, donne son avis et valide
l'étape. Chaque demande de modification est prise en compte
immédiatement.
•Respect : Le management, l'équipe projet et le client se respectent
mutuellement.
•Courage : Il faut du courage pour effectuer certains changements comme
essayer une nouvelle technique, recommencer une itération non validée ou
revoir l'organisation du projet.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
EXTREME PROGRAMMING
XP : eXtreme Programming
•Les cinq valeurs de XP se déclinent en treize pratiques qui se renforcent
mutuellement :
•Client sur site : le client doit être représenté sur place pendant toute la
durée du projet. Ce représentant doit avoir une vision globale du résultat à
obtenir et être disponible pour répondre aux questions de l'équipe.
•Jeu du planning (ou planning poker): le planning est réalisé en collaboration
avec le client. Ce dernier crée des scénarios pour les fonctionnalités qu'il
souhaite obtenir. L'équipe évalue le temps nécessaire pour les mettre en
?uvre. Le client sélectionne ensuite les scénarios en fonction des priorités
et du temps disponible.
•Intégration continue : lorsqu'une tâche est terminée, elle est tout de suite
intégrée dans le produit complet. Cela permet d'éviter la surcharge de
travail due à l'intégration de tous les éléments avant la livraison. Les tests
facilitent cette intégration : quand tous les tests sont positifs, l'itération est
terminée.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
EXTREME PROGRAMMING
XP : eXtreme Programming
•Les cinq valeurs de XP se déclinent en treize pratiques qui se renforcent
mutuellement :
•Petites livraisons: les livraisons doivent être les plus fréquentes possible
afin que le client donne son avis et que les modifications soient rapidement
prises en compte par l'équipe.
•Rythme soutenable : aucune heure supplémentaire n'est tolérée. S'il y en a,
alors le planning doit être revu. Un collaborateur fatigué travaille mal et fait
plus d'erreurs.
•Tests fonctionnels : à partir des scénarios définis par le client, l'équipe crée des
procédures de test qui permettent de vérifier l'avancement du développement.
Lorsque tous les tests fonctionnels passent, l'itération est terminée.
•Tests unitaires : pour chaque fonctionnalité, un test est écrit afin de vérifier
qu'elle fonctionnera comme prévu. Ce test sera conservé jusqu'à la fin du
projet, tant que la fonctionnalité est requise. À chaque modification du code,
tous les tests sont lancés afin d'identifier immédiatement s'il y a un problème
A. HALLOU
de fonctionnement. MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
EXTREME PROGRAMMING
XP : eXtreme Programming
•Les cinq valeurs de XP se déclinent en treize pratiques qui se renforcent
mutuellement :
•Conception simple : on va droit à l'essentiel en se focalisant uniquement sur
les besoins actuels du clients. Plus l'application est simple, plus il sera facile de
la faire évoluer lors des prochaines itérations
•Utilisation de métaphores: les équipes XP utilisent des métaphores pour
décrire le système et son fonctionnement afin de clarifier les fonctionnalités à
atteindre. Tout le monde parle le même langage.
•Refactoring (ou remaniement du projet): le projet est amélioré régulièrement.
Le but étant d'avoir de bonnes bases et de meilleures conditions de travail pour
l'équipe.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


EXTREME PROGRAMMING
XP : eXtreme Programming
•Les cinq valeurs de XP se déclinent en treize pratiques qui se renforcent
mutuellement :
•Appropriation collective du projet : la responsabilité du projet est collective.
Chaque membre de l'équipe peut modifier toutes les portions du projet,
mêmes celles sur lesquelles il n'a pas travaillé. L'objectif est d'être efficace et
rapide.
•Standards de langage : puisque tout le monde travaille ensemble sur le projet,
il est essentiel de faciliter le travail de chacun en utilisant les mêmes termes, le
même style et des règles de communication claires.
•Travail en binôme : les collaborateurs travaillent en binôme. Le pilote et le
copilote changent régulièrement afin d'améliorer la communication et la
connaissance collective du projet.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


EXTREME PROGRAMMING
XP : eXtreme Programming
•Planning/Feedback loops

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


EXTREME PROGRAMMING
XP : eXtreme Programming
•Cycle de vie et itération

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


SCRUM
La méthode SCRUM
•C’est une méthode agile de management qui permet de gérer l’aspect humain
d’un projet, principalement la question de ressources humaines et son
allocation.
•consiste à définir un cadre de travail permettant la réalisation de projets
complexes.
•Cette méthode a été initialement prévue pour le développement de projets
informatiques mais elle peut être appliquée à tout type de projet, du plus
simple au plus innovant, et ce de manière très simple.
•Le terme SCRUM fait référence à la mêlée de rugby.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


SCRUM
La méthode SCRUM
•Les projets qui suivent la méthode agile SCRUM sont divisés en plusieurs cycles
de travail relativement courts que l’on appelle « sprints ».
• Ils permettent aux membres de l’équipe de mieux planifier les prochaines
étapes de développement du projet mais aussi d’évaluer régulièrement les
progrès liés au projet.
• Les sprints peuvent durer d’une à quatre semaines.
• Ils permettent également de réajuster ou réorienter la direction prise par le
projet si besoin.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


SCRUM
La méthode SCRUM
•Cette méthode s'impose de plus en plus en raison des évaluations
permanentes qu'elle permet et qui sont jugées très utiles et efficaces par les
chefs de projets.
•Elle se base sur un socle fixe de rôles, responsabilités et réunions qui ne
changent jamais, tout en assurant une gestion flexible et adaptative des
projets.
• Permet de rassurer les équipes lors de certaines phases de développement
qui peuvent habituellement s’avérer chaotiques et de faciliter la mise en
œuvre des processus.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


SCRUM
Rôles principaux
•Le responsable produit
• définit les spécifications fonctionnelles et communique la vision globale du
produit à l’équipe.
• établit la priorité des fonctionnalités à développer ou à corriger et valide les
fonctionnalités développées.
• Il se doit de jouer le rôle client final, se mettre à sa place et donc de prioriser
ses besoins.
•Le SCRUM Master
•Les Membres de l’équipe

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


SCRUM
Rôles principaux
•Le responsable produit
•Le SCRUM Master
• agit en tant que facilitateur entre le responsable produit et l’équipe.
• Son rôle principal est d’éliminer tous les obstacles qui peuvent empêcher
l’équipe d’atteindre les objectifs fixés pour chaque sprint de travail.
• Il s’assure que les principes et les valeurs Scrum sont respectés.
• Il facilite la communication au sein de l’équipe et cherche à améliorer la
productivité et le savoir-faire de son équipe.
• Il conseille aussi le responsable produit sur la façon de maximiser le retour
sur investissement général de l’équipe.
•Les Membres de l’équipe

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


SCRUM
Rôles principaux
•Le responsable produit
•Le SCRUM Master
•Les Membres de l’équipe
• l’équipe est responsable de la réalisation opérationnelle des tâches.
• généralement composée de 6 à 10 personnes mais pouvant aller jusqu'à 200
personnes.
• C’est toute l’équipe qui est responsable du résultat final de chaque sprint.
• La manière dont sont exécutées les tâches est très libre mais cette liberté doit
être néanmoins cadrée par l’obligation de répondre aux objectifs du sprint

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


SCRUM
Les piliers de Scrum
•La transparence : les aspects importants du processus doivent être visibles à
tous. C’est pour cela que SCRUM insiste sur le fait de créer un langage commun
entre les membres de l’équipe et le management, ce qui permettra une
compréhension commune du projet.
•L’inspection : un bilan régulier sur les résultats produits est réalisé afin de
détecter les écarts indésirables. Il est important que ces inspections soient
faites par un inspecteur bien formé et cela de manière adaptée car cela
pourrait nuire à l’avancement du projet.
•L’adaptation : lorsqu’un écart est constaté pendant l’inspection, le processus
devra être adapté grâce à des actions visant à améliorer la situation

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


SCRUM

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


SCRUM
•La méthode SCRUM implique que le projet progresse à travers la mise en place
de séries de « sprints ».
•À chaque lancement d’un sprint, une réunion de planification est organisée afin
que chaque membre de l’équipe puisse s’engager sur le nombre de tâches qu’il
pourra exécuter, ainsi que sur la création du « sprint blacklog »: la liste globale
des tâches à réaliser lors du sprint.
•Chaque jour du sprint, tous les membres de l’équipe (ainsi que le responsable
produit et le SCRUM Master) doivent assister à la réunion SCRUM quotidienne.
• Cette dernière ne doit pas durer plus de 15 minutes
• permet aux membres de l’équipe de partager avec les autres ce qu’ils ont fait
la veille, ce sur quoi ils travaillent le jour même, ainsi que l’identification de
tout problème pouvant entraver le bon déroulement du sprint.
• permet de synchroniser tous les membres de l’équipe.
•La fin d’un sprint est marquée par une session de débriefing permettant de
présenter le travail achevé au responsable produit, et de partager des
informations pouvant influer sur le sprint suivant.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
FEATURE-DRIVEN DEVELOPEMENT
- Création en 1997 par Jeff De Luca et Peter Coad
- Développé lors d’un grand projet logiciel à Singapour
- Constat : Les méthodes traditionnelles étaient insuffisantes
pour gérer la complexité du projet
- Solution :
- Introduction de la technique « Modeling in Color »
- Définition du concept de Feature-Driven Development
(FDD)
- Publication initiale : "Java Modeling in Color with
UML", Peter Coad, 1999

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Un processus agile et adaptatif
- Itératif et rapide : Cycles courts pour une meilleure
réactivité
- Qualité à chaque étape : Vérification et validation
continues
- Livrables fréquents et concrets : Des résultats visibles à
chaque itération
- Suivi efficace du projet : Informations précises avec un
minimum d’impact sur les développeurs
- Adopté par tous : Apprécié par les clients, managers et
développeurs

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les défis du développement logiciel:
- Communication : Plus il y a de développeurs, plus les
échanges deviennent complexes
- Complexité : La croissance d’un logiciel entraîne une
explosion de la complexité (loi de Weinberg)
- Qualité : Différente selon les utilisateurs, développeurs et
managers, elle doit être globale

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Comment FDD résout ces problèmes ?
- Réduction de la complexité : Décomposition en petites
fonctionnalités indépendantes (~2 semaines)
- Meilleure communication : Moins de dépendances entre les
équipes.
- Qualité intégrée : Tests, standards de code, audits et
métriques dès le début.
- Réduction des coûts : Erreurs détectées tôt grâce aux
itérations rapides

FDD : Une approche pragmatique pour des projets efficaces


et de haute qualité !

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Un projet FDD repose sur trois éléments principaux :
personnes, processus, et technologie.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les rôles clés dans un projet FDD
- Chef de projet (PM) : Gestion administrative, suivi de la
progression, des budgets et des ressources
- Architecte en chef (CA) : Responsable de la conception
globale du système, animation des ateliers de conception,
gestion des obstacles techniques.
- Responsable du développement (DM) : Gestion des
activités quotidiennes de développement, résolution des
conflits techniques.
- Programmeurs en chef : Développeurs expérimentés,
responsables de la direction technique et de la gestion des
petites équipes de développement.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les rôles clés dans un projet FDD
- Propriétaires de classes : Développeurs travaillant sous la
direction des programmeurs en chef pour concevoir, coder,
tester et documenter les fonctionnalités.
- Experts métier : Utilisateurs, analystes ou sponsors,
apportant les connaissances nécessaires pour garantir la
pertinence du système

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Rôles de soutien dans FDD
- Responsable des versions (Release Manager) : Suivi des
rapports hebdomadaires des programmeurs en chef et
communication avec le chef de projet.
- Guru du langage : Expert d’un langage ou technologie
spécifique, essentiel dans les projets utilisant une nouvelle
technologie.
- Ingénieur de build : Responsable de la configuration,
gestion et exécution du processus de build.
- Toolsmith : Création d’outils de développement pour les
équipes de développement, tests et conversion de données.
- Administrateur système : Gestion et dépannage des
serveurs et réseaux de travail propres au projet.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Rôles supplémentaires dans FDD
- Testeurs : Vérification indépendante que le système répond
aux exigences utilisateurs et fonctionne correctement.
- Déployeurs : Conversion des données existantes et gestion
du déploiement physique des nouvelles versions du
système.
- Rédacteurs techniques : Rédaction de la documentation
utilisateur, en ligne et imprimée

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les pratiques du FDD
FDD est basé sur un ensemble de pratiques reconnues qui,
combinées, forment un processus efficace.
- Pratiques éprouvées : Ces pratiques existent depuis
longtemps, mais c’est la combinaison spécifique dans FDD
qui les rend puissantes.
- Complémentarité : Chaque pratique soutient et renforce les
autres. Aucune pratique unique ne peut être utilisée
isolément pour bénéficier pleinement de l’approche FDD.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les pratiques du FDD
FDD est adaptable aux outils et aux équipes, selon le projet
et l’organisation.
Cependant, FDD est basé sur un ensemble de pratiques
reconnues qui, combinées, forment un processus efficace.
- Pratiques éprouvées : Ces pratiques existent depuis
longtemps, mais c’est la combinaison spécifique dans FDD
qui les rend puissantes.
- Complémentarité : Chaque pratique soutient et renforce les
autres. Aucune pratique unique ne peut être utilisée
isolément pour bénéficier pleinement de l’approche FDD.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les pratiques du FDD
Pour être considéré comme un processus FDD complet, une
équipe doit appliquer l’ensemble des pratiques suivantes :
- Modélisation d’objets domaine (Domain Object Modeling)
- Développement par fonctionnalité
- Propriété individuelle du code
- Équipes de fonctionnalités
- Inspections
- Builds réguliers
- Gestion de configuration
- Reporting & visibilité

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les pratiques du FDD
- Modélisation d’objets domaine (Domain Object Modeling)
consiste à créer des diagrammes de classes UML représentant
les objets significatifs d’un domaine et leurs relations.
Le problème est divisé en objets significatifs : Chaque classe
est une brique: Sa conception et son implémentation sont des
sous-problèmes plus simples. Une fois assemblées, les classes
forment le système complet.
→ Un modèle clair et structuré, servant de référence
commune à tous les acteurs du projet.
→ Une meilleure communication entre développeurs et
experts métier.
→ Un système plus cohérent et aligné avec les besoins réels
des utilisateurs.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
FEATURE-DRIVEN DEVELOPEMENT
Les pratiques du FDD
- Modélisation d’objets domaine (Domain Object Modeling)
→ Éviter les malentendus : Chaque analyste et développeur
forme une image mentale du système, pouvant entraîner
des incohérences
→ Clarifier les exigences : La modélisation du domaine force
à expliciter les hypothèses et à lever les ambiguïtés.
→ Aligner l’équipe : Une vision commune et partagée permet
d’assurer une compréhension cohérente du domaine.
→ Repérer les oublis : La formalisation du modèle aide à
combler les lacunes dans la compréhension des exigences

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les pratiques du FDD
- Modélisation d’objets domaine (Domain Object Modeling)
La technique la plus utilisée: UML en couleurs
Une extension de UML utilisant des couleurs pour catégoriser
les classes.
Ajoute une dimension visuelle : Permet une meilleure lisibilité
et compréhension rapide des dynamiques du domaine.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les pratiques du FDD
- Modélisation d’objets domaine (Domain Object Modeling)
La technique la plus utilisée: UML en couleurs
Catégories de classes et leurs couleurs :
Rôle (Role) : Personnes/Organisations jouant un rôle (Ex:
Acheteur, Vendeur, Admin).
Description (Catalogue) : Informations sur un objet sans
être l’objet (Ex: Fiche produit).
Entité (Party/Place/Thing) : Objets concrets ayant un
identifiant (Ex: Un produit en stock).
Événement (Moment-Interval) : Action liée au temps (Ex:
Un achat avec sa date).

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


FEATURE-DRIVEN DEVELOPEMENT
Les pratiques du FDD
- Modélisation d’objets domaine (Domain Object Modeling)
La technique la plus utilisée: UML en couleurs

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Développement par fonctionnalité (feature)
Toute fonction trop complexe pour être implémentée en deux
semaines est décomposée en sous-fonctions plus petites
jusqu’à obtenir des fonctionnalités gérables.
Contrairement à l'approche traditionnelle basée sur la
décomposition fonctionnelle ou les cas d'utilisation (use cases),
FDD se concentre sur la valeur métier directement
compréhensible par le client.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Développement par fonctionnalité (feature)
• Évite les spécifications trop complexes et inutiles.
• Permet une meilleure visibilité sur l’avancement du projet.
• Aide à prioriser ce qui est réellement utile au client.
• S’adapte bien aux méthodes agiles et à l’approche
incrémentale.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Développement par fonctionnalité (feature)
Toute fonction trop complexe pour être implémentée en deux
semaines est décomposée en sous-fonctions plus petites
jusqu’à obtenir des fonctionnalités gérables.
Une fonctionnalité : une petite fonction ayant une valeur pour
le client et réalisable en deux semaines maximum.
Modèle de nommage d’une fonctionnalité :
<action>the <result><by|for |of | to|><a(n)><object>
<Action> le <Résultat> <par|pour|de|à> <un(e)>
<Objet>

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Développement par fonctionnalité (feature)
Toute fonction trop complexe pour être implémentée en deux
semaines est décomposée en sous-fonctions plus petites
jusqu’à obtenir des fonctionnalités gérables.
Une fonctionnalité (feature) :
Exemples:
• Calculer le total d’une vente
• Évaluer la ponctualité d’exécution d’une commande
• Calculer le total des achats par client

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Développement par fonctionnalité (feature)
Toute fonction trop complexe pour être implémentée en deux
semaines est décomposée en sous-fonctions plus petites
jusqu’à obtenir des fonctionnalités gérables.
Ensemble de fonctionnalités (Feature Set) :
Un groupe de fonctionnalités liées à un processus métier.
<action><-ing><a(n)><object>
Gestion des ventes de produits: Making a product sale.
<object>Management
Product-Sales Management :
Gestion des ventes de produits

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Développement par fonctionnalité (feature)
Feature Cas d’utilisation
Définition Une petite fonction ayant une valeur Une description détaillée d’une interaction
métier explicite pour l’utilisateur. complète entre un acteur et le système.
Objectif Assurer la livraison de Définir toutes les interactions nécessaires
fonctionnalités utiles au client, en pour accomplir un objectif utilisateur.
petites unités autonomes.
Granularité Très fine : une feature doit être Plus large : un use case peut contenir
implémentable en moins de deux plusieurs features.
semaines.
Format Forme standardisée : <action> Document textuel structuré avec : Acteurs,
<résultat> <objet> Préconditions, Scénario principal, Scénarios
alternatifs, Postconditions.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Développement par fonctionnalité (feature)
Exemple : Système de Vente en Ligne
Use Case : Passer une commande
Acteur : Client
Préconditions : Le client est connecté à son compte.
Scénario principal :
- Le client ajoute des produits à son panier. (Feature : "Ajouter un produit au panier")
- Le client valide son panier et procède au paiement. (Feature : "Valider un panier")
- Le système demande les informations de paiement. (Feature : "Saisir les informations
de paiement")
- Le système vérifie la validité du paiement. (Feature : "Vérifier la validité du
paiement")
- Le système confirme la commande et envoie un email de confirmation. (Feature :
"Envoyer l'email de confirmation de commande")
- HALLOU
A. Postconditions : La commande est enregistrée
MÉTHODES DE CONCEPTIONet
ET en attente d’expédition.
DÉVELOPPEMENT GI21
MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Propriété individuelle du code (Code Ownership)
FDD utilise une propriété individuelle : Chaque développeur
se voit attribuer la responsabilité d'un ensemble de classes
provenant du modèle d'objet du domaine.
Chaque classe est attribuée à un développeur spécifique, qui
en est responsable.
→ Favorise la responsabilité et la clarté.
→ Permet une gestion plus fluide du code.
→ Facilite l’identification rapide des erreurs et améliorations

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Propriété individuelle du code (Code Ownership)
Avantages :
- Maintien de l'intégrité conceptuelle du code
- Meilleure compréhension et expertise sur une classe donnée
- Implémentation plus rapide des modifications.
- Motivation et responsabilisation accrues du développeur.
Inconvénients :
- Dépendance forte à une seule personne.
- Risque de blocage si un développeur attend qu’un autre
modifie son code.
- Problème de transmission des connaissances si le développeur
quitte le projet.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Propriété individuelle du code (Code Ownership)
Ownership collectif du code (utilisé en Extreme Programming - XP):
Tous les développeurs ont accès et peuvent modifier n’importe quel code.
Avantages :
- Fluidité des modifications sans dépendance à un seul développeur.
- Moins de risque lié au départ d’un développeur.
- Encouragement du travail collaboratif.
Inconvénients :
- Risque de perte de cohérence et d’intégrité du code.
- Possibilité de confusion et d’erreurs en raison de multiples modifications.
- Peut mener à une absence de réelle responsabilité individuelle.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Équipes de fonctionnalités (Feature teams)
= une équipe temporaire formée pour développer une
fonctionnalité spécifique.
Comme une fonctionnalité peut impliquer plusieurs classes,
plusieurs Class Owners peuvent être impliqués.
Le Feature Owner joue un rôle de chef d'équipe et coordonne
ses développeurs.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Équipes de fonctionnalités (Feature teams)
- Petite taille : les fonctionnalités étant généralement petites, les équipes restent
réduites.
- Pas d’attente : les membres possèdent tous les éléments nécessaires pour modifier le
code de la fonctionnalité, réduisant les dépendances entre équipes.
- Collaboration et partage de connaissances : chaque membre participe à la
conception et à l'implémentation, ce qui réduit la dépendance aux experts.
- Class Owners multitâches : un Class Owner peut être impliqué dans plusieurs
Feature Teams en fonction des classes concernées.
- Chef programmeur polyvalent : il possède des classes et participe aux Feature
Teams menées par d’autres chefs programmeurs.
- Organisation dynamique : les équipes changent à chaque nouvelle fonctionnalité
pour inclure les Class Owners concernés, selon un modèle de gestion dynamique en
matrice.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Équipes de fonctionnalités (Feature teams)
Quatre options pour organiser les équipes :
- Former des équipes fixes basées sur des regroupements de classes :
Inconvénient : difficile à anticiper, risque d'erreurs dans la répartition des classes.
- Faire appel aux membres d’autres équipes au besoin
Inconvénient : attente pour les modifications, ralentit le développement
- Abandonner l’ownership des classes et adopter une ownership collective
Inconvénient : risque de perte de cohérence et de responsabilité individuelle
- Modèle dynamique : reformer les équipes pour chaque fonctionnalité
Avantage : les Feature Owners sélectionnent les Class Owners nécessaires à chaque
feature. Une fois la feature terminée, l’équipe est dissoute et reformée pour la
suivante.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Inspections
Mélange d’équipe de fonctionnalité et d’inspection : La
combinaison des deux apporte une nouvelle dimension à
Feature-Driven Development (FDD).
Avantage de l’inspection : Dans une équipe de fonctionnalité,
le travail collaboratif réduit la peur de la humiliation
individuelle, permettant à chacun de s'exprimer sans crainte
de jugements.
Détection des défauts : L’utilisation de techniques éprouvées
pour détecter les défauts permet d’améliorer la qualité du
code et de favoriser de bonnes pratiques, de bonnes
conventions et une culture de développement saine.
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Builds réguliers
Construction fréquente du système : À intervalles réguliers,
tout le code source des fonctionnalités complètes ainsi que les
bibliothèques et composants associés sont pris en compte pour
reconstruire le système.
Avantage : Cela garantit qu'il y a toujours un système
fonctionnel démontrable et que les erreurs d'intégration sont
rapidement détectées.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Gestion de configuration
Gestion des versions du code : Elle permet de suivre les
dernières versions des fichiers source terminés et fournit une
traçabilité historique des artefacts du projet.
Avantage : Cela assure que l'équipe peut toujours travailler
sur les versions les plus récentes et garantit que l'historique
des modifications est conservé.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
- Reporting & visibilité
Suivi et rapport de progression : Des rapports fréquents et
adaptés à tous les niveaux du projet sont fournis pour évaluer
l'avancement en fonction des travaux terminés.
Avantage : Cette pratique assure que toutes les parties
prenantes, à l'intérieur et à l'extérieur du projet, sont
informées de l'avancement et des résultats obtenus en temps
réel.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
Exemple : projet de développement d'une plateforme de gestion des utilisateurs
Inspections :
Une équipe de fonctionnalité responsable de la gestion des utilisateurs travaille
ensemble pour développer la fonctionnalité.
Ils organisent des inspections régulières pour revoir le code et détecter des défauts
potentiels.
Les membres de l'équipe peuvent proposer des améliorations sans craindre de
critique personnelle, grâce à l'aspect collaboratif.
Build régulier :
À la fin de chaque cycle de développement d'une fonctionnalité, tout le code est
intégré et un build complet du système est effectué.
Cela garantit que les fonctionnalités déjà développées sont testées ensemble et qu'il
existe toujours une version démontrable du système.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les pratiques du FDD
Exemple : projet de développement d'une plateforme de gestion des utilisateurs
Gestion de la configuration :
Chaque version du code source de la fonctionnalité de gestion des utilisateurs est
suivie et versionnée dans un système de gestion de configuration.
Cela permet de revenir facilement à une version antérieure si un bug est détecté.
Reporting de l’avancement :
Des rapports réguliers sont envoyés aux parties prenantes du projet, indiquant les
fonctionnalités complétées et l'état global de la plateforme, ce qui permet de
maintenir la transparence et d’anticiper d’éventuels retards.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
→ Débute par la création d'un modèle objet du domaine en collaboration
avec les experts du domaine
→ À partir des informations issues de la modélisation et des besoins
identifiés, une liste de fonctionnalités est élaborée.
→ Un plan préliminaire est établi et les responsabilités sont assignées.

➔ Développement itératif par petits groupes de fonctionnalités (cycles


courts, ≤ 2 semaines).

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
FDD repose sur 5 processus clés :

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Développer un modèle global :
la construction d’un modèle général du produit qui va définir le périmètre
global de réalisation
implique une collaboration entre l’équipe métier et l’équipe de
développement sous la supervision d’un modélisateur d’objets expérimenté
(Architecte en chef).

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Développer un modèle global :
Le client doit être prêt à débuter le projet.
il peut avoir une ébauche de liste des besoins mais il n’est pas sensé savoir
précisément quels sont ses attentes : souvent il ne sait pas faire la
différence entre les fonctionnalités dont il a un besoin absolu et celles qu’il
serait bien d’avoir

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Développer un modèle global :
Tâches :

Former l’équipe de modélisation : développeurs, experts Managers Obligatoire


du domaine
Étude du domaine: une personne du métier explique aux Equipe modélisation Obligatoire
développeurs les caractéristiques du domaine de
l’application
Étude documentaire: l’équipe parcourt tous les documents Équipe modélisation Optionnelle
à disposition
Elaborer une liste informelle des features Architecte Obligatoire
Développeurs seniors

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Développer un modèle global :
Tâches :
Développer un modèle en petits groupes : chaque sous Équipe modélisation Obligatoire
groupe établit un diagramme de classes pour un
composant
Développer un modèle: chaque équipe présente le Equipe modélisation Obligatoire
résultat de son travail. L’architecte peut proposer d’autres Architecte
alternatives. L’ensemble de l’équipe choisit une
modélisation pour base, et élabore un diagramme global
clair et annoté
Lister les alternatives : pour faire référence plus tard, l’un Equipe modélisation Obligatoire
des participants note toutes les alternatives considérées
lors de la modélisation

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Créer une liste de features :
Le processus de construction d'une liste de fonctionnalités est essentiel pour
pour découper un projet complexe en unités simples, mesurables et
évolutives
Cela commence généralement par un travail en petit comité avec les
programmeurs principaux

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Créer une liste de features :
1. Décomposition du Domaine:
Le domaine est décomposé en zones principales (Major Feature Sets) par
les experts du domaine.
Ces zones représentent les grandes parties fonctionnelles du système.
Chaque zone est ensuite divisée en activités (Feature Sets)
2. Identification des Fonctionnalités:
Chaque activité est divisée en étapes spécifiques, et chaque étape est
identifiée comme une fonctionnalité.
Ces fonctionnalités doivent être petites, mesurables et indépendantes,
permettant ainsi un développement itératif et modulaire
3. Catégorisation Hiérarchique : Le résultat final est une liste
hiérarchique de fonctionnalités.
Cette liste est organisée par domaines, zones et activités
A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Planifier par fonctionnalité :
organiser l'ordre de développement des fonctionnalités en tenant compte
de plusieurs facteurs :
• Dépendances entre les fonctionnalités
• Charge de travail sur l’équipe de développement
• Complexité des fonctionnalités

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Planifier par fonctionnalité :
Processus de Planification :
1. Déterminer la séquence de développement
Identifier quelles fonctionnalités doivent être développées en premier
Prioriser les fonctionnalités essentielles
2. Assigner les Feature Sets aux Chief Programmers
Regrouper les fonctionnalités en blocs de travail cohérents
Répartir les tâches en fonction des compétences et de la charge de travail
3. Attribution des classes clés aux développeurs:
Chaque classe principale du projet est assignée à un développeur
responsable
Assurer un équilibre entre charge de travail et expertise

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Planifier par fonctionnalité :
La planification n’est pas linéaire, mais itérative :
• Après chaque ajustement, on réévalue l’ordre des tâches
• L'équilibre entre séquence de développement et affectation des
classes est optimisé progressivement

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Concevoir par fonctionnalité :
Processus de Conception :
1. Sélection des Fonctionnalités : Le Chief Programmer sélectionne un groupe
de fonctionnalités à développer. Ces fonctionnalités sont souvent liées à une
même classe ou module pour optimiser le travail.
2. Formation d'une Feature Team : Le Chief Programmer identifie les
propriétaires des classes concernées. Une équipe de développement est
formée autour des classes impliquées
3. Affinage du Modèle Objet : Le modèle objet est raffiné en fonction du
diagramme de séquence. Cela permet d’adapter les interactions entre les
objets avant le codage
4. Documentation et Préparation : Les développeurs rédigent des prologues de
classes et de méthodes pour décrire leurs responsabilités.
5. Inspection de Conception : Une revue de conception est réalisée pour
A. HALLOU
valider le modèle etMÉTHODES
corriger d’éventuelles incohérences.
DE CONCEPTION ET DÉVELOPPEMENT GI21
MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Construire par fonctionnalité :
implémentation des fonctionnalités dans le code
1. Implémentation des Fonctionnalités : Les Class Owners commencent à coder
les éléments nécessaires à la fonctionnalité, en se basant sur le design
produit. Ils doivent s'assurer que chaque classe supporte correctement les
fonctionnalités prévues
2. Tests Unitaires : Le code développé est soumis à des tests unitaires pour
valider sa fonctionnalité indépendamment
3. Inspection de Code : Le code est soumis à une inspection par les pairs (code
inspection).L’ordre des inspections est déterminé par le Chief Programmer,
selon la priorité des fonctionnalités et des modules
4. Autorisation de Build : Après avoir passé avec succès l’inspection de code, le
code est autorisé à être construit et intégré dans le projet.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21


MÉTHODES AGILES
Feature-Driven Developement
Les processus du FDD
- Concevoir par fonctionnalité :
concevoir les fonctionnalités avant leur implémentation
Cette phase assure une cohérence architecturale et une bonne répartition
des responsabilités dans le projet.

A. HALLOU MÉTHODES DE CONCEPTION ET DÉVELOPPEMENT GI21

Vous aimerez peut-être aussi