• Aucun résultat trouvé

La formalisation de l’ingénierie dirigée par les modèles

L’ingénierie dirigée par les modèles a été l’objet de nombreux travaux et de plusieurs tenta- tives de formalisation.

2.4.1 Spéci cation algébrique

Nous faisons le point dans ce qui suit sur deux travaux s’appuyant sur le système algé- brique Maude27 [CDE+02]. Le premier est MoMENT (MOdel manageMENT) [BM10] qui est un atelier pour la gestion de modèles basé sur des expériences sur les transformations formelles de modèles et la migration de données. Il fournit un ensemble d’opérateurs gé- nériques pour la manipulation de modèles. MoMENT utilise le langage Maude28[CDE+02] comme un formalisme algébrique. Dans cet atelier, les modèles sont représentés comme des spécifications algébriques et les opérateurs sont définis indépendamment du métamodèle. Pour être utilisé, un opérateur doit être spécifié dans un module appelé signature qui dé- crit les contraintes du métamodèle. L’approche est implémentée dans un outil29qui permet aussi la transformation automatique à partir des métamodèles EMF.

Le second est un travail de Vallecillo et al. [RRRDV07] qui ont réalisé un codage différent des notions de métamodèle et modèle ainsi que des transformations de modèles comme un plug-in Eclipse [TV10] en utilisant le système Maude.

Dans les deux travaux cités, la modélisation est superficielle (shallow embedding), [BGG+92] c’est-à-dire qu’elle est reliée à la structure proposée dans Maude et utilise di- rectement les éléments similaires, les objets par exemple, pour modéliser les éléments de modèles. Les transformations de modèles sont implémentées en utilisant le mécanisme de réécriture des objets proposés par Maude.

2.4.2 Théorie des types

Poernomo dans [Poe06] a proposé un codage des métamodèles en utilisant la théorie des types dans le but de permettre le développement correct par construction de transforma- tions de modèles. Son codage repose sur l’utilisation d’enregistrements éventuellement ré- cursifs. Celui-ci est présenté de manière plus détaillée dans [Poe08] et illustré en avec des métamodèles simples sans cycle. Ces travaux ont ensuite été implantés par Terrel en utilisant l’assistant à la preuve COQ[PT10]. La structure récursive des enregistrements doit alors être représentée par des types inductifs et co-inductifs. Les exemples considérés dans ces travaux restent relativement simple et ne se heurtent pas aux contraintes structurelles de garde im- posées par COQpour assurer la correction sémantique des définitions mixtes inductives/co-

27http://maude.cs.uiuc.edu/

28http://maude.cs.uiuc.edu/

29http://moment.dsic.upv.es/

2.4. La formalisation de l'ingénierie dirigée par les modèles

inductives (voir [PM11]). Fernández et Terrell dans [FT13] reprennent les travaux précédents en ajoutant la spécification de transformations de modèles composées hiérarchiquement et les preuves de ces transformations à partir de l’assemblage des constituants. Les auteurs n’indiquent pas explicitement comment coder des graphes ce qui est nécessaire enIDMpour représenter les métamodèles. Il s’agit dans leurs travaux de reprendre le codage précédent sans indication particulière concernant les contraintes de garde. Calegari et al dans [CLST11] ont également proposé un codage en COQ pour modéliser des transformations ATL mais

dans ce travail ils ne peuvent pas représenter n’importe quel métamodèle à cause des liens cycliques, ils sont obligés de couper les cycles. Une structure générale de modèles en graphes peut être implémentée en utilisant des types co-inductifs. Mais, comme montré dans [PM11] par Picard et Matthes, le codage est complexe car COQimpose des contraintes structurelles de garde pour la combinaison des types inductifs et co-inductifs qui interdisent le codage naturel proposé par Poernomo et al dans [Poe06,PT10]. M. Giorgino et al. dans [GSMP11] utilisent l’arbre couvrant associé au graphe combiné avec des liens supplémentaires pour surmonter cette contrainte en utilisant l’assistant à la preuve ISABELLE30 [NPW02]. Cela permet de développer une transformation de modèles en s’appuyant sur des preuves in- ductives adaptées aux liens de partage, puis extraire les implémentations. Ces plongements sont tous superficiels : ils s’appuient sur une structure de données similaire sophistiquée pour représenter les éléments du modèle et méta-modèles.

