Navigation

Skiplinks

Historie von Java-MetaModellen analysieren

Bachelor- oder Masterarbeit in der Abteilung Softwaretechnik



Motivation

Um komplexe Analysen, Visualisierungen und Refactorings auf Java-Sourcecode durchführen zu können, wird in textueller Form vorliegender Java-Sourcecode in eine Graph-Struktur (Abstract Syntax Graph (ASG)) umgewandelt, in der beispielsweise eine Methode als ein Knoten dargestellt wird, der durch Kanten mit allen Stellen verbunden ist, wo die Methode verwendet wird. Auf diese Weise kann beispielsweise eine Umbenennung der Methode sehr leicht durch die Änderung des name-Attributes des Methodenknotens an einer Stelle durchgeführt werden.

In einer vorherigen Abschlussarbeit wurden bereits Transformatoren entwickelt, die solche Java-ASGs initial durch die Wiederverwendung bestehender (Un)Parser aus dem Eclipse-Framework erstellen. Diese Transformatoren wurden nur für die Java-Version 8 getestet, obwohl die Transformatoren generischer für verschiedene Java-Versionen (z.B. Java 7 oder Java 11) entworfen wurden.


Aufgabenstellung

Ziel dieser Arbeit ist es, Java-ASGs für verschiedene Java-Versionen zu analysieren, z.B. Java 7, Java 6, Java 11. Ein Java-ASGs besteht aus einem Java-Metamodell und ein Java-Modell, wobei das Java-Modell dem geparsten Java-Sourcecode entspricht und konform zum Java-Metamodell ist, das den Sprachumfang der verwendeten Java-Version beschreibt. Bei der Analyse der Java-Metamodelle ist es interessant zu analysieren, wie die neuen Sprach-features von neuen Java-Versionen im jeweiligen Metamodell realisiert werden (Analyse der Java-Metamodelle). Bei der Analyse der Java-Modelle ist es interessant zu analysieren, wie derselbe Java-Code, z.B. in Java 5 geschrieben, als Java-Modell z.B. in den Versionen 5, 6, 7, 8, 11, … dargestellt wird.


Betreuer
Prof. Dr. Andreas Winter (winter@se.uni-oldenburg.de)
M.Sc. Johannes Meier (meier@se.uni-oldenburg.de)

Related Projects
Model Consistency ensured by Metamodel Integration (MoConseMI)

In multi-perspective software development, several perspectives exist presenting different views on the developed artefacts. Because some perspectives handle the same data and all the data have relationships between each other, there is a strong need for synchronization of the data between different perspectives. To solve this problem, this project aims at developing and validating a method for integrating the single metamodels of each perspective into one integrated single underlying metamodel (SUMM).

 
Metamodeling and Model Based Engineering
Modeling and Metamodeling allow the graph-based creation, analysis, and storage of information. Model Based Engineering summerizes these and further techniques which use models as first-order objects. This research area targets approaches, techniques, and tools to create, improve, analyze, and store models conform to metamodels among the whole software life cycle.
 


Webmduwsastz4aemer (meier@senchsv.un1kdwi-oldenburg.mwv1de40ml) (Changed: 2018-10-10)