You are on page 1of 12

Pascal ROQUES

Valtech Training
UML est-il soluble dans les mthodes
agiles ?
octobre 07
Rsum
1
On entend beaucoup parler actuellement de deux approches ayant l'air fondamentalement
opposes :
l'approche Model-Driven, prconise par lOMG, s'appuyant sur une modlisation UML trs
pousse visant une gnration automatique de code quasi-complte,
les mthodes agiles mettant plus l'accent sur la production rapide de code oprationnel que
sur la documentation et minimisant donc la modlisation en amont.

Qu'en est-il vraiment ? UML est-il utilisable dans un contexte agile ou rserv au Model-Driven ? La
modlisation agile peut-elle exister ? Si oui, quels sont ses principes et ses meilleures pratiques ?



2
Table des matires

1. INTRODUCTION__________________________________________________________4
2. UML ET LES METHODES AGILES _____________________________________________5
2.1 Les principes agiles................................................................................................................. 5
2.2 RUP..................................................................................................................................... 6
2.3 OpenUP .................................................................................................................................. 6
2.4 XP ........................................................................................................................................... 7
2.5 Scrum...................................................................................................................................... 8
3. LA MODELISATION AGILE __________________________________________________9
3.1 Valeurs de la modlisation agile ............................................................................................. 9
3.2 Principes de la modlisation agile........................................................................................... 9
3.3 Pratiques de la modlisation agile ........................................................................................ 10
3.4 La modlisation agile selon Craig Larman............................................................................ 10
4. CONCLUSION __________________________________________________________12
POUR ALLER PLUS LOIN _____________________________________________________12

3
Liste des Figures
Figure 1 : Model Driven Architecture ........................................................................................................................... 4
Figure 2 : Les 13 types de diagramme UML2................................................................................................................ 5
Figure 3 : Le RUP est Use-Case Driven .................................................................................................................. 6
Figure 4 : La modlisation visuelle lve le niveau dabstraction................................................................................. 7
Figure 5 : Modlisation participative sur les murs ................................................................................................... 8
Figure 6 : Principes de la modlisation agile................................................................................................................ 9
Figure 7 : Pratiques de la modlisation agile.............................................................................................................. 10
Figure 8 : La modlisation sur projet selon Craig Larman......................................................................................... 11


4
1. Introduction
Depuis quelques annes, la modlisation objet avec le langage UML est devenue une pratique
courante sur de nombreux projets informatiques. UML a en particulier t port par la vague du
Processus Unifi, avec surtout la version RUP d'IBM/Rational. UML est galement le pilier central
de linitiative MDA (Model Driven Architecture) de lOMG.

Figure 1 : Model Driven Architecture
Pourtant, on ne trouve pas la moindre allusion UML ni la modlisation dans le livre de rfrence
sur Scrum
1
Alors, UML est-il devenu obsolte, la modlisation est-elle incompatible avec les
mthodes agiles la mode ? Nous allons essayer de dmontrer le contraire dans cette
prsentation.
UML se dfinit comme un langage de modlisation graphique et textuel destin comprendre et
dcrire des besoins, spcifier et documenter des systmes, esquisser des architectures logicielles,
concevoir des solutions et communiquer des points de vue. UML unifie la fois les notations et les
concepts orients objet. Il ne sagit pas dune simple notation graphique, car les concepts transmis
par un diagramme ont une smantique prcise et sont porteurs de sens au mme titre que les mots
dun langage.
UML 2 sarticule autour de treize types de diagrammes, chacun deux tant ddi la
reprsentation des concepts particuliers dun systme logiciel.



1
Agile Project Management with Scrum, Ken Schwaber, Microsoft Professional, 2004.

5

Figure 2 : Les 13 types de diagramme UML2

2. UML et les mthodes agiles
2.1 Les principes agiles
Le manifeste agile nonce quatre principes fondateurs :
Priorit aux personnes et aux interactions
Plutt que sur les processus et les outils
Laccent est mis sur les individus, leur expertise, lesprit dquipe plutt que
sur les processus et les outils
Des applications fonctionnelles oprationnelles
Plutt quune documentation plthorique
On privilgie le code test
Collaboration avec le client
Plutt que ngocier un contrat
Le client devient un partenaire qui participe au projet pour donner
rgulirement son feedback
Ractivit au changement
Plutt que suivre un plan
Le planning est flexible pour accepter les modifications ncessaires

