• Aucun résultat trouvé

4. VERS DES ENVIRONNEMENTS DE CREATION DE LOGICIELS ROBUSTES

4.3. M ’ ECLR

4.3.3. ECLR, un système multi-agents

Lors de la conception d’un ECLR, l’organisation émergente de la mise en œuvre des caractéristiques d’un agent décrit dans le sous-chapitre ci-dessus, rappelle la conception d’une fourmilière [Corbara, 91] : les fourmis (agents) se situent sur le même plan (ici un composant du module). Les actions des fourmis (agents) se coordonnent de manière à ce que la colonie (l’ECLR) survive et se protège des problèmes complexes tels que ceux posés par la recherche de nourriture (données), les soins donnés aux œufs et aux larves (pédagogie, ergonomie), la reproduction, etc. Mais, il n’existe pas de fourmis de la même catégorie ayant des pouvoirs sur les autres.

La différence avec cette vision est que, appliqués sur des agents, il faut inclure des agents décisionnaires [Sabah, 90][Prince, Nicaud, 91] pour résoudre d’éventuels conflits, résultant parfois de leurs aptitudes à «raisonner» seuls. Certains agents, que nous allons appeler agents décisionnaires, possèdent donc une autorité stricte sur les autres nommés agents simples. Dans le SMA ECLR, chaque agent est défini par ses compétences et son expertise de coopération, c’est-à-dire par ses tâches relatives au domaine et ses aptitudes à communiquer avec les autres agents. Cela implique des contrôles sur les accointances et les connaissances des agents afin de trouver le bon consensus pour permettre le fonctionnement global du SMA.

4.3.3.1.Les agents simples

En général, les agents des SMA n’ont pas une nomenclature ou une terminologie bien définie et standardisée. En revanche, nous avons remarqué que leur composition est souvent similaire au niveau de la structure36. Les besoins relatifs à la conception se basant sur un SAM et un

—————————— Vers des environnements de création de logiciels robustes ou ECLR ECLR, prenant en considération les objectifs d’un SAM37 et notre souhait d’optimiser la robustesse de l’environnement de conception, nous incitent à constituer des agents simples comme suit :

1. Agent cognitif (ACO) qui assure l’adaptation à l’environnement du groupe d’agents auquel il appartient à l’environnement. Nous établissons à travers cet agent des relations avec la notion de conscience car l’agent est conscient de son rôle et de sa position dans le système multi-agents. Cet agent analyse les réactions successives de l’auteur de niveau 1 du SAM car il doit juger la cohérence entre les connaissances du groupe d’agents avec les données rentrées par l’utilisateur. L’ACO est alors capable de percevoir et d’agir sur l’environnement et a la capacité de cognition lui permettant de raisonner sur les autres agents et sur l’avancement de la résolution.

2. Agent collecteur (AC) qui collecte les informations rentrées par l’utilisateur et les événements du système. Les agents de ce type alimentent la base de données des connaissances. Chaque agent collecteur doit alors se synchroniser avec les autres agents collecteurs des autres groupes, dans le souci d’avoir une cohérence de l’ensemble et une optimisation de la capacité d’adaptation à l’apprenant.

3. Agent contrôleur pédagogique (ACP) dont les connaissances ne sont pas prises en temps réel. En effet, le concepteur doit fixer dès le début les règles permettant d’assurer les démarches pédagogiques du logiciel final. A titre d’exemple, dans un didacticiel proposant des exercices, l’auteur du didacticiel peut mettre la règle : l’utilisateur ne sera autorisé à regarder les réponses qu’à un moment bien déterminé. Ces démarches font partie de la qualité pédagogique de l’ensemble.

4. Agent contrôleur ergonomique (ACE) qui tient un rôle important dans la présentation des informations qui doit être faite d’une manière simple, claire pour éviter tout blocage et minimiser les réactions négatives de l’auteur de niveau 1 face au SAM.

5. Agent analyseur externe (AAE) sert à étudier la validité ou la conformité des données rentrées par rapport à la liste des exceptions38 externes constituée par l’auteur de niveau 1 au début de la conception.

6. Agent analyseur interne (AAI) a pour rôle de comparer les données par rapport à la liste des exceptions internes.

