ENI-ABT
Chargé de cours: Dr Yacouba GOITA
Modélisation UML
Diagramme de collaboration
Module 4
eni-abt_2024
Diagramme de collaboration
• Le diagramme de collaboration montre les interactions et
les liens entre une collection d’objets. Il montre comment
les messages sont échangés entre les objets liés et dans
quel ordre ces messages se font
• Le diagramme de séquence met l’accent sur le temps
alors que le diagramme de collaboration met l’accent sur
l’espace (la liaison entre les objets)
• Un diagramme de collaboration peut être utilisé pour
montrer l’exécution d’un use-case, d’une opération ou
d’un scénario d’interaction dans le système
eni-abt_2024
Diagramme de collaboration
• Diagramme de séquences et diagramme de collaboration
:Utilisateur :Chaîne :Lecteur CD
allumer()
lecture(CD)
lecture()
démarrer()
afficherTitre()
eni-abt_2024
Diagramme de collaboration
• Diagramme de séquences et diagramme de collaboration
1:allumer()
2:lecture(CD)
:Chaîne
2.1:lecture()
:Utilisateur
2.1.1:démarrer()
2.1.2:afficherTitre()
:LecteurCD
eni-abt_2024
Diagramme de collaboration
• Exemple de diagramme de collaboration
:Alarme téléphonique :Alarme sonore
2b:déclencheur
:Gestionnaire du système 2a:déclencheur
2c:alarme :Gestionnaire
:Alarme sonore de la chambre
2c.2:déclencheur
1:alarme
:Superviseur
:Caméra de
2c.1:enregistrer( surveillance
date,heure,
:Fichier Log chambre,caméra)
eni-abt_2024
Diagramme d’états
eni-abt_2024
Introduction
• Les automates à états finis
– Ils représentent le comportement des objets, des acteurs, des
use-cases, des systèmes, des sous-systèmes, etc. Dans la suite,
le terme "sous-système" sera employé communément pour
représenter tout cela
– Ils décrivent l’évolution des états successifs des sous-systèmes,
pris entre deux états caractéristiques (par exemple création du
sous-système et sa destruction)
– Il n’est pas nécessaire de représenter un élément donné par un
automate si cet élément ne présente pas un comportement
caractéristique et intéressant
eni-abt_2024
Introduction
• Un diagramme d’états représente un automate qui
montre le cycle de vie d’un objet, d’un sous-système ou
d’un système
• Un diagramme d’états exprime les états qu’un objet peut
avoir et comment les événements (messages reçus,
temps écoulé, erreurs, conditions valides, etc.) affectent
ces états dans le temps
• Un diagramme d’états doit être attaché à tous les objets
qui ont des états clairs et identifiables ainsi qu’un
comportement complexe. Comme l'objet est issu d'une
classe identifiable, on peut parler parfois de diagramme
d'états associé à une classe
eni-abt_2024
Introduction
• Un diagramme d’états représente un automate qui
spécifie les états d’un objet ainsi que les événements qui
permettent à cet objet de transiter d’un état à un autre
• Chaque objet suit le comportement de l’automate associé
à sa classe et se trouve à un moment donné dans un état
qui caractérise ses conditions dynamiques
• Les automates sont aussi utilisés pour décrire le
comportement de groupe d’objets en associant un
automate à un élément composite
eni-abt_2024
États
• Chaque objet qui possède un comportement est
considéré dans un état particulier à un moment donné
• Un état est une situation bien définie durant la vie de
l’objet qui satisfait à des conditions, réalise des actions
ou est en attente d’événements
• Un état dépend des états précédents et des événements
survenus
• Un état est représenté par un rectangle dont les coins
sont arrondis
• Un état possède un nom
Un état
eni-abt_2024
États
• Un état est caractérisé en général par la notion de durée
et de stabilité. Un objet est généralement dans un état
donné pour un certain temps. Cet état est connu et défini
• L’état d’un objet est toujours l’image de la conjonction
instantanée des valeurs de ses attributs et de la présence
ou non des liens entre l’objet considéré et les autres
objets
• Exemple
Personne
0..1 1..*
Société Âge
eni-abt_2024
États
• Exemple (suite)
– Pour connaître les états de Personne, on doit étudier son âge et
la présence éventuelle d’un lien avec une société
– Les états possibles d’un objet Personne sont «En activité»,«Au
chômage» et «À la retraite»
Personne [Au chômage]
Âge : 30 ans
Personne [En activité]
Société Âge : 40 ans
Personne [À la retraite]
Âge : 75 ans
eni-abt_2024
États
• Dans un diagramme d’états :
– On doit toujours avoir un seul état initial État initial
– On peut avoir plusieurs états finaux État final
– On peut ne pas avoir d’état final (cas des systèmes
qui ne s’arrêtent pas)
– Un état initial désigne le premier état actif via une
unique transition
Premier état
État E1 actif
– En général, l’état initial et l’état final n’ont pas de nom
eni-abt_2024
Transitions
• Lorsque les conditions dynamiques évoluent, les états des
objets changent en suivant les règles décrites dans l’automate
associé à la classe dont ces objets sont les instances
• Les diagrammes d’états sont des graphes orientés. Les états
sont reliés par des connexions unidirectionnelles appelées
transitions
• Le passage d’un état à un autre s’effectue lorsqu’une transition
est déclenchée par un événement qui survient dans le
domaine du problème
• Le passage d’un état à un autre est généralement instantané
(par rapport à la dynamique du système) car le système doit
être toujours dans un état connu
• La syntaxe d’une transition : Événement [Garde] / Action
eni-abt_2024
Transitions
• Représentation d’une transition
État A État B
• Une transition ne relie pas nécessairement deux
états distincts
– Exemple Transition réflexive
Calculer prix item
régulière
Calculer prix total
eni-abt_2024
Événements
• Un événement correspond à l’occurrence d’une situation
particulière dans le domaine du problème
• Un événement est par nature une information
"instantanée" qui doit être traitée sans délai (Ceci est
contrairement à un état qui dure)
• Un événement peut déclencher le passage ou la
transition d’un état à un autre
• Les événements déterminent les chemins dans un
diagramme d’états
• Les événements, les transitions et les états sont
indissociables dans la description du comportement
dynamique
eni-abt_2024
Événements
• Un objet, dans un état donné, attend
l’occurrence d’un événement pour transiter à un
autre état
Événement
État A État B
• UML définit différents types d’événements
– Événement signal
– Événement appel
– Événement temporel
– Événement modification
eni-abt_2024
Événements
• UML définit différents types d’événements
– Événement signal
• Causé par la réception d’un signal asynchrone venant d'un
autre sous-système
– Événement appel
• Causé par la réception d’un appel d’opération
• Les événements de création et de destruction sont des cas
particuliers (les stéréotypes «crée» et «détruit» précisent ces
cas)
– Événement temporel
• Causé par l’expiration d’une temporisation
– Événement modification
• Exprimé par une expression booléenne et émis dès qu’une
expression donnée passe de faux à vrai. L’événement persiste
même si l’expression repasse à faux
eni-abt_2024
Gardes
• Une garde (ou condition de garde) est une condition
booléenne dont dépend le déclenchement d’une
transition lors de l’occurrence d’un événement
• Une garde est notée entre crochet
Événement [Condition]
État A État B
• Une garde est évaluée dès l’occurrence de l’événement
de déclenchement
• Lorsqu’un événement survient, les gardes (qui doivent
être mutuellement exclusives) sont évaluées et une
transition est validée puis déclenchée
eni-abt_2024
Opérations, actions et activités
• Une action est brève (négligeable devant la
dynamique du système) et non interruptible
• Une action consiste en :
– La génération de signaux
– La création ou la destruction d’objets
– L’invocation d’opérations
• L’action correspond à une des opérations déclarées
dans la classe des objets concernés
• Les états peuvent contenir des actions. Ces actions
sont exécutées à l’entrée ou à la sortie de l’état ou
lors de l’occurrence d’un événement pendant que
l’objet est dans l’état en question
eni-abt_2024
Opérations, actions et activités
• Les états peuvent être représentés d’une façon semblable à
celle d’une classe. Dans ce cas, leur représentation contient :
– Le nom de l’état
– Les transitions internes (la liste des actions ou des activités
internes effectuées pendant que l’élément est dans cet état)
• Une action ou une activité respecte le format suivant :
Étiquette ‘/ ’ expression d’action
expression d’action ::= action {‘,’ action}
Exemple : faire / calculer prix
– Étiquette indique le contexte dans lequel l’action sera invoquée.
Le contenu de l’action est défini par l’expression d’action
– Les actions correspondent à des opérations dont le temps
d’exécution est négligeable
eni-abt_2024
Opérations, actions et activités
• Dans UML, une action est atomique et doit se terminer
avant qu’une autre action puisse être considérée
• Les activités sont des exécutions non atomiques qui
peuvent être interrompues à tout moment, dès qu’une
transition de sortie de l’état est déclenchée
• Certaines activités sont continues et s’arrêtent à
condition qu’une transition de sortie soit déclenchée.
D’autres activités sont séquentielles et démarrent dès
l’entrée dans l’état (tout de suite après l’exécution des
actions d’entrée)
eni-abt_2024
Opérations, actions et activités
• Quelques étiquettes réservées
– entrée : introduit une action d’entrée exécutée de manière
instantanée et atomique dès l’entrée dans un état
– sortie : introduit une action de sortie exécutée à la sortie de l’état
État A
entrée / fixer mode N&B
sortie / fixer mode couleur
– faire : introduit une activité qui est exécutée pendant que l’objet
est dans un état donné
État A
faire / Une opération
eni-abt_2024
Opérations, actions et activités
• Attention : Il existe une différence fondamentale entre
une transition interne et une transition réflexive
– La transition interne n’entraîne pas l’exécution des actions
d’entrée et de sortie contrairement à une transition réflexive
e1 / Action E1
État A État A
entrée / Action d’entrée entrée / Action d’entrée
e1 / Action E1 sortie / Action de sortie
sortie / Action de sortie
eni-abt_2024
Opérations, actions et activités
• Transition conditionnelle
– Avec UML on peut représenter des transitions conditionnelles de
type IF … THEN … ELSE
– Exemple
Autorisation
[payement OK] délivré
Autorisé Délivré
faire / Vérifier
payement
[payement NOK]
Rejeté
eni-abt_2024
Transitions composites
• Il est possible de définir des transitions composites pour
factoriser et partager des connexions
– Plusieurs transitions composites peuvent se rejoindre et partager
des actions
– Une transition peut se séparer en des connexions mutuellement
exclusives
– Plusieurs transitions avec des conditions de garde mutuellement
exclusives peuvent provenir d’un même point. Ce point est appelé
point de jonction statique. Les gardes notées après le point de
jonction statique sont évaluées avant que la transition ne soit
empruntée
– Le point de jonction est représenté par un cercle noir (ou par un
losange)
eni-abt_2024
Transitions composites
• Il est possible de définir des transitions composites pour
factoriser et partager des connexions
– Exemple
Pré-traitement
Validation
[nbre-éléments = 1] [nbre-éléments >1]
Traitement Traitement
individuel par lot
eni-abt_2024
Transitions composites
• Il est possible de définir des transitions composites pour
factoriser et partager des connexions
– On peut ne pas représenter le point de jonction statique. Dans ce
cas, on représente un ensemble de transitions individuelles
dotées chacune d’une garde qui correspond à la conjonction de
toutes les gardes notées le long de chaque trajectoire
Pré-traitement
Validation [nbre-éléments = 1] Validation [nbre-éléments >1]
Traitement Traitement
individuel par lot
eni-abt_2024
Transitions composites
• Il est possible de définir des transitions composites pour
factoriser et partager des connexions
– Si les gardes en aval du point de jonction sont évaluées lorsque
ce point est atteint, ce point est appelé point de jonction
dynamique
– Ces gardes dépendent en général du résultat des actions
effectuées au cours de la transition vers le point de jonction
– Le point de jonction dynamique est représenté par un cercle
blanc
Commande
– Exemple
Validation / somme := Prix()
[somme = 0] [sinon]
[somme <1000$]
Annulation Traitement Vérif. Approvisionnement
du compte
eni-abt_2024
États composites
• Le diagramme d’états peut devenir illisible lorsque le
nombre de connexions entre les états devient élevé
• Solution : Utilisation des états composites
• Un état composite (ou englobant) en est un qui est
décomposé en sous-états. Ces sous-états peuvent à leur
tour être composites. Cette démarche permet une
décomposition hiérarchique du diagramme
• Les sous-états sont soit concurrents soit disjoints et
mutuellement exclusifs
• Un état non décomposable en sous-états est dit simple
eni-abt_2024
États composites
• États disjoints
– Un état peut se décomposer en des sous-états disjoints qui
héritent de leur état composite, en particulier des transitions
externes
– Ce genre de décomposition est aussi appelé décomposition
disjonctive ou encore de type ou-exclusif car l’objet doit être
dans un seul sous-état à la fois
– La représentation des sous-états disjoints d’un état composite est
réalisée dans le symbole de l’état composite
– Représentation
E1 A E1 B
A B
E2 E2 E2
C C
eni-abt_2024
États composites
• États disjoints
– La transition de sortie d’un état composite s’applique à tous ses
sous-états quel que soit le niveau de décomposition
– Les transitions d’entrée ne concernent pas tous les sous-états,
mais un seul
– Exemple
A B
A est relié directement au sous-
état B1. Cette configuration
B manque d’abstraction.
A Il est préférable de limiter les
B1
liens entre les niveaux
hiérarchiques en définissant un
état initial pour chaque niveau
B2
eni-abt_2024
États composites
• États disjoints
– Amélioration du niveau d’abstraction d’un automate par l’ajout
d’un état initial dans un état composite
B
A
B1
B2
eni-abt_2024
États composites
• États disjoints
– La représentation de tous les sous-états peut surcharger le
diagramme en information
– Pour donner une vision de plus haut niveau, on peut masquer les
détails des sous-états en utilisant un icône placé dans le coin
inférieur droit de l’état composite
– Exemple de comportement d’un réveil-matin
marche
À l’arrêt Fonctionnement
arrêt
arrêt marche
régler régler
Réglage
eni-abt_2024
États composites
• États disjoints
– Exemple de comportement d’un réveil-matin (suite) : État
composite Fonctionnement
Point de départ
tic[heure=heure de sonnerie]
stop
Départ Sonnerie
faire / Sonner
après(30 sec)
Point de
jonction statique
eni-abt_2024
États composites
• États concurrents
– Un état peut être composé de plusieurs sous-états concurrents.
Ces sous-états sont alors appelés régions
– Cette composition est de type conjonctive (ET). Cela implique
que l’objet doit être simultanément dans tous les sous-états
– La conjonction d’état représente une forme de parallélisme
– Les diverses régions dans un état composite sont représentées
dans le symbole de l’état. La séparation entre les différentes
régions se fait par des lignes en pointillées (horizontales ou
verticales)
– Il est possible d’attribuer un nom à une région donnée. Ce nom
reste, toutefois, optionnel
– Le déclenchement d’une transition vers l’état composite entraîne
l’activation de tous les états initiaux des diverses régions
eni-abt_2024
États composites
• États concurrents Si un événement arrive à
– Exemple S, T et U seront
simultanément activées.
L’objet est alors placé
dans l’état composite
État S (C,X)
Si l’événement E3 arrive,
Région T Région U T et U évoluent
indépendamment. L’objet
A E1 B X passe alors à l’état
composite (A,X)
E3 E2 E1 E4 [dans l’état C] T et U évoluent
C simultanément lorsque
Y l’objet reçoit l’événement
E1 alors qu’il est à l’état
(A,X) auquel cas il passe
à (B,Y)
eni-abt_2024
États composites
• Transitions entre états composites
– Les actions d’entrée des états sont toujours effectuées de
manière séquentielle dans l’ordre d’accès (du niveau hiérarchique
le plus élevé au plus bas)
Lorsque l’automate est dans
l’état Attente, l’événement
En cours test provoque l’exécution
séquentielle des actions
Entrée / Afficher(en cours) Afficher(test),
Sorite / Afficher(fin) Afficher(en cours) et
démarrage Afficher(Étape 1)
Attente
Étape 1
test / Afficher(test) Entrée/Afficher(Étape1)
fin
après (10 minutes)
/ Bip
eni-abt_2024
États composites
• Transitions entre états composites
– Une transition provenant d’un état composite s’applique à tous
ses sous-états. Quelque soit le niveau d’emboîtement, les sous-
états héritent de cette transition de sortie
– Le déclenchement de la transition entraîne la sortie de tous les
sous-états, la réalisation des différentes actions de sortie (du
niveau hiérarchique le plus bas jusqu’au niveau courant), puis la
réalisation de l’action de la transition sortant de l’état composite
avant le passage au nouvel état
eni-abt_2024
États composites
• Transitions entre états composites
– Exemple
En cours
arrêt / Mettre
hors tension
Traitement
Assemblage Arrêt
Sortie / Vérifier
marche
Entrée / Led [Link]
Sorite / Led verte.Éteindre
Si l’automate est dans l’état Traitement, l’événement arrêt force
l’exécution de l’action Vérifier puis Led verte.Éteindre et enfin Mettre
hors tension
eni-abt_2024
États composites
• Transitions entre états concurrents
– Une transition concurrente peut avoir plusieurs états sources et
destinations
– Il est possible de définir des synchronisations ou des répartitions
du flot de contrôle en utilisant respectivement des transitions de
synchronisation ou de débranchement
– La représentation d’une transition concurrente se fait par le biais
d’une barre de synchronisation symbolisée par un trait épais
– Plusieurs flèches peuvent arriver sur cette barre ou en partir
selon qu’une synchronisation, un débranchement ou les deux
sont définis
– Un nom des transitions peut être ajouté à proximité de la barre
eni-abt_2024
États composites
• Transitions entre états concurrents
– La transition concurrente est déclenchée lorsque tous les états
sources sont atteints et entraîne ainsi l’activation de tous les
états cibles
– Exemple : Représentation d’un débranchement D et d’une
synchronisation S dans l’automate d’une boîte de musique
Ouverte
Rotation
ouvrir fin
Remontée À remonter
Musique
eni-abt_2024
États composites
• États historiques
– UML permet de mémoriser le dernier sous-état visité par le biais
de l’indicateur spécial H représenté par un cercle contenant la
lettre H
– Le mécanisme d’historique s’applique au niveau dans lequel
l’indicateur H est déclaré
– L’indicateur H peut être placé n’importe où dans l’état composite
– Exemple : Laveuse
rinçage
arrêt
Attente après(2mn)
d’urgence
après(4mn) séchage après(2mn)
lavage
après(2mn) reprise arrêt d’urgence
H
eni-abt_2024
Références
– P-A. Muller, N. Gaertner, «Modélisation Objet avec UML»
– [Link]
eni-abt_2024