Logo - Fakultät für Mathematik und InformatikIllustration

Seminar 1917, Themenliste

Hinweise

Im Mittelpunkt des Seminars stehen konkrete Tools, die die MDD-Vision, direkt aus Modellen weitere Modelle oder Code zu generieren, Wirklichkeit werden lassen. Dazu sollen einige Tools aus dem Open-Source-Bereich, aber auch kommerzielle Produkte untersucht werden.

Als "Testfall" für die Tools sollen dabei die in den Kursen 1793 (Software Engineering I -- Grundkonzepte der objektorientierten Softwareentwicklung) und 1794 (Software Engineering II -- Methodische Entwicklung von Benutzungsschnittstellen für Webapplikationen) vorgestellten Methoden umgesetzt werden. Konkret bedeutet dies etwa die Entwicklung von Transformationen, um automatisch

  • aus Anwendungsfällen Analyseklassen (1793)
  • aus Grobentwurfsklassenmodellen Feinentwurfsklassenmodelle /1793)
  • aus Aktiviätsdiagrammen Entwurfsklassendiagramme (1794)
  • aus Entwurfsklassendiagrammen Java-Code und Struts-Konfigurationsdateien (1794)
  • usw.

zu erzeugen. Teilweise werden die Methoden aus den Kursen nicht anwendbar sein, insbesondere bei der Untersuchung der kommerziellen Tools -- hier müssen dann Anpassungen an der Methodik vorgenommen werden bzw. die Methodik des Tools herausgearbeitet werden. Der Vorteil der oben genannten Transformationen ist, dass sie in den Kursen ausführlich behandelt wurden und daher als bekannt vorausgesetzt werden können.
Manche Tools sind aus CASE-Tools hervorgegangen und unterschiedlich an MDD/MDA-Bedürfnisse angepaßt worden (von der Ersetzung des Wortes "CASE" durch "MDA" in den Werbeprospekten bis hin zu vollständigen Neuentwicklungen).

Für alle Themen sind Grundbegriffe der MDD/MDA unabdingbar. Allerdings gibt es wahrscheinlich so viele Vorstellungen über MDD wie es Bücher zu dem Thema gibt -- auch wenn es sicherlich einen gemeinsamen Nenner gibt. Um innerhalb des Seminars eine sinnvolle Kommunikation zu ermöglichen, lesen Sie bitte die in der Literaturliste aufgeführten "obligatorischen" Artikel. Zu den einzelnen Tools und Themen ist jeweils eigene Literatur aufgeführt, i.A. wird hier die Dokumentation der Tools genannt.

Im Rahmen der Ausarbeitung und des Vortrags sollen bei allen Tools und Frameworks die Konzepte und Funktionen vorgestellt werden. Eine Beispielanwendung soll diese näher erläutern und Vor- und Nachteile des Tools zeigen. Stellen Sie dabei auch Konzepte und Ideen der MDD/MDA vor, insofern diese nicht in den obligatorischen Papieren ausführlich vorgestellt wurden, und beschreiben Sie, welche Sichtweise auf die MDD/MDA die Tools einnehmen.

Grundlagen

1) MOF, XMI, UML, OCL

  • MOF - Meta-Object Facility. Sie stellen als "Meta-meta-model" die Basis aller MDA basierter Anwendungen dar.
  • XMI - XML Metadata Interchange. Die XMI Spezifikation legt fest, wie MOF-basierte Modelle in XML abgebildet werden und ist somit die Grundlage für den Datenaustausch unterschiedlicher Modellierungstools
  • UML - Unified Modeling Language. Da im Rahmen der MDA Modelle ausführbar werden sollen, muss die Modellierungssprache wie eine Programmiersprache verwendet werden und genauso präzise sein.
  • OCL - Object Constraint Language. Sie ist Teil der UML 2.0 Spezifikation. Mittels der OCL können Constraints in und Abfragen auf Modellen definiert werden, sie zudem Sprachbestandteil der meisten Modell-zu-Modell-Transformationssprachen.
Webseite
http://www.omg.org/mda
Literatur
siehe Webseite sowie "Spezifikationen" unter Literatur

Codegenerierung und Frameworks

2) Eclipe Modeling Framework (EMF)

