Chapitre 2 : Yl.tiltiL
Figure 2.1: la notation du package en AUML
[Gen03]
Les paramètres du package : dans les packages
d'AUML on utilise des commentaires pour représenter les
paramètres. En effet, les paramètres sont préfixés
par <<parameters>> et ceci permet de
réduire la taille du diagramme dans le cas de nombreux paramètres
[Gen03].
Figure 2.2: les paramètres du package
AUML [Gen03]
Le développeur a besoin de savoir dans le diagramme
AUML: l'ontologie, le langage descriptif, et le langage de communication
entres les agents utilisés
~énératIon ~~s ~~agrammes 4'LLM1 à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
dans un protocole. Pour cela ces informations sont
spécifiées dans les paramètres du protocole, mais ces
informations peuvent être omises s'il n'y a pas de doute
[Mic05].
Figure 2.3: notation du package AUML avec des
informations supplémentaires [Gen03]
+ Template « Gabarit »: Un Template
« Gabarit » est un élément paramétrable, dont
les paramètres sont attachés quand le nouveau modèle est
produit [Jam00]. L'utilisation des Template est important car
au lieu de définir une composante réutilisable. La
personnalisation des paquets devrait être incluse [Jam00].
En effet, les paramètres du Template sont divisés en
trois catégories : les paramètres de rôle, les contraintes
et les actes de communication [Zei09].
Figure 2.4: la notation du Template en AUML
[Jam00]
~énératIon ~~s ~~agrammes 2t'LLMJ à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
1' Notation :
~ le Template est représenté à travers un
package avec un trait interrompus dans le coin haut droit du package
[Zei09].
Figure 2.5: Exemple d'un protocole d'interaction
générique [Zei09] ~ deuxième notation
:
Figure 2.6: deuxième notation du Template
AUML [Gen03]
~énératIon ~~s ~~agrammes 4'LLM1 à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
2. Niveau 2 : Le deuxième
niveau représente les interactions entre les agents grâce à
des diagrammes d'interactions : diagrammes de séquences, diagrammes de
collaborations, diagrammes d'activités ou bien diagrammes
d''etats/transitions. [Zei09].
3. Niveau 3 : La
modélisation d'un protocole exige, la représentation
intérieure qui survient dans un agent lors de l'exécution d'une
procédure [Jam00]. Pour cela le troisième niveau
est consacré pour la représentation correspond aux processus
internes aux agents qui sont principalement modélisés par des
diagrammes d''etats/ transitions [Zei09].
Figure 2. 7: un protocole d'interaction
spécifié avec plus de détails, a l'aide d'un ensemble
de diagramme [Jam00]
3. Les diagrammes AUML
AUML est une extension de la notation UML pour la
modélisation d'agents. Cette extension concerne :
v' le diagramme de classes, qui représente la structure
statique du SMA.
v' Les diagrammes d'interactions comme le diagramme de
séquence. Ceux ci permettent de modéliser le comportement
dynamique du système.
~énératIon ~~s ~~agrammes 4'LLM1 à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
3.1.Le diagramme de classe AUML
Les diagrammes de classes sont utilisés pour
représenter le point de vue statique [Ste99]. Ainsi, le
diagramme de classes dans AUML a pour but de représenter un
système entier d'agents, et non simplement des agents individuels ou
fortement regroupés [Mic05]. En effet, une classe agent
est une classe UML qui peut aussi spécifier [Zei09]
:
v' L'identificateur de l'agent [Ste99].
~ un ensemble de rôles [Zei09].
v' des actions [Zei09].
v' des capacités [Zei09].
~ une description des services [Zei09].
~ un ensemble de protocoles [Zei09].
1' des contraintes [Zei09].
Figure 2.8: exemple de diagramme de class AUML
[Ste99]
+ La représentation des capacités : Une
capacité est composée des parties suivantes
[Ste99]:
a) Les entrées: représente les
entrées nécessaires de l'agent pour atteindre sa tâche.
b) Sortie : représente ce qui
génère la capacité à la fin du travail.
c) Contraintes d'entrées.
d) Contraintes de sortie.
e) Les contraintes d'entrées-sorties.
~énératIon ~~s ~~agrammes 4'LLM1 à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
f) Description : Une description en langage naturel de
la capacité.
Figure 2.9: exemple de diagramme de class AUML
avec la représentation des capacités [Ste99]
+ La représentation de service : Un service est
composé des parties suivantes [Ste99]:
a) Nom: Le nom du service.
b) Description : Une description en langage naturel du
service.
c) Type : Le type de service.
d) Protocole : Une liste des protocoles d'interaction soutenue
par le service.
e) Langue de communication Agent : Les langues de communication
utilisées dans ce service.
f) Ontologie : Une liste des ontologies pris en charge par le
service.
g) Langue du contenu : Une liste des langues de contenu pris en
charge par le service.
~énératIon ~~s ~~agrammes 4'LLM1 à
yartIr ~~ yrogrammes DT
C~~pItre 2 : LLM~
Figure 2.10: exemple de diagramme de class
AUML avec la représentation des services [Ste99]
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:
|