Institut de la Francophonie pour Institut de Recherche en Informatique et l’Informatique Système Aléatoire MODEL DRIVEN OPERATIONAL SEMANTICS Rapport de Stage PHAM Quang-Hieu Sous la direction de Jean-Marc JEZEQUEL Directeur de Recherche Projet TRISKELL Mars – Août 2008 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Remerciements Je tiens à remercier tout particulièrement Jean-Marc JEZEQUEL, responsable de l’équipe TRISKELL à l’IRISA, de m’avoir accueilli dans ce équipe et de m’avoir aidé durant ce stage. Je remercie Cyril FAUCHER, Gilles PERROUIN, Didier VOJTISEK et Vincent MAHE pour les conseils précieux qu’ils m’ont fournis pendant les 5 mois de stage. Je tiens également à remercier tous les enseignants-chercheurs, doctorants et stagiaires de l’équipe TRISKELL, avec qui j’ai eu le plaisir de travailler, pour les discussions scientifiques fructueuses que j’ai pu avoir avec eux. 2 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Table des matières INTRODUCTION.
5 PRESENTATION DE L’IRISA. 9 CONTEXTE DU STAGE.1 MODEL-DRIVEN ENGINEERING .2 Activité de modélisation .3 Transformation de modèles .2 DOMAIN-SPECIFIC LANGUAGES .2 Domain-Specific Modelling Languages. 20 L’ETAT DE L’ART .1 STRUCTURES MODULAIRES DE SEMANTIQUE OPERATIONNELLE (MODULAR SOS).1 Structural Operational Semantics (SOS).2 Problème de modularité dans la SOS.3 Modular SOS – a variant of SOS .2 LANGAGE DE META-MODELISATION KERMETA .2 Processus de construction de Kermeta.3 Architecture de Kermeta .4 Utilisation du langage Kermeta.3 LE TYPAGE DES MODELES (MODEL TYPING).2 Système de types .3 Type de modèles.4 Typage de modèles. 36 ETUDE DE CAS : MODULAR SOS DE WREN .1 INTRODUCTION LE LANGAGE WREN .2 SPECIFICATION DE SOS .1 Syntaxe Abstraite de Wren.2 SOS règles pour l’évaluation des expressions .3 SOS règles pour des commandes .3 SPECIFICATION DE MSOS.1 Définition la structure de Label.2 MSOS règles pour l’évaluation des expressions.3 MSOS règles pour les commandes.
44 IMPLEMENTATION DE WREN SOUS KERMETA .1 ABSTRACT SYNTAXIQUE MODEL. 46 3 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.3 IMPLEMENTATION DE L’INTERPRETEUR .1 Charger des modèles.2 Exécuter les modèles.4 EVOLUTION DU LANGAGE WREN .1 Ligne de produit Wren .2 Extensions de données.4 Combinaison les extensions. 56 CONCLUSION ET PERSPECTIVE. 62 4 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chapitre 1 Introduction Aujourd’hui, la taille et la complexité des logicielles développés augmentent de plus en plus rapidement alors que les contraintes de temps de développement, de qualité, de maintenance et d’évolution sont toujours plus fortes, les systèmes d’information deviennent être distribués plus en plus largement.
Dans ce contexte, les techniques de génie logiciel sont contraintes à évoluer sans cesse pour permettre de gérer la complexité et d’assurer la qualité du logiciel produit. Pour faire face à cette évolution rapide et croissante des applications logicielles, l’Ingénierie Dirigée par des Modèles (IDM) ou Model-Driven Engineering (MDE) ouvre de nouvelles voies d’investigation. Les grandes tendances actuelles de l’IDM sont l’utilisation de langages dédiés (Domain- Specific Languages), les approches orientées aspects et les approches à base de composants. Un des points communs à ces approches est l’utilisation de modèles pour permettre une montée en abstraction par rapport aux langages de programmation.
Dans ce cadre, un modèle n’est plus une simple image ou un élément de conception ou de documentation, mais bien un élément productif qui doit pouvoir être traité automatiquement. L’idée de l’IDM est de les traiter comme des entités centrales dans le développement logiciel. Ce nouveau processus de développement procède par des transformations de modèles pour compéter, enrichir, préciser un modèle métier initial avec les nombreux aspects plus directement liés à l’environnement, la plateforme, les performances,… Ainsi les modèles simplifient 5 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com la vision d’un système en permettant de représenter, de manière abstraite, un aspect du logiciel, et une transformation permet ensuite d’intégrer cet aspect dans le modèle global du logiciel en développement. La combinaison de ces deux entités permet le développement simplifié de systèmes fiables, mêmes complexes.
D’ailleurs, la définition des langages dédiés entraîne l’application des technologies de meta-modélisation à générer et intégrer sémantiquement des langages riches et outils destinés des exigences de modélisation spécifique. Le but est de fournir aux développeurs les abstractions raisonnables de modélisation pour que ils puissent isoler le problème de domaine spécifique à partir les détails d’implémentation. Actuellement, le développement des langages variétés nécessite la réutilisation et l’augmentation de la modularité dans la conception et la spécification des langages. Tandis que les méta-modèles sont utilisés bien à définir la syntaxe abstraite et sémantiques statiques des langages dédiés, la pratique courant de la spécification de sémantique opérationnelle n’augmente pas encore bien la modularité.
Pour cette étude, nous nous intéressons à la technique de définition de la spécification de sémantiques opérationnelle pour augmenter la modularité. Le but du stage que j’effectue dans l’équipe Triskell (IRISA/INRIA) est d’étudier la modularité dans la définition des sémantiques des langages dédiés, l’emprunt des idées de structures modulaires de sémantique opérationnelle (Modular Structural Operational Semantics) et puis de s’appuyer sur les progrès récents de Typage des Modèles (Model Typing). La démarche devrait permettre de définir des constructions individuelles de la sémantique opérationnelle comme les petits blocs qui pourraient facilement être étendu et combinés pour construire non triviales familles de langues dans le domaine des logiciels embarqués. La suite de ce rapport est organisée de la façon suivante.
Tout d’abord, le chapitre 2 présente brièvement l’IRISA et l’équipe Triskell où je travaille durant mon stage. Le chapitre 3 rappelle le contexte dans lequel se place mon stage. L’objectif de ce chapitre est d’introduire les langages dédiés, l’ingénierie des modèles et d’exprimer le rôle des modèles dans le développement des langages dédies. En suite, dans le chapitre 4, je présente un travail bibliographique sur les structures modulaires de sémantique opérationnelle, les langages de méta- modélisation en présentant le langage KERMETA et l’idée principale du typage des modèles.
Le chapitre 5 présente le langage simple WREN comme mon étude de cas et illustre comment spécifier des structures modulaires de sémantique opérationnelle pour le WREN. Et puis, dans le chapitre 6, je présente l’implémentation d’un interpréteur du WREN sous KERMETA. Ce chapitre exprime comment construire des composants individuels de la sémantique opérationnelle de WREN en utilisant KERMETA pour qu’on puisse faciliter les 6 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com étendre et les réutiliser pour construire une famille des langages associés au WREN. En fin, le chapitre 7 conclut ce travail et propose quelques perspectives.
Les documents que je les consulte durant le stage sont énumérés dans la section de référence à la fin de ce rapport. 7 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chapitre 2 Présentation de l’IRISA 2.1 L’IRISA L’Institut de Recherche en Informatique et Système Aléatoire (IRISA) est situé sur le campus Universitaire de Beaulieu à Rennes. Cet institut de recherche est un pôle de recherche public regroupant environ 530 personnes dont 205 chercheurs ou enseignants chercheurs, 175 chercheurs en thèse, 90 ingénieurs, techniciens, administratifs et de nombreux collaborateurs contractuels ou invités internationaux pour des séjours de plus courte durée. L’INRIA, le CNRS, l’Université de Rennes 1 et l’INSA de Rennes sont les partenaires de cette unité mixte de recherche.
Les travaux de recherche dans cet institut se développent au sein d’une trentaine d’équipes de recherche et autour de grands thèmes scientifiques tels que : - Systèmes communicants - Systèmes cognitifs - Systèmes symboliques - Systèmes numériques - Systèmes biologiques. Ces thèmes génériques se déclinent dans de nombreux domaines d’application, sources de collaborations avec d’autres acteurs tant du monde 8 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com académique qu’industriel. Citons les télécommunications, le multimédia et les technologies avancées pour la santé. Les missions essentielles de cet institut sont d’une parte de conduire des recherches dont l’excellence scientifique est attestée par des publications et des échanges internationaux, et d’autre part d’assurer la diffusion des connaissances et du savoir-faire, en particulier auprès de ses partenaires industriels, des PME-PMI régionales, regroupées dans le club Irisatech, aux structures de recherche et développement de grands groupes industriels mondiaux.
La dimension européenne, par la participation des équipes de recherche aux programmes européens (actuellement FP6-IST) est fortement présente. En complément, ce laboratoire s’investit dans la démarche d’incubation d’entreprises lancée tant par INRIA-Transfert sur le plan national que par l’incubateur Emergys en Bretagne. L’Irisa, en relation étroite avec l’Institut de formation supérieure en informatique et communication (Ifsic), l’école doctorale Matisse de l’Université de Rennes 1 et l’INSA de Rennes, l’antenne de Bretagne de l’ENS-Cachan, participe activement à la formation par et pour la recherche. J’ai effectué mon stage au sein du projet TRISKELL que je vais maintenant présenter.2 L’Equipe TRISKELL Le projet Triskell est une équipe de recherche au sein de l'IRISA.
Ce projet Triskell est dirigé par M. Jean-Marc JEZEQUEL. Une vingtaine de personnes (Enseignants- Chercheurs, Post-Doctorants, Doctorants, Ingénieurs,…) travaillent pour ce projet. Le thème de l'équipe est la construction fiable et efficace d'applications par assemblage de composants logiciels.
Les domaines abordés par l'équipe sont : - Ingénierie des modèles - Manipulation formelle de modèles UML - Conception par contrat avec composants et aspects - Vérification et Validation intra et intercomposants Le projet a pour objectif général la construction fiable et économiquement efficace de lignes de produits par assemblage de composants logiciels, en particulier dans le domaine des systèmes répartis et réactifs ayant des temps de réponse statistiquement contraints ("temps réel mou"). 9 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Se focalisant sur l'ingénierie des modèles, Triskell a pour ambition de construire des méta-modèles, des outils et des bibliothèques de composants spécifiques pour donner à un concepteur de logiciel un certain niveau de confiance dans la fiabilité d'assemblages de composants pouvant provenir de sources tierces. Il s'agit notamment d'étudier des modèles permettant la spécification de propriétés à la fois fonctionnelles et non-fonctionnelles de composants devant être déployés sur des systèmes répartis, et de bâtir un continuum d'outils tirant partie de ces éléments de spécification, allant de vérificateurs hors-ligne à des moniteurs supervisant en ligne le comportement des composants d'une application répartie. Le projet a également pour ambition de connecter de manière explicite les résultats de ses recherches aux problématiques industrielles au travers d'actions de transfert technologique, ce qui implique en particulier de prendre en compte dès le départ les standards industriels du domaine que sont UML, Corba, COM+ et Enterprise JavaBeans.
Triskell veut se placer à la frontière de deux domaines du logiciel : d'une part le domaine de la spécification et de la preuve formelle de logiciel, et d'autre part le domaine de la conception informelle mais structurée par composants banalisés. Nous pensons que l'emploi des techniques présentées plus loin permettra d'améliorer et de fiabiliser le passage entre formel et informel, et contribuera à la fluidité des processus de conception, mise en oeuvre et test de logiciels. Au sein de cette équipe, j’ai travaillé dans le domaine d’Ingénierie des Modèles, notamment sur la définition des structures modulaires de sémantique opérationnelle en utilisant Kermeta. Ce domaine est un axe de recherche principal au sein de l’équipe, il y a plusieurs travaux en cours de réaliser autours de Kermeta.
10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chapitre 3 Contexte du Stage L’Ingénierie Dirigée par les Modèles (IDM) a permis d’établir une nouvelle approche, plus abstraite, pour le développement de systèmes complexes. Un système peut être décrit par différents modèles liés les uns aux autres. L’idée phare est d’utiliser autant de modèles différents (ou Langages Dédiés – Domain Specific Languages) que les aspects chronologiques ou technologiques du développement du système le nécessitent. La principale différence avec un programme est qu’un modèle se concentre sur la syntaxe abstraite alors qu’un programme se concentre sur la syntaxe concrète.
La syntaxe abstraite se focalise sur les concepts fondamentaux du domaine et exprime ainsi une sémantique à travers le vocabulaire choisi pour nommer les concepts. L’objectif de ce chapitre est d’introduire le contexte du sujet de stage, d’abord d’un survol de l’IDM, avec les notions de modélisation et de transformation des modèles, puis de présenter les langages dédiés du point de vue de l’IDM.