4 research outputs found

    On principles of Least Change and Least Surprise for bidirectional transformations

    Get PDF
    In software engineering and elsewhere, different people may work intensively with different, but related, artefacts, e.g. models, documents, or code. They may use bidirectional transformations (bx) to maintain consistency between them. Naturally, they do not want their deliberate decisions disrupted, or their comprehension of their artefact interfered with, by a bx that makes changes to their artefact beyond the strictly necessary. This gives rise to a desire for a principle of Least Change, which has been often alluded to in the field, but seldom addressed head on. In this paper we present examples, briefly survey what has been said about least change in the context of bx, and identify relevant notions from elsewhere that may be applicable. We conclude that we cannot expect a Principle of Least Change to determine the optimal behaviour of a bx based on the consistency relation it embodies alone. Any such principle would bind the hands of the bx developer too tightly: the specification of how consistency is restored is as important a part of the development of a bx as the specification of what consistency means. Rather, what is required is a notion of reasonable behaviour of a bx that captures the idea that the bx’s consistency restoration does not gratuitously surprise its user. We suggest considering continuity variants, particularly Hölder continuity. Such properties are too strong to expect them to hold universally, so we introduce the idea of a property holding piecewise on an atlas of subspace pairs

    Avoiding Unnecessary Information Loss: Correct and Efficient Model Synchronization Based on Triple Graph Grammars

    Full text link
    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

    On Principles of Least Change and Least Surprise for Bidirectional Transformations

    No full text
    In software engineering and elsewhere, different people may work intensively with different, but related, artefacts, e.g. models, documents, or code. They may use bidirectional transformations (bx) to maintain consistency between them. Naturally, they do not want their deliberate decisions disrupted, or their comprehension of their artefact interfered with, by a bx that makes changes to their artefact beyond the strictly necessary. This gives rise to a desire for a principle of Least Change, which has been often alluded to in the field, but seldom addressed head on. In this paper we present examples, briefly survey what has been said about least change in the context of bx, and identify relevant notions from elsewhere that may be applicable. We conclude that we cannot expect a Principle of Least Change to determine the optimal behaviour of a bx based on the consistency relation it embodies alone. Any such principle would bind the hands of the bx developer too tightly: the specification of how consistency is restored is as important a part of the development of a bx as the specification of what consistency means. Rather, what is required is a notion of reasonable behaviour of a bx that captures the idea that the bx’s consistency restoration does not gratuitously surprise its user. We suggest considering continuity variants, particularly Hölder continuity. Such properties are too strong to expect them to hold universally, so we introduce the idea of a property holding piecewise on an atlas of subspace pairs

    A Declarative Language for Preserving Consistency of Multiple Models

    Get PDF
    Der Einsatz mehrerer Modelle zur Beschreibung eines Softwaresystems birgt oftmals die Herausforderung, diese konsistent zu halten. Während es viel Forschung zur Konsistenzhaltung zweier Modelle gibt, untersuchen nur wenige Arbeiten die Spezifika der Konsistenzhaltung mehrerer Modelle. In dieser Bachelorarbeit wird eine neue Programmiersprache vorgestellt, die es erlaubt, Transformationen zu erstellen, die mehr als zwei Modelle konsistent halten. Die Sprache verwendet ein Zwischen-Metamodell, sodass alle Transformationen zuerst von einem existierenden Modell in das Zwischenmodell und dann erst in die anderen Modelle ausgeführt werden. Zunächst betrachten wir verschiedene Möglichkeiten, wie Modelle mit ausschließlich binären Transformationen konsistent gehalten werden können. Im Weiteren demonstrieren wir Vorteile davon, ein Zwischen-Metamodell in den Konsistenzhaltungsprozess einzuführen. Im nächsten Schritt präsentieren wir die Gemeinsamkeiten-Sprache als eine Möglichkeit der Konsistenzhaltung mittels Zwischen-Metamodellen. Sie ermöglicht Entwicklern, Metaklassen des Zwischen-Metamodells gemeinsam mit deren Attributen und Referenzen zu deklarieren. Die Abbildungen vom Zwischenmodell in die Modelle, die konsistent gehalten werden sollen, und zurück, können direkt in den Zwischen-Metaklassen, -Attributen und -Referenzen festgelegt werden. Um Logik nicht zu duplizieren, können bidirektionale Ausdrücke für die Abbildungen verwendet werden. Die Sprache ist deklarativ und soll auf diese Weise eine hohe Nachvollziehbarkeit der Transformationen ermöglichen. Wir haben ein prototypische Implementierung der Sprache für Vitruvius erstellt, die in Eclipse für EMF-Modelle verwendet werden kann. Die Implementierung kann als Machbarkeitsnachweis gesehen werden, eignet sich allerdings noch nicht für den Praxiseinsatz. Die Idee, Zwischen-Metamodelle für die skalierbare und modulare Konsistenzhaltung mehrerer Modelle einzusetzen, wurde in anderen Arbeiten in realistische Szenarien bereits erfolgreich umgesetzt. Soweit uns bekannt ist, existiert noch kein Ansatz, der es erlaubt, ein Zwischen-Metamodell und die Transformationen für dieses in der selben Sprache zu definieren
    corecore