Seite auswählen

Schlagwort: KobrA2

SUM->SpecificationStructuralServiceView Transformation

Heute möchte ich meine vorgehensweise zur SUM->View Transformation anhand von Pseudocode erläutern. Die Java-Implementierung ist etwas komplexer, doch im Kern spiegelt der Pseudocode meine programmatische Umsetzung wieder. Noch ein paar Hintergrundinformationen, bevor es zur Sache geht: Im Prinzip geht es darum, ein KobrA2-Modell (SUM), für das ich ein auf MDT UML basiertes Metamodell erstellt habe, in ein UML-Modell (View) zu transformieren. Dabei sollen speziell für die sogenannte SpecificationStructuralServiceView der KobrA2-Methode nur die «subject»-Komponente mit ihren public Attributen und Methoden, alle «acquired» Komponenten samt public Attributen und Methoden, sowie alle Generalisierungen (rekursiv) der Komponenten mit public Attributen und Methoden aus dem SUM extrahiert werden. Bis jetzt gehe ich davon aus, dass ich zusätzlich noch die verwendeten “Types” transformieren muss, obwohl in der KobrA2-Methode eine eigene View für die verwendeten Types vorgesehen ist. Doch während ich eben darüber nachgedacht habe, kann es sein, dass es ausreicht auf die Elemente im SUM zu referenzieren, falls sie nicht für die Transformation vorgesehen sind. Ob und inwieweit dies möglich ist, muss ich allerdings noch untersuchen. Nun zum Eingemachten :) SUM->View Pseudocode Der Hauptteil ist eigentlich ganz simpel. Und auch die folgenden ausgelagerten Funktionen sollten eigentlich selbsterklärend sein … k2s = select subject in SUM s = addComponentClass(k2s) apply stereotype «subject» to s . k2aCCs = select acquired componentClasses in SUM for each k2cc in k2aCCs: cc = addComponentClass(k2cc) a = add association between s...

Weiterlesen

KobrA2 Metamodellierung

Endlich melde ich mich nach etwas längerer Pause mit einem neuen Artikel zurück. In der Zwischenzeit ist auch das eine oder andere geschehen, auch hinsichtlich meiner Diplomarbeit. Heute möchte ich mich dem Thema “Metamodellierung” widmen: Grundlage: Jan’s Diplomarbeit Grundlage dieses Teils meiner Arbeit war diesmal vor allem die Diplomarbeit von Jan Kadathukalam, der in den Abschnitten 3.1 und 3.3 die benötigten theoretischen Hintergrund erläutert. Aus seiner praktischen Arbeit habe ich das auf MDT UML2 basierte KobrA2 Metamodell verwendet und an meine Anforderungen angepasst. Diese Anpassungen sind in erster Linie das Umbenennen der Packages, das Ausgliedern der Elemente K2Model und K2Package sowie die Erweiterung des Package Structure (ehemals StructureClasses) um die voraussichtlich für meine Arbeit benötigten Elemente des KobrA2 Metamodells. Erweiterung des UML-Metamodells Die Aufgabenstellung meiner Diplomarbeit fordert die Erzeugung eines simplen Metamodells, so dass die in erster Linie geforderten Transformationen (SUM->View und View->SUM) realisiert werden können. Eine Erweiterung des UML-Metamodells liegt quasi auf der Hand. Da die Views selbst mit einer Lightweight Erweiterung der UML (durch Profile/Stereotypen) umgesetzt werden sollen, war mein erster Gedanke natürlich, auch das Metamodell des SUM über die Lightweight Extension zu realisieren, so dass das Quell- und Zielmodell der Transformationen im Prinzip das selbe Metamodell haben. Der Lehrstuhl allerdings propagiert die Erstellung eines eigenen KobrA2-Metamodells, so dass letztendlich nur eine Middle- oder Heavyweight Extension der UML in Frage kommt, wenn man die Vorteile der Metamodellierung...

Weiterlesen

org.eclipse.uml2 – Erste Schritte und Erfolge

Mir war einige Zeit unklar, wie ich beginnen soll, auf programmatischem Weg eine .uml-Datei mittels des UML2-Plugins von Eclipse zu erzeugen. Zunächst einmal ein paar Infos zu Eclipse-UML2: UML2 is an EMF-based implementation of the Unified Modeling Language (UMLTM) 2.x OMG metamodel for the Eclipse platform. The objectives of the UML2 component are to provide a useable implementation of the UML metamodel to support the development of modeling tools a common XMI schema to facilitate interchange of semantic models test cases as a means of validating the specification validation rules as a means of defining and enforcing levels of compliance For more details on UML2, see the Wiki. Quelle: http://www.eclipse.org/modeling/mdt/?project=uml2Erste Schritte – aber wie? Ein hilfreicher Artikel war Getting Started with UML2, der auf zwei Wegen erklärt, wie man eine .uml-Datei mit Elementen wie Package, Class, etc. … erstellt; namlich einmal per mitgeliefertem Editor, bei dem die UML-Elemente in einer Baumstruktur angezeigt werden – so wie man das auch aus vielen grafischen Modellierungseditoren kennt – und einmal per Java-Code. “Per Java-Code” war genau das was ich gesucht habe. Nachdem ich mir die Code-Schnipsel und Erklärungen angesehen hatte, stellte sich mir die Frage, wie ich das selbst nachbauen konnte. Ich erstellte in Eclipse also ein neues Java-Projekt und fügte einfach mal einen Code-Schnipsel in die main(String[] args)-Methode ein. Natürlich meckerte Eclipse sofort, da es ja Klassen wie z.B. “Model” nicht...

Weiterlesen
Wird geladen