Skip to main content

2012 | Buch

Agile Modellierung mit UML

Codegenerierung, Testfälle, Refactoring

verfasst von: Bernhard Rumpe

Verlag: Springer Berlin Heidelberg

Buchreihe : Xpert.press

insite
SUCHEN

Über dieses Buch

Im wachsenden Portfolio von Entwicklungstechniken zeichnen sich zwei wichtige Trends ab. Zum einen dominiert die UML als Modellierungssprache. Zum anderen werden agile Methoden in mittlerweile sehr vielen Softwareentwicklungen eingesetzt. Dieses Buch stellt Konzepte einer Entwicklungsmethodik vor, die UML mit Elementen agiler Methoden kombiniert. Dabei werden ausgehend von den Klassen-, Objekt-, Sequenzdiagrammen, Statecharts und der OCL die Umsetzung nach Java und dem Testframework JUnit diskutiert, sowie Techniken zur Entwicklung von Testfällen und der evolutionären Weiterentwicklung von Entwürfen mit Refactoring-Regeln vorgestellt. Der im Buch beschriebene Ansatz eignet sich besonders für den Einsatz in Anwendungsdomänen, in denen hohe Qualität, Flexibilität und Erweiterbarkeit der Systeme erwartet wird, und sich Anforderungen dynamisch und noch während der Erstellung des Produkts weiterentwickeln. Diese Methodik ist geeignet für Praktiker, die Modellierungstechniken professionell nutzen wollen. Unter http://www.se-rwth.de/mbse ist weiterführendes Material zu finden.

Die zweite Auflage ist durchgehend überarbeitet und basiert auf UML 2.3 und der Java-Version 6.

Inhaltsverzeichnis

