Vous êtes sur la page 1sur 7

28/05/2013

Diagrammes d'activités Diagrammes d’interaction


• Formalisme
Vue Vue
logique implémentation • Diagramme de communication
UML diagrammes de classes
diagrammes d'objets
diagrammes de composantes • Diagramme de séquence
Vue utilisateur
diagrammes de cas
diagrammes d'états
Diagramme de Composants diagrammes d'activités
diagrammes de séquence
diagrammes de déploiement

diagrammes de collaboration
Vue Vue
comportement déploiement

Pr El Alami 1 M El Alami 3

Formalisme
Formalisme Introduction
• Les objets interagissent car ils sont munis de comportements.
• Deux types d’interactions:
• Introduction • Les objets individuels (diagramme d’états-transitions) • Introduction
• Les collections d’objets qui coopèrent (diagrammes d’interaction).
• Notion de classificateur structuré • Le diagramme d’états-transitions est attaché à un classificateur. • Notion de classificateur structuré
• Le diagramme d’interaction offre une vue plus globale du comportement d’un
• Collaboration d’objets jeu d’objets. • Collaboration d’objets
• Le diagramme de communication met l’accent sur l’organisation structurelle
• Interactions et lignes de vie des objets qui envoient et reçoivent des messages. • Interactions et lignes de vie
• Le diagramme de séquence est un diagramme met l’accent sur la chronologie
• Représentation générale de l’envoi des messages.
• Les diagrammes d’interaction:
• Représentation générale
• établissent un lien entre les diagrammes de cas d’utilisation et les
diagrammes de classes
• illustrent comment des objets communiquent pour réaliser une fonctionnalité
du système.

4 5 6

Notion de classificateur structuré Notion de classificateur structuré Formalisme


• C’est la description de la structure d’implémentation interne d’une classe. • Introduction
• Graphiquement, il se représente par un rectangle en trait plein comprenant
deux compartiments. • Notion de classificateur structuré
• le compartiment supérieur contient le nom du classeur
• le compartiment inférieur montre les parties internes liées par des • Collaboration d’objets
connecteurs
• Un classeur structuré possède
• des ports,
• Interactions et lignes de vie
• des parties
• des connecteurs.
• Représentation générale
• La création d’une instance de classeur structuré, crée une instance
de ses ports, de ses parties et de ses connecteurs.
Classeur structuré Moteur constitué d’un Allumage et de quatre Bougie

7 8 9

1
28/05/2013

Collaboration d’objets Formalisme Interactions et lignes de vie


• Décrit la mise en œuvre d’une fonctionnalité par un jeu de participants
• Un rôle est la description d’un participant • Introduction • Une interaction montre le comportement d’un classeur structuré ou d’une
• Graphiquement, une collaboration se représente par une ellipse en trait pointillé collaboration en focalisant sur l’échange d’informations entre les éléments
comprenant deux compartiments:
• Le compartiment supérieur contient le nom de la collaboration
• Notion de classificateur structuré du classeur ou de la collaboration.
• Une interaction contient un jeu de ligne de vie.
• Le compartiment inférieur montre les participants à la collaboration
• Collaboration d’objets • Chaque ligne de vie correspond à une partie interne d’un classeur ou d’une
collaboration (rôle dans le cas d’une collaboration).
• Interactions et lignes de vie • L’interaction décrit l’activité interne des éléments du classeur ou de la
collaboration, appelés lignes de vie, par les messages qu’ils échangent.

• Représentation générale

10 11 12

Interactions et lignes de vie Interactions et lignes de vie Formalisme


• Introduction
• Notion de classificateur structuré
• Collaboration d’objets
• Interactions et lignes de vie
• Représentation générale

Diagramme de communication d’un système de pilotage. Diagramme de séquence d’un système de pilotage.

13 14 15

Représentation générale Diagrammes d’interaction Diagramme de communication


