The Model Driven Architecture (MDA) is an approach to develop software based on different models. There are separate models for the business logic and for platform specific details. Moreover, code can be generated automatically from these models. This makes transformations a core technology for MDA and for model-based software engineering approaches in general. Query/View/ Transformation (QVT) is the transformation technology recently proposed for this purpose by the OMG. Triple Graph Grammars (TGGs) are another transformation technology proposed in the mid-nineties, used for example in the FUJ-ABA CASE tool. In contrast to many other transformation technologies, both QVT and TGGs declaratively define the relation between two models. With this definition, a transformation engine can execute a transformation in either direction and, based on the same definition, can also propagate changes from one model to the other. In this paper, we compare the concepts of the declarative languages of QVT and TGGs. It turns out that TGGs and declarative QVT have many concepts in common. In fact, QVT-Core can be mapped to TGGs. We show that QVT-Core can be implemented by transforming QVT-Core mappings to TGG rules, which can then be executed by a TGG transformation engine that performs the actual QVT transformation. Furthermore, we discuss an approach for mapping QVT-Relations to TGGs. Based on the semantics of TGGs, we clarify semantic gaps that we identified in the declarative languages of QVT and, furthermore, we show how TGGs can benefit from the concepts of QVT.Keywords MDA · Model-based software engineering · Model transformation · Query/View/Transformation (QVT) · Triple Graph Grammar (TGG)
Many software-intensive systems are expected to run continuously while their environments change and their requirements evolve, so their implementation must be updated dynamically to satisfy changing requirements while coping with changing environment properties. Techniques for developing dynamically updating systems exist, but thus far almost no attention has been paid to defining when updates are correct with respect to a changing specification, i.e., when a system can safely disregard its current obligations and change its behavior to satisfy the new specification. Based on an intuitive example, we elaborate a formal definition for correct updates of a current implementation with respect to specification changes. Moreover, we present an approach for synthesizing a dynamically updating controller from the current implementation and changes in a scenario-based specification that updates to the new behavior as soon as possible. The presented technique is a first step towards the specification-driven development of safe dynamically updating controllers.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.