Frame node and the Image node. The final result of this graph transformation applica-
tion will be the context-specific model M
(bob,hand)
of Figure 2.
Given c = (alice, hand) as initial context with corresponding initial context model
M
c
. If we compute the weak coverage using our set of three model transformations,
then we obtain the following results:
weakCoverage(c, M
c
, T ) = {(alice, hand), (alice, car), (bob, hand), (bob, car ),
(charlie, hand)}
weakChangeCoverage(c, M
c
, T ) =
{((alice, hand ), (alice, car)), ((alice, hand), (bob, hand)), ((alice, hand),
(charlie, hand)), ((bob, hand), (bob, car )), ((alice, hand), (bob, car))}
The weak change coverage graph shown in Figure 4.
Fig. 4. Coverage graph for weakChangeCoverage(c, M
c
, T ) with c = (alice, hand).
Observe that context (charlie, car) is not reachable, because it cannot be obtained
by applying any of the transformations belonging to T . Also observe that the transfor-
mation T
3
, that was originally defined to specify the context change from (alice, hand)
to (alice, car) can also be applied to change from context (bob, hand) to (bob, car).
T
1
, however, cannot be used to change from context (alice, car) to (bob, car).
We were able to derive this information by exploiting AGG’s ability to detect con-
flicts between graph transformations, based on the formal notion of critital pair anal-
ysis (CPA) [9]. Essentially, CPA enables detection of parallel conflicts between graph
transformations. Informally, a parallel conflict simply means that a given pair of graph
transformations T
a
and T
b
cannot be serialised in a particular order. More precisely,
if T
a
and T
b
can both be applied to the same host graph (with matches m
a
and m
b
,
respectively), after applying T
a
with match m
a
it is no longer possible to apply T
b
with
match m
b
. Parallel conflicts can be detected by comparing the left-hand sides of T
a
and
T
b
. An overlap between these left-hand sides implies that both transformations make
a change that is in conflict with the other one. For a more formal treatment of parallel
conflicts we refer to [10].
Coming back to our example, we observe that T
3
is applicable after T
1
, while the
opposite is not true: there is a parallel conflict between T
1
and T
3
that prevents T
1
from
being applied after T
3
for the same match. Indeed, T
3
replaces AnalogClock by Digital-
Clock while T
1
requires the presence of AnalogClock as an applicability precondition.
If we use the strong (i.e., transitive and symmetric) notion of coverage, then the
results of computing coverage(c, M
c
, T ) and the corresponding changeCoverage(c,
M
c
, T ) are shown in Figure 5.
6
It shows that the set of all contexts excluding (charlie,
6
Observe that we do not put directions on the edges because they can be followed bidirection-
ally.
15