Das Eclipse Modeling Framework (EMF) stellt in etwa eine Java-Implementierung der EMOF (Essential MOF, Teil der MOF) dar. Vereinfacht dargestellt können mit EMF Klassenmodelle als Java-Code generiert werden und so etwa m:n-Assoziationen einfach umgesetzt werden. Neben dem Metamodell (ecore) bietet EMF einen JSP-ähnlichen Codegenerator, der neben der Modellimplementierung auch baumbasierte Editoren als Eclipse-Plug-Ins generieren kann -- oder über eigene, sogenannte Java Emitter Templates (JET) beliebigen Text auf Basis von EMF-Modellen.

Webseite
http:/www.eclipse.org/emf
Lizenz
Open Source (Eclipse Public License)
Literatur
siehe Webseite sowie
[MDG04]
Moore, Bill ; Dean, David ; Gerber, Anna ; Wagenknecht, Gunnar ; Vanderheyden, Philippe: Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework. IBM, 2004 (IBM Redbook).
URL: http://www.redbooks.ibm.com/redbooks/pdfs/sg246302.pdf
[Pil05]
Pilgrim, Jens von: Agile MDA mit EMF: dargestellt am Beispiel einer PHP-Website. In: Eclipse Magazin 2 (2005), Februar, S. 78–84.
URL: http://jevopi.de/pubs/pilgrim05a.html

3) Netbeans Metadata Repository (MDR)

Webseite
http://mdr.netbeans.org
Lizenz
Open Source (Sun Public License)
Literatur
siehe Webseite, siehe auch
[Net]
Netbeans Homepage.
URL: http://www.netbeans.org
[JMI]
Java Metadata Interface (JMI) Homepage.
URL: http://java.sun.com/products/jmi/index.jsp

4) open ArchitectureWare (oAW)

open ArchitectureWare (oAW) ist eines bekanntesten Open-Source-Werkzeuge im Bereich MDD. Es ist als Eclipse-Plug-In realisiert und in seiner aktuellen Version (4.0) sehr weit fortgeschritten. Es bietet eine eigene Template-Sprache und -Engine zur Codegenerierung und in der neuen Version auch eine Sprache für Modell-zu-Modell-Transformationen. In [SV05] wird oAW ebenfalls als Beispieltool verwendet.

Webseite
http://www.openarchitectureware.org
Lizenz
Open Source (LGPL)
Literatur
siehe Webseite sowie (optional)
[SV05]
Stahl, Thomas ; Völter, Markus: Modellgetriebene Softwareentwicklung. Dpunkt Verlag, 2005

5) AndroMDA

AndroMDA ist ebenfalls ein MDA-Framework zur Code-Generierung. AndroMDA wird über die Kommandozeile mittels Maven/Ant bedient. In der aktuellen Version kann androMDA etwa mit MagicDraw oder Poseidon erstellte Modelle verarbeiten, dabei neben der Code-Generierung auch (OCL-)Constraints verarbeiten und weitere Tools, etwa ATL, anstoßen.

Webseite
http://www.andromda.org
Lizenz
Open Source (BSD License)
Literatur
siehe Webseite

6) openMDX

openMDX behauptet von sich, die "leading open source MDA platform" zu sein. Leider ist der Begriff "platform" ein nicht gerade gut definierter Begriff in der MDA, eine der gängigsten Definitionen findet sich in [MSUW04]: „We define a platform as the specification of an execution environment for a set of models.“ openMDX stellt eine Plattform in diesem Sinne da, als abstrakte Modelle automatisch mittels openMDX auf eine technische Platform übertragen werden und dann, ohne dass die darunterliegende Platform weiter beachtet werden muss, ausführbar werden -- für den Entwickler ist dann openMDX die Platform. Die Geschäftslogik wird in Form von "Pure Java" implementiert und als Plug-In eingebunden.

Webseite
http://www.openmdx.org/
Lizenz
Open Source (BSD License)
Literatur
siehe Webseite

7) Eclipse UML2 und UML-Profile