Frontmatter
1. Einführung
Abstract
Viele Projekte zeigen mittlerweile eindrucksvoll, wie teuer falsche oder fehlerhafte Software werden kann.
Um die stetig wachsende Komplexität von Software-basierten Projekten und Produkten sowohl in den Bereichen betrieblicher oder administrativer Informations- und Websysteme als auch bei Cyber-Physischen Systemen wie Auto, Flugzeug, Produktionsanlagen, E-Health- und mobilen Systemen beherrschbar zu machen, wurde in den letzten Jahren ein wirkungsvolles Portfolio an Konzepten, Techniken und Methoden entwickelt, die die Softwaretechnik zu einer erwachsenen Ingenieursdisziplin heranreifen lassen.
Das Portfolio ist noch keineswegs ausgereift, muss aber insbesondere in dem derzeitigen industriellen Softwareentwicklungsprozess noch sehr viel mehr etabliert werden. Die Fähigkeiten moderner Programmiersprachen, Klassenbibliotheken und vorhandener Softwareentwicklungswerkzeuge erlauben uns heute den Einsatz von Vorgehensweisen, die noch vor kurzer Zeit nicht realisierbar schienen.
Bernhard Rumpe
2. Agile und UML-basierte Methodik
Abstract
Der zielgerichtete, in eine Methodik eingebettete Einsatz ist für die erfolgreiche Verwendung einer Modellierungssprache unverzichtbar. In diesem Kapitel werden Charakteristika agiler Methoden, insbesondere des Extreme Programming (XP) Prozesses [Bec04, Rum01] herausgearbeitet. Gemeinsam mit weiteren Elementen wird daraus ein Vorschlag für eine agile, auf der UML basierende Methodik eingeführt.
Bernhard Rumpe
3. Kompakte Übersicht zur UML/P
Abstract
Dieses Kapitel beinhaltet eine kompakte Zusammenfassung der in Band 1 [Rum11] eingeführten UML/P. Diese Zusammenfassung beschreibt einige, aber nicht alle Besonderheiten und Abweichungen des UML/P-Profils vom UML 2.3 Standard. Für eine genauere Lektüre sei Band 1 empfohlen. Kenner der UML können dieses Kapitel bei Bedarf später nachschlagen. Die verwendeten Beispiele zur Einführung der Sprache beziehen sich im Wesentlichen auf die in Band 1 beschriebene Auktionssystem-Anwendung.
Bernhard Rumpe
4. Prinzipien der Codegenerierung
Abstract
Codegenerierung ist ein wesentlicher Erfolgsfaktor für den Einsatz von Modellen im Softwareentwicklungsprozess. Aus vielen Modellen kann Code für das Produktionssystem oder für Testtreiber effizient generiert und damit die Konsistenz zwischen Modell und Implementierung verbessert sowie Ressourcen eingespart werden. Dieses Kapitel beschreibt grundlegende Konzepte, Techniken und Probleme der Codegenerierung und skizziert eine Darstellungsform für Regeln zur Codegenerierung in Form von Transformationsregeln.
Bernhard Rumpe
5. Transformationen für die Codegenerierung
Abstract
Dieses Kapitel ergänzt die prinzipiellen Überlegungen zur Codegenerierung aus Kapitel 4 um konkrete Techniken und Transformationen. Dabei wird die Vorgehensweise zur Umsetzung von Klassendiagrammen, Objektdiagrammen, der Codegenerierung aus der OCL, der Ausführung von Statecharts und der Testgenerierung aus Sequenzdiagrammen in Java in jeweils einem der Abschnitte 5.1 bis 5.5 erklärt. Bei den Klassendiagrammen werden dabei eher bereits bekannte Konzepte in kompakter Form als Transformationen aufbereitet und Alternativen diskutiert. Insbesondere der Abschnitt 5.1 über Klassendiagramme dient dabei zur Demonstration der systematisierten Darstellung von Transformationsregeln für die Codegenerierung.
Für Statecharts werden Generierungsalternativen intensiv diskutiert. Für alle anderen Notationen werden vor allem grundlegende Prinzipien der Übersetzung behandelt, weil so Nutzern unter anderem die Möglichkeit gegeben wird, auf die Zielsprache bzw. Zielumgebung zugeschnittene Übersetzungsformen selbst zu entwickeln bzw. in Abwesenheit eines geeigneten Werkzeugs diese manuell durchzuführen.
Bernhard Rumpe
6. Grundlagen des Testens
Abstract
Die Durchführung von Tests ist eine wesentlichen Maßnahme zur Softwarequalitätssicherung für alle Teile des Produktionssystems. Das Testen der Implementierung auf Robustheit, Konformität zur Spezifikation, Korrektheit gegenüber den Anforderungen muss daher essentieller Bestandteil jeder qualitätsorientierten Softwareentwicklungsmethode sein. In diesem Kapitel werden die dazu notwendigen Grundlagen geklärt.
Bernhard Rumpe
7. Modellbasierte Tests
Abstract
Auf Basis des vorangegangenen Kapitels 6 stehen in diesem Kapitel praktische Fragestellungen zur Umsetzung von Tests mit der UML im Vordergrund. Dabei wird demonstriert, wie unter Nutzung der UML/P effizient Testfälle definiert werden und welche Diagrammarten sich dafür eignen.
Bernhard Rumpe
8. Testmuster im Einsatz
Abstract
Ergänzend zur Beschreibung der Theorie und der allgemeinen Vorgehensweise bei der Entwicklung von Tests wird in diesem Kapitel der Einsatz der UML/P anhand von Testmustern demonstriert. Mit diesen Mustern wird unter anderem die Definition von Dummies und von funktionalen Tests für nebenläufige und verteilte Systeme skizziert.
Bernhard Rumpe
9. Refactoring als Modelltransformation
Abstract
Refactoring bedeutet Anwendung systematischer und beherrschbarer Transformationsregeln zur Verbesserung des Systementwurfs unter Beibehaltung des extern beobachtbaren Verhaltens. In diesem Kapitel werden zunächst eineMethodik zur Anwendung von Refactoring-Regeln und die Konzepte der Modelltransformationen diskutiert. Auf dieser Grundlage wird ein in der Praxis verwendbarer Beobachtungsbegriff entwickelt, der auf UML/P-Testfällen beruht. Einige Sammlungen von Refactoring-Regeln für die UML/P werden drauf aufbauend im nächsten Kapitel besprochen.
Bernhard Rumpe
10. Refactoring von Modellen
Abstract
Auf Basis der Grundlagen für Modelltransformationen und ihrer Spezialisierung als Refactoring-Regeln beinhaltet dieses Kapitel eine Diskussion von möglichen Formen von Refactoring-Regeln für die UML/P, die Übertragung von Regeln anderer Sprachen auf die UML/P und eine additive Vorgehensweise für die Durchführung größerer Datenstrukturwechsel.
Bernhard Rumpe
11. Zusammenfassung und Ausblick
Abstract
In Band 1 [Rum11] und diesem Band 2 wurden einige modellbasierte Konzepte und Techniken für das sich derzeit rasant weiter entwickelnde Portfolio der Softwaretechnik eingeführt, die basierend auf praktischen Erfahrungen und fundierten analytischen Überlegungen einen doppelten Brückenschlag vornehmen. Zum einen werden mit Hilfe der UML theoretische Erkenntnisse für die Praxis aufbereitet und so für die industrielle Softwareentwicklung besser anwendbar. Zum anderen werden Konzepte agiler Methoden auf den Einsatz der UML übertragen.
Bernhard Rumpe
Backmatter
Metadaten
Titel
Agile Modellierung mit UML
verfasst von
Bernhard Rumpe
Copyright-Jahr
2012
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-642-22430-0
Print ISBN
978-3-642-22429-4
DOI
https://doi.org/10.1007/978-3-642-22430-0

Neuer Inhalt