Entwicklung domänenspezifischer Software Dargestellt am Beispiel des Prozessmanagements Von der Universität Bayreuth zur Erlangung des Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigte Abhandlung von Manuel Matthias Götz aus Neumarkt in der Oberpfalz 1. Gutachter: Prof. Dr. Ing. Stefan Jablonski 2. Gutachter: Prof. Dr. Torsten Eymann Tag der Einreichung: 17. Mai.2010 Tag des Kolloauiums: 15. Oktober 2010
Kurzfassung III Abstract Vorwort und Danksagung V VII Inhaltsverzeichnis XI Abbildungsverzeichnis Tabellenverzeichnis XV XIX 1 Einführung, Zielsetzung und Aufbau 1 1.1 Vorgehen bei der Softwareentwicklung 2 1.1.1 Maßnahmen zur verbesserten Softwareentwicklung 2 1.1.2 Anforderungen an domänenspezifische Softwareentwicklung 3 1.1.3 Sichten auf domänenspezifische Softwareentwicklung 5 1.2 Anpassbarkeit von Softwareprodukten 7 1.2.1 Individualsoftware 8 1.2.2 Parametrisierung 8 1.2.3 Konfiguration 10 1.2.4 Domänenspezifische Softwareentwicklung 11 1.3 Beiträge dieser Arbeit 12 1.3.1 Vorgehensmodell 12 1.3.2 Domänenspezifisches Prozessmanagement 13 1.4 Aufbau der Arbeit 14 2 Prozessmanagement 17 XI
2.1 Terminologie im Prozessmanagement 17 2.2 Sprachen im Prozessmanagement 21 2.2.1 Struktur des Prozessmanagements 21 2.2.2 IT-Struktur von Prozessmanagementansätzen 25 2.2.3 Anpassbarkeit und Flexibilität 26 2.3 Struktureller Unterschied von Prozessmodellierungs- und Workflowsprachen 27 2.3.1 Struktur von Prozessmodellierungssprachen 28 2.3.2 Struktur von Workflowsprachen 29 2.3.3 Probleme bei der Abbildung 31 2.4 Domänenspezifisches Prozessmanagement 32 2.4.1 Domänenspezifische Anpassungen 32 2.4.2 Domänenspezifischer Beispielprozess: "Fitness" 34 2.5 Betrachtung bestehender Prozessmanagement-Ansätze 36 2.5.1 Aspektorientiertes Prozessmanagement 36 2.5.2 YAWL 40 2.5.3 Die Standards BPMN, BPEL und XPDL 43 2.5.4 OpenKnowledge Framework 47 2.6 Ansätze zur Flexibilisierung 50 2.6.1 Flexibility as a Service (FAAS) 50 2.6.2 Flexibilität durch Erweiterbarkeit 52 2.7 Domänenspezifisches Prozessmanagement 53 2.7.1 Wiederverwendung 53 2.7.2 Anpassung/Variabilität 55 2.7.3 Änderungsmanagement 56 2.7.4 Fazit 56 3 Entwicklungsansätze für Software 59 3.1 Domänenspezifische Software 60 3.2 Klassische Software-Entwicklungsansätze 62 3.2.1 Wasserfallmodell 62 3.2.2 V-Modell 66 3.2.3 Rational Unified Process 69 3.3 Modellgetriebene Softwareentwicklung 71 3.3.1 Grundlagen modellgetriebener Softwareentwicklung 71 3.3.2 Modelltransformationen 72 3.3.3 Model Driven Architecture 74 3.3.4 Model Management 75 XII
3.3.5 Modellgetriebene Ansätze und domänenspezifische Software 77 3.4 Produktlinienansätze und Feature-Diagramme 78 3.5 Software Factories 82 3.5.1 Economies of Scale und Economies of Scope 83 3.5.2 Prinzip der Software Factories 84 3.5.3 Einsatz von Software Factories 86 3.5.4 Domänenspezifische Software und Software Factories 88 3.6 Eigenschaften der Ansätze für domänenspezifische Softwareentwicklung 90 3.6.1 Unzulänglichkeiten bestehender Ansätze 90 3.6.2 Übertragbare Eigenschaften bestehender Ansätze 91 4 Software Factories im Prozessmanagement 95 4.1 Voraussetzungen 96 4.1.1 Definition der Voraussetzungen 96 4.1.2 Abwägen der Voraussetzungen 98 4.2 Adaption von Software Factories 102 4.2.1 Probleme mit Software Factories im Prozessmanagement 103 4.2.2 Anpassung des Konzepts 104 4.2.3 Einsatz von MDSD-Techniken im angepassten Konzept 116 4.2.4 Diskussion des angepassten Software Factory-Konzepts 118 5 Eine Produktlinie für Prozessmanagementsysteme 121 5.1 Analyse der Produktlinie 121 5.1.1 Definition der Produktlinie 122 5.1.2 Abgrenzung der Problemdomäne 123 5.1.3 Abgrenzung der Lösungsdomäne 125 5.2 Design der Produktlinie 128 5.2.1 Kategorisierung der Anforderungen 128 5.2.2 Entwicklung der Architektur 134 5.2.3 Produktentwicklungsprozess 153 5.3 Implementierung der Produktlinie 157 5.3.1 Bereitstellen von Assets 157 5.3.2 Strukturierung von Assets 159 5.3.3 Integration der Bestandteile zu einer Produktlinie 161 5.4 Zusammenfassung 164 6 Produkte aus der Produktlinie 165 6.1 Produktanalyse 165 XIII
6.1.1 Produktspezifikation 166 6.1.2 Spezifische Anforderungen 168 6.2 Design des Produkts 169 6.2.1 Spezifischer Produktentwicklungsprozess 169 6.2.2 Analyse von Modellierungselementen 170 6.2.3 Definition der Modellierungselemente 173 6.2.4 Ausführungsumgebung 176 6.2.5 Transformationen 183 6.2.6 Benutzeroberfläche 190 6.2.7 Umsetzungsorientierte Anpassung des Produktentwicklungsprozesses. 191 6.3 Umsetzung des Produkts 193 6.3.1 Basisimplementierung 193 6.3.2 Angepasste Implementierung 196 6.3.3 Produktimplementierung 197 6.4 Arbeiten mit der Produktlinie 198 7 Prototypen 201 7.1 Überblick 201 7.2 Die Software Factory SF4PM 202 7.2.1 Aufbau von SF4PM 203 7.2.2 Das Feature-Modell 204 7.2.3 Die Anleitung 207 7.3 Diged-Prototyp 209 7.3.1 Anforderungen 209 7.3.2 Architektur des Produkts 210 7.3.3 Beispielprozess: Film digitalisieren 212 7.4 ForFlow-Prototyp 216 7.4.1 Anforderungen 217 7.4.2 Architektur des Produkts 217 7.4.3 Beispielprozess: Bauteil erstellen 220 7.5 Bewertung 223 8 Zusammenfassung und Ausblick 227 8.1 Erreichte Ziele 227 8.2 Blick in die Zukunft 228 Literaturverzeichnis 231 XIV