UML - P. Bommel, J.P. Müller, M. Belem 1 Les principales notions des approches objets et de l’UML Partie 2 : Les modèles dynamiques
UML - P. Bommel, J.P. Müller, M. Belem 2 Les modèles dynamiques Les modèles dynamiques è Permettent de comprendre et de décrire le comportement des objets et leurs interactions è Sont utilisés pour définir ou préciser les comportements è Trois types de représentations Diagrammes d'états - transitions (dynamique interne à un objet) Diagrammes d‘activité (dynamique intra ou inter objets) Diagrammes d'interaction (dynamique entre objets) Diagrammes de séquence Diagrammes de collaboration
UML - P. Bommel, J.P. Müller, M. Belem 3 Modèles dynamiques : PLAN è Diagrammes d’états-transitions è Diagrammes d'activités è Diagrammes d'interaction Diagrammes de collaboration Diagrammes de séquences
UML - P. Bommel, J.P. Müller, M. Belem 4 Modèles dynamiques : PLAN è Diagrammes d’états-transitions è Diagrammes d'activités è Diagrammes d'interaction Diagrammes de collaboration Diagrammes de séquences
UML - P. Bommel, J.P. Müller, M. Belem 5 Diagramme d’état-transition èObjectif : Décrire la dynamique de l’objet èÉléments : État d'un objet valeurs de ses attributs et de ses liens au cours du temps un objet peut changer d'état Transition Événement (stimuli d'un objet vers un autre objet) Garde (conditions) Actions
UML - P. Bommel, J.P. Müller, M. Belem 6 Notation de base des diagrammes d’état-transition èUne transition est provoquée par un événement Etat initial Etat final Transitions État 1 faire : Activité 1 Événement 1 [Cond1] / Action1 État 2 faire : Activité 2 stimulus
UML - P. Bommel, J.P. Müller, M. Belem 7 Exemples èChauffage à thermostat èCycle de vie État : Veille T° < 15°C État : Chauffe
UML - P. Bommel, J.P. Müller, M. Belem 8 Exemple: Exploitation d’une parcelle
UML - P. Bommel, J.P. Müller, M. Belem 9 Exercices èChoix d’assolement : A Chaque mise en culture, l’age de culture augmente de 1 l’exploitant affecte une culture de la façon suivante: âge culture = 0 => cultiver(igname) âge culture = 1 => cultiver(maïs) 2 cultiver(sorgho) âge culture = 5 => mettreEnjachère En jachère, l’âge de la jachère augmente d’un point chaque année Elle est mise en culture (nouvelle rotation) si l’âge de la jachère atteint 15 ans
UML - P. Bommel, J.P. Müller, M. Belem 10 Exemple : Choix d’assolement èChoix d’assolement : A Chaque mise en culture, l’age de culture augmente de 1 A cet age, on affecte une culture de la façon suivante: âge culture = 0 => occupation=igname Âge culture = 1 => maïs 2 sorgho âge culture = 5 => jachère En jachère, l’âge de la jachère augmente d’un point chaque année La parcelle est cultivée si l’âge de la jachère atteint 15 ans
UML - P. Bommel, J.P. Müller, M. Belem 11 Exemple: Choix d’assolement Rotation des cultures sur une parcelle IgnameMaïsSorgho Jachère 1 ère année 2 ème année 3 ème année 4 ème année 5 ème année 6 ème année 15 ème année
UML - P. Bommel, J.P. Müller, M. Belem 12 Exemple: Choix d’assolement
UML - P. Bommel, J.P. Müller, M. Belem 13 Exercices èChoix d’assolement : Modifier le digramme en supposant qu’une jachère a une probabilité de 0,55 de se transformer en forêt au delà de 30 années de jachère
UML - P. Bommel, J.P. Müller, M. Belem 14 Les actions èPour les transitions èPour les états Etat AEtat B Event( arg1,... )[ condition ] / Action ^aTargetClass.sendEvent(arg1,...)
UML - P. Bommel, J.P. Müller, M. Belem 15 Exemple d’une machine à café 1 € or 2 € Annule Petit (1€) Grand (2€) Rendu Café Petit Grand 1€ / Rendre(1) 2€ / Rendre(2) 2€ 1€ Annule / Rendre(1) Petit / petitCafé, Rendre(1) Grand 2€ / rendre(1) 1€ Annule 5 événements possibles Annule Petit Grand 1€ 2€ Petit Grand Rendu Entrées Sorties 5 événements possibles 3 actions possibles Etat-1 Etat-0 Etat-2 3 états possibles Petit / Petit café Grand / grandCafé Annule / Rendre(2)
UML - P. Bommel, J.P. Müller, M. Belem 16 Exercice èEvolution d’un mètre carré de terrain : L’indice d’un couvert végétal est une valeur entière positive : indice ≈ biomasse ≈ age Chaque année l’age augmente de 1 A cet age, on attribut un état du couvert de la façon suivante: 0 ≤ age sol nu 2 ≤ age pelouse 7 ≤ age lande 15 ≤ age maquis 30 ≤ age => foret Au delà de 50 ans, la forêt a 1 chance sur 2 de disparaître pour laisser place à un sol nu Faire un diagramme d’état-transition du couvert végétal
UML - P. Bommel, J.P. Müller, M. Belem 17 Solution : Diagramme d’état-transition du couvert végétal sol nu pelouse lande maquis foret incrément age [age >= 15] incrément age [age >=30] incrément age [age>= 7] incrément age [age >= 2] incrément age [age >= 50 et Prob >= 0,5] / age(0)
UML - P. Bommel, J.P. Müller, M. Belem 18 Exercice èFaire un diagramme d’état-transition du cycle de vie du papillon Les Lepidoptères subissent une 'métamorphose complète’ au cours de leur vie. Ils passent par quatre étapes très distinctes : Oeuf (Ovum), chenille (larve), Chrysalides (nymphéa) et adulte (imago). l'étape larvaire est habituellement beaucoup plus longue...
UML - P. Bommel, J.P. Müller, M. Belem 19 Solution : Diagramme d’état-transition du cycle de vie du papillon
UML - P. Bommel, J.P. Müller, M. Belem 20 Super état èÉtats d’un feu tricolore èEtats d’une machine à laver
UML - P. Bommel, J.P. Müller, M. Belem 21 Exercice èEvolution d’un mètre carré de terrain : Transformer le diagramme de l’exercice précédent en considérant le feu : Quelque soit l’état du couvert végétal et quelque soit l’indice, la portion de terrain redevient « sol nu » si le feu survient.
UML - P. Bommel, J.P. Müller, M. Belem 22 Solution : Diagramme d’état-transition du couvert végétal avec feu sol couvert sol nu pelouselande maquisforet i >=7 i >= 15 i >=30 i >=50 [Prob >= 0,5] ]/ indice(0) i >=2 feu / indice(0)
UML - P. Bommel, J.P. Müller, M. Belem 23 Parallélisme èT et U en parallèles èÉvénement E1 diffuse dans T et U èU mémorise dans quel état il était
UML - P. Bommel, J.P. Müller, M. Belem 24 Ex: les états de la Sardinelle
UML - P. Bommel, J.P. Müller, M. Belem 25 Ex: les états de la Sardinelle et suivi dans la filière capture consommable vivant adulte oeufjuvenile age > 2 age > 18 event partenaire [femelle & non fécondée]/ reproduction pêche [taille > 20] mareyeur dispo [Port] pêché consommateur dispo [Marché] à vendrevendu age>30 consommé pas frais
UML - P. Bommel, J.P. Müller, M. Belem 26 Exercice èExploitation d’une parcelle : Transformer le diagramme suivant en considérant qu’une plantation est cultivée pendant les cinq premières années
UML - P. Bommel, J.P. Müller, M. Belem 27 Exercice: Exploitation de parcelle
UML - P. Bommel, J.P. Müller, M. Belem 28 Modèles dynamiques : PLAN èDiagrammes d’états-transitions è Diagrammes d'activités è Diagrammes d'interaction Diagrammes de collaboration Diagrammes de séquences
UML - P. Bommel, J.P. Müller, M. Belem 29 Diagramme d'activités èObjectif: Décrire un ensemble d’activités Représenter les actions et leurs enchaînements èPeut représenter le comportement d'un cas d’utilisation le comportement interne d'une classe, le comportement d'une opération un flux de contrôle entre activités (un algorithme,...)
UML - P. Bommel, J.P. Müller, M. Belem 30 Diagramme d'activités: les éléments è Activités è Transitions entre activités En fait ces diagrammes peuvent être vus comme une forme simplifiée des diagrammes d'états - transitions (voir chapitre suivant) è (Pseudo) états initial et final è Points de décision et barres de synchronisation è Flots d’objets (branches parallèles de flux, réseau de Pétri) activité état1 État2 évènement
UML - P. Bommel, J.P. Müller, M. Belem 31 Notation de base des diagrammes d'activités èUne activité est une action èUne transition permet de passer d’une activité à une autre Etat initial Etat final Transitions
UML - P. Bommel, J.P. Müller, M. Belem 32 Exemple : diagramme d’activité de la vraie vie
UML - P. Bommel, J.P. Müller, M. Belem 33 Notation de base des diagrammes d'activités
UML - P. Bommel, J.P. Müller, M. Belem 34 Les "couloirs de nages" (swimlanes)
UML - P. Bommel, J.P. Müller, M. Belem 35 Exemple: activités d’un exploitant
UML - P. Bommel, J.P. Müller, M. Belem 36 Exemple: diagramme d’activités d’une parcelle
UML - P. Bommel, J.P. Müller, M. Belem 37 Exemple: activités d’un troupeau èL’excrétion et la recherche de pâturage sont synchrones
UML - P. Bommel, J.P. Müller, M. Belem 38 Swimlane : Culture d’une parcelle cultiver Récolter stocker incrémenterAgeCulture évaluerRendement :Parcelle:Fermier MettreEnJachère [fin saison] incrémenterAgeJachère [parcelle épuisée]
UML - P. Bommel, J.P. Müller, M. Belem 39 Exemple « d’object flow »: Achat de parcelle èParcelle Pas de « swimlane » Pas d’activité Change simplement d’état Demande Parcelle Accepter Proposition payer Proposer parcelle confirmer p:Parcelle [proposée] p:Parcelle [payée] Karim:FermierJoseph:Fermier
UML - P. Bommel, J.P. Müller, M. Belem 40 « Object flow » s: Sardinelle [vivante] s: Sardinelle [pêchée] s: Sardinelle [jetée] :Mareyeur versZonePêche pêcher retourPort chercherMareyeur vendrePoisson jeterPoisson :Pecheur [mareyeur] [pas de mareyeur] versPort cherchePêcheur acheterPoisson déplacerMarché vendrePoisson [pêcheur] [pas de pêcheur] s: Sardinelle [vendue] s: Sardinelle [consommée] èavec Swimlanes Points de décision Barres de synchronisation Flux d’objets
UML - P. Bommel, J.P. Müller, M. Belem 41 Modèles dynamiques : PLAN è Diagrammes d'activités è Diagrammes d’états-transitions è Diagrammes d'interaction Diagrammes de collaboration Diagrammes de séquences
UML - P. Bommel, J.P. Müller, M. Belem 42 Scénarios Diagrammes d'interaction Cas d'utilisation Démarche proposée è S1) Définir et décrire les cas d'utilisation è S2) Pour chaque cas d'utilisation, choisir les scénarios principaux et les décrire : diagrammes de séquence (vue externe) è S3) Construire les diagrammes d'interaction pour chaque scénario : diagrammes de séquence ou de collaboration
UML - P. Bommel, J.P. Müller, M. Belem 43 Cas / scénarios / diagrammes de séquence
UML - P. Bommel, J.P. Müller, M. Belem 44 B C A M1 M2 M3 M4 M6 M5 Diagramme de séquence
UML - P. Bommel, J.P. Müller, M. Belem 45 B C message A 1: M1 2: M2 3: M3 4: M4 6: M6 5: M5 Diagrammes de collaboration
UML - P. Bommel, J.P. Müller, M. Belem 46 La ligne de vie « create » Création par le message «create» Activation de l’objet qui exécute une opération op Destruction par un autre objet :C1 « destroy » op Diagramme de séquence
UML - P. Bommel, J.P. Müller, M. Belem 47 Diagrammes de séquence (4) : itération èTraitements répétés sur "n" instances (noté avec *) èL'itération peut être associée avec une condition * [condition] équivaut à Tant que [condition] : Scheduler : Forestier : Exploitation : Parcelle * évaluerExploitation valeur * valeur
UML - P. Bommel, J.P. Müller, M. Belem 48 Diagrammes de séquence (4) èType d’envoi de messages synchrone: asynchrone: réflexif: constructif: destructif: alternative: boucles: [X]mess. [non X]mess. *[X]mess. :Ca message simple: le flot d ’exécution est passé par l ’objet A à l ’objet B. A est alors bloqué jusqu ’à ce que B lui redonne la main
UML - P. Bommel, J.P. Müller, M. Belem 49 Diagrammes de séquence valeur
UML - P. Bommel, J.P. Müller, M. Belem 50 Diagrammes de séquence (7) : Mise en culture d’une parcelle Bommel
UML - P. Bommel, J.P. Müller, M. Belem 51 è Outil de dialogue : langage de représentation des modèles graphique et simple formel et normalisé (OMG) è Outil ouvert Indépendant des langages de programmation Pas un processus d'élaboration des modèles Adaptable (stéréotype) UML: Conclusion
UML - P. Bommel, J.P. Müller, M. Belem 52 Livres UML (1) è Booch Grady, Rumbaugh James, and Jacobson Ivar, The Unified Modeling Language User Guide, , Addison Wesley, Fall 1998, traduit : Le guide de l'utilisateur UML, Eyrolles è Jacobson Ivar, Booch Grady and Rumbaugh James, The Unified Software Development Process, , Addison Wesley, Fall 1998, traduit : Le processus unifié de développement logiciel, Eyrolles è Rumbaugh James, Jacobson Ivar, and Booch Grady, The Unified Modeling Language Reference Manual, X, Addison Wesley, Fall 1998
UML - P. Bommel, J.P. Müller, M. Belem 53 Livres UML (2) Conallen Jim, Concevoir des applications Web avec UML, Eyrolles, Douglass Bruce Powell, Doing Hard Time : Developping Real-Time Systems with UML, Addison Wesley, Eriksson, UML Toolkit, Wiley, 1997 Fowler Martin, UML Distilled, Applying the Standard Object Modeling Language Addison Wesley, 1997 Kettany N et al, De Merise à UML,Eyrolles, 1998 Larman Craig, Applying UML and Patterns,Prentice Hall, 1998 Lee R, Tepfenhart W, UML et C++, Simon et Schuste, 1998 Lopez N, Intégrer UML dans vos projets, Eyrolles, 1997 Muller Pierre-Alain, Modélisation objet avec UML, Eyrolles, 1997 Roques Pascal, Vallée Franck, UML en action, Eyrolles, Roques Pascal, UML par la pratique, Eyrolles, Schmuller Joseph, Teach Yourself UML in 24 Hours, Sams Publishing, 1999 Texel Williams, Uses cases combined with Booch/OMT/UML, Prentice Hall, 1998