Source : site OMG

6
Daprs le second principe agile, lutilisation de modles UML des fins de documentation doit tre
restreinte au strict ncessaire Regardons cependant plus en dtail ce que disent vraiment les
principales mthodes agiles, et leurs promoteurs, de la modlisation.
2.2 RUP
Parmi les principales best practices promues par le RUP, on en trouve deux qui correspondent
notre sujet.
Modliser visuellement
RUP prconise denregistrer les penses et de communiquer en utilisant des langages visuels et
schmatiques, comme UML, parce que les langages visuels sont naturels et faciles apprhender
pour le cerveau humain.
Dvelopper itrativement
Le dveloppement itratif et incrmental est une valeur commune toutes les mthodes agiles.
RUP prconise de planifier le contenu technique des itrations en fonction de la priorisation des cas
dutilisation. Le cas dutilisation (use case) est un concept UML qui reprsente un ensemble de
squences dactions ralises par le systme et qui produisent un rsultat observable intressant
pour un acteur particulier.

Figure 3 : Le RUP est Use-Case Driven
2.3 OpenUP
OpenUP insiste beaucoup moins que le RUP sur lutilisation de la modlisation UML pour les
livrables du projet. Cependant, OpenUP met galement laccent sur lintrt de la modlisation
visuelle qui augmente le niveau dabstraction .
Visual modeling is the use of semantically rich, graphical and textual design notations to capture
software designs. A notation, such as UML, allows the level of abstraction to be raised, while
maintaining rigorous syntax and semantics. In this way, it improves communication in the team as
the design is formed and reviewed, allowing the reader to reason about the design, and it provides
an unambiguous basis for implementation.

7


Figure 4 : La modlisation visuelle lve le niveau dabstraction
Pour OpenUP, les modles visuels aident :
Amliorer la comprhension des systmes complexes
Explorer et comparer des alternatives de conception faible cot
Former une fondation pour limplmentation
Capturer prcisment les exigences
Communiquer les dcisions de faon non ambige
UML reprsente la convergence des meilleures pratiques en modlisation logicielle travers
lindustrie de la technologie objet.
2.4 XP
XP ninterdit pas les documents, mais pose dessus un regard critique
XP ninterdit pas la modlisation, mais rappelle que seul un code oprationnel est garant de
qualit
Si la cration dun modle est une demande Client, alors il sagit dune user story intgrer
dans une ou plusieurs itrations, comme les autres
Alors, utiliser UML dans XP, pourquoi pas mais comment ?
la place des CRC Cards ?
Diagramme dinteraction
Diagramme de classes
la place des user stories ?
Cas dutilisation
Pour le client : modlisation mtier
Diagrammes dactivit, de classes et dtats


8
Comme pour tout autre livrable, il faut se demander :
Ce modle est-il utile ? qui ?
Pour combien de temps ?
Quelle est sa valeur ajoute ?
2.5 Scrum
Scrum ne prconise aucune technique particulire dingnierie, mais :
La modlisation agile est encourage, au lieu dune modlisation UML extensive
Les modles aident comprendre, ils ne sont pas considrs comme une
documentation obligatoire
Documentez le produit quand il est stable
Si une documentation est requise, il vaut mieux la construire aprs que le
code ait t test (reverse engineering)
Certains experts prconisent :
Un peu de modlisation au dbut de chaque itration
Pour mieux communiquer le but tous les intervenants
Un modle mtier lors de la runion de planification en dbut de Sprint
Amliore la discussion sur les user stories
Tous encouragent :
Une modlisation participative
Les modles sont dessins sur les murs (post-it gants, etc.), pendant des
sessions de modlisation collaboratives

Figure 5 : Modlisation participative sur les murs

9
3. La modlisation agile
Scott Ambler est le grand promoteur de la modlisation agile
2
.
Il a repris les valeurs et principes de XP en les adaptant la modlisation.
3.1 Valeurs de la modlisation agile
Communication
Simplicity
Feedback
Courage
Humility
Les cls dune modlisation russie consistent promouvoir une communication efficace entre tous
les participants du projet, de se forcer dvelopper la solution la plus simple possible qui satisfasse
tous les besoins, obtenir des retours rapides et frquents, avoir le courage de prendre des
dcisions et sy tenir, et avoir lhumilit de reconnatre quon ne sait pas tout et que les autres
ont une valeur apporter ses propres efforts.
3.2 Principes de la modlisation agile

