110 research outputs found

    From examples to knowledge in model-driven engineering : a holistic and pragmatic approach

    Full text link
    Le Model-Driven Engineering (MDE) est une approche de dĂ©veloppement logiciel qui propose d’élever le niveau d’abstraction des langages afin de dĂ©placer l’effort de conception et de comprĂ©hension depuis le point de vue des programmeurs vers celui des dĂ©cideurs du logiciel. Cependant, la manipulation de ces reprĂ©sentations abstraites, ou modĂšles, est devenue tellement complexe que les moyens traditionnels ne suffisent plus Ă  automatiser les diffĂ©rentes tĂąches. De son cĂŽtĂ©, le Search-Based Software Engineering (SBSE) propose de reformuler l’automatisation des tĂąches du MDE comme des problĂšmes d’optimisation. Une fois reformulĂ©, la rĂ©solution du problĂšme sera effectuĂ©e par des algorithmes mĂ©taheuristiques. Face Ă  la plĂ©thore d’études sur le sujet, le pouvoir d’automatisation du SBSE n’est plus Ă  dĂ©montrer. C’est en s’appuyant sur ce constat que la communautĂ© du Example-Based MDE (EBMDE) a commencĂ© Ă  utiliser des exemples d’application pour alimenter la reformulation SBSE du problĂšme d’apprentissage de tĂąche MDE. Dans ce contexte, la concordance de la sortie des solutions avec les exemples devient un baromĂštre efficace pour Ă©valuer l’aptitude d’une solution Ă  rĂ©soudre une tĂąche. Cette mesure a prouvĂ© ĂȘtre un objectif sĂ©mantique de choix pour guider la recherche mĂ©taheuristique de solutions. Cependant, s’il est communĂ©ment admis que la reprĂ©sentativitĂ© des exemples a un impact sur la gĂ©nĂ©ralisabilitĂ© des solutions, l'Ă©tude de cet impact souffre d’un manque de considĂ©ration flagrant. Dans cette thĂšse, nous proposons une formulation globale du processus d'apprentissage dans un contexte MDE incluant une mĂ©thodologie complĂšte pour caractĂ©riser et Ă©valuer la relation qui existe entre la gĂ©nĂ©ralisabilitĂ© des solutions et deux propriĂ©tĂ©s importantes des exemples, leur taille et leur couverture. Nous effectuons l’analyse empirique de ces deux propriĂ©tĂ©s et nous proposons un plan dĂ©taillĂ© pour une analyse plus approfondie du concept de reprĂ©sentativitĂ©, ou d’autres reprĂ©sentativitĂ©s.Model-Driven Engineering (MDE) is a software development approach that proposes to raise the level of abstraction of languages in order to shift the design and understanding effort from a programmer point of view to the one of decision makers. However, the manipulation of these abstract representations, or models, has become so complex that traditional techniques are not enough to automate its inherent tasks. For its part, the Search-Based Software Engineering (SBSE) proposes to reformulate the automation of MDE tasks as optimization problems. Once reformulated, the problem will be solved by metaheuristic algorithms. With a plethora of studies on the subject, the power of automation of SBSE has been well established. Based on this observation, the Example-Based MDE community (EB-MDE) started using application examples to feed the reformulation into SBSE of the MDE task learning problem. In this context, the concordance of the output of the solutions with the examples becomes an effective barometer for evaluating the ability of a solution to solve a task. This measure has proved to be a semantic goal of choice to guide the metaheuristic search for solutions. However, while it is commonly accepted that the representativeness of the examples has an impact on the generalizability of the solutions, the study of this impact suffers from a flagrant lack of consideration. In this thesis, we propose a thorough formulation of the learning process in an MDE context including a complete methodology to characterize and evaluate the relation that exists between two important properties of the examples, their size and coverage, and the generalizability of the solutions. We perform an empirical analysis, and propose a detailed plan for further investigation of the concept of representativeness, or of other representativities

    Improving automation in model-driven engineering using examples

    Get PDF
    Cette thĂšse a pour but d’amĂ©liorer l’automatisation dans l’ingĂ©nierie dirigĂ©e par les modĂšles (MDE pour Model Driven Engineering). MDE est un paradigme qui promet de rĂ©duire la complexitĂ© du logiciel par l’utilisation intensive de modĂšles et des transformations automatiques entre modĂšles (TM). D’une façon simplifiĂ©e, dans la vision du MDE, les spĂ©cialistes utilisent plusieurs modĂšles pour reprĂ©senter un logiciel, et ils produisent le code source en transformant automatiquement ces modĂšles. ConsĂ©quemment, l’automatisation est un facteur clĂ© et un principe fondateur de MDE. En plus des TM, d’autres activitĂ©s ont besoin d’automatisation, e.g. la dĂ©finition des langages de modĂ©lisation et la migration de logiciels. Dans ce contexte, la contribution principale de cette thĂšse est de proposer une approche gĂ©nĂ©rale pour amĂ©liorer l’automatisation du MDE. Notre approche est basĂ©e sur la recherche mĂ©ta-heuristique guidĂ©e par les exemples. Nous appliquons cette approche sur deux problĂšmes importants de MDE, (1) la transformation des modĂšles et (2) la dĂ©finition prĂ©cise de langages de modĂ©lisation. Pour le premier problĂšme, nous distinguons entre la transformation dans le contexte de la migration et les transformations gĂ©nĂ©rales entre modĂšles. Dans le cas de la migration, nous proposons une mĂ©thode de regroupement logiciel (Software Clustering) basĂ©e sur une mĂ©ta-heuristique guidĂ©e par des exemples de regroupement. De la mĂȘme façon, pour les transformations gĂ©nĂ©rales, nous apprenons des transformations entre modĂšles en utilisant un algorithme de programmation gĂ©nĂ©tique qui s’inspire des exemples des transformations passĂ©es. Pour la dĂ©finition prĂ©cise de langages de modĂ©lisation, nous proposons une mĂ©thode basĂ©e sur une recherche mĂ©ta-heuristique, qui dĂ©rive des rĂšgles de bonne formation pour les mĂ©ta-modĂšles, avec l’objectif de bien discriminer entre modĂšles valides et invalides. Les Ă©tudes empiriques que nous avons menĂ©es, montrent que les approches proposĂ©es obtiennent des bons rĂ©sultats tant quantitatifs que qualitatifs. Ceux-ci nous permettent de conclure que l’amĂ©lioration de l’automatisation du MDE en utilisant des mĂ©thodes de recherche mĂ©ta-heuristique et des exemples peut contribuer Ă  l’adoption plus large de MDE dans l’industrie Ă  lĂ  venir.This thesis aims to improve automation in Model Driven Engineering (MDE). MDE is a paradigm that promises to reduce software complexity by the mean of the intensive use of models and automatic model transformation (MT). Roughly speaking, in MDE vision, stakeholders use several models to represent the software, and produce source code by automatically transforming these models. Consequently, automation is a key factor and founding principle of MDE. In addition to MT, other MDE activities require automation, e.g. modeling language definition and software migration. In this context, the main contribution of this thesis is proposing a general approach for improving automation in MDE. Our approach is based on meta-heuristic search guided by examples. We apply our approach to two important MDE problems, (1) model transformation and (2) precise modeling languages. For transformations, we distinguish between transformations in the context of migration and general model transformations. In the case of migration, we propose a software clustering method based on a search algorithm guided by cluster examples. Similarly, for general transformations, we learn model transformations by a genetic programming algorithm taking inspiration from examples of past transformations. For the problem of precise metamodeling, we propose a meta-heuristic search method to derive well-formedness rules for metamodels with the objective of discriminating examples of valid and invalid models. Our empirical evaluation shows that the proposed approaches exhibit good results. These allow us to conclude that improving automation in MDE using meta-heuristic search and examples can contribute to a wider adoption of MDE in industry in the coming years

    Graph Query by Example

    Get PDF
    Abstract. Model-driven tools use model queries for many purposes, including validation of well-formedness rules, specication of derived features, and directing rule-based model transformation. Query languages such as graph patterns may facilitate capturing complex structural relationships between model elements. Specifying such queries, however, may prove dicult for engineers familiar with the concrete syntax only, not with the underlying abstract representation of the modeling language. The current paper presents an extension to the EMF-IncQuery model query tool that lets users point out, using familiar concrete syntax, an example of what the query results should look like, and automatically derive a graph query that nds other similar results. Keywords: by example, model query, graph pattern, EMF-IncQuery 1 Introduction Model-driven Engineering (MDE) approaches treat models as primary artifacts of the engineering process, relying on automated model processing steps. Models are usually thought of as typed, attributed graphs. This underlying structure is dened by the metamodel of the modeling language and is called the abstract syntax. On the other hand, the preferred way the model is presented to (and edited by) humans is in the form of visual diagrams, textual notations, tree structures, etc., called the concrete syntax. The two representations can have substantial dierences, e.g., an edge in concrete syntax may correspond to a node in abstract syntax, or to a structure of several elements (see Model queries are important components in model-driven tool chains: they are widely used for specifying derived features, well-formedness constraints, reports, and guard conditions for behavioural models, design space rules or model transformations. Although model queries can be implemented using a generalpurpose programming language (Java), specialized query languages may be mor

    Constraint programming for type inference in flexible model-driven engineering

    Get PDF
    Domain experts typically have detailed knowledge of the concepts that are used in their domain; however they often lack the technical skills needed to translate that knowledge into model-driven engineering (MDE) idioms and technologies. Flexible or bottom-up modelling has been introduced to assist with the involvement of domain experts by promoting the use of simple drawing tools. In traditional MDE the engineering process starts with the definition of a metamodel which is used for the instantiation of models. In bottom-up MDE example models are defined at the beginning, letting the domain experts and language engineers focus on expressing the concepts rather than spending time on technical details of the metamodelling infrastructure. The metamodel is then created manually or inferred automatically. The flexibility that bottom-up MDE offers comes with the cost of having nodes in the example models left untyped. As a result, concepts that might be important for the definition of the domain will be ignored while the example models cannot be adequately re-used in future iterations of the language definition process. In this paper, we propose a novel approach that assists in the inference of the types of untyped model elements using Constraint Programming. We evaluate the proposed approach in a number of example models to identify the performance of the prediction mechanism and the benefits it offers. The reduction in the effort needed to complete the missing types reaches up to 91.45% compared to the scenario where the language engineers had to identify and complete the types without guidance

    Evaluating well-formedness constraints on incomplete models

    Get PDF
    In modern modeling tools used for model-driven development, the validation of several well-formedness constraints is continuously been carried out by exploiting advanced graph query engines to highlight conceptual design flaws. However, while models are still under development, they are frequently partial and incomplete. Validating constraints on incomplete, partial models may identify a large number of irrelevant problems. By switching off the validation of these constraints, one may fail to reveal problematic cases which are difficult to correct when the model becomes sufficiently detailed. Here, we propose a novel validation technique for evaluating well-formedness constraints on incomplete, partial models with may and must semantics, e.g. a constraint without a valid match is satisfiable if there is a completion of the partial model that may satisfy it. To this end, we map the problem of constraint evaluation over partial models into regular graph pattern matching over complete models by semantically equivalent rewrites of graph queries

    On the Value of Quality Attributes for Refactoring Model Transformations Using a Multi-Objective Algorithm

    Full text link
    Peer Reviewedhttps://deepblue.lib.umich.edu/bitstream/2027.42/152454/1/QMOOD_for_ATL__Copy_.pd

    Automating Inference of OCL Business Rules from User Scenarios

    Get PDF
    International audienceUser Scenarios have been advocated as an effective means to capture requirements by describing the system-to-be at the instance or example level. This instance-level information is then used to infer a possible software specification consistent with the provided valid and invalid scenarios. So far existing approaches have often focused on the generation of static models but have omitted the inference of business rules that could complement the static models and improve the precision of the software specification. In this sense this paper provides a first set of invariant inference patterns that are applied on valid and invalid snapshots in order to generate OCL~(Object Constraint Language) integrity constraints that the system should always satisfy. We strengthen the confidence of inferred results based on the user's feedback of generated examples and counterexamples for the considered constraint. The approach is realized with a prolog-based tool that could support the designer to effectively define OCL integrity constraints in a semi-automatic way

    Type inference in flexible model-driven engineering using classification algorithms

    Get PDF
    Flexible or bottom-up model-driven engineering (MDE) is an emerging approach to domain and systems modelling. Domain experts, who have detailed domain knowledge, typically lack the technical expertise to transfer this knowledge using traditional MDE tools. Flexible MDE approaches tackle this challenge by promoting the use of simple drawing tools to increase the involvement of domain experts in the language definition process. In such approaches, no metamodel is created upfront, but instead the process starts with the definition of example models that will be used to infer the metamodel. Pre-defined metamodels created by MDE experts may miss important concepts of the domain and thus restrict their expressiveness. However, the lack of a metamodel, that encodes the semantics of conforming models has some drawbacks, among others that of having models with elements that are unintentionally left untyped. In this paper, we propose the use of classification algorithms to help with the inference of such untyped elements. We evaluate the proposed approach in a number of random generated example models from various domains. The correct type prediction varies from 23 to 100% depending on the domain, the proportion of elements that were left untyped and the prediction algorithm used

    Fundamental Approaches to Software Engineering

    Get PDF
    computer software maintenance; computer software selection and evaluation; formal logic; formal methods; formal specification; programming languages; semantics; software engineering; specifications; verificatio
    • 

    corecore