Michael Piefel – Doctoral Thesis
My doctoral thesis will be about a code generation meta-model:
CeeJay. It is a MOF-based meta-model and allows to
model very close to the programming language. The models thus obtained are not
very abstract, and nobody would want to write them, but they are perfectly suited
to generate code from them. CeeJay models are are the final PSMs in the
MDA das letzte PSM, the target of all
transformations. There exist different code generators to create Java or C++
programs from one and the same CeeJay model.
Context
So what is it all about? For informaticians (and not only for them)
modelling is an important activity to describe and create systems. In a
sense, even programming can be called modelling, even if it is not very
abstract at all. Usually, one rather thinks of UML. Of course, also
modelling techniques can be modelled. This does not sound as if it would
make anything easier. The advantage, however, is that one can use the same
or very similar techniques on all levels of abstraction. A great number of
new questions arise in this context.
Below I present some thought of the topic, more or less ordered.
Unfortunately for you, these notes are all in German.
For these notes, I use Freemind,
a Mind-Mapping tool. The colours are the ones I use in said
program, they are not optimized for presentation here.
Close all
Open all
- +- Kontext
- +- Dissertationen
- Markus
- statisches
- Metamodelle auf beiden Seiten
- statische Semantik (OCL-Zeugs)
- Michael
- dynamisches
- Transformationen
- zusätzliche Metamodelle
- Andreas
- syntaktisches
- „Wasserbüffel“
- Parser-Injektor-Generator
- NN
- semantisches
- Laufzeitbibliotheken
- +- SDL nach C++/Java
- Verhalten in Modellen
- Daten in Modellen
- C++-/Java-Datenmodell in SDL
- ASN.1
- Quellmodell
- Welches SDL?
- volles SDL-2000
- abstrakte Syntax (AS1)
- mehr konkrete Dinge (remote procedure, interface)
- SDL+ (Safire-SDL)
- SDL- (Prinz)
- SDL/R auf Basis von SDL-
- (RSDL (Habil Prinz))
- (Basic SDL)
- (Mickey-Mouse®-SDL)
- Wie tief?
- komplettes Metamodell (auch für Ausdrücke)
- irgendwo (z. B. Ausdrücke) mit Metamodell aufhören
- Ausdrücke als Syntaxbaum
- Ausdrücke als Text
- Wie baut man Grammatikschnipsel in Metamodelle ein? Beschreibung des String-Attribute sollte diese auch beschränken. Schon in Zielsprache?
- Wie erhält man das Quellmodell?
- Parser
- handgeschrieben (adaptiert von Ralf)
- automatisch generiert (parallel mit Metamodell)
- Cinderella-Integration
- Zielmodell
- Sprachen
- Java
- C++
- Modell gemeinsam für C++ und Java. Läuft vermutlich hinaus auf Metamodell für Java, welches gleichzeitig ein Metamodell für C++ sein wird. Sollte möglichst so vollständig sein, wie es die Schnittmenge erlaubt.
- Python
- Modell für multiparadigmatische OO-Sprachen
- Taugt unser Java-/C++-Metamodell auch für Python? Oder für Pascal? Oder C#?
- Laufzeitumgebung
- Schnittstelle zur Laufzeitumgebung
- Implementation
- Modell in textuelle Notation
- schöne Studentaufgaben
- Rückrichtung
- allgemein möglich
- automatisch generiert (s.o., allgemein MM <-> Text)
- Generierung
- Transformation
- „Das ist das schwierigste von allem.“ M. Scheidgen, Juni 2004
- Notation
- deskriptiv (deklarativ)
- Rückrichtung einbeziehen – automatisch
- präskriptiv (konstruktiv)
- Rückrichtung einbeziehen – wie?
- Notation nur für Menschen
- ausführbare Notation
- Ausführung
- wenn deskriptiv, dann problematisch
- wenn präskriptiv, dann vielleicht einfach
- +- eODL/CIDL
- UML-Profile for eODL?
- eODL-Parser und Injektor (Glenn)
- metamodellbasierte Transformation von eODL nach CIDL (Kon)
- +- Aufgaben
- +- zu bearbeiten
- Parser für SDL
- für SDL/R fertig von Markus
- Definition Quellmetamodell
- ausgehend von Markus’ Arbeit
- Erweiterung um Datentypen und Verhalten
- Definition Zielmetamodell
- Pretty-Printer
- Repository – Markus
- +- erste Schritte
- Recherche
- MOF-Tools
- OCL-Tools
- vorhandene (Ziel-)Metamodelle
- Query-RFP
- Wie ist die beste Methode, um alle Informationen eines Repositories aus diesem herauszubekommen? (Am besten strukturiert.)
- MOF/UML verinnerlichen
- Parser-/Pretty-Printer-Generator
- Gegeben:
- „M2-Modell“ = EBNF
- menschliche Zusatzregeln
- gesucht
- Parser für M1-Modell = Programm
- Repository-Fütterer
- Andreas?
- +- offene Fragen
- Teilsprachenbildung
- per Grammatik (trivial?)
- per Metamodell
- wie dann erweitern?
- neue Contraints
- schränken ein
- ändern an unerwarteten Stellen
- Semantik
- neue Transformationen
- alte Transformationen plötzlich falsch?
- weitere Fragen
- Wie sieht ein schönes Metamodell aus?
- Wie sieht eine schöne Grammatik aus?
- Wie kommen zusätzliche Informationen ins Repository?
- Metamodelle mit Verhalten?
- Das Metamodell für Java klammert Verhalten aus. Das einzige Metamodell mit Möglichkeiten zur Verhaltensmodellierung scheint momentan UML 2.0 zu sein.
- +- extern vorhandenes
- +- Tools
- UML/XMI-Tools
- Rose
- Poseidon
- Neu für UML 2.0, speichert als XMI (+Projekt). Nur für UML, nicht für Metamodellierung geeignet. Zwar auf Codegenerierung ausgerichtet, aber alle Diagramme vorhanden.
- Tau
- Nix XMI, Austausch schwer, eher SDL als UML.
- Umbrello
- UMLGraph
- Visual Paradigm
- Software Modeler
- Enterprise Architect
- MOF-Tools
- ~ MetaEdit+ metaCASE tool
- Ein Meta-CASE-Werkzeug; erlaubt die Erstellung von CASE-Werkzeugen mit domänenspezifischem Vokabular. Erlaubt jetzt auch MOF-basierte Metamodelle.
Kommerziell.
- UML2MOF
- netbeans
Kann über XMI aus UML (mit MOF-Profil) MOF erzeugen; für 1.4.
Frei.
- ~ Univers@lis Model Repository Tool
- France Telecom
UML 1.3; nicht völlig MOF 1.3, Änderungen zur Unterstützung von
association class („reification“ (association is reified by a class))
Interessante Publikation, aber nicht taufrisch. Haben SDL aus UML erzeugt qua Repository. Definieren textuelle Syntax für Metamodelle, ähnlich Java oder Python
- UREP (Unisys)
- JMI
- „...to review the Specification internally solely for the purpose of designing and developing your Java applets and applications intended to run on the Java platform.“
Java-Interfaces statt IDL; Bestandteil von Java
MOF-Ebene (1.4)
Implementierung kommt aus anderen Quellen
- netbeans
- Unisys
- OCL-Tools
- libocl-argo-java
- Dresden OCL
- Transformationstools
- Open Architecture Ware
- Erstellt Metamodelle für per Grammatik gegebene Sprachen und dazugehörige Werkzeuge (entspricht Andreas’ Ziel)
- +- Literatur
- +- Standards
Michael Piefel
Created 14/08/2003, last change: 28.10.2008