• Aucun résultat trouvé

Pour conclure ce chapitre, il est intéressant d’observer la place qu’occupent les systèmes multi-agents dans l’évolution des paradigmes de l’informatique.

FIG. 2.2 – Evolution des paradigmes de programmation

Ce graphique tente de présenter un agencement dans le temps des concepts et à la fois le positionne-ment, tel que nous le voyons, du domaine des multi-agents. Il s’inspire de celui présenté dans l’ouvrage de génie logiciel multi-agents de Jürgen Lind [Lind, 2001] qui s’est arrêté à l’introduction du concept d’agent. Nous sommes allés plus loin en introduisant dans cet arbre les systèmes à agents pour lesquels

Un peu d’histoire... 25

plusieurs agents sont plongés dans un même environnement afin de coopérer (voir 2.2.3.3). Le paradigme

multi-agents, où le collectif permet la résolution du problème, est lui aussi ajouté au graphique initial.

Cette évolution des concepts est en fait très logique. Dans un premier temps l’objectif des personnes qui utilisaient l’outil informatique fut de simplifier la programmation : l’élaboration des langages dit évolués passa par l’agrégation d’instructions en procédures puis en fonctions lorsqu’elle retournait des résultats. Les besoins en dynamicité des applications puis en généricité a conduit à l’utilisation de pro-grammation structurées puis à introduire les objets (méthodes et langage de propro-grammation). Les besoins en autonomie, induis par la répartition et la distribution des ressources a conduit à introduire la notion d’agent (§2.1.1). Très peu de temps après, la coopération a amené les informaticiens à créer des systèmes à agents. La prise en compte d’objectif globaux et l’utilisation de l’émergence a conduit quant à elle à introduire le paradigme multi-agents.

Dans un système multi-agents, les agents offrent de la généricité de par leur découplage modèle/ar-chitecture/implantation (§2.1.2). Ce découplage permetra d’envisager plus simplement l’implantation sur des supports physiques variés.

La vision du collectif plutôt que de l’individu permet d’atteindre des objectifs globaux du système multi-agents (§2.2.2) dont il faudra garantir l’intégrité du fonctionnement global, notement dans le cas de système multi-agents ouvert (§2.2.1).

Conclusion

Nous avons défini, dans un premier chapitre, la notion de systèmes complexes physiques ouverts. Cette classe de systèmes se caractérise, d’une part, par la nature matérielle de ses composants, d’autre part, par la richesse des interactions mises en jeu. Les composants sont en effet en interaction entre eux, mais aussi avec l’environnement matériel du système. Ils peuvent le percevoir et agir sur lui, tout comme l’environnement agit sur eux. Nous avons identifié en particulier quatre catégories de systèmes complexes physiques : les systèmes de traitement (d’information et de signaux), les systèmes de commu-nication, les systèmes de contrôle/commande et les systèmes interactifs.

Le paradigme multi-agents de part son inhérente décentralisation, sa prise en compte du global au niveau local, la richesse des interactions qu’elle peut opérationnaliser et la prise en compte du niveau social des composants, est efficace pour s’intéresser aux systèmes complexes. En effet, l’approche et la richesse des modèles développés dans ce domaine permet de s’intéresser aux systèmes complexes. Ces modèles sont, par exemple, liés à l’environnement, aux diverses interactions qui permettent entre autres la communication et la coopération, les organisations et aux agents.

Les systèmes multi-agents se sont attachés jusqu’ici essentiellement à traiter les problèmes com-plexes ouverts. Nous proposons dans la suite du manuscrit, de nous intéresser à la modélisation des systèmes complexes physiques ouverts à l’aide de systèmes multi-agents.

Nous appellerons donc système multi-agents physique ouvert, ou système multi-agents embar-qués, un système multi-agents qui modélise un système complexes physique ouvert. Les agents de ce système seront donc des systèmes mixtes logiciel/matériel et évolueront dans des environ-nements physiques (le monde réel).

Cette modélisation génère des besoins méthodologiques nouveaux (comment concevoir de tels sys-tèmes?). De très nombreux travaux [Iglesias et al., 1998, Tveit, 2001, Picard, 2004] se penchent sur la construction de méthodes multi-agents mais aucune n’intègre réellement la prise en compte d’aspects physiques. Il ne s’agit donc pas alors d’améliorer des méthodes existantes, mais de se poser la question du cycle de développement le plus adapté pour une méthode de développement de système multi-agents embarqués?".

Les systèmes multi-agents embarqués se traduisent généralement par des systèmes d’entités phy-siques autonomes utilisant des communications sans fil. Il est donc indispensable, au delà des aspects méthodologiques, d’étudier ces besoins architecturaux spécifiques (quelle architecture pour assurer une communication fiable entre les agents?) afin de les intégrer à l’approche et de proposer les outils néces-saires.

29

deuxième partie

DIAMOND : UNE APPROCHE POUR

LA CONCEPTION DES SYSTEMES

COMPLEXES PHYSIQUES OUVERTS

Introduction

Les motivations de ce travail soulèvent de nombreuses questions notamment au niveau méthodolo-gique : Quel cycle de vie pour construire des systèmes complexes physiques ouverts? Comment spécifier un système multi-agents mixte logiciel/matériel? Comment harmoniser au mieux, dans ce cycle de vie, les spécifications du logiciel et les spécifications matérielles? La spécificité des systèmes multi-agents physiques va t’elle demander de procéder à une analyse des besoins particulière? Comment intégrer au mieux les contraintes locales des éléments physiques aux fonctionnalités globales du système? Comment concevoir les parties logicielles, matérielles et les intégrer en un tout fonctionnel? Hormis pour les effec-teurs et les capeffec-teurs, comment choisir ce qui doit être logiciel ou matériel? Comment tester un système multi-agents physique? Comment débugger un système multi-agents physique? Quelle démarche qualité pour la conception de tels systèmes?

C’est donc à ce premier aspect de la problématique que nous nous attachons dans cette partie.

Nous commencerons par rappeler les fondements des procédés traditionnels de production de logi-ciels. Ce chapitre a pour vocation de préciser un vocabulaire et insiste particulièrement sur les cycles de vie. Le choix d’un cycle de vie est effectivement important car il conditionne toute démarche. Nous présentons aussi succinctement les quatre familles de techniques de spécification et abordons la notion de qualité logicielle.

Nous nous intéressons, dans le chapitre suivant, à la conception des systèmes hybrides matériels/logi-ciels. Nous introduisons en particulier une nouvelle famille de méthode qui tente d’unifier la conception du logiciel et du matériel dans un seul et unique cycle de vie : les méthodes dites co-design ("concurent hardware/software"). Nous présentons, sous forme d’un tableau, la synthèse d’une revue de méthodes de co-design qui ont été éprouvées et discutons les techniques de spécification utilisées et leurs cibles.

Dans un dernier chapitre, nous développons notre contribution méthodologique, une méthode com-plète d’analyse et de conception, que nous appelons DIAMOND (Decentralized Iterative Approach for Multiagent Open Networks Design). Les activités de notre méthode sont agencées en un cycle de vie en spirale et organisées en quatre phases : le recueil des besoins (et leur structuration), la phase d’analyse, la phase de conception générique logicielle/matérielle ainsi que la phase d’implantation. En fin de chapitre, nous proposons une discussion comparative de DIAMOND avec les autres méthodes multi-agents non spécifiques.