[Back]


Diploma and Master Theses (authored and supervised):

A. Karner:
"Codegenerierung mit AndrMDA";
Supervisor: G. Kappel, G. Kramler; Institut für Softwaretechnik und Interaktive Systeme, 2006.



English abstract:
With Model Driven Architectures (MDA), there is a new standard for generative software development. This new standard has been introduced in June 2003 by a Team, called Object Management Group. The main target of the MDA technology is, to build specifications which are independent from any technology, to use it for generating Code to different platforms, like .NET, J2EE, or CORBA.

MDA brings the focus of development to the model layer. The main programming is shifted more and more to the background. The best case would be to automatically generate complete code from the UML models to any kind of platform. But at present this vision isn't accomplishable, so software engineers have to work on 2 different kinds of layers, the abstraction layer which is the model layer, and the technology layer, which is, more specifically, the code layer.

At present, many tools are implementing the MDA specification (e.g. AndroMDA, OpenArchitectureWare3). In this diploma thesis, the tool AndroMDA, which is a open-source framework released in march 2003, will be researched. For the code generation from UML models, AndroMDA uses cartridges4. For generating codefragments, the cartridges are processing meta-model elements, which are marked with stereotypes or key values, like for example <<Entity>> or <<Service>>. AndroMDA presently supports 2 main target languages, Java and C#/.NET. The code-generation process is controlled by templates. With this technique, AndroMDA is able to automatically generate code for any imaginable target language (e.g. HTML, PHP).

The main target of this diploma thesis is to evaluate the MDA framework AndroMDA on the basis of a case study of an online library. In particular, the functionality of AndroMDA's several components should be determined, as well as basic technologies and pros and contras of the framework regarding fully code generation. Based on the results of the evaluation, the code generating functionality should be
optimized, regarding full code generation. The code generator's quality will be measured by the rate of automatically generated lines of code to the amount of manually written lines of code.

German abstract:
Mit der Model Driven Architecture (kurz: MDA) gibt es einen neuen Standard zur generativen Softwareentwicklung. Dieser wurde von der Object Management Group im Juni 2003 spezifiziert. Ziel der MDA ist es, technologienunabhängige Spezifikationen zu erstellen, die für automatische Codegenerierung auf unterschiedlichen Plattformen wie .NET, J2EE, oder CORBA genutzt werden können.

Mit dem Einsatz von MDA liegt der Fokus hauptsächlich auf der Modellebene, die eigentliche Programmierung rückt zusehends in den Hintergrund. Der Idealfall wäre eine auf unterschiedlichen Plattformen völlig automatisierte sowie vollständige Codegenerierung aus den UML Modellen. Da dies aber noch nicht der Fall ist, müssen Software Entwickler bis dato auf 2 unterschiedlichen Abstraktions- und Technologieebenen, der Modellebene und der Codeebene, arbeiten.

Bis dato implementieren schon eine geraume Anzahl von Tools die MDA Spezifikation (AndroMDA, ArcStyler, Rational Software Architect etc.). Das in dieser Arbeit untersuchte AndroMDA ist ein Open Source Framework und wurde im März 2003 vorgestellt. Es benutzt zur Codetransformation aus UML-Modellen verschiedene, sogenannte Cartridges1. Mit diesen Cartridges verarbeitet AndroMDA Metamodell-Elemente die durch Stereotypen und Schlüsselwörtern, wie z.B. «Entity» oder «Service» gekennzeichnet werden und generiert daraus Codefragmente. AndroMDA unterstützt derzeit primär die Zielsprachen Java und C#/.NET. Die Codegenerierung wird über Templates gesteuert, so dass jede erdenklich Zielsprache (HTML, PHP etc.) damit realisiert werden kann.

Ziel dieser Magisterarbeit ist es, das MDA Framework "AndroMDA" anhand einer Beispielanwendung (Onlinebuchhandlung) zu evaluieren. Hierbei soll die Funktionsweise der einzelnen Komponenten, unterstützte Technologien sowie Stärken und Schwächen des Frameworks bezüglich Codegenerierung ermittelt werden. Aus diesen Ergebnissen soll im weiteren Verlauf der Arbeit die Codegenerierungsfunktionalität hinsichtlich möglichst vollständiger Codegenerierung optimiert werden.

Als Grundlage dieser Untersuchungen, dient das Referenzbeispiel "Onlinebuchhandlung". Zuerst soll die Anwendung der Onlinebücherei als UML Modell abgebildet und modelliert werden. Im weiteren Verlauf muss das UML Modell an die Erfordernisse AndroMDA's so angepasst werden (Stereotypen), dass es als Input für die Codegenerierung (Cartridges) dienen kann. Anschließend werden die jeweiligen Codefragmente generiert. Danach soll die Codegenerierungsfunktionalität analysiert und Verbesserungspotential davon abgeleitet werden. Nach diesem Schritt werden ausgewählte Verbesserungsmöglichkeiten bezüglich der Vollständigkeit der Codegenerierung (z.B. mittels Entwicklung eigener oder erweiterte Cartridges) anhand der gleichen Referenzanwendung entwickelt und evaluiert.


Electronic version of the publication:
http://www.big.tuwien.ac.at/research/publications/diplomatheses/karner.pdf


Created from the Publication Database of the Vienna University of Technology.