Agile Modellierung mit
UML
Loading

1.1 Ziele und Inhalte von Band 1

Gemeinsames Mission Statement beider Bände: Es ist ein Kernziel, für das genannte Portfolio grundlegende Techniken zur modellbasierten Entwicklung zur Verfügung zu stellen. Dabei wird in Band 1 eine Variante der UML vorgestellt, die speziell zur effizienten Entwicklung qualitativ hochwertiger Software und Software-basierter Systeme geeignet ist. Darauf aufbauend enthält dieser Band Techniken zur Generierung von Code, von Testfällen und zum Refactoring der UML/P.

UML-Standard: Der UML 2-Standard muss sehr viele Anforderungen aus unterschiedlichen Gegebenheiten heraus erfüllen und ist daher notwendigerweise überladen. Viele Elemente des Standards sind für unsere Zwecke nicht oder nicht in der gegebenen Form sinnvoll, während andere Sprachkonzepte ganz fehlen. Deshalb wird in diesem Buch ein angepasstes und mit UML/P bezeichnetes Sprachprofil der UML vorgestellt. UML/P wird dadurch für die vorgeschlagenen Entwicklungstechniken im Entwurf, in der Implementierung und in der Wartung optimiert und so in agilen Entwicklungsmethoden besser einsetzbar.

Band 1 konzentriert sich vor allem auf die Einführung des Sprachprofils und einer allgemeinen Übersicht zur vorgeschlagenen Methodik.

Die UML/P ist als Ergebnis mehrerer Grundlagen- und Anwendungsprojekte entstanden. Insbesondere das in Anhang D, Band 1 dargestellte Anwendungsbeispiel wurde soweit möglich unter Verwendung der hier beschriebenen Prinzipien entwickelt. Das Auktionssystem ist auch deshalb zur Demonstration der in den beiden Büchern entwickelten Techniken geeignet ideal, weil Veränderungen des Geschäftsmodells oder der Unternehmensumgebung in dieser Anwendungsdomäne besonders häufig sind. Flexible und dennoch qualitativ hochwertige Softwareentwicklung ist für diesen Bereich essentiell.

Objektorientierung und Java: Für neue Geschäftsanwendungen wird heute primär Objekttechnologie eingesetzt. Die Existenz vielseitiger Klassenbibliotheken und Frameworks, die vorhandenen Werkzeuge und nicht zuletzt der weitgehend gelungene Sprachentwurf begründen den Erfolg der Programmiersprache Java. Das UML-Sprachprofil UML/P und die darauf aufbauenden Entwicklungstechniken werden daher auf Java zugeschnitten.

Brücke zwischen UML und agilen Methoden: Gleichzeitig bilden die beiden Bücher zwischen den eher als unvereinbar geltenden Ansätzen der agilen Methoden und der Modellierungssprache UML eine elegante Brücke. Agile Methoden und insbesondere Extreme Programming besitzen eine Reihe von interessanten Techniken und Prinzipien, die das Portfolio der Softwaretechnik für bestimmte Projekttypen bereichern. Merkmale dieser Techniken sind der weitgehende Verzicht auf Dokumentation, die Konzentration auf Flexibilität, Optimierung der Time-To-Market und Minimierung der verbrauchten Ressourcen bei gleichzeitiger Sicherung der geforderten Qualität. Damit sind agile Methoden für die Ziele dieses Buchs als Grundlage gut geeignet.

Agile Vorgehensweise auf Basis der UML/P: Die UML wird als Notation für eine Reihe von Aktivitäten, wie Geschäftsfallmodellierung, Soll- und Ist-Analyse sowie Grob- und Fein-Entwurf in verschiedenen Granularitätsstufen eingesetzt. Die Artefakte der UML stellen damit einen wesentlichen Grundstein für die Planung und Kontrolle von Meilenstein-getriebenen Softwareentwicklungsprojekten dar. Deshalb wird die UML vor allem in plan-getriebenen Projekten mit relativ hoher Dokumentationsleistung und der daraus resultierenden Schwerfälligkeit eingesetzt. Nun ist die UML aber kompakter, semantisch reichhaltiger und besser geeignet, komplexe Sachverhalte darzustellen, als eine normale Programmiersprache. Sie bietet dadurch für die Modellierung von Testfällen sowie für die transformationelle Evolution von Softwaresystemen wesentliche Vorteile. Auf Basis einer Diskussion agiler Methoden und der darin enthaltenen Konzepte wird in Band 1 eine neue agile Methode skizziert, die das UML/P-Sprachprofil als Grundlage für viele Aktivitäten nutzt, ohne die Schwerfälligkeit typischer UML-basierter Methoden zu importieren.

Die beschriebenen Ziele wurden in Band 1 in folgenden Kapitel umgesetzt:

1 Einführung
2 Klassendiagramme
 führt Form und Verwendung von Klassendiagrammen ein.
3 Object Constraint Language
 diskutiert eine syntaktisch auf Java angepasste, sprachlich erweiterte und semantisch konsolidierte Fassung der textuellen Beschreibunsgsprache OCL.
4 Objektdiagramme
 diskutiert Sprache und methodischen Einsatz der Objektdiagramme sowie deren Integration mit der OCL-Logik, um damit eine “Logik der Diagramme“ zu ermöglichen, in der unerwünschte Situationen, Alternativen und Kombinationen beschrieben werden können.
5 Statecharts
 beinhaltet neben der Einführung der Statecharts eine Sammlung von Transformationen zur deren semantikerhaltender Vereinfachung.
6 Sequenzdiagramme
 beschreibt Form, Bedeutung und Verwendung von Sequenzdiagrammen.
A Sprachdarstellung durch Syntaxklassendiagramme
 bietet eine Kombination aus Extended-Backus-Naur-Form (EBNF) und spezialisierten Klassendiagrammen zur Darstellung der abstrakten Syntax (Metamodell) der UML/P.
B Java
 beschreibt die abstrakte Syntax des genutzten Teils von Java.
C Syntax der UML/P
 beschreibt die abstrakte Syntax der UML/P.
D Anwendungsbeispiel: Internetbasiertes Auktionssystem
 erläutert Hintergrundinformation zu dem in beiden Bänden verwendeten Beispiel des Auktionssystems.


Bernhard Rumpe. Agile Modellierung mit UML. Springer 2012