Eclipse UML2 ist eine EMF-basierte Implementierung des Metamodells UML 2.0. Es bietet dabei alle Möglichkeiten der UML 2.0, insbesondere Profile. Über mitgelieferte Tools können UML2-Klassenmodelle in EMF-Modelle überführt werden, so dass diese dann der weiteren Verarbeitung etwa in EMF zu Verfügung stehen. Alternativ können die Modelle natürlich direkt weiterverarbeitet werden, UML2 bietet dafür XMI-Export an. Das Framework bringt keinen graphischen Editor mit sondern nur einen baumbasierten Editor als Eclipse-Plugin. Interessant ist insbesondere der Einsatz von Profilen, um so die UML um eigene domänenspezifische Konzepte zu erweitern.

Webseite
http://www.eclipse.org/uml2
Lizenz
Open Source (Eclipes Public License)
Literatur
siehe Webseite sowie
[OMG03b]
OMG: UML 2.0 Infrastructure Specification. ptc/03-09-15. Needham, MA: Object Management Group, Dezember 2003. URL: http://www.omg.org/cgi-bin/doc?omg/03-06-01
[OMG05]
OMG: UML 2.0 Superstructure Specification. formal/05-07-04. Needham, MA: Object Management Group, Juli 2005. URL: http://www.omg.org/cgi-bin/doc?formal/05-07-04
Da UML2 auf EMF basiert, ist es sinnvoll, auch die dort angegebene Literatur heranzuziehen.

8) Graphical Modeling Framework (GMF)

Ein wichtiges Konzept bilden Domain Specific Languages (DSLs). DSLs ermöglichen eine problemadäquate Modellierung unter Einbeziehung der Domänenexperten. Um Modelle auf Grundlage von DSLs zu erstellen und zu editieren sind graphische Editoren ein wichtiges Hilfsmittel. GMF ermöglicht die automatische Erstellung von graphischen Editoren auf Basis EMF-basierter Modelle und des Eclipse Graphical Editing Frameworks (GEF).
Hinweis: Am 3. März 2006 soll mit Milestone 5 eine API-stabile Version von GMF herauskommen. Da GMF noch in der Entwicklung ist, müssen Sie bei Tutorials auf die richtigen Versionen achten!

Webseite
http://www.eclipse.org/gmf
Lizenz
Open Source (Eclipes Public License)
Literatur
siehe Webseite und die Literatur zu EMF sowie
[BG05]
Bokowski, Boris ; Gerhardt, Frank: GEF: Maßgeschneiderte grafische Editoren selbst erstellen. In: Eclipse Magazin 2 (2005), Februar, S. 85–90
[SV05]
Stahl, Thomas ; Völter, Markus: Modellgetriebene Softwareentwicklung. Dpunkt Verlag, 2005

Modell-zu-Modell Transformationen

9) Atlas Transformation Language (ATL)

Die ATL hat sich zu einer der verbreitesten Transformationssprachen entwickelt und wird auch von Tools wie oAW oder AndroMDA verwendet. ATL ist mittlerweile im Rahmen des Eclipse Generative Model Transformer (GMT) Projects verfügbar, für die Transformationssprache existiert ein Editor als Eclipse-Plugin. Außerdem sind zahlreiche vordefinierte Transformationen vorhanden.

Webseite
http://www.sciences.univ-nantes.fr/lina/atl bzw. http://www.eclipse.org/gmt/atl/
Lizenz
Literatur
siehe Webseite, insbesondere
[JK05]
Jouault, Frédéric ; Kurtev, Ivan: Transforming Models with ATL. In: Proceedings of the Model Transformations in Practice Workshop at MoDELS 2005, Montego Bay, Jamaica, 2005.
URL: http://sosym.dcs.kcl.ac.uk/events/mtip/submissions/jouault_kurtev__transforming_models_with_atl.pdf

10) Query, View, Transformation (QVT), UMLX und Together 2006

2002 veröffentlichte die OMG ein "Request for Proposal" für eine Sprache "Query / View / Transformations" (QVT) für Modelltransformationen. Aus den eingereichten Vorschlägen hat die OMG nun eine Spezifikation erarbeitet, die die Syntax und Semantik dieser Sprache festlegt. Allerdings sind bislang keine vollständigen Implementierungen dieser Transformationssprache bekannt. Together 2006 beinhaltet erstmals wenigstens eine teilweise Umsetzung der QVT für operational formulierte Transformationsregeln. UMLX ist ein Plug-In für Eclipse zur graphischen Darstellung von Transformationsregeln unter Verwendung der QVT-Notation.

