Praxis der Forschung SS15/A Method for Aspect-oriented Meta-Model Evolution

Aus SDQ-Wiki

BibTeX Eintrag

@inproceedings{jung2014a,
	Abstract = {Long-living systems face many modifications and extensions over time due to changing technology and requirements. This causes changes in the models reflecting the systems, and subsequently in the underlying meta-models, as their structure and semantics are adapted to adhere these changes. Modifying meta-models requires adaptations in all tools realizing their semantics. This is a costly endeavor, especially for complex meta-models.

To solve this problem we propose a method to construct and refactor meta-models to be concise and focused on a small set of concerns. The method results in simpler metamodel modification scenarios and fewer modifications, as new concerns and aspects are encapsulated in separate meta-models. Furthermore, we define design patterns based on the different roles meta-models play in software. Thus, we keep large and complex modeling projects manageable due to the improved adaptability of their meta-model basis.},
	Acmid = {2631681},
	Address = {New York, NY, USA},
	Articleno = {19},
	Author = {Jung, Reiner and Heinrich, Robert and Schmieders, Eric and Strittmatter, Misha and Hasselbring, Wilhelm},
	Booktitle = {Proceedings of the 2Nd Workshop on View-Based, Aspect-Oriented and Orthographic Software Modelling},
	Doi = {10.1145/2631675.2631681},
	Isbn = {978-1-4503-2900-2},
	Keywords = {Aspect Modeling, Design Pattern, Evolution, Meta-Model Extension},
	Location = {York, United Kingdom},
	Month = {July},
	Numpages = {4},
	Pages = {19:19--19:22},
	Pdf = {http://eprints.uni-kiel.de/25295/1/a-method-for-aspect-oriented-meta-model-evolution.pdf},
	Publisher = {ACM},
	Series = {VAO '14},
	Slides = {http://eprints.uni-kiel.de/25295/8/vao-jung.pdf},
	Title = {A Method for Aspect-oriented Meta-Model Evolution},
	Url = {http://doi.acm.org/10.1145/2631675.2631681},
	Year = {2014},
	Bdsk-Url-1 = {http://doi.acm.org/10.1145/2631675.2631681},
	Bdsk-Url-2 = {http://dx.doi.org/10.1145/2631675.2631681},
	tags = {refereed}}

Abstract

Long-living systems face many modifications and extensions over time due to changing technology and requirements. This causes changes in the models reflecting the systems, and subsequently in the underlying meta-models, as their structure and semantics are adapted to adhere these changes. Modifying meta-models requires adaptations in all tools re- alizing their semantics. This is a costly endeavor, especially for complex meta-models. To solve this problem we propose a method to construct and refactor meta-models to be concise and focused on a small set of concerns. The method results in simpler meta- model modification scenarios and fewer modifications, as new concerns and aspects are encapsulated in separate meta- models. Furthermore, we define design patterns based on the different roles meta-models play in software. Thus, we keep large and complex modeling projects manageable due to the improved adaptability of their meta-model basis.

Eigene Zusammenfassung

  • Langlebige Software ist immer mal wieder mit neuen oder sich ändernden Anforderungen konfrontiert, diese können neue Technologien oder einfach neue Umgebungen sein. Diese Änderungen verlangen auch eine Überarbeitung der darunterliegenden Modelle, die das Softwaresystem beschreiben.
  • Das Problem liegt darin, dass durch die Anpassungen der Modelle, auch die Editoren, Simulatoren, Transformationen und alle anderen davon abhängigen Softwarekomponenten, angepasst werden müssen. Dies ist ein sehr kostenspieliger und zeitaufwendiger Aspekt. Je größer und komplexer die Modelle sind, desto teurer wird es.
  • Daher sollten Metamodelle so entworfen werden, dass Erweiterungen ohne Änderungen der genannten Werkzeuge erfolgen können. Weiter sollten auch keine Änderungen an den Meta-Metamodellen notwendig sein.
  • Dieser Ansatz basiert darauf, dass zwischen einem Aspekt- und einem Basismetamodell unterschieden wird.
    • Aspektmetamodelle ermöglichen ein Erweitern ohne die Tools anrühren zu müssen.
    • Im Gegensatz zu EMF Profilen und dem Dekoratorentwurfsmuster wird kein neues Framework oder eine umständliches Metametamodell benötigt, wodurch die bisherigen Tools nicht mehr benutzbar wären.
  • Aspektmetamodelle, welche für die Erweiterungen genutzt werden, werden erst nach dem Erstellen des Basismetamodells entiwckelt und beinhalten neue Klassen und Bedingungen, die nicht im Basismetamodell vorhanden sind.
  • Die Richtung der Beziehung zwischen einem Aspekt- und einem Basismetamodell geht immer vom Aspekt zum Basismetamodell aus. Diese Rollen sind kontextabhängig, was so viel bedeutet wie, dass ein Basismodell in einer Beziehung in einer anderen ein Aspektorientertes Metamodell für ein anderes Metamodell sein kann
  • Charakteristiken, die von Metamodell erfüllt werden müssen:
    • Editor: Kann weiter verwendet werden, da das Basismetamodell unverändert bleibt. Dies kann hilfreich sein, wenn kein Quellcode zum Editor vorliegt. Bei änderbaren Editoren können externe Mechanismen eingefügt werden, die das Aspekthandling übernehmen.
    • Transformationen: Eine Transformation stützt sich hauptsächlich auf die Navigation durch ein Modell, um zu den richtigen Knoten zu gelangen. Bei diesem Ansatz sind die Transformationen aufgeteilt, einmal für das Basis und das andere mal für das Aspektmetamodell.
    • Simulatoren: Werden für Vorhersagen verwendet. Simulatoren für ein Basismetamodell berücksichten nicht die Aspektmetamodelle, die eventuell das Basismodell erweitern. Aus diesem Grund wird zu Beginn ein Mapping erstellt, so dass das Navigieren zu den Aspektmetamodellen, welche das Basismetamodell erweitern, schneller geht. Eine weitere Methode wäre das Aufrufen des Aspektmetamodells über zum Beispiel eine Injection.
  • Im Gegensatz zu bisherigen Methoden und Ansätzen werden mit diesem Ansatz nicht die Metamodelle mit Hilfskonstrukten aufgebläht, noch werden neue Frameworks benötigt.

Notizen

Verweise