Vous êtes sur la page 1sur 32

Modélisation avec UML

- Diagramme d’états/transitions
- Diagramme d’activité

Abdellatif HAIR
Université Sultan Moulay Slimane
Faculté des Sciences et Techniques
B.P. 523, Béni-Mellal, MAROC
RAPPELS
• Caractéristiques fondamentales des objets
- Identité, Etat, Comportement
Etat
- Regroupe les valeurs instantanées de tous
les attributs d’un objet
- Évolue au cours du temps
- Est la conséquence des comportements
passés d’un objet à un instant donné

Comportement
- Décrit les actions et les réactions d’un objet
- Regroupe toutes les compétences d’un objet
- Se représente sous la forme d’opérations

2
RAPPELS
• Caractéristiques fondamentales des objets
Comportement
- Un objet peut faire appel aux compétences
d’un autre objet

- L’état et le comportement sont liés


- Le comportement dépend de l’état
- L’état est modifié par le comportement

3
DIAGRAMME D'ÉTATS-TRANSITIONS
Permet de représenter le cycle de vie des instances
d’une classe

• Un diagramme représente :
- Evolution de l’état des objets
- Comportement face à l’arrivée d’événements

4
DIAGRAMME D'ÉTATS-TRANSITIONS
Les états et transitions
• Les états sont représentés par des rectangles aux coins
arrondis
• Les transitions sont représentées par des arcs orientés liant
les états entre eux.

- Il y a au plus un diagramme d’états


par classe d’objets.
- A tout instant, un objet occupe un
seul état du diagramme.
- Pour sortir d’un état, un objet ne
franchit qu’une seule transition, le
menant à un seul nouvel état.

5
DIAGRAMME D'ÉTATS-TRANSITIONS
Les états et transitions

• Le diagramme d'états transitions représente l'organisation


des états et des transitions pour une classe donnée.

• Le modèle dynamique comprend plusieurs diagrammes


d'états.

6
DIAGRAMME D'ÉTATS-TRANSITIONS
Etat initial et état final
• L'état initial est un pseudo-état qui définit le point de
départ par défaut.
• Lorsqu'un objet est créé, il entre dans l'état initial.

• L'état final est un pseudo-état qui indique que l'exécution


est terminée.

7
DIAGRAMME D'ÉTATS/TRANSITIONS
Etat composite
• Un état composite, par opposition à un état dit simple , est
décomposé en deux ou plusieurs sous-états.
• Un état composite est représenté par les deux
compartiments de nom et d'actions internes habituelles, et
par un compartiment contenant le sous-diagramme.

8
DIAGRAMME D'ÉTATS-TRANSITIONS
Evénement déclencheur
• L'événement déclencheur est indiqué à côte de la flèche
représentant la transition
- Les transitions d'un diagramme d'états-transitions sont
déclenchées par des événements déclencheurs.
- Un appel de méthode sur l'objet courant génère un événement de
type call.
- Le passage de faux à vrai de la valeur de vérité d'une condition
booléenne génère implicitement un événement de type change.
- La réception d'un signal asynchrone, explicitement émis par un
autre objet, génère un événement de type signal.
- L'écoulement d'une durée déterminée après un événement donné
génère un événement de type after. Par défaut, le temps
commence à s'écouler dès l'entrée dans l'état courant.

9
DIAGRAMME D'ÉTATS-TRANSITIONS
Evénement call et signal

• Un événement de type call ou signal est déclaré ainsi :


nomEvenement ( params )

• Chaque paramètre a la forme :


param : ClasseParam

• Les événements de type call sont des méthodes déclarées au


niveau du diagramme de classes.

• Les signaux sont déclarés par la définition d'une classe portant le


stéréotype signal, ne fournissant pas d'opérations, et dont les
attributs sont interprétés comme des arguments.

10
DIAGRAMME D'ÉTATS-TRANSITIONS
Evénement change et after

• Un événement de type change est introduit de la façon suivante :


when ( conditionBooleenne )
- Il prend la forme d'un test continu et se déclenche potentiellement à
chaque changement de valeurs des variables intervenant dans la
condition.

• Un événement temporel de type after est spécifié par :


after ( duree )
- Le paramètre s'évalue comme une durée, par défaut écoulée depuis
l'entrée dans l'état courant.
- Par exemple : after(10 secondes).

11
DIAGRAMME D'ÉTATS/TRANSITIONS
Transition simple
• Une transition entre deux états est représentée par un arc
qui les lie l'un à l'autre.
- Elle indique qu'une instance peut changer d'état et exécuter
certaines activités, si un événement déclencheur se produit et
que les conditions de garde sont vérifiées.

• Sa syntaxe est la suivante :


nomEvenement ( params ) [ garde ] / activite
- La garde désigne une condition qui doit être remplie pour
pouvoir déclencher la transition,
- L'activité désigne des instructions à effectuer au moment du
tir.

12
DIAGRAMME D'ÉTATS/TRANSITIONS
Transition simple
• Exemple

13
DIAGRAMME D'ÉTATS/TRANSITIONS
Point de décision
• On peut représenter des alternatives pour le
franchissement d'une transition.

• On utilise pour cela des pseudo-états particuliers :


- Les points de jonction (petit cercle plein) permettent
de partager des segments de transition.
- Ils ne sont qu'un raccourci d'écriture.
- Ils permettent des représentations plus
compactes.

14
DIAGRAMME D'ÉTATS/TRANSITIONS
Simplification avec les points de jonction

Pour emprunter un chemin, toutes les gardes le long de ce chemin


