32
La modélisation agile Pascal Roques Pascal Roques 25 mai 2009

Xp Day2009 Modelisation Agile

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Xp Day2009 Modelisation Agile

La modélisation agilePascal RoquesPascal Roques

25 mai 2009

Page 2: Xp Day2009 Modelisation Agile

Présentations : Pascal RoquesModélisation : depuis plus de 20 ans• SADT, OMT, UML, SysML

• Blog: http://consultants.a2-artal.fr/proques

Méthodes agiles : depuis près de 10 ansRUP S• RUP, Scrum

2

Page 3: Xp Day2009 Modelisation Agile

A2 – Présentation de la sociétéSociété créée début 2009• Une dizaine de personnes à Toulouse et Paris fin 2009• Filiale du groupe Artal, SSII spécialiste J2EE de 100 personnes

Créée par des consultants venant de groupes de conseil ITD i ( l d 10 d’ é i )• Des seniors (plus de 10 d’expérience)

• Des juniors passionnés par les technologies du domaine de l’ITSociété spécialisée dans l’innovation ITSociété spécialisée dans l innovation IT• Conseil sur SOA / BPM / Agilité / Modélisation / Urbanisation• Expertise technique sur J2EE, RIA (Flex, GWT, Ajax…)pe t se tec que su J , ( e , G , ja )• Spécialistes du Cloud+SaaS en entreprise (SOA sur le Cloud)• Formations sur l’ensemble de ces domaines

Forte activité de R&D• Pour la création de cours• Pour l’exploration technique des sujets « de demain »

Page 4: Xp Day2009 Modelisation Agile

Plan

Introduction

Les valeurs

Les principes

Les pratiquesp q

ExempleExemple

ConclusionConclusion4

Page 5: Xp Day2009 Modelisation Agile

Introduction : quelques idées fausses …

Modélisation Processus

l dlourd

Tout le monde Les modèles sont figés

Tout le monde sait modéliser

Modèle = Documentation

Modéliser est une perte de

temps …

Modélisation

La modélisation agile

Modélisation Outil CASE cher

5

Page 6: Xp Day2009 Modelisation Agile

Introduction : au fait, les gurus agiles ?

A. Cockburn

M F lM. Fowler

C. LarmanC. Larman

6

Page 7: Xp Day2009 Modelisation Agile

Introduction : la modélisation agile

Référence : le livre de Scott Ambler• agile modeling

Eff ti P ti f• Effective Practices for eXtreme Programming

d th U ifi d Pand the Unified Process

Accompagné de son site :• www.agilemodeling.com

7

Page 8: Xp Day2009 Modelisation Agile

Introduction : trouver le juste milieu …

Pas dePas de modélisation

du tout !du tout

Trop deTrop de modélisation !

8

Page 9: Xp Day2009 Modelisation Agile

Valeurs de la modélisation agile

• Une des raisons principales de modéliser• Un diagramme vaut mille mots !Communication

• Garder les modèles aussi simples que possibleP d déli ti !Simplicité • Pas de sur-modélisation !Simplicité

• Modéliser en groupeModéliser en groupe• Revoir les modèles avec l’audience ciblée• Implémenter le modèle !

Feedback

• Prendre les bonnes décisions, même si elles semblent contraire aux « habitudes »

• Reconnaître que l’on ne sait pas toutCourage

• Les modélisateurs agiles ont l’humilité de reconnaître qu’ils ont besoin des autres, de leur expertiseHumilité

La modélisation agile

• Les modèles ne sont jamais parfaits

9

Page 10: Xp Day2009 Modelisation Agile

Principes de la modélisation agile (1/2)

Core Principles :S ft i i l• Software is your primary goal

• Enabling the next effort is your secondary goalT l li ht• Travel light

• Assume simplicity• Embrace change• Incremental change

Core Principles (suite) :• Model with a purpose• Multiple models• Quality workQuality work• Rapid feedback• Maximize stakeholder

investmentinvestment

10

Page 11: Xp Day2009 Modelisation Agile

Principes de la modélisation agile (2/2)

Supplementary Principles :Principles :• Content is more important

than representation• Everyone can learn from

everyone else• Know your modelsy• Local adaptation• Work with people’s

instinctsinstincts

11

Page 12: Xp Day2009 Modelisation Agile

Pratiques de la modélisation agile (1/3)

Core Practices :1 It ti d i t l• 1 - Iterative and incremental modeling• Apply the right artifact(s)• Create several models in parallel• Iterate to another artifact• Model in small increments

• 2 - Teamwork• Model with others• Active stakeholder• Active stakeholder

participation• Collective ownership• Display models publicly• Display models publicly

12

Page 13: Xp Day2009 Modelisation Agile

Pratiques de la modélisation agile (2/3)

Core Practices :• 3 - Simplicity

• Create simple content• Depict models simplyDepict models simply• Use the simplest tools

• 4 - ValidationC• Consider testability

• Prove it with code

13

Page 14: Xp Day2009 Modelisation Agile

Pratiques de la modélisation agile (3/3)

Supplementary Practices :• 1 - Productivity

