Konzeption und prototypische Umsetzung der Integration fachlich getriebener Prozessmodellierung in die Softwareentwicklung unter Verwendung der Business Process Model and Notation 2.0

Masterthesis von Frederik Kirsch an der DHBW Stuttgart (30.09.2014)

Diese Webseite dient der Veröffentlichung meiner 2014 erstellten Masterthesis. Sie soll den Einstieg in die erarbeitete Thematik erleichtern. Entsprechend der Arbeit ist sie ebenfalls in einen theoretischen und praktischen Teil untergliedert.
Im Abschnitt Ausarbeitung findet sich die eigentliche Arbeit sowie ein kurzer Abriss zum Inhalt. Innerhalb des Abschnitts Prototyp wird der Beispielprozess, welcher innerhalb der Arbeit, zur Erprobung der unterschiedlichen Thesen entwickelt wurde, näher dargestellt.

Ausarbeitung

Das in der Thesis erarbeitete Konzept setzt auf bestehenden Ideen auf und behandelt organisatorische, technische und architektonisches Aspekte. Im Anhang der Arbeit befindet sich eine tiefergehende Beschreibung des Prototyps sowie eine Installationsanleitung.

Zielsetzung

"Um zu prüfen, wie sich fachliche Prozessmodelle in die Anwendungsentwicklung integrieren lassen, sollen verschiedene Punkte untersucht werden. Es wird analysiert, wie die Prozessmodellierung mit der BPMN 2.0 zwischen den beteiligten Stakeholdern ablaufen sollte. Dabei wird auch betrachtet, welche Anforderungen und Restriktionen für entsprechende Prozesse gelten. Ziel ist die Erstellung eines Konzeptes mit einem Vorgehensmodell bezüglich der Prozessmodellierung und -automatisierung. Der Entwurf baut unter anderem auf verschiedenen bestehenden Konzepten auf.
Ergänzt wird die Ausarbeitung durch die Erprobung an einer prototypischen Implementierung. Dazu wird ein fachlicher Prozess entsprechend dem erarbeiteten Konzept entwickelt und in einer Process Engine (PE) ausgeführt. Die Ausführung fachlicher Funktionen wird durch Einbindung verschiedener Systeme umgesetzt. Die Erfahrungen mit dem Prototyp fließen ebenfalls in das Konzept mit ein.
Des Weiteren soll dargestellt werden, wie sich die Verwendung von Prozessmodellen auf den Ablauf der Softwareentwicklung auswirkt. Einflüsse und Anforderungen die durch die Verwendung von Prozessmodellen entstehen sollen, bezogen auf den Softwareentwicklungsprozess (SEP), die IT-Architektur sowie die technische Systemlandschaft, beschrieben werden."

Download

2014. Frederik Kirsch - Masterthesis - BPMN [Download] [2,39MB/PDF]

Prototyp

Die Inhalte der Masterthesis wurden anhand eines Prototypes erprobt. Dessen Struktur ist in der folgenden Grafik dargestellt. Durch Klicken auf eines der Module wird zu diesen eine weiterführende Beschreibung eingeblendet.
Im Anschluss finden Sie die Referenzen auf den Quellcode der einzelnen Teilprojekte, sowie die verschiedenen Komponenten in der Version in der sie für den Prototyp eingesetzt wurden.
Die Anleitung zur Installation des Prototyps befindet sich im Anhang der Arbeit.

Architektur

Webclient

Der Web Client nimmt Kontaktanfragen von Anwendern entgegen und führt eine Validierung der Eingaben durch. Bei einer erfolgreichen Anfrage legt der Client einen Auftrag mit den übergebenen Daten an und erzeugt eine neue Prozessinstanz.
Die clientseitige Validierung ist mit Javascript umgesetzt. Die Kommunikation mit dem PHP Backend erfolgt über Ajax. Dieses ruft dann einen durch Mule gekapselten Webservice zur Anlage einer neuen Prozessinstanz auf.

Grafik - Eingabemaske Webclient

Business Client

Der Java Client repräsentiert das Back Office System eines Unternehmens. Es handelt sich um eine Anwendung mit Frameworkcharakter. Das Programm sucht in der Process Engine nach zu bearbeitenden Prozessen. Die eigentliche Bearbeitung von Prozessschritten findet durch Plugins statt. Die Plugins definieren welche Prozesse sie bearbeiten können.
Die UI wurde mit JavaFX umgesetzt und ist nach dem MVVM-Pattern aufgebaut.

