11 research outputs found

    Evaluating the performance of model transformation styles in Maude

    Get PDF
    Rule-based programming has been shown to be very successful in many application areas. Two prominent examples are the specification of model transformations in model driven development approaches and the definition of structured operational semantics of formal languages. General rewriting frameworks such as Maude are flexible enough to allow the programmer to adopt and mix various rule styles. The choice between styles can be biased by the programmer’s background. For instance, experts in visual formalisms might prefer graph-rewriting styles, while experts in semantics might prefer structurally inductive rules. This paper evaluates the performance of different rule styles on a significant benchmark taken from the literature on model transformation. Depending on the actual transformation being carried out, our results show that different rule styles can offer drastically different performances. We point out the situations from which each rule style benefits to offer a valuable set of hints for choosing one style over the other

    A Reference Interpreter for the Graph Programming Language GP 2

    Get PDF
    GP 2 is an experimental programming language for computing by graph transformation. An initial interpreter for GP 2, written in the functional language Haskell, provides a concise and simply structured reference implementation. Despite its simplicity, the performance of the interpreter is sufficient for the comparative investigation of a range of test programs. It also provides a platform for the development of more sophisticated implementations.Comment: In Proceedings GaM 2015, arXiv:1504.0244

    Incremental Graph Pattern Matching: Data Structures and Initial Experiments

    Get PDF
    Despite the large variety of existing graph transformation tools, the implementation of their pattern matching engine typically follows the same principle. First a matching occurrence of the left-hand side of the graph transformation rule is searched by some graph pattern matching algorithm. Then potential negative application conditions are checked that might eliminate the previous occurrence. However, when a new transformation step is started, all the information on previous matchings is lost, and the complex graph pattern matching phase is restarted from scratch each time. In the paper, we present the foundational data structures and initial experiments for an incremental graph pattern matching engine which keeps track of existing matchings in an incremental way to reduce the execution time of graph pattern matching

    Deriving OCL Optimization Patterns from Benchmarks

    Get PDF
    Writing queries and navigation expressions in OCL is an important part of the task of developing a model transformation definition. When such queries are complex and the size of the models is significant, performance issues cannot be neglected. In this paper we present five patterns intended to optimize the performance of model transformations when OCL queries are involved. For each pattern we will give an example as well as several implementation alternatives. Experimental data gathered by running benchmarks is also shown to compare the alternatives. The model transformation benchmark framework developed to obtain these results is also described

    Improved Flexibility and Scalability by Interpreting Story Diagrams

    Get PDF
    In this paper, we present an interpreter for Story Diagrams working on Eclipse Modeling Framework (EMF) models. The interpreter provides a more flexible and, under certain circumstances, a more scalable solution than the compiled Java code generated from Story Diagrams by Fujaba. of Dynamic EMF even allows the evolution of meta models at runtime. Story Diagrams can now be modeled and executed within Eclipse. They can be modified and re-executed by the Story Diagram interpreter immediately without recompiling the source code and restarting the application. Our implementation also supports higher-order transformations by using Story Diagrams to modify other Story Diagrams. generation is not applicable, like running systems. While interpretation obviously results in performance drawbacks, we demonstrate that the Story Diagram interpreter is able to improve the performance in certain worst-case situations compared to the average generated code. This is achieved by a dynamic ordering of the matching process, which considers the actual number of elements in an association at runtime. Such a dynamic ordering can minimize the matching effort considerably. In contrast, Fujaba generated code uses a static matching strategy. Whereas the Fujaba Story Diagrams have potentially high performance fluctuations, the performance of the Story Diagram interpreter is steadier and more scalable compared to the generated Java code

    An Incremental OCL Compiler for Modeling Environments

    Get PDF
    In software engineering, reliability and development time are two of the most important aspects, therefore, modeling environments, which aide both, are widely used during software development. UML and OCL became industry standards, and are supported by many CASE tools. OCL code checking, which has to be performed by these tools, has a specialty, as not all of the information necessary for compilation is available from the code, the related model contains the types, navigations and attributes. The build time of OCL code fragments is increased if the development tool supports distributed modeling, because in this case, model element checking has to be performed in a model repository that cannot be held in memory. In this paper, we introduce a method that enables incremental OCL code building and therefore reduces the development time. Incremental builds require higher complexity than simple builds, thus balancing between the two methods is also considered

    Graph Modelling and Transformation: Theory meets Practice

    Get PDF
    In this paper, we focus on the role of graphs and graph transformation for four practical application areas from software system development. We present the typical problems in these areas and investigate how the respective systems are modelled by graphs and graph transformation. In particular, we are interested in the usefulness of theoretical graph transformation results and graph transformation tools in order to solve these problems. Finally, we characterize concepts and tool features which are still missing in practice to solve the presented and related problems even better. Keywords: graph modelling, graph transformation, graph transformation tool

    First European Workshop on Composition of Model Transformations - CMT 2006

    Get PDF

    Evolution of negative application conditions on second-order graph rewriting

    Get PDF
    Graph grammars are a suitable formalism to modeling computational systems. This formalism is based on rules and data-driven transformations capable of simulating real systems, rules have application conditions and post conditions that can change the system state. Moreover the use of graphs allows an intuitive visual interface essential for the modeler. It is well known that software systems are always evolving, evolutions may range from minor refactorings or bug fixes to major interface changes or new architectural design. The formalization of these evolution processes in graph grammars is done via higher-order principles, which allows programmed higher-level rules to induce modifications on lower-level rules, the system rules. In this work, we extend the current framework of higher-order transformations for graph grammars in order to allow the evolution of rules with negative application conditions. Besides this extension, we provide the first working implementation of the whole framework of higher-order graph grammars in the Verigraph tool enabling the practical usage of this techniques.Gramática de grafos é um formalismo para modelagem de sistemas computacionais. Este formalismo é baseado em regras e transformações de dados capazes de simular sistemas reais, regras tem pré e pós condições de aplicação que podem mudar o estado do sistema. Além disso, o uso de grafos permite uma interface visual intuitiva, que é essencial para o modelador. Se sabe que sistemas computacionais estão sempre evoluindo, essas evoluções podem varias de pequenas refatorações ou correções de problemas, até mudanças maiores em interfaces ou nova arquitetura. A formalização deste processo de evolução em gramáticas de grafos é feita com base em regras de segunda ordem, que possibilitam induzir modificações nas regras da gramática de primeira ordem. Neste trabalho, nós estendemos o framework atual de gramáticas de grafos de segunda ordem de forma a permitir evolução de regras com condições negativas de aplicação. Além desta extensão, nós provemos a primeira implementação do framework de gramáticas de grafos de segunda ordem na ferramenta Verigraph, possibilitando assim o uso na prática destas técnicas

    Konzeption und Implementierung einer Anwendungsumgebung für attributierte Graphtransformation basierend auf Mathematica

    Get PDF
    Ich präsentiere in meiner Diplomarbeit ein auf der Software Mathematica basierendes Tool zur Modelltransformation mit Hilfe theoretischer Konzepte der getypten attributierten Graphtransformation mit Doppelpushouts. Das Tool zeichnet sich durch eine hohe Effizienz der mathematischen Berechnungen und eine Kompaktheit der Implementierung aus und soll u.a. in einem Modellierungsszenario der Geschäftsprozesse der Credite Suisse Verwendung finden.In my diploma thesis I present a tool that is based on the software Mathematica. It is concerned with the model transformation with the aid of theoretical concepts of typed attributed graph transformation with double pushouts. The tool stands out by its high efficiency in the mathematical calculations and a compact implementing. It shall be used, among others, in the business process modelling scenario of Credite Suisse
    corecore