CHAPITRE IV
MODELE DYNAMIQUE
DIAGRAMME DE SEQUENCE,
DIAGRAMME DE COMMUNICATION
&
DIAGRAMME D’ETATS TRANSITION
"La logique vous mènera d'un point A à un point B.
L'imagination vous mènera partout "
Albert Einstein
77
IV.1 Modèle Dynamique : Définition
➢ Le modèle dynamique montre le comportement du système et
l’évolution des objets dans le temps.
➢ Le modèle dynamique identifie les différents événements
venant du monde externe et montre l'enchaînement dans le
système que provoquent ces événements externes.
➢ Evénement : Quelque chose qui se produit à un moment donné
dans le temps, et qui n'a pas de durée.
➢ Exemples : l’utilisateur décroche son téléphone, le conducteur
appuie sur un bouton.
But du modèle dynamique :
➢ Trouver les relations temporelles et événementielles entre les objets.
➢ Définir les états des objets qui déterminent une réaction différente face à
un événement.
➢ Trouver les actions effectuées par les objets suite à la réception
d’événements.
Place du modèle dynamique dans le processus de modélisation
78
IV.2 Diagrammes d'Interaction
Les diagrammes d’interaction ont pour but de modéliser la façon dont les
groupes d'objets collaborent pour réaliser un comportement donné.
➢ Représentent la collaboration entre objets pour la réalisation d'un cas
d'utilisation ou la réalisation d’une opération.
➢ Mettent en évidence l'expéditeur et le récepteur de l'événement.
➢ Chaque événement reçu par un objet devra se traduire par une
opération pour le gérer dans le diagramme de classes.
IV.2.1 Diagrammes de Séquence
➢ Montrent les interactions entre objets selon un point de vue
temporel.
➢ Le contexte des objets n'est pas représenté
IV.2.2 Diagrammes de Collaboration / Communication
➢ Montre les interactions entre objets en insistant sur la structure
spatiale statique.
➢ Exprime à la fois le contexte de groupe d'objets et l'interaction entre
ces objets.
➢ Extension du diagramme d'objets.
79
SECTION A
DIAGRAMMES DE SEQUENCE
SEQUENCES DIAGRAM
" Celui qui n'a jamais fait une erreur n'a sans doute
jamais essayé quelque chose de nouveau "
Albert Einstein
80
IV.A.1 Diagrammes de Séquence : Définition
➢ Met en évidence l'aspect temporel (haut vers le bas).
➢ Un objet a une ligne de vie représentée par une ligne verticale en
pointillé.
➢ Une flèche reçue par un objet se traduit par l’exécution d’une opération.
➢ La durée de vie de l’opération est symbolisée par un rectangle.
➢ Certains objets vivent pendant tout le diagramme, d'autres sont activés
et/ou meurent pendant la séquence.
➢ Il est possible de définir des choix et des itérations.
IV.A.2 Concepts principaux
1. Les participants (le plus souvent des objets) :
✓ Une ligne de vie
✓ Des zones d’actIV.Ation
2. Les messages
✓ L’opération et éventuellement ses paramètres
✓ Eventuellement son résultat
3. Des structures de contrôle
✓ Alt : conditionnelle
✓ Loop : boucle
✓ Réf : référence à un autre diagramme de séquence (= appel de
fonction)
✓ Etc.
IV.A.2.1 Participant : Représentation des acteurs
➢ Rectangle + Ligne de vie
➢ Nom_objet : nom_classe
81
IV.A.2.2 Messages
Communication entre les lignes de vie
➢ appel de méthode
➢ envoi d'un signal
➢ création/destruction d'une instance
Syntaxe : attribut = nom_signal_ou_op (arguments) : valeur_retournée
IV.A.2.2.1 Types de messages :
➢ Appels de méthodes ou autres méthodes d'appels synchrones
➢ Communication asynchrone : l'émetteur déclenche le stimulus et passe
immédiatement à la suite de l'exécution
82
➢ Retours de procédures (ou de méthodes) : optionnel
➢ Un objet peut s'envoyer des messages
➢ Un message peut entraîner la création ou la destruction d'objets
IV.A.2.2.2 Occurrence d'exécution
L’occurrence d’execution est aussi appelé « focus de contrôle » elle
correspond à la durée d'activité de l'objet ; ce qui représente le temps
durant lequel il est actif.
83
IV.A.2.2.3 Message trouvé; Création & Destruction d’objets
Message trouvé = émetteur inconnu
Diagrammes de séquence : Exemple Création & Destruction d’objets
IV.A.2.3 Cadre d’interaction
Cadre qui englobe une partie du DS (un fragment) pour définir un
fonctionnement non séquentiel.
➢ Alt : représente une alternative (if-then-else) ; fragment alternatif :
conditions dans les gardes.
➢ Loop : c’est une boucle; fragment à répéter tant que la condition de
garde est vrai.
➢ Opt : c’est un fragment optionnel qui sera exécuté si la garde est vraie.
➢ Par : ce sont des fragments qui s’exécutent en parallèle.
➢ Region : région critique dans laquelle un seul thread doit s’exécuter.
➢ Ref : référence : passage à un autre diagramme de séquence.
84
IV.A.2.3.1 Diagramme de séquence : Exemple cadres
Mot réservé pour déclarer un diagramme de séquence
Nom du diagramme de séquence
Contrôle et diagrammes de séquences
85
IV.A.3 Diagramme de séquence : Réserver un Livre
IV.A.4 Diagramme de Classe: Ajout des opérations dans les classes
86
SECTION B
DIAGRAMME DE
COLLABORATION ENTRE CLASSES
DIAGRAMME DE COMMUNICATION
-
COMMUNICATION DIAGRAM
" La connaissance s'acquiert par l'expérience, tout le reste
n'est que de l'information. "
Albert Einstein
87
Diagramme Collaboration / Communication
➢ Diagramme de collaboration (UML 1.X) ;
➢ Diagramme de communication (UML 2.X) ;
➢ Version simplifié du diagramme de séquence ;
➢ 2 vues différentes mais logiquement identiques : isomorphe ;
➢ Diagramme de collaboration au niveau instance = diagramme de
communication.
IV.B.1 Diagramme de collaborations : Définition
➢ Le diagramme de collaborations sous une forme distincte du diagramme de
séquences représente les interactions entre classes en mettant moins en
évidence l'aspect temporel.
➢ Ce modèle explique la coopération entre objets pour la réalisation d'une
fonctionnalité, cette coopération implique les différents événements qui se
propagent d'un objet à l'autre. Un objet doit avoir une méthode appropriée pour
traiter chaque événement qu'il reçoit (message).
➢ L'aspect temporel n'est pas complètement caché car chaque message est
numéroté.
Système
1 2
4
5 3
6
➢ Le flot de données intervenant dans ces interactions peut être précisé.
IV.B.2 Diagramme de Communication : But & Principes
PRINCIPES :
➢ Libre de placer les participants (objets) ;
➢ On fait des liens entre eux, et on les numérote (interactions) ;
➢ Pas de ligne de vie.
88
BUTS :
➢ Comportement collectif d’objets ;
➢ En vue de réaliser une opération.
DEFINITIONS :
➢ Une collaboration est une collection d’objets et d’acteurs liés entre
eux.
➢ Une collaboration définit un ensemble de participants et de relations
qui sont sensés pour un périmètre donné.
➢ Une collaboration entre deux objets travaillants ensemble produit
une fonctionnalité.
➢ Les objets collaborent entre eux par communications (s’échangeant
des messages).
QUAND L’UTILISER ?
➢ Phase de cadrage.
➢ Début de projet pour clarifier le domaine d’étude.
➢ Représenter collaboration entre le domaine d’étude et les partenaires
➢ Permet de déterminer :
✓ Les flux entrants ;
✓ Les flux sortants ;
✓ Les acteurs externes ;
✓ Les domaines connexes.
QUOI UTILISER ?
Diagramme de séquence ou Diagramme de communication ?
Majorité des personnes : Diagramme de séquence ;
➢ Diagramme de communication : Adapté pour montrer les liens ;
➢ Diagramme de séquence: Importance des messages ;
89
IV.B.3 Principaux Concepts
1. Les Objets
2. Les liens d’interactions
3. Les Messages
IV.B.3.1 Objet : Représentation graphique
Représenté par un
rectangle
Nommage : Nom
de l’objet
instancié
Nom de l’objet et
nom de la classe
Nom de la classe
UML 2.X : Plus de soulignement
IV.B.3.2 Liens d’interactions
Les liens indiquent un chemin de communication entre 2 objets, sur lequel
passent les messages.
Lien d’interaction
90
Exemples :
IV.B.3.3 Messages : Types
Synchrone L’expéditeur est bloqué pendant le
traitement du message par l'expéditeur
Retour d'appel Un message synchrone peut être un
appel de procédure, le retour peut être
représenté
Asynchrone L'expéditeur continue son exécution
pendant le traitement du message
Minuté Comme le synchrone, mais un chien de
garde est positionné, c'est à dire que
l'expéditeur se réveille au bout d'un
certain temps s'il ne reçoit pas de
réponse.
Informations portées sur les messages :
[pré "/"] [["["cond"]"] [séq] ["*"["||"]["["iter"]"]]":"] [r ":="] msg"("[par]")"
➢ pré : numéro des messages prédécesseurs
➢ cond : condition, garde d'envoi du message
➢ séq : numéro de séquence du message
91
➢ * : itération, || : en parallèle
➢ iter : détaille l'itération
➢ r : stocke la valeur de retour du message
➢ msg : nom de l'opération à appeler
➢ par : paramètres de l'opération
Exemples
➢ [heure = midi] 1 : manger()
➢ 3 / *[i := 1..5] : fermer()
➢ 1.3, 2.1 / [t < 10s] 2.5 : age := demanderAge(nom)
IV.B.4 Diagramme de collaboration : Réserver un livre
92
SECTION C
DIAGRAMMES ETATS –
TRANSITIONS
-
STATE MACHINE DIAGRAM
" "Ne me dites pas que ce problème est difficile. S'il
n'était pas difficile, ce ne serait pas un problème. "
Maréchal Foch
93
IV.C.1 Diagramme d’Etats : Définition
Le diagramme d’états de transition décrit:
➢ Le comportement des objets d’une classe au moyen d’un
automate d’états associés à la classe qui est modélisé par un
graphe.
➢ Une transition :
✓ exécution d’une action.
✓ réaction de l’objet sous l’effet d’une occurrence d’événement.
➢ Un cycle de vie d’un objet d’une classe :
✓ Les états qui peuvent être pris par les objets d’une classe.
✓ Les événements qui provoquent la transition d’un état à un
autre.
✓ Les actions subies/provoquées qui accompagnent un
changement d’état.
✓ Les activités qui surviennent tant que l’objet est dans un état
donné.
IV.C.2 Diagramme d’Etats : Objectif
Etudier les états d’un Système d’Information :
➢ Comprendre le système d’information en s’intéressant aux classes qui
présentent des traitements complexes.
➢ Fournir une représentation dynamique du comportement des objets
d’une classe.
➢ Aider à déterminer les événements qui occasionnent les transitions.
➢ Aider à déterminer les opérations qui vont permettre ces transitions.
IV.C.3 Diagramme d’Etats : Notion d’état
➢ Un état = étape dans le cycle de vie d’un objet.
➢ Chaque objet possède à un instant donné un état particulier.
➢ Chaque état est identifié par un nom.
➢ Un état est stable et durable.
➢ Chaque diagramme d’états-transitions comprend un état.
94
➢ Il est possible de n’avoir aucun état final : un système qui ne s’arrête
jamais.
IV.C.3.1 Etats spéciaux
2 états prédéfinis:
➢ état de démarrage : obligatoire, unique
➢ état de fin : optionnel, peut-être multiple
IV.C.3.2 Etats imbriqués-composite
➢ Si le diagramme d’état transition devient trop complexe, on peut
utiliser des états imbriqués pour le simplifier.
➢ Un super-état ou état composite est un état qui englobe d’autres états
appelés sous-états • Le nombre d’imbrication n’est pas limité (ne pas
abusé sinon problème de lisibilité).
Etats imbriqués-composite : Exemple
95
IV.C.4 Diagramme d’Etats : Notions d’évènement
Un événement :
➢ correspond à l’occurrence d’une situation donnée dans le domaine
étudié.
➢ est une information instantanée qui doit être traitée à l’instant où elle se
produit.
La description complète d’un événement est donnée par :
➢ Nom de l’événement
➢ Liste des paramètres
➢ Objet expéditeur
➢ Objet destinataire
➢ Description textuelle
IV.C.4.1 Notions de garde
➢ Une garde est une condition booléenne qui permet ou non le
déclenchement d’une transition lors de l’occurrence d’un événement.
96
IV.C.4.2 Notions de transitions
➢ Les états sont reliés par des connexions unidirectionnelles appelées
transitions.
➢ Ex : place de parking
Communications entre les objets par évènements
➢ La communication est de type asynchrone, atomique et unidirectionnelle.
IV.C.5 Diagramme d’Etats : Notions d’opérations et actions
Action et activités: Le lien entre les opérations définies dans la spécification
d’une classe et les événements apparaissant dans le diagramme d’états-
transitions:
✓ Chaque transition peut avoir une action à exécuter lorsqu’elle est déclenchée
✓ L’action est considérée comme instantanée et atomique
97
✓ Une action correspond à l’exécution d’une des opérations déclarées dans la
classe de l’objet destinataire de l’événement.
✓ L’action a accès aux paramètres de l’événement ainsi qu’aux attributs de l’objet
sur lequel elle s’applique.
Notions d’opérations et actions
➢ Contrairement à une action, une activité est une opération qui dure un
certain temps.
➢ Les activités sont associées aux états:
✓ commencent quand on est entré dans l’état.
✓ s’exécutent jusqu’à la fin si elles ne sont pas interrompues par
une transition sortante (donc tant que l’état ne change pas).
✓ peuvent être interrompues car elles ne modifient pas l’état de
l’objet.
➢ Les activités sont notées dans la partie inférieure de l’état.
IV.C.6 Diagramme d’Etats : Syntaxe
➢ Syntaxe d'une transition:
✓ événement [garde] / action
✓ Chaque partie est optionnelle.
98
✓ La transition est suivie si l'événement a été généré et que la garde est
valide.
➢ Exécute alors l'action avant de rentrer dans l'état ciblé par la transition.
✓ Attention : pas deux transitions possibles partant d'un même état.
➢ Syntaxe des activités que l'on peut associer à un état :
✓ do / action : action exécutée dans l'état ;
✓ entry / action : action exécutée à l'entrée dans ;
✓ exit / action : action exécutée à la sortie de l'état ;
✓ evt / action : transition interne pour l'occurence de l'événement evt.
➢ Lien avec l'objet associé au diagramme d'états :
✓ Les actions peuvent être les méthodes de la classe de l'objet.
✓ Peut utiliser les attributs de l'objet, par exemple dans les gardes des
transitions.
IV.C.6 Résumé
➢ Diagramme d'états décrit le comportement interne d'un objet ;
➢ Permet la définition de tous les états possibles d'un objet ;
➢ La définition de tous les changements d'états via des transitions ;
➢ Il est associé à un objet ou à une opération.
99
➢ Etat d’un objet: Situation d’un objet que l’on désire connaître et gérer.
➢ Transition: Passage d’un objet d’un état à un autre. Elle est
déclenchée par un événement.
➢ Evénement: Stimulus qui provoque une (ou plusieurs) transition(s). A
chaque stimulus peut correspondre une action responsable des
modifications de l’objet (les valeurs des attributs).
IV.C.8 Cas de la bibliothèque : Recherche des états
➢ L’état d'un objet est lié aux valeurs de ses variables d'instances et des
interactions avec les autres objets. Il s'agit de ne conserver que les états
significatifs.
➢ La réponse d'un objet à un événement dépend de l'état dans lequel cet objet
se trouve.
➢ Un objet passe dans un état donné par l'événement qui modifie ses variables,
et quitte cet état par un autre événement qui les modifie à nouveau. Ce sont
des transitions d'états.
IV.C.8.1 Diagramme de transitions d’états : Livre
➢ Chaque transition est provoquée par un événement.
➢ Une transition n'a pas de durée.
➢ La durée d'un état est l'intervalle de temps qui s'écoule entre l'événement
d'entrée et celui de départ.
100
IV.C.8.2 Diagramme de transitions d’états : Adhérent
101