01.01.2015 Views

Table des matières - Gilles Daniel

Table des matières - Gilles Daniel

Table des matières - Gilles Daniel

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Concepts et méthodologies multi-agents. 17<br />

autonomie qui lui permet de déclencher une action sans avoir reçu d'ordre et d'autre<br />

part il lui est possible de refuser d'exécuter une action. Cette vision de l'agent comme<br />

l'évolution d'un objet amène donc tout naturellement à confronter la modélisation de<br />

l'objet à celle de l'agent. UML, accepté par l'industrie depuis de nombreuses années<br />

dans le cadre de la modélisation objet fournit un grand pouvoir de représentation <strong>des</strong><br />

agents. UML est un formalisme accepté depuis longtemps de la communauté<br />

industrielle. Les agents étant vu de façon incrémentale par rapport aux objets, UML est<br />

donc devenu rapidement un sujet de choix pour spécifier les SMA.<br />

1.2.1. UML<br />

Ce standard propose ainsi de nombreux diagrammes de types différents. Des<br />

diagrammes statiques permettent de décrire les classes, propriétés, métho<strong>des</strong> et<br />

messages tandis que <strong>des</strong> schématisations dynamiques tels que diagrammes de séquence,<br />

de collaboration, d'activité ou d'états semblent de bons modèles pour les interactions.<br />

La plus importante de ces notations, le diagramme de classe, permet de décrire<br />

l’ensemble <strong>des</strong> classes d’objets qui interviendront dans le logiciel ainsi que les<br />

relations qui existent entre ces classes. Utilisé dans le contexte de la modélisation<br />

multi-agents, ce type de diagramme permet de représenter les entités et les relations<br />

qui existent dans le modèle. Par exemple, la figure 1.3 représente un exemple simplifié<br />

de modélisation réalisée en termes UML. Il s’agit d’un simple modèle de fourmis. On<br />

voit que dans ce type de diagramme, les agents sont généralement vus comme <strong>des</strong><br />

spécialisations d’objets. Le diagramme se lit ainsi : la classe Agent hérite 3 de Entity,<br />

de même que les classes Item, Food et Pheronome qui sont ainsi <strong>des</strong> entités. Les<br />

entités sont caractérisées par la position qu’elles occupent au sein d’un environnement,<br />

lequel contient un ensemble d’entités. Chaque classe est décrite par l’ensemble <strong>des</strong><br />

attributs et <strong>des</strong> métho<strong>des</strong> qu’elle comporte. Les attributs correspondent aux propriétés<br />

individuelles <strong>des</strong> objets et les métho<strong>des</strong> aux opérations applicables par chacun <strong>des</strong><br />

objets. La méthode doIt que l’on rencontre dans la classe Agent et dans ses sousclasses<br />

représente le comportement <strong>des</strong> agents qui sera exécuté à chaque pas de temps.<br />

On peut noter aussi que tout est indiqué : l’environnement est décrit comme les entités<br />

qui ne sont pas <strong>des</strong> agents. L’inconvénient d’UML est d’ailleurs d’être parfois trop<br />

précis en termes d’implémentation, ce qui ne permet pas de rester à un niveau<br />

suffisamment conceptuel, c'est-à-dire au niveau du modèle. Les diagrammes<br />

3 Héritage : en programmation objet, l’héritage est une relation hiérarchique entre les classes<br />

(dont les instances sont les « objets »), qui permet de transférer <strong>des</strong> propriétés. Cette relation<br />

peut être vue comme une spécialisation, <strong>des</strong> ancêtres aux héritiers (les chiens et les chats<br />

héritent <strong>des</strong> propriétés <strong>des</strong> mammifères) ou au contraire comme une relation de généralisation<br />

ou d’abstraction <strong>des</strong> héritiers vers les ancêtres (les chats et les chiens ont <strong>des</strong> propriétés en<br />

commun qui les caractérisent comme mammifères). Cette technique permet de réutiliser du<br />

code existant en factorisant <strong>des</strong> informations au niveau <strong>des</strong> classes plus abstraites.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!