Abstract

The concept of borrowed contexts has opened up graph transformations to the notion of an external “observer” where graphs (specifying systems) may interact with an environment in order to evolve. This leads to open systems in which a clear line delimits internal (non-observable) and external (observable) behavior. The observable interactions of a graph build up labeled transition systems such that bisimulations are automatically congruences, which means that whenever one graph is bisimilar to another, one can exchange them in a larger graph without effect on the observable behavior. This result turns out to be very useful for model refactoring, since one part of the model can be replaced by another bisimilar one. The main goal of this thesis is twofold, namely to further develop the borrowed context framework and to explore its suitability as an instrument to reason about behavior preservation in model refactoring. First we extend the borrowed context framework to handle rules with negative application conditions, which are often a required feature of nontrivial system specifications. That is, a rule may only be applied if certain patterns are absent in the vicinity of a left-hand side. This extension, which is carried out for adhesive categories, requires an enrichment of the transition labels which now do not only indicate the context that is provided by the observer, but also constrain further additional contexts that may (not) satisfy the negative application condition. We have shown that bisimilarity is still a congruence when rules have negative application conditions. Experience shows that bisimulation proofs easily become tedious tasks and very prone to error when done by hand. In order to overcome this problem we have extended an existing on-the-fly bisimulation checking algorithm to the borrowed context setting and defined additional procedures to mechanize the verification of graphs for bisimilarity. This algorithm forms the core of a tool support which will enable us to come up with behavior analysis tools based on the borrowed context machinery. Finally, techniques based on borrowed contexts are defined to check model refactorings for behavior preservation, which is always a crucial aspect of every refactoring transformation. One technique checks instances of a metamodel for bisimilarity w.r.t. to a set of productions defining the operational semantics of the metamodel. Bisimilarity implies preservation of behavior. A more elaborate technique shifts the behavior-preservation focus from instances of a metamodel to refactoring rules, where rules are checked for behavior preservation. One of the advantages of these techniques is that they are not tied up to specific metamodels, but rather can be applied to any metamodel whose operational semantics can be described by finite graph productions.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call