13.08.2013 Views

institut f¨ur informatik - PST Thesis Management Interface - LMU

institut f¨ur informatik - PST Thesis Management Interface - LMU

institut f¨ur informatik - PST Thesis Management Interface - LMU

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.3. Model evolution<br />

• breaking and non-resolvable changes: changes in the metamodel which break the consistency<br />

of the model and cannot be automatically resolved. These changes require<br />

manual intervention by a domain expert.<br />

The concept of non-breaking and breaking changes can also be found in API evolution and<br />

the way it influences programs that make use of the API. An example for a non-breaking<br />

API change is the addition of a method in some class: this change does not break the existing<br />

instances of the class. The renaming of a method is an example for a breaking change: it<br />

breaks the program code that invokes this method by its old name because the code fails to<br />

compile. The code has to be adapted to use the new method name before it can compile<br />

successfully.<br />

The DiffMap model can be used as an information source for adapting AUTOSAR models<br />

to new versions of the AUTOSAR metamodel. This requires a transformation program<br />

that will adapt AUTOSAR models by utilizing metamodel change information found in the<br />

DiffMap model. However, this is not in the scope of GAUTOSAR and will not be further<br />

discussed in this thesis.<br />

OMG M-levels concept (see section 2.1.4) is used to elaborate on frequency and impact<br />

of model change in [Gru06]. M3 models represent modeling tools that are independent<br />

of the problem domain. As such, they are considered unchangeable from the point of view of<br />

the software solution and its life cycle. Changes to M2 models follow from insights into the<br />

problem domain as the software project evolves. These changes may cause inconsistencies<br />

in M1 models. M1 models are changed on a daily basis. Therefore, a need for a catalog of<br />

changes on M2 level and their influence on M1 level is identified. This catalog should be used<br />

to create algorithms for automated break resolution. Such catalogs have been constituted<br />

with varying levels of detail in [CDREP08], [BGGK07] and [HVW11].<br />

Co-adaptation is a term coined in [CDREP08] to describe model adaptation required upon<br />

metamodel change. Furthermore, a transformational approach for model co-adaptation is<br />

proposed where well-defined adaptation steps can be automatically generated from modifications<br />

that the metamodel underwent. In order to facilitate this, a difference model of the<br />

metamodels is exploited to co-adapt the depending models. This difference model consists<br />

of all manipulation operations from the original metamodel to the evolved metamodel. This<br />

method of detecting change is known as recording the metamodel change trace, in contrast<br />

to direct comparison method used in EMF Compare (see section 2.2.4). A discussion of<br />

advantages and disadvantages of both approaches is given in [BGGK07] and [Eys08].<br />

The work in [Eys08] explores the change tracing method in more detail and utilizes wellknown<br />

technologies such as the observer pattern and existing EMF utilities to implement<br />

this method in a patch. A patch is an EMF model that serves as a difference model where<br />

changes are described as atomic primitives, which enables transforming the old metamodel<br />

to the new one and vice-versa. The atomic primitives are then grouped into composite<br />

changes and augmented with information required for the co-adaptation algorithm. The<br />

patch technology was used for the development of the model versioning system in [Kal10]<br />

(see section 2.3.1).<br />

23

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!