Webseite
UMLX: http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/gmt-home/subprojects/UMLX/index.html
Together: http://www.borland.com/de/products/together/index.html#architect
Lizenz
Together: wird gestellt
UMLX: Open Source
Literatur
siehe Webseite sowie
[OMG05b]
OMG: Revised submission for MOF 2.0 Query/View/Transformation RFP. 2.0 (ad/2005-03-02). Needham, MA: Object Management Group, März 2005.
URL: http://www.omg.org/docs/ad/05-03-02.pdf
Diese Version ist Stand der Together-Implementierung
[OMG05c]
OMG: Revised submission for MOF 2.0 Query/View/Transformation RFP. 2.1 (ad/05-07-01). Needham, MA: Object Management Group, Juli 2005.
URL: http://www.omg.org/docs/ad/05-07-01.pdf
[OMG02a]
OMG: MOF 2.0 Query / Views / Transformations RFP. ad/2002-04-10. Needham, MA: Object Management Group, April 2002.
URL: http://www.omg.org/cgi-bin/doc?ad/2002-4-10

Kommerzielle Tools

11) OptimalJ

Laut Produktseite implementiert OptimalJ "modellgestützte Architektur Model Driven Architecture (MDA) komplett". Die Frage lautet dabei: Was versteht OptimalJ unter MDA -- QVT wird bspw. (noch) nicht unterstützt. Transformationen (von PIM nach PSM und von dort zum Code) werden über Patterns durchgeführt, wofür es eigene Sprache gibt. In [KWB03] wird die MDA anhand von OptimalJ erklärt.

Webseite
http://www.compuware.de/products/optimalj/
Lizenz
Literatur
siehe Webseite sowie
[KWB03]
Kleppe, Anneke ; Warmer, Jos ; Bast, Wim: MDA Explained: The Model Driven Architecture–Practice and Promise. Boston a.o. : Addison-Wesley, 2003 (Object Technology Series)

12) ArctStyler

ArcStyler unterstützt die Erstellung von Domänenklassenmodellen und die automatische Generierung von Code für J2EE- oder .net-Plattformen. ArcStyler ist eine "Architectural IDE" wie sie in [Hub02] beschrieben wird. Neben vorgefertigten können eigene Transformationen in ArcStyler eingebunden werden. interactive objects hat mit "Atomistic Information Mapping" (AIM) eine eigene Einsendung auf den OMG RFP "QVT" [OMG02a] vorgelegt, AIM kann als optionales Modul in ArcStyler verwendet werden.

Webseite
http://www.interactive-objects.com/products/arcstyler-overview
Lizenz
wird zu Verfügung gestellt
Literatur
siehe Webseite sowie
[Hub02]
Hubert, Richard: Convergent Architecture. Wiley & Sons, 2002
[io003]
Interactive Objects Software GmbH, Project Technology Inc.: Revised Submission to MOF Query / View / Transformation RFP. August 2003.
URL: http://www.omg.org/cgi-bin/doc?ad/03-08-11

13) objectiF

"MDD wird wie MDA häufig mit den Zielen Portabilität und Interoperabilität verknüpft. objectiF setzt einen anderen Schwerpunkt: Abstraktion & Automation.". Dies bedeutet negativ betrachtet: objectiF legt den Schwerpunkt nicht auf eigene Transformationen und Flexibilität. Postiv betrachtet bietet objectiF ein mächtiges Werkzeug, um J2EE- und .net-Anwendungen zu erstellen.

Webseite
http://www.microtool.de/objectif/de/index.asp
Lizenz
wird zu Verfügung gestellt
Literatur
siehe Webseite sowie

14) Innovator AOX

Innovator bietet die typischen Funktionen eines Modellierungstools zum (graphischen) Erstellen von Modellen. Das Mapping zwischen Modellen geschieht über vordefinierte Mappings oder frei über spezielle Editiermöglichkeiten. Für die Textgenerierung wird oAW eingesetzt.

Webseite
http://www.mid.de/InnovatorAOX_2006.24.0.html
Lizenz
wird zu Verfügung gestellt
Literatur
siehe Webseite sowie
Letzte Änderung: 2008-03-11 (Jens von Pilgrim)
FernUni-Logo FernUniversität in Hagen, Lehrgebiet Software Engineering, D-58084 Hagen, Telefon: +49 (2331) 987-2964