doivent s'évaluer à vrai dès le franchissement du premier segment.

15
DIAGRAMME D'ÉTATS/TRANSITIONS
Point de choix

• On utilise pour cela des pseudo-états particuliers :


- Les points de choix (losange) sont plus que des
raccourcis d'écriture.

16
DIAGRAMME D'ÉTATS/TRANSITIONS
Etat concurrent
• Avec un séparateur en pointillés, on peu représenter
plusieurs "diagrammes" s'exécutant indépendamment.
• Un objet peut alors être simultanément dans plusieurs
états concurrents.

17
DIAGRAMME D'ÉTATS/TRANSITIONS
Transition concurrente
• Une transition fork correspond à la création de deux états
concurrentes.
• Une transition join correspond à une barrière de
synchronisation qui supprime la concurrence.
- Pour pouvoir continuer leur exécution, toutes les tâches
concurrentes doivent préalablement être prêtes à franchir la
transition.

18
DIAGRAMME D’ACTIVITÉS
OBJECTIFS
Les diagrammes d'activité offrent une manière graphique et
non ambiguë pour modéliser les traitements.
- Comportement d'une méthode
- Déroulement d'un cas d'utilisation

• Les diagrammes d’activités sont particulièrement adaptés à


la modélisation du cheminement de flots de contrôle et de
flots de données.

• On parle généralement dans ce cas de modélisation


de workflow. On se concentre ici sur les activités telles que les
voient les acteurs qui collaborent avec le système dans le
cadre d’un processus métier

19
DIAGRAMME D’ACTIVITÉS
Diagramme d’activité
=
• ensemble d’activités liés par:
– Transition (séquentielle)
– Transitions alternatives (conditionnelle)
– Synchronisation (disjonction et conjonctions d’activités)
– Itération

• + 2 états: état de départ et état de terminaison

• Couloirs (Swimlanes) : représente le lieu, le responsable


des activités.

20
DIAGRAMME D’ACTIVITÉS
• Couloirs
- Les diagrammes d'activités peuvent être découpés en couloirs
d'activités -partitions- (swimlanes) pour montrer les différentes
responsabilités au sein d'un mécanisme ou d'une organisation.
- Chaque responsabilité est assurée par un ou plusieurs objets et
chaque activité est allouée à un couloir donné.

21
DIAGRAMME D’ACTIVITÉS
• Flux d'objet

- Un flux d'objet représente la participation d'un objet dans un


flux de contrôle.

- Les flux d'objets sont représentés par des relations de


dépendance entre objets et les activités.

- Il est possible de faire apparaître clairement les objets dans


un diagramme d'activités, soit au sein des couloirs d'activités,
soit indépendamment de ces couloirs

22
DIAGRAMME D’ACTIVITÉS

23
DIAGRAMME D’ACTIVITÉS
• Représentation UML d’un diagramme d’activités

24
DIAGRAMME D’ACTIVITÉS
• Nœud d’objet

- Nous avons montré comment modéliser le comportement


du flot de contrôle dans un diagramme d’activités.

- Les flots de données n’apparaissent pas et sont pourtant


un élément essentiel des traitements (arguments des
opérations, valeurs de retour, …).
- Pour spécifier les valeurs passées en argument à une activité et les
valeurs de retour, on utilise des nœuds d’objets appelés pins
(pin en anglais) d’entrée ou de sortie.
- L’activité ne peut débuter que si l’on affecte une valeur à chacun
de ses pins d’entrée. Quand l’activité se termine, une valeur doit
être affectée à chacun de ses pins de sortie.

25
DIAGRAMME D’ACTIVITÉS
• Représentation UML d’un nœud d’objet

26
DIAGRAMME D’ACTIVITÉS
• Exception
- Une exception est générée quand une situation anormale
entrave le déroulement nominal d’une tâche.
- une activité qui peut soulever une exception.

27
DIAGRAMME D’ACTIVITÉS
• Gestionnaire d’exception
- Un gestionnaire d’exception est une activité possédant un pin
d’entrée du type de l’exception
- Le gestionnaire d’exception gère et lié à l’activité qu’il protège
par un arc en zigzag ou un arc classique orné d’une petite flèche
en zigzag.
- Le gestionnaire d’exception doit avoir les mêmes pins de sortie
que le bloc qu’il protège.

28
DIAGRAMME D’ACTIVITÉS
• Exemple
- Utilisation d’un gestionnaire d’exception pour protéger une
activité de l’exception Division_par_zero

29
DIAGRAMME D’ACTIVITÉS
• Construction un diagramme d’activité
1. Un Identifiez la portée du diagramme d'activité
Identifiez ce que vous allez modéliser : Un seul use case? Une partie d'un
use case ? Un « workflow » qui inclut plusieurs use cases ? Une méthode
de classe ?

2. Ajouter l’état de départ et de terminaison

3. Ajouter les activités


- Si vous modélisez un use case : introduisez une activité pour chaque use
case principal.
- Si vous modélisez un « workflow » : introduisez une activité pour chaque
processus principal, souvent un use case.
- Si vous modélisez une méthode, il est souvent nécessaire d’avoir une
activité pour chaque grand étape de la méthode.

30
DIAGRAMME D’ACTIVITÉS
• Construction un diagramme d’activité
4. Ajouter des transitions :
- Séquentielles,
- alternatives (conditionnelles),
- des synchronisations entre des activités,
- des itérations.

5. Identifier des swimlanes et répartir des activités identifiées.

31
DIAGRAMME D’ACTIVITÉS
• Exemple

32

Vous aimerez peut-être aussi