[Back]


Diploma and Master Theses (authored and supervised):

B. Weismann:
"Architekturzentrierte Modellgetriebene Softwareentwicklung - Fallbeispiel und Evaluierung";
Supervisor: G. Kappel, G. Kramler; Institut für Softwaretechnik und Interaktive Systeme, 2006.



English abstract:
During the last two decades the importance of software to support business processes and daily information flow raised continuously. Software is the basis for these procedures and therefore it is an essential part in every day life and business. Research on new methods of engineering software which offers lower development costs, shorter development cycles and software solutions with higher quality is the consequence of this trend.

Model Driven Software Development (MDSD) is one of these approaches. It is based on the idea of generating executable source code from a mainly graphical model. Contrary to traditional methods MDSD related models are equal to source code and not just a medium for documentation. Besides of the already named targets MDSD tries to enhance the reuse of existing software components and to concentrate expert knowledge.

Stahl and Völter describe in their book "Modellgetriebene Software Entwicklung"("Model Driven Software Development") a pragmatic way of generating the infrastructure code of an application with the help of MDSD in combination with already existing technologies. They call this approach architecture centric MDSD (AC-MDSD) because the addressed domain is software architecture. It is the aim to generate the complete infrastructure code of a family of software systems with AC-MDSD.

The intention of this master thesis is to describe the ideas of AC-MDSD and to evaluate the method as well as the supporting toolkit " openArchitectureWare" on the basis of a case study. The case study implements with the help of technologies taken from the J2EE area an online book store. The addressed domain is called "software architecture for e-business systems". Besides of these technical aspects the theoretical background of MDSD, which is necessary for understanding the approach, is explained. Additionally the differences and similarities with related methods, e.g., MDA are discussed.

German abstract:
In den vergangenen zwei Jahrzehnten hat Software eine immer stärkere Bedeutung in zahlreichen Geschäftsprozessen und alltäglichen Informationsflüssen erlangt. Sie stellt gewissermaßen das Fundament dieser Abläufe dar. Software ist zu einem kritischen Bestandteil vieler Unternehmen und Lebensbereiche geworden. Analog zu dieser Bedeutunksteigerung stehen die Entwicklungsmethoden mehr und mehr im Spannungsfeld von hoher Qualität des Endprodukts und niedrigen Entwicklungskosten bzw. kurzen -zyklen. In der Realität können viele Projekte diesen Ansprüchen nicht gerecht werden. Um den Softwareschaffenden neue Werkzeuge zu bieten, die es ermöglichen diese gegensätzlichen Ziele zu vereinbaren, gibt es seit geraumer Zeit, die Bestrebung Code automatisch aus einem Modell der zu entwickelnden Applikation zu generieren.

Einer dieser Ansätze ist die Modellgetriebene Software Entwicklung (eng: Model Driven Software Development, kurz MDSD). Bei MDSD wird basierend auf einem in den meisten Fällen graphischen Modell durch Transformationen lauffähiger Sourcecode erzeugt. Stahl und Völter beschreiben in ihrem Buch "Modellgetriebene Software Entwicklung" [1] einen pragmatischen Ansatz um mit Hilfe von MDSD und bereits heute verfügbaren Techniken den Infrastrukturcode einer Applikation bzw. einer ganzen Software-Systemfamilie zu generieren. Diesen Ansatz bezeichnen sie als architekturzentrierte-MDSD (AC-MDSD). Es wird dabei versucht den Infrastrukturcode einer definierten Softwaresystemfamilie möglichst vollständig zu generieren. Eine Softwaresystemfamilie ist die Summe aller Applikationen die auf derselben Architektur und technologischen Plattform beruhen.

Die Codegenerierung bei AC-MDSD stützt sich auf zwei Säulen. Zum einen werden die verwendeten Modelle mittels einer so genannten Domain Specific Language (DSL) formalisiert. Die DSL spiegelt mit ihren Ausdrucksmitteln den Problemraum der jeweiligen Domäne wieder. Die Konzepte der DSL werden durch ein Metamodell der Domäne abgebildet. Zum anderen erleichtert der Einsatz eines Frameworks und wieder verwendbarer Komponenten die Erzeugung des Sourcecodes, da der "Weg" zwischen Generat und Modell verkürzt wird.

Im Rahmen dieser Diplomarbeit wird ausgehend von den in [1] beschriebenen theoretischen Konzepten und dem von den Autoren des Buches mitentwickelten Codegenerator Toolkit openArchitectureWare (oAW) [2], die konkrete Vorgehensweise bei der Softwareerstellung mittels AC-MDSD an Hand eines praktischen Beispiels aus dem Bereich "Softwareinfrastruktur für E-Business-Anwendungen" veranschaulicht. Die Umsetzung erfolgt mit Hilfe von Technologien aus dem J2EE Bereich wie JSPs, Servlets, Enterprise JavaBeans und dem Webframework Struts. Fachlich handelt es sich dabei um eine Online-Buchhandlung. Im Rahmen der Durchführung soll auch die Erstellung eines GEF-Editors für die DSL mit Hilfe von oAW veranschaulicht werden. Neben diesen praktischen Aspekten der Arbeit werden die für das Verständnis nötigen theoretischen Konzepte dargelegt, und eine Abgrenzung zu verwandten Methoden wie MDA durchgeführt. Abschließend wird eine kritische Evaluierung hinsichtlich der Praxistauglichkeit des vorgestellten Ansatzes vorgenommen. Dabei werden sowohl dessen Stärken als auch Schwächen gegenübergestellt.

Quellenverzeichnis
[1] Markus Völter, Thomas Stahl; Modellgetriebene Softwareentwicklung. dpunkt.verlag, 1. Auflage 2005

[2] www.openarchitectureware.org


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


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