6. Ingénierie logicielle orienté agent

6.2 L'approche orientée agent en ingénierie logicielle

Dans son ouvrage "Analyse et conception orientées objet et applications" (Booch, 1994), Booch énonce les caractéristiques nécessaires d'un paradigme d'ingénierie logicielle permettant de construire des systèmes complexes :

  • la décomposition - la capacité de diviser le problème en sous-problèmes plus simples, les sous-problèmes étant plus maniables et pouvant être traités d'une façon relativement autonome ;
  • l'abstraction - la capacité de définir un modèle simplifié du système qui met en évidence une partie de ses détails et propriétés, tout en éliminant les autres ; donc l'attention peut se concentrer sur les aspects saillants du problème, et se dispenser des détails moins importants ;
  • l'organisation - le procédé consistant à identifier et à gérer les rapports entre les divers sous-problèmes (composantes) à résoudre. La possibilité de spécifier et d'établir des relations organisationnelles entre composantes aide les concepteurs à faire face à la complexité parce qu'en premier lieu on peut grouper diverses composantes dans une composante plus complexe qui peut être alors traitée comme une unité unique d'analyse et, deuxièmement, parce qu'on a la possibilité de décrire des relations complexes entre ces unités, par exemple coopération, fonctionnalités conjointes, etc.

Ces trois caractéristiques peuvent être bien retrouvées dans le modèle des systèmes multi-agents, comme on va voir dans ce qui suit.

Décomposition orientée agent : On s'intéresse ici à la décomposition du problème en termes d'agents autonomes de haut niveau, qui peuvent s'engager dans des interactions flexibles.

La décomposition du problème dans des composantes qui s'identifient avec les agents semble une solution naturelle. L'autonomie des agents réduit la complexité du contrôle car le contrôle est localisé dans chaque composante (agent). Les décisions des agents sont prises en partant de la situation locale à l'agent.

Les agents prennent les décisions sur la nature et l'étendue des interactions au moment de l'exécution - ceci rend l'ingénierie des systèmes complexes plus faciles pour deux raisons :

  • il est difficile, sinon impossible, de savoir a priori toutes les interactions potentielles, à quel moment dans le temps elles auront lieu et la raison de ces interactions ; les agents sont capables d'initier et de répondre aux interactions dans une manière flexible, y compris la réponse à des demandes inattendues ;
  • la gestion des relations entre les composantes logicielles est significativement réduite si on modélise ces composantes comme des agents ; n'importe quelle coordination est contrôlée par l'interaction entre les agents.

Abstraction orientée agent : Il y a une correspondance évidente entre la notion de sous-système et celle d'agent.

Comme les sous-systèmes sont représentés par des agents, les interactions entre ces sous-systèmes sont regardées en termes d'interactions sociales de haut niveau. Ceci correspond à ce que dit Booch, notamment : "à n'importe quel niveau d'abstraction, nous trouvons une collection significative d'entités qui collaborent pour former une perspective unique à un niveau supérieur."

Les agents coopèrent pour atteindre leurs objectifs communs, coordonnant leurs actions et négociant pour résoudre les conflits. L'approche orientée agent fournit un ensemble de structures riches pour représenter explicitement les rapports organisationnels, par exemple les rôles, les normes, les lois sociales. De plus, il y a des protocoles d'interaction pour former de nouveaux groupes, pour réaliser des actions collectives ou pour former des coalitions (Sandholm et Lesser, 1997, Shehory et Kraus, 1998).

Structures organisationnelles orientées agent : L'approche orientée agent fournit une représentation explicite des rapports et structures organisationnelles.

La notion de composante primitive peut varier selon le besoin de l'observateur. Ainsi, à un niveau, le sous-système entier peut être regardé comme une composante primitive alors qu' à un autre niveau, on le considère comme une équipe ou une collection d'agents. Des structures récursives d'agents peuvent être définies pour réduire la complexité des rapports organisationnels. Des telles structures fournissent des formes intermédiaires stables qui suggèrent que ces groupements d'agents puissent être développés dans l'isolement relatif et ajoutés au système d'une façon incrémentale.

Par exemple, dans la figure 6.1 on peut voir une architecture récursive de système multi-agents. L'entité de base est l'agent, il y a plusieurs agents dans le système, mais chaque agent peut comprendre aussi bien ses composantes internes ,par exemple son propre profil, un profil de la société, des paramètres concernant le contrôle, la négociation et la communication, que des autres agents (agents internes). Les agents internes peuvent être structurés de la même manière, à leur tour.


Figure 6.1 Architecture récursive d'un système multi-agents


De plus, on peut définir différents types d'organisations, d'interactions et de rapports entre les membres (agents) de l'organisation, qui varient de totalement coopératif à totalement compétitif, et où les rapports peuvent être changés dynamiquement. Donc les approches orientées agent fournissent des modèles explicites pour représenter les rapports organisationnels dans un environnement dynamique et complexe.

 

<< Section précédente Table de matières Section suivante >>

Politechnica University of Bucharest - 2002