• Un diagramme d’interaction se représente par un rectangle contenant, dans le coin
• Formalisme • Généralités
supérieur gauche un pentagone accompagné du mot-clef :
• sd lorsqu’il s’agit d’un diagramme de séquence • Diagramme de communication • Lignes de vie
• com lorsqu’il s’agit d’un diagramme de communication
• Le mot clé est suivi du nom de l’interaction.
• Diagramme de séquence • Connecteurs
• Messages

16 17 18

2
28/05/2013

Généralités Diagramme de communication Lignes de vie


• Il rend compte de l’organisation spatiale des participants à l’interaction
• Il peut être utilisé pour illustrer un cas d’utilisation
• Généralités
• Il permet de valider les associations du diagramme de classe en les utilisant
comme support de transmission des messages • Lignes de vie
• Connecteurs
• Messages

Les lignes de vie sont représentées par des rectangles contenant une étiquette
dont la syntaxe est :
[<nom_du_rôle>] : [<Nom_du_type>]
Au moins un des deux noms doit être spécifié dans l’étiquette, les deux points
(:) sont, quant à eux, obligatoires.

19 20 21

Connecteurs Diagramme de communication


Diagramme de communication
• Généralités • Généralités
• Lignes de vie • Lignes de vie
• Connecteurs • Connecteurs
• Messages • Messages

Les relations entre les lignes de vie sont appelées connecteurs et se représentent
par un trait plein reliant deux lignes de vies et dont les extrémités peuvent être
ornées de multiplicités.

22 23 24

Messages Messages Diagrammes d’interaction


[ '['<cond>']' [<séq>] [ *[||] ['['<iter>']'] ] :] [<var> :=] <msg>([<par>])
<cond> • Formalisme
est une condition sous forme d’expression booléenne entre crochets.
<séq> • Diagramme de communication
numéro de séquence du message par envoi et sous-envoi désignés par
des chiffres séparés par des points :1.4.4 est postérieur à 1.4.3, • Diagramme de séquence
sous-envois du message 1.4.
La simultanéité est désignée par une lettre : 1.6a et 1.6b
<iter>
spécifie (en langage naturel, entre crochets) l’envoi séquentiel
(ou en parallèle, avec ||) de plusieurs messages.
<var>
Dans un diagramme de communication, les messages sont généralement ordonnés
valeur de retour du message
selon un numéro de séquence croissant. Ils sont spécifiés sous la forme:
<msg>
est le nom du message.
[ '['<cond>']' [<séq>] [ *[||] ['['<iter>']'] ] :] [<var> :=] <msg>([<par>])
<par>
désigne les paramètres (optionnels) du message.
25 26 27

3
28/05/2013

Diagramme de séquence Représentation des lignes de vie Diagramme de séquence


• Représentation des lignes de vie • Les principales informations contenues dans un diagramme de séquence
sont les messages échangés entre les lignes de vie, présentés dans un ordre
• Représentation des lignes de vie
• Représentation des messages chronologique.
• Contrairement au diagramme de communication, le temps y est représenté
• Représentation des messages
explicitement par la dimension verticale et s’écoule de haut en bas.
• Fragments d’interaction combinés • Une ligne de vie se représente par un rectangle, auquel est accroché une ligne • Fragments d’interaction combinés
verticale pointillée, contenant une étiquette dont la syntaxe est :
• Utilisation d’interaction [<nom_du_rôle>] : [<Nom_du_type>] • Utilisation d’interaction
• Au moins un des deux noms doit être spécifié dans l’étiquette.
• Les deux points (:) sont obligatoires.

28 29 30

Représentation des messages Messages asynchrones Messages synchrones


• L’invocation d’une opération est le type de message le plus utilisé en
• Une interruption ou un évènement sont des exemples de signaux. programmation objet.
• Un message définit une communication particulière entre des lignes de vie. • Elle peut être asynchrone ou synchrone.
• Ils n’attendent pas de réponse
• Plusieurs types de messages existent, les plus commun sont : • Ils ne bloquent pas l’émetteur • Dans la pratique, la plupart des invocations sont synchrones,
• l’envoi d’un signal • l’émetteur ne sait pas • L’émetteur reste bloqué le temps que dure l’invocation de l’opération.
• l’invocation d’une opération • si le message arrive à destination • Graphiquement, un message synchrone se représente par une flèche en traits
• la création ou la destruction d’une instance • quand il arrive pleins et à l’extrémité pleine
• s’il est traité par le destinataire. • Ce message peut être suivi d’une réponse qui se représente par une flèche en
• Un signal est, par définition, un message asynchrone. pointillé

