6 research outputs found

    Model Transformation Languages with Modular Information Hiding

    Get PDF
    Model transformations, together with models, form the principal artifacts in model-driven software development. Industrial practitioners report that transformations on larger models quickly get sufficiently large and complex themselves. To alleviate entailed maintenance efforts, this thesis presents a modularity concept with explicit interfaces, complemented by software visualization and clustering techniques. All three approaches are tailored to the specific needs of the transformation domain

    Model Transformation Languages with Modular Information Hiding

    Get PDF
    Model transformations, together with models, form the principal artifacts in model-driven software development. Industrial practitioners report that transformations on larger models quickly get sufficiently large and complex themselves. To alleviate entailed maintenance efforts, this thesis presents a modularity concept with explicit interfaces, complemented by software visualization and clustering techniques. All three approaches are tailored to the specific needs of the transformation domain

    Certifying a Rule-Based Model Transformation Engine for Proof Preservation

    Get PDF
    International audienceExecutable engines for relational model-transformation languages evolve continuously because of language extension, performance improvement and bug fixes. While new versions generally change the engine semantics, end-users expect to get backward-compatibility guarantees, so that existing transformations do not need to be adapted at every engine update.The CoqTL model-transformation language allows users to define model transformations, theorems on their behavior and machine-checked proofs of these theorems in Coq. Backward-compatibility for CoqTL involves also the preservation of these proofs. However, proof preservation is challenging, as proofs are easily broken even by small refactorings of the code they verify.In this paper we present the solution we designed for the evolution of CoqTL, and by extension, of rule-based transformation engines. We provide a deep specification of the transformation engine, including a set of theorems that must hold against the engine implementation. Then, at each milestone in the engine development, we certify the new version of the engine against this specification, by providing proofs of the impacted theorems. The certification formally guarantees end-users that all the proofs they write using the provided theorems will be preserved through engine updates. We illustrate the structure of the deep specification theorems, we produce a machine-checked certification of three versions of CoqTL against it, and we show examples of user theorems that leverage this specification and are thus preserved through the updates

    Modélisation en UML/OCL des langages de programmation et de leurs propriétés et processus IDM

    Get PDF
    Cette étude est axée sur l'activité de génération de composants logiciels se situant en phase terminale des processus de développement de logiciels dirigés par les modèles. Dans une première partie, nous présentons les travaux de recherche déjà existants sur les modèles et les transformations de modèles, ainsi que sur la modélisation en UML/OCL des langages de programmation limitée, la plupart du temps, aux aspects syntaxiques. Dans une deuxième partie, nous montrons comment nous modélisons en UML/OCL, les propriétés comportementales et axiomatiques des langages de programmation de style impératif. La modélisation des propriétés comportementales et axiomatiques d'un langage, en UML/OCL enrichi d'un langage d'actions, nous amène à montrer comment on peut, à l'aide de triplets de Hoare, vérifier que des segments de modèles de programmes sont corrects. Les assertions déduites des triplets de Hoare par application des propriétés axiomatiques du langage sont transmises à un Atelier B en vue d'étudier leurs éventuelles validités. Dans une troisième partie, nous montrons comment on peut injecter au niveau du Méta-Modèle UML des propriétés comportementales et axiomatiques spécifiques à un domaine d'applications particulier. Nous nous sommes limités au fragment du Méta-Modèle UML définissant les diagrammes d'activité se situant donc en amont des modèles de codes, avant la génération proprement dite des codes. La cohérence entre les modèles et les codes peut se vérifier à l'aide de propriétés comportementales et axiomatiques en comparant les modèles issues des exigences et les modèles des codes. Ces travaux de recherche ont été financés dans le cadre de l'ANR.Our work focuses on the software component generation phase that takes place at the last phase of a model driven development process. Our work is related to either the modelware or the grammarware because the model driven process can be considered as a successive of model transformations whereas the code generation is a specific transformation from the model to a language grammar. In the first part, we resume some relative works in the domain of the models and of the models transformation; we also present the language modeling in UML which is generally restricted by the syntax modeling. In the second part, we show how we model in UML/OCL the behavioral and axiomatic properties of imperative programming languages. The modeling of the behavioral properties helps to execute the code models if we dispose a right execution environment. In the other hand, the modeling of the axiomatic properties helps to demonstrate the correctness of the code model. In fact, the assertions obtained from the modeling of the axiomatic properties of the language will be transferred to a B atelier in order to have further validation. In the third part, we show how we inject into the UML metamodel the considered domain behavioral and axiomatic properties. We focus on the activity diagram metamodel of the UML which defines the behavior part of a UML model. The coherence between the models and the codes can be then verified in comparing the behavioral and axiomatic properties of the models issued from the requirements and that of the codes. Our work is financed by the ANR research projects

    Automatic Transformation from Ecore Metamodels towards Gallina Inductive Types

    Get PDF
    International audienceWhen engineering a language (and its compiler), it is convenient to use widespread and easy-to-use MDE frameworks like Xtext that automatically generate a compiler infrastructure, and even a full-featured IDE. At the same time, a formal workbench such as a proof assistant is helpful to ensure the language specification is sound. Unfortunately, the two technical spaces hardly integrate. In this paper, we propose a transformation from Ecore's metametamodel to Coq's language named Gallina/Vernacular. The structural fragment of Ecore is fully handled. At the cost of not being bijective, our transformation has relaxed constraints over the input metamodel, in comparison to previous state of the art. To validate, we have used the proposed transformation with a complete and representative test suite, as well as a proof-carrying code type checker
    corecore