Reverse-Engineering mit MoDisco

Aus THM-Wiki
Wechseln zu: Navigation, Suche
Kurs
Kursname Modellgetriebene Softwareentwicklung in der Praxis SS 15
Kurstyp Praktikum
Dozent Priefer
Semester SS 15
Studiengang Master
Link http://homepages.thm.de/~dprf53


Diese Seite Dokumentiert die Projektfortschritte von Domink Bassing und Thomas Flemmer in dem Kurs Modellgetriebene Softwareentwicklung in der Praxis SS15

Teammitglieder

  • Dominik Bassing
  • Thomas Flemmer

Aufgabenstellung

Während der Projektwoche soll durch den Einsatz von MoDisco ein Workflow entwickelt werden. Der Workflow soll durch eine Model zu Model Transformation, legacy Joomla Komponenten modernisieren.

Ergänzung

Aufgrund des erarbeiteten Ergebnisses innerhalb der Projektwoche, wurde die weitere Aufgabenstellung geändert, da das geplante Projektziel innerhalb der geplanten Zeit mit Hilfe von MoDisco nicht umsetzbar ist. Für die restliche Zeitdauer erstellte das Projektteam einen visuellen Editor zur eJSL Sprache mit Hilfe des vom Team Häusser/Felsing vorgestellten Eclipse Plugins Sirius.

Der erstellte Editor wird von zukünftigen Projekten verwendet und verlangt daher eine seperate Dokumentation. Unter folgendem Link finden Sie eine detaillierte Beschreibung zur Erstellung des Editors unter Sirius und Bedienung des Editors.

EJSL - Visueller Editor mit Sirius

Die Beschreibung des Artikels „Reverse-Engineering mit MoDisco“ endet an dieser Stelle, wir bitten um Verständnis.

Projekttagebuch

Innerhalb dieses Kapitels wird ein zeitlicher Überblick der Tätigkeiten innerhalb der Projektwoche gegeben.

Tag 1 (10.08.2015)

Am ersten Tag haben wir zunächst in einem Meeting festgelegt welche Ziele wir verfolgen werden. Hauptziel sollte es sein vorhandene Joomla Plugins mit MoDisco in einem Ecore-Modell darzustellen und durch eine Modell Transformation an vorhandenen Modellierungsvorgaben anzupassen.

Wir haben herausgefunden, dass wir zunächst einen PHP Discoverer schrieben müssen damit vorhandener PHP Code als Ecore Modell dargestellt werden kann. Um uns einen überblick über die Materie zu schaffen, beschäftigten wir uns zunächst mit der Erstellung und Arbeitsweise von Discoverern. Es stellte sich heraus, dass die Einarbeitung und Umsetzung aufgrund von mangelnder bzw. veralteter Dokumentation äußerst komplex ist. Um einen Einstiegspunkt zu erhalten haben wir Kontakt mit der Community aufgenommen, jedoch noch keine Antwort erhalten. Weiterhin suchten wir nach alternativen Möglichkeiten um PHP Code in UML, XMI oder ecore Modelle zu transformieren. Für den nächsten Tag ist ein erneutes Meeting angesetzt um über den weiteren Projektverlauf zu diskutieren.

Tätigkeiten:

  • Einarbeitung in Discoverer
  • Suchen von Alternativen zu Discoverern
  • Erstellung der Wiki Seite
  • Pflege der Wiki Seite

Tag 2 (11.08.2015)

Der heutige Tag startete mit einem Meeting in dem wir die Erkenntnisse des vorherigen tag zusammentrugen und zu dem Entschluss kamen, das Projekt abzubrechen. Der Grund dafür liegt vor allem in der Komplexität der Entwicklung eines Discoverers. Aufgrund der unzureichenden Dokumentation ist es unrealistisch das Projekt erfolgreich Abzuschließen. Die suche nach Alternativen Lösungen brachte ebenfalls nur unzureichende Ergebnisse. Nach einer Besprechnug mit Dennis Priefer, haben wir uns dazu entschlossen ein anderes Projekt in Angriff zunehmen.

Der Richtungswechsel

Das neue Projekt beschäftigt sich mit der Erstellung eines visuellen Editors für die eJSL Sprache. Der Erste Tag des neuen Projekts nutzen wir um uns in Sirius einzuarbeiten und die eJSL Grammatik besser kennen zulernen.

Tätigkeiten:

  • Einarbeitung in Sirius
  • Einarbeitung in das eJSL Projekt
  • Einarbeitung in die eJSL Grammatik
  • Einrichten der Entwicklungsumgebung
  • Pflege der Wiki Seite

Tag 3 (12.08.2015)

Wir arbeiteten heute hauptsächlich an der Umsetzung des odesigns. Wir sind nun in der Lage aus einem vorhandenen Modell einen konkreten Baum mit Objekten und Assoziationen darzustellen. Der nächste Schritt ist nun das odesign um Editor Elemente zu erweitern.

Tätigkeiten:

  • Umsetzung des odesigns
  • Anzeigen von Objekten aus vorhandenem Modell
  • Einarbeiten in Editorfunktionalität in Sirius
  • Pflege der Wiki Seite

Tag 4 (13.08.2015)

Nachdem wir uns am gestrigen Tag mit den Editormöglichkeiten beschäftigt haben, gingen wir heute die Konkrete Umsetzung an. Wir erstellten Viewports für Entites, Pages und Extensions. Am ende des Tages sind wir soweit das wir Pages und Entites erstellen können und diese als eJSL Modell gespeichert werden.

Tätigkeiten:

  • Erstellen der Editorfunktionalität
  • Umsetzung von Extensions, Entities und Pages
  • Pflege der Wiki Seite

Tag 5 (14.08.2015)

Heute sollen die Editoren soweit fertig gestellt werden das sie Funktional einsetzbar sind. Danach werden wir Design Aspekte angehen und "gerade ziehen"

Nachbereitung (17 - 25.08.2015)

Während der Nachbereitungsphase haben wir uns mit Details und Design beschäftig...

Dokumentation

Die Dokumentation des visuellen Editors befindet sich unter: eJSL - Visueller Editor mit Sirius