7 research outputs found
Controlling Reuse in Pattern-Based Model-to-Model Transformations
Model-to-model transformation is a central activity in Model-Driven Engineering that consists of transforming models from a source to a target language. Pattern-based model-to-model transformation is our approach for specifying transformations in a declarative, relational and formal style. The approach relies on patterns describing allowed or forbidden relations between two models. These patterns are compiled into operational mechanisms to perform forward and backward transformations. Inspired by QVT-Relations, in this paper we incorporate into our framework the so-called check-before-enforce semantics, which checks the existence of suitable elements before creating them (i.e. it promotes reuse). Moreover, we enable the use of keys in order to describe when two elements are considered equal. The presented techniques are illustrated with a bidirectional transformation between Web Services Description Language and Enterprise Java Beans models.Work partially supported by the Spanish Ministry of Science
and Innovation, with projects METEORIC (TIN2008-02081) and FORMALISM
(TIN2007-66523), and the R&D program of the Community of Madrid
(S2009/TIC-1650, project “e-Madrid”). Moreover, part of this work was done
during a post-doctoral stay of the first author at the University of York, and sabbatical
leaves of the second and third authors to the University of York and TU Berlin respectively, all with financial support from the Spanish Ministry of Science
and Innovation (grant refs. JC2009-00015, PR2009-0019 and PR2008-0185).Publicad
Model-based training of manual procedures in automated production systems
Maintenance engineers deal with increasingly complex automated production
systems (aPSs). Such systems are characterized by an increasing computerization
or the addition of robots that collaborate with human workers. The effects of
changing or replacing components of such systems are difficult to assess since
there are complex interdependencies between process parameters and the state of
the components. This paper proposes a model-based training system that
visualizes these interdependencies using domain-independent SysML models. The
training system consists of a virtual training system for initial training and
an online support system for assistance during maintenance or changeover
procedures. Both systems use structural SysML models to visualize the state of
the machine at a certain step of a procedure. An evaluation of the system in a
changeover procedure against a paper-based manual showed promising results
regarding effectiveness, usability and attractiveness.Comment: 25 pages,
https://www.sciencedirect.com/science/article/pii/S095741581830080
Avoiding Unnecessary Information Loss: Correct and Efficient Model Synchronization Based on Triple Graph Grammars
Model synchronization, i.e., the task of restoring consistency between two
interrelated models after a model change, is a challenging task. Triple Graph
Grammars (TGGs) specify model consistency by means of rules that describe how
to create consistent pairs of models. These rules can be used to automatically
derive further rules, which describe how to propagate changes from one model to
the other or how to change one model in such a way that propagation is
guaranteed to be possible. Restricting model synchronization to these derived
rules, however, may lead to unnecessary deletion and recreation of model
elements during change propagation. This is inefficient and may cause
unnecessary information loss, i.e., when deleted elements contain information
that is not represented in the second model, this information cannot be
recovered easily. Short-cut rules have recently been developed to avoid
unnecessary information loss by reusing existing model elements. In this paper,
we show how to automatically derive (short-cut) repair rules from short-cut
rules to propagate changes such that information loss is avoided and model
synchronization is accelerated. The key ingredients of our rule-based model
synchronization process are these repair rules and an incremental pattern
matcher informing about suitable applications of them. We prove the termination
and the correctness of this synchronization process and discuss its
completeness. As a proof of concept, we have implemented this synchronization
process in eMoflon, a state-of-the-art model transformation tool with inherent
support of bidirectionality. Our evaluation shows that repair processes based
on (short-cut) repair rules have considerably decreased information loss and
improved performance compared to former model synchronization processes based
on TGGs.Comment: 33 pages, 20 figures, 3 table
Graphs and Graph Transformations for Object-Oriented and Service-Oriented Systems
Theories of graphs and graph transformations form an important part of the mathematical foundations
of computing, and have been applied in a wide range of areas from the design and analysis
of algorithms to the formalization of various computer systems and programs. In this thesis, we
study how graphs and graph transformations can be used to model the static structure and dynamic
behavior of object-orientated and service-oriented systems.
Our work is mainly motivated by the difficulty in understanding and reasoning about objectorientated
and service-oriented programs, which have more sophisticated features compared with
traditional procedural programs. We show that the use of graphs and graphs transformations provides
both an intuitive visualization and a formal representation of object-orientated and serviceoriented
programs with these features, improving people’s understanding of the execution states
and behaviors of these programs.
We provide a graph-based type system, operational semantics and refinement calculus for an
object-oriented language. In this framework, we define class structures and execution states of oo
programs as directed and labeled graphs, called class graphs and state graphs, respectively. The
type system checks whether a program is well-typed based on its class graph, while the operational
semantics defines each step of program execution as a simple graph transformations between state
graphs. We show the operational semantics is type-safe in that the execution of a well-typed
program does not “go wrong”. Based on the operational semantics, we study the notion of structure
refinement of oo programs as graph transformations between their class graphs. We provide a
few groups of refinement rules for various purposes such as class expansion and polymorphism
elimination and prove their soundness and relative completeness.
We also propose a graph-based representation of service-oriented systems specified in a serviceoriented
process calculus. In this framework, we define states of service-oriented systems as hier-
archical graphs that naturally capture the hierarchical nature of service structures. For this, we
exploit a suitable graph algebra and set up a hierarchical graph model, in which graph transformations
are studied following the well-known Double-Pushout approach. Based on this model, we
provide a graph transformation system with a few sets of graph transformation rules for various
purposes such as process copy and process reduction. We prove that the graph transformation
system is sound and complete with respect to the reduction semantics of the calculus