Outils pour les Langages d'Experts - Adaptation, Refactoring et Réflexivité
S. R. Razavi Ebrahimi
LIP6 2002/014:
THÈSE de DOCTORAT de l'UNIVERSITÉ PARIS 6 LIP6 /
LIP6
research reports
285 pages - Novembre/November 2001 -
French document.
Get it :
1446 Ko /Kb
Contact : par
mail / e-mail
Thème/Team: Objets et Agents pour Systèmes d'Information et de Simulation
Titre français : Outils pour les Langages d'Experts - Adaptation, Refactoring et Réflexivité
Titre anglais : Tools for Expert-programmable Object-oriented Software - Adaptation, Refactoring and Reflection
Résumé : 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).
Abstract : An Adaptive Object Model (AOM) is a piece of software designed to interpret an evolving representation of the modeled universe. This technique serves, e.g., for creating software product lines and modeling environments. Very recent research by Ralph Johnson & al. asserts the problem of building tool to support dynamic co-evolution of structure and behavior. The goal is to document, especially by means of design patterns, an object-oriented framework that supports creating AOMs that let, at runtime, defining and interpreting procedures that operate on data structures, themselves defined at runtime. Such a dynamic co-evolution can be assimilated to runtime definition of classes, their structure and behavior (adaptation). However, on the basis of our industrial experience, we consider that such a tool should allows creating software (expert-programmable software) that fulfills "simultaneously" the following requirements: 1) ensures adaptation by non-programmer domain experts; 2) provides experts with an easy to learn, task-specific language; 3) ensures collaborative work practices between experts and programmers; 4) interprets experts defined models as workflow processes; 5) ensures the causal connection between each interpretation of a model and its definition; 6) ensures the local choice of adaptation type. We document and implement three complementary frameworks. Only the last one, which is based on using a reflexive object-oriented language allowing the explicit choice of meta-classes (METACLASSTALK), lets creating expert-programmable software that fulfills entirely the above-mentioned requirements. We introduce also the concepts of prototypical adaptation and autonomous classes. This research is based on a long and successful industrial experience in building expert-programmable software. Its results have been tested on an expert-programmable, multi-agent simulation environment (MOBIDYC) in collaboration with INRA (France).
Mots-clés : Outils pour les Langages d'Experts - Adaptation, Refactoring et Réflexivité
Key-words : Adaptive Object-Models, Object-oriented Frameworks, Design Patterns, Smalltalk-80, Reflection, Meta-classes and Meta-level Architectures, End-user Programming, Workflow
Publications internes LIP6
2002 / LIP6 research reports
2002
Responsable
Éditorial / Editor :Ghislaine.Mary@lip6.fr