Une autre formalisation en COQdes concepts de l’IDM par Franck Barbier et al est acces-

sible31[BCCLG13], cette représentation s’attache à la preuve des propriétés présentées dans [Küh06] (sur les relations d’instantion et sur des transformations de modèles). Cette der- nière formalisation diffère de la notre par sa représentation détaillée des différentes compo- santes des modèles et métamodèles en se basant sur les concepts du MOF. La formalisation COQ4MDE a l’avantage d’être plus générique et minimale par l’usage des modules pour la

représentation de ces concepts et son support de tous types de propriétés par la description de la conformité par un prédicat dans le métamodèle.

Le système HOL/OCL32[BW06] est un environnement de développement interactif pour

UML etOCLdéveloppé dans ISABELLE/HOL. L’atelier peut être utilisé pour prouver par exemple les invariants de classes.

Notre travail est un plongement profond (deep embedding), chaque concept dans les modèles ou les métamodèles est codé en utilisant des constructions élémentaires au lieu de s’appuyer sur des éléments similaires dans COQ. La contribution de cette thèse n’est pas de mettre en œuvre des transformations de modèles en utilisant des outils vérifiant la correc- tion par construction, mais de donner une sémantique dénotationnelle pour modéliser les concepts de l’Ingénierie Dirigée par les Modèles pour fournir une meilleure compréhension et permettre la validation formelle des différentes technologies de mise en œuvre.

30http://www.cl.cam.ac.uk/research/hvg/Isabelle/

31http://web.univ-pau.fr/~barbier/Coq/

32http://www.brucker.ch/projects/hol-ocl/

Concepts

2.4.3 Raf nement et théorie des ensembles

UML2Alloy33[Ana12] a comme but de formaliser UML à l’aide du langage Alloy34[Jac12]. Le langage Alloy a été aussi utilisé dans [ZD06] pour élaborer une formalisation de ces concepts dans le but de raisonner sur l’opérateur de fusion, mais l’analyseur comme il est expliqué dans la section4.4a des limites lorsqu’il s’agit d’un grand nombre d’instances du modèle.

UML-B35[SB06] est un atelier qui vise à combiner les atouts du langageUMLet ceux du langage B. En effet UML offre une représentation graphique pratique mais ne dispose pas d’une expressivité sémantique précise formelle et le langage B36[ALN+91] qui offre la pré- cision, l’animation et la vérification rigoureuse de modèles mais a une notation relativement difficile à visualiser et à communiquer. Selon [OJ04], cette approche présente l’inconvénient de fournir une spécificationUMLdifficile à lire pour les non connaisseurs du langage B à cause des stéréotypes B utilisés pour spécialiser le sens des entitésUMLet l’interprétation des dépendances entre les paquetages. Elle pose alors le problème de la sémantique objet de ces stéréotypes.

Les deux ateliers (UML-B et HOL/OCL) permettent de raisonner sur des modèlesUML

avec une sémantique formelle. L’objectif de nos travaux, en plus de raisonner sur la vérifica- tion de modèles, est de spécifier des opérateurs de composition et de vérifier leur correction par rapport à certaines propriétés. Il est possible de coupler notre atelier avec HOL/OCLen définissant une sémantique commune : HOL/OCLpermet alors de raisonner sur des inva- riants de modèle, nos travaux sur la composition de modèles. Il serait également possible de respécifier COQ4MDE dans ISABELLE/HOL ou B par exemple, le codage que nous avons

choisi ne dépend pas des spécificités de COQ.