31 32 33

Messages synchrones Messages synchrones Création destruction d’instance


Autre notation des réponses Les messages réflexifs (granularité de l’étude) • La création d’un objet est matérialisée par une flèche qui pointe sur le sommet
d’une ligne de vie
• La destruction d’un objet est matérialisée par une croix qui marque la fin de la
ligne de vie de l’objet
• La destruction d’un objet n’est pas nécessairement consécutive à la réception
d’un message.

34 35 36

4
28/05/2013

Syntaxe des messages et des réponses Syntaxe des messages et des réponses
Événements et messages
UML permet de séparer clairement: Exemple d’exécution d’une opération avec une réponse
• L’envoi du message, • Dans la plupart des cas, la réception d’un message est suivie de l’exécution d’une (la réponse vers l’acteur est liée à la granularité de la représentation!)
• Sa réception, opération d’une classe.
• Le début de l’exécution de la réaction • Cette opération peut recevoir des arguments
• La fin de l’exécution de la réaction • La syntaxe permet de transmettre les arguments.
• C’est la même que pour un diagramme de communication excepté:

• la direction du message qui est directement spécifiée par la direction de la


flèche
• les numéros de séquence qui sont généralement omis puisque l’ordre
relatif des messages est déjà matérialisé par l’axe vertical qui représente
l’écoulement du temps.

• La syntaxe de la réponse à un message est la suivante :

[<attribut> = ] message [ : <valeur_de_retour>]

Evènements correspondant à un message asynchrone. où message représente le message d’envoi.


37 38 39

Message perdu et trouvé Objet actif Diagramme de séquence


• Dans un message complet, les événements d’envoi et de réception sont
connus.
• Un objet actif initie et contrôle le flux d’activités.
• Graphiquement, la ligne pointillée verticale d’un objet actif est remplacée par
• Représentation des lignes de vie
• Il se représente par une simple flèche dirigée de l’émetteur vers le récepteur.
• Un message perdu est tel que l’événement d’envoi est connu, mais pas
un double trait vertical (bande d’activation).
• Un objet passif, au contraire, a besoin qu’on lui donne le flux d’activité pour
• Représentation des messages
l’événement de réception. Il se représente par une flèche qui pointe sur une
petite boule noire
pouvoir exécuter une opération.
• La spécification de l’exécution d’une réaction sur un objet passif se représente • Fragments d’interaction combinés
• Un message trouvé est tel que l’événement de réception est connu, mais pas par un rectangle blanc ou gris placé sur la ligne de vie en pointillée
l’événement d’émission. Une flèche partant d’une petite boule noire représente • Le rectangle peut éventuellement porter un label. • Utilisation d’interaction
un message trouvé

40 41 42

Fragments d’interaction combinés Fragments d’interaction combinés


Quelques exemples: opérateur alt
• L’opérateur alternative, ou alt, est un opérateur conditionnel possédant plusieurs
• Un fragment combiné représente des Opérandes.
articulations d’interactions. • Un fragment combiné se représente dans un rectangle dont le coin supérieur • C’est l’équivalent d’une exécution à choix multiple (condition switch en C++).
• Il est défini par un opérateur et des gauche contient un pentagone.
opérandes. • Dans le pentagone figure le type de la combinaison, appelé opérateur
• L’opérateur conditionne la d’interaction.
signification du fragment combiné. • Les opérandes d’un opérateur d’interaction sont séparés par une
• Il existe 12 d’opérateurs définis dans ligne pointillée.
la notation UML 2.0. • Les conditions de choix des opérandes sont données par des expressions
• Les fragments combinés permettent booléennes entre crochets ([ ]).
de décrire des diagrammes de • La liste suivante regroupe les opérateurs d’interaction par fonctions :
séquence de manière compacte.
• Les fragments combinés peuvent • choix et boucle : alternative, option, break et loop ;
faire intervenir l’ensemble des entités • envoi en parallèle de messages : parallel;
participant au scénario ou juste un •ordre d’envoi des messages : strict sequencing.
sous-ensemble.

