Forschungsthemen
[GB] Codegenerierung für das RoSI Metamodell
Motivation
Zukünftige Software Systeme sind durch höhere Komplexität, häufigere Veränderungen sowie größere Ungewissheit der Anwendungsdomäne geprägt . Um diese Herausforderungen zu meistern, wurde die Rollen-basierte Software Entwicklung vorgeschlagen , in der Objekte während der Laufzeit verschiedene Rollen spielen, die ihre Eigenschaften und Verhalten beeinflussen. Mit diesem Paradigma lassen sich Kollaborationen anhand von Rollen unabhängig von konkreten Spielerobjekten beschreiben und zur Laufzeit, durch Binden an die passenden Spieler, ausführen. Diese Trennung ermöglicht einen höheren Grad der Modularität durch mehrdimensionale Separation of Concerns, erlaubt die Erweiterbarkeit des Softwaresystemen zur Laufzeit und bildet die Grundlage für flexible Reaktion des Softwaresystems auf unvorhergesehen Adaptionen . Trotz all dieser Vorteile gibt es kein einheitliches Rollenkonzept, welches die Nutzung von Rollen zur Modellierungs-, Implementierungs- und Ausführungszeit beinhaltet. Aus diesem Grund beschäftigt sich das Graduiertenkolleg RoSI mit der Entwicklung eines solches Rollenkonzeptes. Bisher ist es möglich mit Hilfe des Modellierungswerkzeugs FRaMED Softwaresysteme bestehend aus Natural Types, Role Types und Compartment Types zu modellieren. Diese Modelle basieren auf dem CROM-Metamodell(version:1.0), welches wiederum mit dem Eclispe Modeling Framework entwickelt wurde. Bisher fehlt es jedoch an einem Codegenerator, der aus diesen Modellen ausführbaren Code erzeugen kann und somit die Implementierung und Ausführung von Rollen ermöglicht.
Problemstellung
Zur Zeit gibt es noch keinen Codegenerator für CROM-Modelle die mit FRaMED modelliert wurden. Der Codegenerator soll im Rahmen dieser Arbeit auf Basis des CROM-Metamodells als Eclipse-Plugin erstellt werden. Dieser muss Quelltext einer geeigneten Zielsprache erstellen, welche alle Konzepte der CROM Modelle korrekt und vollständig abbilden kann. Zusätzlich muss der Generator leicht zu erweitern und zu warten sein.
Aufgabenstellung
Um dieses Ziel zu erreichen müssen die folgenden Teilaufgaben erfüllt werden:
- Literaturanalyse zur Repräsentation von Rollen zur Laufzeit,
- Herausarbeiten von Anforderungen an die Zielsprache sowie die Transformationsstrategie,
- Vergleichen unterschiedlicher Zielsprachen und Transformationsstrategien anhand dieser Kriterien,
- Entwicklung eines Codegenerator-Plugins für Eclipse unter Verwendung der besten Transformationsstrategie für die geeignetste Zielsprache und
- Evaluation der Implementierung anhand der aufgestellten Anforderungen, durch umfangreiches Testen mit Hilfe einer Testsuite sowie eines komplexen Beispiels.
Betreuer: Thomas Kühn