Figure 6 : Principes de la modlisation agile
Quelques prcisions sur les principes : ils sont directement issus des principes XP, mais adapts
la modlisation. Par exemple, limportance de chercher la simplicit, de ne pas refuser le
changement, mais au contraire de lencourager, etc.
Il faut modliser avec un but : si vous ne savez pas quoi votre modle va servir, ni ce quattend
vraiment son auditoire, il ne sert rien dy travailler !


2
Il a dtaill ses ides dans un livre : Agile Modeling: Effective Practices for Extreme Programming and the
Unified Process, Scott Ambler, Wiley, 2002.

10
Il faut voyager lger : les modles ne sont pas forcment conserver et maintenir. Une fois quils
ont atteint leur but, jetez-en la plupart !
3.3 Pratiques de la modlisation agile

Figure 7 : Pratiques de la modlisation agile
L encore, certaines pratiques sont directement issues de XP.
Commentons celles qui sont plus spcifiques la modlisation :
Il est important de crer plusieurs modles en parallle, dutiliser le bon artifact : le
diagramme le plus adapt la situation, et de se tourner vers un autre diagramme ds quon
se trouve bloqu pour continuer avancer une allure stable.
Modlisez en petits incrments et avec les autres, au lieu dessayer de crer le modle
magique qui englobe tout depuis votre tour divoire
Prouvez vos modles avec du code pour montrer que vos ides marchent vraiment en
pratique et pas seulement en thorie.
Utilisez des notations simples afin que le contenu de vos modles soit facile valider, avec
les outils les plus simples. Focalisez vous uniquement sur les aspects que vous devez
modliser et nessayez pas de crer tout prix un modle trs dtaill.
Modlisez plusieurs, montrez vos modles publiquement sur les murs ou un site web,
appliquez le principe XP de proprit collective.
Ne vous embarrassez pas de modles temporaires, et ne mettez jour vos modles que
quand a fait mal
3.4 La modlisation agile selon Craig Larman
Lun des meilleurs experts des mthodes agiles et de Scrum en particulier, notre collgue amricain

11
Craig Larman
3
, rsume ainsi comment il voit maintenant lutilisation de la modlisation et donc
dUML :
Ne modlisez pas seul !
La modlisation doit tre collaborative et participative
Des outils simples qui encouragent la crativit
Larman encourage lutilisation de feutres et paperboards, plutt que de progiciels
couteux et lourds
Des modles multiples et en parallle
Par exemple diagrammes de classes et de squence pour faire une esquisse de
conception objet
Les modles ne sont pas de la documentation!
Nous modlisons pour avoir une conversation ensemble et pour dvelopper une
comprhension commune
Tout modle est faux ! Et cest OK
Par cet aphorisme provocant, Larman veut mettre laccent sur laspect provisoire des
modles, le seul modle qui fait foi la fin du projet, cest le code !
The code is the model!
Lorganisation de la modlisation agile selon Larman peut tre reprsente ainsi :

Figure 8 : La modlisation sur projet selon Craig Larman


3
Agile and Iterative Development: A Manager's Guide, Craig Larman, Addison-Wesley, 2003.

12

4. Conclusion
Finalement, la question de lutilit dUML au sein des mthodes agiles revient poser celle de
lutilit de la modlisation !

Quest-ce quun modle agile ?
Il remplit son objectif et reste comprhensible
Il est suffisamment prcis, cohrent et dtaill
Il est aussi simple que possible mais procure une valeur claire
Exemples :
Use cases pour la vision du projet
Modle du domaine pour la comprhension commune
Dpendances entre composants ou packages
Classes et interactions pour illustrer des frameworks


Agile models are just barely enough! (S. Ambler)
A est un bon modle de B si A permet de rpondre de faon satisfaisante des questions
prdfinies sur B (D.T. Ross)
Pour aller plus loin
Sites :
http://www.agilemodeling.com/
http://www.agilealliance.com
http://www.craiglarman.com

Blogs :
http://blog.valtech.fr/
http://xp.thierrycros.net/
http://scrum.aubryconseil.com/
http://www.dotnetguru2.org/proques/