Grafik - Übersicht Business Client

Plugin Kontaktabgleich

Ein Plugin zur Bearbeitung des Prozessschrittes Kontaktabgleich im Prozess Kontaktanfrage. Das Plugin ist nicht selbstständig lauffähig. Es wird durch den Java Client geladen und ausgeführt.
Die UI wurde mit JavaFX umgesetzt und ist nach dem MVVM-Pattern aufgebaut.

Grafik - Plugin Kontaktabgleich

Plugin Terminplanung

Ein Plugin zur Bearbeitung des Prozessschrittes Terminplanung im Prozess Kontaktanfrage. Das Plugin ist nicht selbstständig lauffähig. Es wird durch den Java Client geladen und ausgeführt.
Die UI wurde mit JavaFX umgesetzt und ist nach dem MVVM-Pattern aufgebaut.

Grafik - Plugin Terminplanung

Integrationsservice Auftrag

Ein Integrationsservice, der das Lesen von Aufträgen kapselt. Der Service wird durch den Java Client verwendet. Dieser wird dadurch vom Auftragsservice entkoppelt.
Der Service ist in Mule umgesetzt.

Integrationsservice Prozess

Ein Integrationsservice, der das Erzeugen von Prozessinstanzen in der Process Engine kapselt. Er übernimmt das Initialisieren von Prozessvariablen. Der Web Client als Aufrufer wird dadurch von Interna des Prozesses entkoppelt.
Der Service ist in Mule umgesetzt.

Service Auftrag

Der REST Service bietet Funktionen zum Lesen und Erzeugen von Aufträgen an.
Der dienst ist in Java auf Basis von Spring Boot implementiert.

Service User

Der REST Service bietet Funktionen zum Lesen, Erzeugen, Ändern und Löschen von Usern an.
Der dienst ist in Java auf Basis von Spring Boot implementiert.

Service Vertreter

Der REST Service bietet Funktionen zum Lesen von Vertretern an.
Der dienst ist in Java auf Basis von Spring Boot implementiert.

Service Termin

Der REST Service bietet Funktionen zum Lesen und Erzeugen von Terminen an.
Der dienst ist in Java auf Basis von Spring Boot implementiert.

Service Mail

Der REST Service bietet Funktionen zum Versenden verschiedener vordefinierter Emails.
Der dienst ist in Java auf Basis von Spring Boot implementiert.

BPMN Prozess Kontaktanfrage

Das BPMN Prozessmodell und Quellcode für die Service-Tasks. Zum Ausführen ist die Installation in einer Process Engine notwendig.
Der Prozess ist in BPMN 2.0 für Camunda BPM umgesetzt.

Grafik - BPMN 2.0 Prozess Kontaktanfrage

Module

master-prototype-webfrontend [Bitbucket] [Download] [0,07MB/RAR] [HTML, Javascript, PHP]
master-client-main [Download] [Bitbucket] [8,24MB/RAR] [Java]
master-client-kontaktabgleich [Bitbucket] [Java]
master-client-terminplanung [Bitbucket] [Java]
master-service-mail [Download] [24,19MB/RAR] [Bitbucket] [Java]
master-service-termin [Download] [24,18MB/RAR] [Bitbucket] [Java]
master-service-auftrag [Download] [22,30MB/RAR] [Bitbucket] [Java]
master-service-vertreter [Download] [24,19MB/RAR] [Bitbucket] [Java]
master-service-user [Download] [24,19MB/RAR] [Bitbucket] [Java]
master-bpmn-kontaktanfrage [Download] [6,44MB/RAR] [Bitbucket] [BPMN, Java]
master-integration-process [Download] [0,01MB/ZIP] [Bitbucket] [Mule]
master-integration-auftrag [Download] [0,01MB/ZIP] [Bitbucket] [Mule]
master-basic [Bitbucket] [Java]

Tools

camunda-engine-rest [Download] [3,15MB/WAR] [Link]
camunda-webapp [Download] [15,00MB/WAR] [Link]
conf [Download] [0,01MB/RAR]
jdk-8u20-windows-x64 [Link]
libs [Download] [6,98MB/RAR]
mule-standalone-3.5.0 [Link]
scripts [Download] [0,01MB/RAR]
xampp-win32-1.8.3-5-VC11-installer [Link]