LIP6 2002/014
- Soutenance de thèse
Outils pour les Langages d'Experts - Adaptation, Refactoring et Réflexivité - S. R. Razavi Ebrahimi
- 285 pages - 30/11/2001- document en - http://www.lip6.fr/lip6/reports/2002/lip6.2002.014.pdf - 1,481 Ko
- Contact : Reza.Razavi (at) nulllip6.fr
- Ancien Thème : OASIS
- Mots clés : Outils pour les Langages d'Experts - Adaptation, Refactoring et Réflexivité
- Directeur de la publication : Ghislaine.Mary (at) nulllip6.fr
L'utilisation de certaines applications nécessite deux niveaux d'intervention : la mise en oeuvre courante et l'adaptation à de nouveaux besoins. L'idée est que la spécification du service rendu par le logiciel peut varier au cours du temps. Il y a donc d'une part les utilisateurs habituels, qui utilisent le logiciel pour obtenir le service en question. Mais il y a également des utilisateurs privilégiés qui peuvent apporter au système, alors même qu'il est en fonctionnement, des adaptations qui viendront modifier le service obtenu par l'utilisateur final. Nous appellerons "experts" ces utilisateurs privilégiés et "langage d'experts" ce type d'applications. Dans la suite, nous supposons qu'elles sont créées à l'aide de langages à objets. Sur la base de notre expérience industrielle en création de langage d'experts, nous classifions en deux catégories les propriétés que nous estimons souhaitables pour des langages d'experts. La première catégorie comporte les aspects techniques, c'est-à-dire ceux qui rendent l'adaptation possible, opérationnelle et adaptée à son objet. Elle comprend quatre volets : la spécialisation dynamique, le workflow, l'édition des adaptations par les programmeurs et le "refactoring" (restructuration), ainsi que le choix local du type d'adaptation. La seconde catégorie regroupe les aspects plutôt d'ordre cognitif. Ce sont ceux qui rendent l'adaptation facile à réaliser et bien intégrée dans un processus de développement de logiciels. Elle comprend deux volets : l'apprentissage par des experts et le lien causal. Notre thèse est qu'il est possible de créer et documenter, notamment à l'aide des schémas de conception, un nouveau framework orienté-objets qui "outille" la création de langages d'experts remplissant pleinement le cahier des charges ci-dessus. En effet, à ce jour les environnements de programmation ne supportent pas ce type de développement de façon standard. Par ailleurs, Ralph Johnson et son école à UIUC ont initié depuis 1998 des travaux de recherche dans un but similaire sous le thème appelé "Adaptive Object Models" (AOMs). L'un des problèmes majeurs actuellement posé par ces travaux consiste à outiller la création de logiciels objets qui assurent la spécialisation lors de l'exécution, c'est-à-dire la définition et l'interprétation de procédures qui opèrent sur des structures qui sont elles-mêmes définies dynamiquement. Nous partons des recherches de Ralph Johnson et de son école sur les AOMs et sur l'outillage de la création de systèmes de gestion de Workflow. Nous nous appuyons également sur les travaux de l'équipe de Pierre Cointe sur les méta-classes explicites, ainsi que ceux de Bonnie A. Nardi sur la programmation par des experts. En partant de ces bases, nous documentons et implantons trois frameworks (Dyctalk, MiDyctalk et MxDyctalk) qui se complètent afin de nous conduire vers une solution satisfaisante au problème posé. Celle-ci ébauche une compatibilité entre les structures de représentation de la définition et de l'interprétation de programmes/modèles des langages à objets et celles des langages d'experts. Nous introduisons enfin les notions d'"adaptation prototypique" et de "classe autonome" comme une technique qui permet de rendre les instances terminales adaptables et d'assurer ainsi la continuité du processus d'adaptation. Ces travaux sont en ce moment testés sur le langage d'experts MOBIDYC de l'INRA (définition et simulation d'agents).