43 44 45

5
28/05/2013

Quelques exemples: opérateur strict Diagramme de séquence


Utilisation d’interaction
• Il est possible de faire référence à une interaction (on appelle cela une utilisation
• Un fragment combiné de type strict sequencing, ou strict, possède au moins d’interaction) dans la définition d’une autre interaction.
deux sous-fragments. • Représentation des lignes de vie • Comme pour toute référence modulaire, cela permet la réutilisation d’une
• Ceux-ci s’exécutent selon leur ordre d’apparition au sein du fragment combiné. définition dans de nombreux contextes différents.
• Représentation des messages • Graphiquement, une utilisation apparaît dans un diagramme de séquence sous
forme de rectangle avec le l’étiquette ref (pour référence).
• Fragments d’interaction combinés • On place dans le rectangle le nom de l’interaction référencée
• La syntaxe complète pour spécifier l’interaction à réutiliser est la suivante :
• Utilisation d’interaction [ <nomAttributValeurRetour> '=' ] <nomInteraction> [ '(' [<arguments>] ')' ][ ':' <valeurRetour> ]

46 47 48

Période d’activité Message simple Message minuté (Timeout)


• Correspond au temps pendant lequel un objet Message pour lequel on ne spécifie aucune • Bloque l’expéditeur pendant un temps donné,
fait une action information d’envoi ou de réception en attendant la prise en compte du message
• Représentée par une bande rectangulaire Objet_1 Objet_2 par le récepteur
superposée à la ligne de vie de l’objet • Après le délai, l’expéditeur est libéré et peut
Objet_2 Objet_1
Message_1
envoyer Obj et_2 Obj et_1

Message_1 (20 secondes)


Message_1

Pr El Alami 49 Pr El Alami 50 Pr El Alami 51

Message synchrone (appel de procédure) :


Message minuté (Timeout) : Exemple Message synchrone (appel de procédure) Exemple
La porte d’un ascenseur s’ouvre pendant un • Bloque l’expéditeur jusqu’à la prise en compte Communication client serveur : Sockets
certain délai avant d’être refermée. du message par le récepteur Client Serveur

Ascenseur Porte • Le contrôle est passé de l’émetteur au


Sollitation
récepteur qui devient à son tour émetteur Acceptation
Obj et_2 Obj et_1
(actif) Requête
ouvrir (2 secondes)

Réponse
Message_1

fermer

Pr El Alami 52 Pr El Alami 53 Pr El Alami 54

6
28/05/2013

Message récursif Message récursif : Exemple Traduction des messages


• Appelé aussi message réflexive Lorsque le client introduit sa carte de guichet, ce • Envoyer un message c’est demander un
• Message envoyé d’un objet vers lui-même. dernier vérifie la validité de la carte avant de service d’un autre objet (sauf le cas d’un
Objet_1
demander le code d’accès message de retour).
Client GAB
• Les messages sont traduits par des opérations
Introduire carte dans la classe de l’objet ayant reçu le message
Message_1
Vérification validité

Demande code accès

Pr El Alami 55 Pr El Alami 56 Pr El Alami 57

Structures de contrôle Fragments Fragments


Le diagramme de séquences peut inclure un • Permet de décomposer une interaction Tant que x>0 faire

certain nombre de structures complexe en fragments simples


• Branchements (tests) • Représenté par un rectangle dont le coin
supérieur gauche contient un pentagone Si x>0 alors
• Répétitions (itérations, boucles)
• Dans le pentagone figure le type du fragment
– loop : boucle
– alt : alternative Si x<0 alors
– ref : référence
–…

Pr El Alami 58 Pr El Alami 59 Pr El Alami 60

Vous aimerez peut-être aussi