Modellierung mit
UML
Loading

1.5 Ausblick: Agile Modellierung mit UML

Um die Effizienz in einem Projekt zu steigern, ist es notwendig, den Entwicklern effektive Notationen, Techniken und Methoden zur Verfügung zu stellen. Weil das primäre Ziel jeder Softwareentwicklung das lauffähige und korrekt implementierte Produktionssystem ist, sollte der Einsatz der UML nicht nur zur Dokumentation von Entwürfen dienen. Stattdessen ist die automatisierte Umsetzung in Code durch Codegeneratoren, die Definition von Testfällen mit der UML/P zur Qualitätssicherung und die Evolution von UML-Modellen mit Refactoring-Techniken essentiell.

Die Kombination von Codegenerierung, Testfallmodellierung und Refactoring bietet wesentliche Synergie-Effekte. Deshalb werden im zweiten bei Springer erschienenen Buch „Agile Modellierung mit UML“ diese Techniken auf Basis der UML/P beschrieben. Beide Bände sind inhaltlich aufeinander abgestimmt.

Agile Modellierung: Es werden einige wesentliche Grundelemente agiler Softwareentwicklungsmethoden herausgearbeitet und auf Basis der dabei gewonnenen Erkenntnisse eine agile modellbasierte Entwicklungsmethode skizziert. Kern agiler Entwicklungsmethoden ist die Nutzung von Modellen als Darstellungs- und Diskussionsmittel, insbesondere aber auch zur Programmierung und Testfalldefinition durch Codegenerierung und zur Planung von Evolutionsschritten durch modellbasiertes Refactoring.

Codegenerierung: Zur effizienten Erstellung eines Systems ist eine gut parametrisierte Codegenerierung aus abstrakten Modellen essentiell. Die diskutierte Form der Codegenerierung erlaubt die kompakte und von der Technik weitgehend unabhängige Entwicklung von anwendungsspezifi- schen Modellen. Erst bei der Generierung werden technologieabhängige Aspekte wie zum Beispiel Datenbankanbindung, Kommunikation oder GUI-Darstellung hinzugefügt. Dadurch wird die UML/P als Programmiersprache einsetzbar und es entsteht kein konzeptueller Bruch zwischen Modellierungs- und Programmiersprache. Allerdings ist es wichtig, ausführbare und abstrakte Modelle im Softwareentwicklungsprozess explizit zu unterscheiden und jeweils adäquat einzusetzen.

Modellierung automatisierbarer Tests: Die systematische und effiziente Durchführung von Tests ist ein wesentlicher Bestandteil zur Sicherung der Qualität eines Systems. Ziel ist dabei, dass Tests nach ihrer Erstellung automatisiert ablaufen können. Codegenerierung wird daher nicht nur zur Entwicklung des Produktionssystems, sondern insbesondere auch für Testfälle eingesetzt, um so die Konsistenz zwischen Spezifikation und Implementierung zu prüfen. Der Einsatz der UML/P zur Testfallmodellierung ist daher ein wesentlicher Bestandteil einer agilen Methodik. Dabei werden insbesondere Objektdiagramme, die OCL und Sequenzdiagramme zur Modellierung von Testfällen eingesetzt.

Evolution mit Refactoring: Die diskutierte Flexibilität, auf Änderungen der Anforderungen oder der Technologie schnell zu reagieren, erfordert eine Technik zur systematischen Anpassung des bereits vorhandenen Modells beziehungsweise der Implementierung. Die Evolution eines Systems in Bezug auf neue Anforderungen oder einem neuen Einsatzgebiet sowie der Behebung von Strukturdefiziten der Softwarearchitektur erfolgt idealerweise durch Refactoring-Techniken. Ein weiterer Schwerpunkt ist daher die Fundierung und Einbettung der Refactoring-Techniken in die allgemeinere Vorgehensweise zur Modelltransformation und die Diskussion, welche Arten von Refactoring-Regeln für die UML/P entwickelt oder von anderen Ansätzen übernommen werden können. Besonders betrachtet werden dabei Klassendiagramme, Statecharts und OCL.

Sowohl bei der Testfallmodellierung als auch bei den Refactoring-Techniken werden aus den fundierenden Theorien stammende Erkenntnisse dargestellt und auf die UML/P transferiert. In diesem Buch werden diese Konzepte anhand zahlreicher praktischer Beispiele erklärt und in Form von Testmustern und Refactoring-Techniken für UML-Diagramme aufbereitet.


Bernhard Rumpe. Agile Modellierung mit UML. Springer 2012