• Apply modeling standards• Apply patterns gently• Apply patterns gently• Reuse existing resources

• 2 - Documentation• Discard temporary modelsDiscard temporary models• Formalize contract models• Update only when it hurts

14

Page 15: Xp Day2009 Modelisation Agile

Organisation selon C. Larman

15

Page 16: Xp Day2009 Modelisation Agile

Exemple : librairie en ligne (1/4)

Diagramme de UC : l b l dvue globale des

fonctionnalités

16

Page 17: Xp Day2009 Modelisation Agile

Exemple : librairie en ligne (2/4)

Diagramme de séquence :séquence : • scénario nominal

d’une visite au site

17

Page 18: Xp Day2009 Modelisation Agile

Exemple : librairie en ligne (3/4)

Diagrammes de classes : gmodélisation incrémentale du domaine

18

Page 19: Xp Day2009 Modelisation Agile

Exemple : librairie en ligne (4/4)

19

Page 20: Xp Day2009 Modelisation Agile

Exercice 1

Réalisez :Un diagramme de cas• Un diagramme de cas d’utilisation pour le jeu de démineur

• Un diagramme de séquence pour le scénario nominal du casscénario nominal du cas d’utilisation principal

20

Page 21: Xp Day2009 Modelisation Agile

Exercice 2

Réalisez :Un diagramme de• Un diagramme de classes pour le jeu de démineur

• Un diagramme d’états pour une des classes du domainedomaine

21

Page 22: Xp Day2009 Modelisation Agile

Conception : diagramme de communication

Montre la i ti t

• Met l’accent sur les relations structurelles entre les objetscommunication entre

éléments dans le plan au sein d’une

structurelles entre les objets• Notation simplifiée par rapport au

diagramme de séquence• La numérotation décimale permetau sein d’une

interactionLa numérotation décimale permet de montrer l’imbrication des envois de messages

22

Page 23: Xp Day2009 Modelisation Agile

Conclusion : qu’est‐ce qu’un modèle agile ?

Il remplit son objectif et reste compréhensiblecompréhensible

Il est Il est aussi suffisamment

précis, cohérent et

simple que possible mais procure une cohérent et

détailléprocure une valeur claire

23

Page 24: Xp Day2009 Modelisation Agile

Conclusion

La valeur ajoutée principale est plus dans l’ i i é d déli i ll êl’activité de modélisation elle-même, que dans le modèle obtenu !• …Every model is wrong! and that’s OK (Larman)

UML est le standard, mais adoptez juste le jsous-ensemble nécessaire et suffisant !

• Règle des 80 / 20

24

Page 25: Xp Day2009 Modelisation Agile

Conclusion : et les outils ?Il commence à émerger une offre d’outils « agiles » !Gratuits et capables de dessiner à partir d’une forme textuelle• http://yuml.me/

Permet de créer des diagrammes UML en ligne et de les publier sur un blog ou un Wiki

• http://www umlgraph org/• http://www.umlgraph.org/Permet de créer des diagrammes de séquence et de classes

• http://abstratt.com/ (TextUML Toolkit)Open-source IDE for UML that lets you create models at the same speed you write code

• http://metauml.sourceforge.net/ (MetaUML)GNU GPL MetaPost library for typesetting UML diagrams, using a textual notationGNU GPL MetaPost library for typesetting UML diagrams, using a textual notation

• http://code.google.com/p/modsl/ (ModSL)Text-to-diagram UML sketching tool

htt // b di /• http://www.websequencediagrams.com/Permet de créer des diagrammes de séquence

• http://sdedit.sourceforge.net/index.htmlp gPermet de créer des diagrammes de séquence

25

Page 26: Xp Day2009 Modelisation Agile

Des outils UML agiles !http://yuml.me/

P t d é d di UML• Permet de créer des diagrammes UML en ligne et de les publier sur un blog ou un Wiki

[Joueur]-(Jouer une partie de demineur{bg:green})(Jouer une partie de demineur)<(Configurer le jeu) (Jouer une partie de demineur)<(Consulter l'aide)

[Partie|niveau;resultat;temps]0..1-1[Plateau|nbLignes;nbColonnes;nbMines][Plateau]++1-*[Case|x;y;estMinee][Plateau]++1 [Case|x;y;estMinee][Partie]1-1[Joueur|nom]

26

Page 27: Xp Day2009 Modelisation Agile

Des outils UML agiles !http://www.websequencediagrams.com/

optoptJoueur->Demineur: configurerPartie

endlooppalt clic gaucheJoueur->Demineur: decouvrirCase

else clic droitJoueur->Demineur: marquerCase

endJoueur->Demineur: decouvrirCaseDemineur >Joueur: gagné !Demineur->Joueur: gagné !opt high scoreJoueur->Demineur: entrerNom(n)

end

27

Page 28: Xp Day2009 Modelisation Agile

Solution 1

28

Page 29: Xp Day2009 Modelisation Agile

Solution 1

29

Page 30: Xp Day2009 Modelisation Agile

Solution 2

30

Page 31: Xp Day2009 Modelisation Agile

Solution 2

31

Page 32: Xp Day2009 Modelisation Agile

Solution 2

32