Chapitre 4 ————————————————————————————————— La dénomination des agents reflète volontairement leurs rôles sachant que ces derniers décrivent la position des agents au sein d’une organisation ainsi que l’ensemble des activités qu’ils sont censés exercer afin que l’organisation puisse accomplir sa tâche ou atteindre ses objectifs [Ferber 95]. Les caractéristiques principales communes à tous les agents simples sont :

• Leur évolutivité à cause de leur capacité de mémoriser toutes les actions effectuées grâce à une base de connaissances. On parle alors de la capacité d’apprentissage d’un agent dont nous développerons dans les chapitres 5 et 6 les principes et la mise en œuvre.

• La communication entre agents simples ne se fait qu’à travers un agent décideur.

• Ils puisent les données qu’ils manipulent de la même base afin de maintenir une base unique et être en cohérence entre eux.

4.3.3.2.Les agents décisionnaires

Le principe selon lequel un groupe d’agents peut opérer individuellement ou en collaboration avec les autres groupes, permet d’avoir deux champs de décision : en interne au sein du groupe et en transversal à travers tous les groupes d’agents. Cette organisation donne une vision plus large que celle de l’agent superviseur de G. Sabah [Sabah, 90] qui est unique et contrôle tout le système CARAMEL.

AD AD AS Agents simples Agents simples AD Agents simples Module X Module Y Module Z

Figure 4-5 : Hiérarchie des agents

Les agents décisionnaires font partie de la catégorie d’agents dits «intelligents», car ils sont capables, en sus des capacités des agents simples, de décider parmi plusieurs alternatives, de répartir les tâches et de coordonner les actions. Ils communiquent avec les agents simples et

—————————— Vers des environnements de création de logiciels robustes ou ECLR entre eux-mêmes. Ainsi, comme le montre la figure 4-5, les agents simples d’un module rapportent à l’agent décideur du module ou AD sachant qu’un AD est unique dans chaque couche ou module. Les AD de tous les modules rapportent ensuite à l’agent superviseur ou AD qui est unique dans tout le SMA. La communication entre les agents décisionnaires se fait selon le diagramme ci-dessous :

AD Module-X AD Module-Y Rapport d'activité Validation Action AS NON OUI Message début action Message fin action

Figure 4-6 : Diagramme de communication entre agents décisionnaires

4.3.3.2.1.Agent décideur (AD)

L’activité de cet agent, est de prendre toute décision dans le groupe et d’attribuer les tâches aux agents simples au sein d’un module où il est unique. Une prise de décision est un choix sur plusieurs critères car elle ne doit causer aucune perturbation au niveau du groupe.

Il joue un rôle primordial dans la résolution de conflits. En exemple, certaines exigences de l’agent pédagogique peuvent ne pas correspondre ou être satisfaites par les agents ergonomiques. Le rôle de l’agent décideur est donc de trouver un compromis ou un arbitrage face à ce conflit.

Cet agent permet également d’assurer la pertinence et la fiabilité des informations fournies par les agents qu’il gère. De même, il surveille tous les mouvements (transmission d’informations, requêtes, délégation de tâche, etc.) effectués.

Enfin, l’implémentation d’un agent décideur unique par couche garantit la souplesse du modèle et la simplicité de la conception de l’ECLR.

4.3.3.2.2.Agent superviseur (AS)

A la différence des agents décideurs, l’agent superviseur est unique dans le modèle et possède une vision verticale de l’ensemble des modules. Son rôle est stratégique et il peut être

Chapitre 4 ————————————————————————————————— considéré comme le moteur du système ou comme l’épine dorsale de l’ECLR. Il se situe alors uniquement dans la couche transversale (figure 4.2).

Ses fonctions consistent à vérifier que les agents sont présents et disponibles. Cela permet de s’assurer que l’environnement technique est conforme aux objectifs de l’ECLR. Le superviseur doit également s’occuper de l’ordonnancement des tâches effectuées par les agents. En plus de la gestion des couches et la résolution de conflits entre ces couches, il garantit l’ossature de l’ensemble du système relativement à l’objectif de l’auteur de niveau 1. L’agent AS est chargé de reconnaître les actions qu’il faut analyser avec l’aide des données utilisateurs qu’il maintient également.