Für eine korrekte Darstellung dieser Seite benötigen Sie einen XHTML-standardkonformen Browser, der die Darstellung von CSS-Dateien zulässt.

. .
Suche

FASE 2018 - A Formal Framework for Incremental Model Slicing

Gabriele Taentzer
Software Engineering Group
Philippps-Universität Marburg
Germany
taentzer@Mathematik.Uni-Marburg.de
Timo Kehrer
Department of Computer Science
Humboldt-University of Berlin
Germany
timo.kehrer@informatik.hu-berlin.de
Christopher Pietsch, Udo Kelter
Software Engineering Group
University of Siegen
Germany
{cpietsch, kelter}@informatik.uni-siegen.de

Abstract

Program slicing is a technique which can determine the simplest program possible that maintains the meaning of the original program w.r.t. a slicing criterion. The concept of slicing has been transferred to models, in particular to statecharts. In addition to the classical use cases of slicing adopted from the field of program understanding, model slicing is also motivated by specifying submodels of interest to be further processed more efficiently. Slices are often adapted throughout specifc software development tasks as, e.g., during a debugging session. Such a slice update can be performed by creating the new slice from scratch or by incrementally adapting the existing slice. In this paper, we present a formal framework for defining model slicers that support incremental slice updates. This framework is based on a general concept of model modifications and abstracts from the behavior of concrete slicers as well as from the concrete model modification approach. It forms a guideline for defining incremental model slicers independent of the underlying slicer's semantics. Incremental slice updates are shown to be equivalent to non-incremental ones. Furthermore, we present a framework instantiation based on the concept of edit scripts defining application sequences of model transformation rules. We implemented two concrete model slicers for this instantiation based on the Eclipse Modeling Framework.

Configurations

The following rules are used to configure two model slicers which are capable of solving the motivating examples introduced in the paper.

Backward Slicing

These transformation rules are used to configure a state-based model slicer for determining all model elements which may have an effect on given states.

Figure 1: Transformation rules for creating/deleting a pseudostate

Figure 2: Transformation rules for creating/deleting a region in a composite state

Figure 3: Transformation rules for creating/deleting a region in a state machine

Figure 4: Transformation rules for creating/deleting a state machine in a package

Figure 5: Transformation rules for creating/deleting a state with an incoming transition

Extraction of Editable Submodels

These transformation rules are used to configure a slicer for extracting editable submodels consisting of a subset of UML state machines and related class diagram parts.

Figure 6: Transformation rules for creating/deleting a call event in a package

Figure 7: Transformation rules for creating/deleting a class in a package

Figure 8: Transformation rules for creating/deleting a model in a package

Figure 9: Transformation rules for creating/deleting an operation in a class

Figure 10: Transformation rules for creating/deleting a package in a package

Figure 11: Transformation rules for creating/deleting a pseudostate

Figure 12: Transformation rules for creating/deleting a region in a state

Figure 13: Transformation rules for creating/deleting a state in a region

Figure 14: Transformation rules for creating/deleting a state machine in a package

Figure 15: Transformation rules for creating/deleting a transition in a region

Figure 16: Transformation rules for creating/deleting a trigger in a transition

Figure 17: Slice-creating edit script