Information Technology Reference
In-Depth Information
work, we search for the fundamental property of instance preservation: given an
i*
model that is instance of a metamodel M
A
that represents a source variation then, when
applying the mapping from M
A
to M
B
(the metamodel that represents the target varia-
tion) the model can also be considered an instance of M
B
.
Let's assume that a model, named the
i*
supermetamodel, exists, therefore any ex-
isting metamodel of
i*
variation is a submetamodel of the
i*
supermetamodel. Then,
if we could model refactoring operations from the
i*
supermetamodel to the particular
variants, then we would have a feasible translation from each variant to another. This
hypothetical scenario would exhibit three advantages: (i) supporting at some extent
interoperability between models belonging to different metamodels; (ii) given
k
i*
variants, providing a framework that offers translation from one variant to each other
with linear complexity in terms of transformation functions (
k
functions) instead of
quadratic (
k
2
-
k
pair-wise functions); (iii) the type of semantic preservation would be
characterized with a clear specification of preservation (strict, modulo varia-tion,
increasing or decreasing). In Figure 3 we illustrate this hypothetical assumption.
Although it may appear hard to sustain that such an
i*
supermetamodel exists (due
to the continuous proposals that modify it), in the next section we will discuss
the conditions under which its existence appears reasonable to sustain and a first i*
supermetamodel approach will be presented.
Fig. 3
. Comparing absence and presence of an
i*
supermetamodel for model translations
4 A Supermetamodel for
i*
From its definition, we can colloquially understand a supermetamodel as a metamodel
which contains the superset of language constructs existing on other metamodels. In
the case of the
i*
framework, this means that if M is a supermetamodel for
i*
then the
different values of softgoals contributions (some+, helps, makes, +, ++, - , --) should
be modelled in M. Besides, the same for intentional element types, actor types, etc.
Therefore, in the attempt of formulating a supermetamodel for the existing variants
and, ideally, upcoming ones, we need to answer two questions: (i) how to put under
the same metamodel a set of different language constructs coming from different
i*
variants?, (ii) how to make this supermetamodel stable enough in order to suffer
minimal modifications (if any) when a new
i*
variant is proposed? To satisfactorily
answer both questions, the key concept is abstraction to allow putting different
concepts together. It is crucial to capture the right level of abstraction: if the