Information Technology Reference
In-Depth Information
Table 2. Correspondence between the i* supermetamodel and iStarML
i* Supermetamodel Element
iStarML Construction
XClass Actor
<actor>
XClass Intentional Element
<ielement>
Association XClass Boundary
<boundary> nested under <actor>
Association XClass Dependency Segment
<dependee> or <dependeder> nested under
<dependency>
XClass ActorLink
<actorLink>
XClass IElementLink
<ielementLink>
Association XClass ArrivesTo
<dependency> nested under <ielement>
technologies in order to parse and process iStarML files. The particular XML ele-
ments of iStarML correspond to supermetamodel concepts as we show in Table 2.
For the translation algorithm, it is important to start reminding from Section 3 that,
since we are using the i* supermetamodel, then the departing model m1 is considered
an instance of the i* supermetamodel. Therefore the translation from the metamodel
M1 to M2 should be considered in fact as a translation from the i* supermetamodel to
M2 . Since the target variant corresponds to a restricted version of the very i* super-
metamodel, then the refactoring operations required for translation can be only to
restrict attributes of the existing classes or to constraint the set of values of specific
attributes. In our iStarML implementation, this means to omit some attribute of an
existing XML element or to translate specific values of attributes to a different set.
Both types of translations (if any) can imply different semantic-preserving situations.
In order to minimize information loss, an algorithm is proposed (Figure 6). It is
presented as a UML activity diagram labelled with information about the semantic-
preservation consequences considering Wachsmuth's framework. The activities are:
Copy known formations . The part of m1 that is also a valid instance of M2 is di-
rectly considered as part of m2 . In other words, the concepts which are shared by
both metamodels M1 and M2 are kept. In case that the full model m1 is a valid in-
stance of M2 , we finish and classify the translation as strictly semantic preserving.
Example: a generic actor is always kept as a generic actor.
Translate using bijective mappings . Let's name m1 A the part of m1 that has not
been treated in the previous activity. The part of m1 A for which we may establish a
bijective mapping between its elements and corresponding elements, which are
instance of M2 , is translated using this bijective mapping. In other words, the
concepts that can be expressed in both metamodels M1 and M2 but with different
constructs, are just translated. In case that after this activity the full m1 has been
treated, then the translation is semantic preserving modulo variation . Example: a
task can be translated into plan and a plan into a task .
Translate using injective mappings . Let's name m1 B the part of m1 that has not
been treated in the previous activity. The part of m1 B for which we may establish
an injective mapping from its elements to others which are instance of M2 , is trans-
lated using this mapping. In case that after this activity the full m1 has been treated,
then the translation is decreasing modulo variation (the variation introduced by
the mapping). Example: a make contribution from GRL can be translated into ++
contribution in seminal i* , but not any ++ is a make contribution.
 
Search WWH ::




Custom Search