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.