3.2. Le diagramme de sequence AUML
Les diagrammes d'interaction sont des diagrammes dynamiques,
qui décrivent le comportement collectif des agents. On retrouve dans les
diagrammes d'interaction deux types de diagramme [Jam00] :
1. Le diagramme de séquence.
2. Le diagramme de collaboration.
Le diagramme de séquence est défini comme suit
en UML: "le diagramme de séquence est un diagramme qui montre les
interactions des objets disposés dans la séquence temporelle. En
particulier, elle montre les objets participant à l'interaction et la
séquence de messages échangés. Contrairement à un
diagramme de collaboration, un diagramme de séquence comprend des
séquences de temps, mais ne comprend pas les relations entre
objets." [Gen03]. En effet, le diagramme de
séquence en AUML est initialement adopté par la
~énératIon ~~s ~~agrammes 21'LLM1 à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
FIPA pour exprimer des protocoles d'interaction des agents.
Ainsi, on considère des agents et non des objets, donc il faut lire
agents au lieu des objets dans la précédente définition.
Les diagrammes de séquence dans les systèmes multi agents sont
des schémas qui expriment l'échange de messages dans les
protocoles [Gen03]. Donc les déférences qui
existent entre le diagramme de séquence en UML et en AUML sont :
a) Dans le diagramme de séquence AUML il existe une
spécification plus riche du rôle d'un agent
[Jam00].
b) L'extension du diagramme de séquence donne des
étiquettes (acte de communication), aux flèches au lieu du
message style orienté objet [Jam00].
c) l'ajout de nouveaux types de branchements dans les
diagrammes de séquence AUML afin de prendre en compte
l'indéterminisme du comportement d'un agent. La figure 11 montre les
trois types de branchement: branchement ET (a), branchement OU (b) et
branchement XOR (c) [Zei09].
Figure 2.11: les différents
branchements en AUML [Zei09]
Generation des diagrammes AtiltiL dyartir de yrogrammes
JADE
Chayitre 2 : AtiltiL
Figure 2.12: des techniques pour exprimer les
communications concurrentes avec un agent jouant des rôles
différents, ou recevant des CAs différents
[Jam00]
~énératIon ~~s ~~agrammes 4'LLM1 à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
Les barres parallèles dans la figure 12 indiquent que
l'agent de réception est capable de traiter plusieurs communications
concurremment [Jam00]. Ainsi Chaque bar d'activation indique
que l'agent peut utiliser un différent rôle ou un
processus différents, pour l'acte de communication. Notons que
le sens est le même (exemple : la figure (a) = la figure (b)) donc le
choix est fondé sur la clarté visuelle
[Jam00].
Le diagramme de séquence AUML se compose de deux
dimensions:
v' Verticale: pour le temps.
v' Horizontale: pour les différents rôles ou bien
pour les agents jouant un rôle spécifique
[Mic05].
Figure 2.13: format de base pour la
communication [Jam00] + La ligne de vie dans le
diagramme de séquence AUML
La ligne de vie AUML est en contradiction avec la ligne de vie
d'UML2. En UML2, une ligne de vie représente un participant individuel
dans l'interaction. En AUML, la ligne de vie définie la période
durant laquelle un rôle existe pour une interaction, elle est
représenté par une ligne verticale [Mic05]. Il
est possible de représenter plusieurs agents sur la même ligne de
vie [Gen03]. Ainsi une ligne de vie ne représente pas
nécessairement un agent, mais aussi un rôle joué par un ou
plusieurs agents [Gen03].
~énératIon ~~s ~~agrammes 4'LLM1 à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
Figure 2.14: la notation de la ligne de vie en
AUML [Gen03]
La ligne de vie dans le diagramme de séquence AUML est
composée de deux éléments: un label représente dans
une boite au-dessus de la ligne de vie et une ligne verticale en pointille.
Plusieurs formats sont possibles pour l'étiquette du
label:
|
Pour indiquer que Client est un rôle indépendant
des agents qui jouent ce rôle donc la ligne de vie ne représente
pas nécessairement un agent, mais aussi un rôle joué par un
ou plusieurs agents [Gen03].
|
|
: Client
|
|
|
|
BOB serait le cas d'un agent jouant le rôle d'un client
[Jam00].
|
|
BOB/Client
|
|
|
|
Pour indiquer que BOB est une personne indépendante de
n'importe quel rôle joués [Jam00].
|
|
BOB: Personne
|
|
|
|
Format de base pour l'étiquette de boite. Utiliser Pour
spécifier qu'un rôle doit être jouaient par une classe
d'agents « le nom de la classe doit apparaitre »
[Jam00].
|
Nom_agent / role: Personne
|
|
Exemple :
|
BOB/ Consommateur: Personne
|
|
|
Tab 2.1: les différents formats
possible pour l'étiquette du label de la ligne de vie du diagramme de
séquence AUML
~énératIon ~~s ~~agrammes 4'LLM1 à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
L'étiquette contient ainsi la cardinalité du
rôle : Il existe trois formats pour la cardinalité du rôle
[Gen03]:
~ n qui représente le nombre exact
d'agents jouant ce rôle dans cette interaction.
~ m op n qui représente une plage de
valeurs pour la cardinalité rôle. (op désigne
les opérateurs >,> =, <, <=) m et n se
réfèrent respectivement à la partie
inférieure et la limite supérieure de la fourchette
de valeurs.
~ une condition ou une formule logique qui représente le
nombre d'agents. + L'échange de messages
Dans les diagrammes de séquence AUML, les messages sont
ordonnés selon un axe de temps déroulant selon la dimension
verticale de haut en bas. Cependant, les diagrammes de séquence
n'utilisent les numéros de séquence, comme les diagrammes de
collaboration pour représenter le message mais l'ordre des messages est
implicitement défini par l'axe des temps [Gen03].
Figure 2.15: exemple d'échange de message
dans AUML [Gen03]
Un message définit une communication
particulière entre deux lignes de vie. Les expéditeurs et les
récepteurs d'un message peuvent être sur la même ligne de
vie ou non [Gen03]. Deux situations doivent être prises
en considération dans la ligne de vie de l'expéditeur et la
même chose pour la ligne de vie du récepteur:
|