Codegenerierung aus Prozessmodellen mittels des Eclipse-Plug-ins „JBoss Graphical Process Designer“ (Case-Ansatz) bzw. AndroMDA (MDA-Ansatz)
Ein Vergleich
- Art: Bachelorarbeit
- Autor: Björn Kleinert
- Abgabedatum: April 2006
- Umfang: 113 Seiten
- Dateigröße: 1,7 MB
- Note: 2,0
- Institution / Hochschule: Fachhochschule Stralsund Deutschland
- Bibliografie: ca. 54
- ISBN (eBook): 978-3-8324-9925-9
-
ISBN (Paperback) :
978-3-8324-9925-9 P - ISBN (CD) :978-3-8324-9925-9 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Kleinert, Björn April 2006: Codegenerierung aus Prozessmodellen mittels des Eclipse-Plug-ins „JBoss Graphical Process Designer“ (Case-Ansatz) bzw. AndroMDA (MDA-Ansatz), Hamburg: Diplomica Verlag
- Schlagworte: Software-Entwicklung, MDA, UML, jBPM, Quelltextgenerator
In den Warenkorb
74,00 €
Bachelorarbeit von Björn Kleinert
Einleitung:
In der Bachelor-Arbeit wird ein Vergleich der Prozessmodellierung mit CASE-Ansatz und der Prozessmodellierung mit MDA-Ansatz durchgeführt.
Die Modellierung mit CASE-Ansatz erfolgt mit einem Plug-in für die Entwicklungsumgebung Eclipse. Dieses Plug-in von der Firma JBoss erzeugt während der grafischen Modellierung eine Prozessbeschreibung. Beim MDA-Ansatz erfolgt die Modellierung auch mit einem CASE-Tool (MagicDraw). Die Prozessbeschreibung wird dann mittels AndroMDA [ANDROMDAH] generiert.
Der Fokus dieser Arbeit liegt auf dem technischen Aspekt der Prozessmodellierung, sowie der Codegenerierung mittels AndroMDA. Um auf die Generierung von Prozessbeschreibungen durch AndroMDA eingehen zu können, ist es notwendig, den Aufbau und die Funktionsweise von AndroMDA, speziell der AndroMDA jBPM-Cartridge, zu beschreiben. Auf andere Codegeneratoren wird nicht eingegangen. Eine Gegenüberstellung einiger Codegeneratoren ist unter [CG] u finden.
Gang der Untersuchung:
Zu Beginn wird das Umfeld der Entstehung der Arbeit dargestellt und danach wird die Aufgabenstellung vorgestellt.
In Kapitel 2 folgt eine kurze Einführung in die generative Softwareentwicklung. Dabei werden die Themen: Computer-Aided Software Engineering, Model Driven Architecture (MDA) und Model Driven Software Development (MDSD) behandelt. Um die Konzepte der Model Driven Architecture verstehen zu können, werden einige Standards der OMG vorgestellt (UML, MOF, XML, XMI ).
In Kapitel 2.2.2 werden die MDA-Konzepte dargestellt. Abgeschlossen wird der theoretische Teil der Arbeit mit einem Vergleich von MDA und MDSD.
Im praktischen Teil wird der Aufbau und die Funktionsweise von AndroMDA, speziell der AndroMDA jBPM-Cartridge, beschrieben.
Zuerst wird in Kapitel 3.3 das Vorgehen mit CASE-Ansatz erläutert. Die Prozessmodellierung erfolgt beim CASE-Ansatz mit einem Plug-in für die Entwicklungsumgebung Eclipse anhand eines einfachen Beispielprozesses (JBay).
Der gleiche Beispielprozess wird in Kapitel 3.4 verwendet, um den MDA-Ansatz darzustellen. Beim MDA-Ansatz erfolgt die Modellierung auch mit einem CASE-Tool (MagicDraw).
Die Prozessbeschreibung wird dann aber mittels AndroMDA generiert. Der Aufbau des Quelltextgenerators AndroMDA wird in Kapitel 3.4.2 beschrieben. Besonders ausführlich wird auf die jBPM-Cartridge eingegangen, da mit ihr aus einem Prozessmodell eine Prozessbeschreibung generiert werden kann.
In Kapitel 3.4.3 wird eine Einführung in die Velocity Template Language (VTL) gegeben. Dies ist Notwendig, weil die so-genannten Templates ein wichtiger Bestanteil der jBPM-Cartridge sind. Auf diese Templates wird in Kapitel 3.4.4 näher eingegangen. In Kapitel 3.4.5 wird die Funktionsweise von AndroMDA beschrieben und danach die Prozessbeschreibung des Beispielprozesses JBay generiert.
Die Analyse der Ergebnisse wird in Kapitel 4 vorgenommen. Es wird auf die Unterschiede der Prozessmodellierungsvariaten eingegangen. Weiterhin werden zwei Prozessbeschreibungen miteinander verglichen. Diese zwei Prozessbeschreibungen wurden anhand eines zweiten Beispiels (einer Bestellungsbearbeitung) mit dem CASE-Ansatz bzw. mit dem MDA-Ansatz gewonnen. Das Kapitel 4 endet mit der Gegenüberstellung von Vor- und Nachteilen der MDA.
Im letzten Kapitel der Arbeit werden Schlussfolgerungen gezogen und ein Ausblick gegeben. Kapitel 5.1 beschäftig sich mit einigen Schritten die notwendig sind, um eine neue Cartridge für AndroMDA erstellen zu können.
Inhaltsverzeichnis:
| 1. | Problemstellung | 1 |
| 1.1 | Kurze Danksagung und Vorstellung des IT Ser vices Center Bonn | 1 |
| 1.2 | Erläuterung der Aufgabenstellung | 2 |
| 2. | Einführung in die generative Softwareentwicklung | 3 |
| 2.1 | Computer-Aided Software Engineering (CASE) | 3 |
| 2.2 | Model Driven Architecture und Model Driven Software Development | 4 |
| 2.2.1 | Anmerkungen zu den Standards UML, MOF, XML, XMI | 5 |
| 2.2.1.1 | Unified Modelling Language (UML) | 5 |
| 2.2.1.2 | Meta Object Facility (MOF) | 7 |
| 2.2.1.3 | Extensible Markup Language (XML) | 10 |
| 2.2.1.4 | XML Metadata Interchange (XMI) | 10 |
| 2.2.2 | Vorstellung der MDA-Konzepte | 15 |
| 2.2.2.1 | Modelltransformationen | 18 |
| 2.2.3 | Vergleich von MDA und MDSD | 22 |
| 3. | Beschreibung des Vorgehens zur Aufgabenlösung | 25 |
| 3.1 | Die JBoss jBPM Workflowengine | 25 |
| 3.2 | Vergleichskriterien festlegen | 26 |
| 3.3 | Vorgehen mit CASE-Ansatz | 26 |
| 3.3.1 | Anforderungen und Analyse | 26 |
| 3.3.2 | Prozessmodellierung mit dem Graphical Process Designer | 27 |
| 3.3.3 | Einbindung von Ser vices in das Prozessmodell | 30 |
| 3.3.4 | JUnit Test | 31 |
| 3.4 | Vorgehen mit MDA-Ansatz | 32 |
| 3.4.1 | Entwicklungsprozess mit AndroMDA | 32 |
| 3.4.2 | Aufbau von AndroMDA | 38 |
| 3.4.2.1 | Aufbau der AndroMDA jBPM-Car tridge | 41 |
| 3.4.3 | Einführung in die Velocity Template Language (VTL) | 43 |
| 3.4.4 | Die Templates der jBPM-Car trigde | 45 |
| 3.4.5 | Funktionsweise von AndroMDA | 47 |
| 3.4.6 | Ein AndroMDA-Projekt mittels Projektgenerator erzeugen | 49 |
| 3.4.7 | AndroMDA einstellen | 50 |
| 3.4.8 | Anforderungen und Analyse | 51 |
| 3.4.9 | Prozessmodellierung mit MagicDraw | 51 |
| 3.4.10 | Prozessbeschreibung generieren | 56 |
| 3.4.11 | Nach der Codegenerierung | 57 |
| 3.4.12 | JUnit Test | 59 |
| 4. | Analyse der Ergebnisse | 60 |
| 4.1 | Unterschiede der Prozessmodellierungsvariaten | 60 |
| 4.2 | Vergleich zweier Prozessbeschreibungen | 61 |
| 4.3 | Vor und Nachteile von MDA | 63 |
| 5. | Schlussfolgerungen und Ausblick | 65 |
| 5.1 | Eine neue Car tridge erstellen | 65 |
| Index | 67 | |
| A. | Anhang | 70 |
| A.1 | Typographische Konventionen der Arbeiten | 70 |
| A.2 | Installationshinweise | 71 |
| A.3 | Literaturverzeichnis | 73 |
| A.4 | Internetquellen | 74 |
| A.5 | Quelltexte und Diagramme | 79 |
| Eidesstattliche Erklärung | 113 |
In größeren Projekten ist das Vorgehensmodell entscheidend. Ein Entwicklungsprozess, der zwar unvollständig ist, sich aber in der Praxis bewährt hat, wird in [MDSD] vorgestellt. Beim Generativen Development Prozess (GDP) wird zuerst die Entwicklung der fachlichen Modelle (Analyse) und der technischen Modelle (Architektur) getrennt vorangetrieben. Bei der parallelen Entwicklung beider Entwicklungsstränge kann iterativ vorgegangen werden. Zusammengefügt werden die beiden Entwicklungsstränge dann im Design. Im Design wird die durch Analyse entstandene Fachlichkeit durch die Designsprache (die als Ergebnis aus dem Architekturstrang hervorgegangen ist) ausgedrückt. Anschließend erfolgt die Generierung und die Implementierung (von Hand erzeugter Code). Im letzten Schritt eines Inkrementes sind Tests durchzuführen. Wird für die Tests JUnit eingesetzt, müssen die Testklassen von Hand implementiert werden. Eine typische Vorgehensweise beim Umgang mit AndroMDA (bei Verwendung der gegebenen Cartridges) ist in Abbildung 3.4 abgebildet. [...]
JUnit ist ein oft eingesetztes Java-Framework um Tests zu strukturieren und automatisiert durchzuführen. Die Testmethoden werden in einer Klasse geschrieben, die von TestCase abgeleitet ist. Mehrere dieser Klassen können wiederum zu einer TestSuite zusammengefasst werden. Ein Feature der JBoss jBPM Workflowengine ist, dass das Abarbeiten von Servives mit einem JUnit Test kontrolliert werden kann. Bei Prozessbeginn gibt es die Variable „greetings“ in JBay noch nicht. Dies, und dass es die Variable „greetings“ nach dem Übergang in den Status „auction“ gibt, wird mit der Methode testActionHandler() überprüft. Der Prozessdurchlauf wird mit testProcess() getestet. Die Annahmen werden mit assertNotNull() und assertEquals() überprüft. Der Quellcode der Testklasse befindet sich im Anhang. [...]
Services können durch Java Code, die einen „ActionHandler“ implementieren, angeboten werden. Typische Beispiele für Services sind die Validierung von Eingabedaten oder das Updaten einer Datenbank. Man hat zwei Möglichkeiten, um Java Code in den Prozess einzubinden. Die erste Möglichkeit besteht darin, dass man eine „Action“ an ein „Call-Event“ bindet, welche dann z. B. bei der Ankunft am Knoten oder beim Verlassen eines Knotens, ausgelöst wird. Der Nachteil ist, dass Services, die an ein „Call-Event“ gebunden sind, den weiteren Prozessverlauf nicht beeinflussen können. Tritt ein „Call-Event“ ein, werden die Methoden eines „ActionHandlers“ ausgeführt. Die zweite Möglichkeit ist es, eine „Action“ an einen Knoten vom Typ „Node“ zu binden. Erreicht ein Prozess den Knoten vom Typ „Node“, wird der Service ausgeführt. Diese „Actions“ können die weitere Ausführung des Prozesses steuern. Hier ein Beispiel für einen ActionHandler, in dem eine Variable erzeugt wird: [...]
In den Warenkorb
74,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832499259
Arbeit zitieren:
Kleinert, Björn April 2006: Codegenerierung aus Prozessmodellen mittels des Eclipse-Plug-ins „JBoss Graphical Process Designer“ (Case-Ansatz) bzw. AndroMDA (MDA-Ansatz), Hamburg: Diplomica Verlag
Schlagworte:
Software-Entwicklung, MDA, UML, jBPM, Quelltextgenerator



