Agile Modellierung mit UML : Codegenerierung, Testfälle, Refactoring

by
Format: Hardcover
Pub. Date: 2004-10-25
Publisher(s): Springer-Verlag New York Inc
List Price: $20.95

Rent Textbook

Select for Price
There was a problem. Please try again later.

Rent Digital

Rent Digital Options
Online:30 Days access
Downloadable:30 Days
$5.40
Online:60 Days access
Downloadable:60 Days
$7.20
Online:90 Days access
Downloadable:90 Days
$9.00
Online:120 Days access
Downloadable:120 Days
$10.80
Online:180 Days access
Downloadable:180 Days
$11.70
Online:1825 Days access
Downloadable:Lifetime Access
$17.99
*To support the delivery of the digital material to you, a digital delivery fee of $3.99 will be charged on each digital item.
$11.70*

New Textbook

We're Sorry
Sold Out

Used Textbook

We're Sorry
Sold Out

Summary

Im wachsenden Portfolio von Entwicklungstechniken zeichnen sich zwei aktuelle Trends ab. Zum einen dominiert die UML als Modellierungssprache. Zum anderen werden "agile" Methoden in neuen Bereichen 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 Beziehung der UML zu 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 an Geschäftsprozesse dynamisch weiterentwickeln. Diese Methodik ist geeignet für Praktiker, die Modellierungstechniken professionell nutzen wollen.

Table of Contents

Einführungp. 1
Ziele und Inhalte von Band 1p. 2
Ergänzende Ziele dieses Buchsp. 4
Überblickp. 6
Notationelle Konventionenp. 7
Kompakte Übersicht zur UML/Pp. 9
Klassendiagrammep. 10
Klassen und Vererbungp. 10
Assoziationenp. 11
Repräsentation und Stereotypenp. 14
Object Constraint Languagep. 15
Übersicht über OCL/Pp. 15
Die OCL-Logikp. 18
Container-Datenstrukturenp. 19
Funktionen in OCLp. 26
Objektdiagrammep. 28
Einführung in Obbektdiagrammep. 29
Kompositionp. 30
Bedeutung eines Objektdiagrammsp. 31
Logik der Objektdiagrammep. 32
Statechartsp. 33
Eigenschaften von Statechartsp. 33
Darstellung von Statechartsp. 37
Sequenzdiagrammep. 44
Prinzipien der Codegenerierungp. 49
Konzepte der Codegenerierungp. 52
Konstruktive Interpretation von Modellenp. 54
Testsversus Implementierungp. 56
Tests und Implementierung aus dem gleichen Modellp. 59
Technikender Codegenerierungp. 60
Plattformabhängige Codegenerierungp. 60
Funktionalität und Flexibilitätp. 63
Steuerung der Codegenerierungp. 67
Semantik der Codegenerierungp. 68
Parametrisierung eines Werkzeugsp. 71
Implementierung von Werkzeugenp. 71
Darstellung von Skripttransformationenp. 73
Transformationen für die Codegenerierungp. 77
Übersetzungvon Klassendiagrammenp. 78
Attributep. 78
Methodenp. 82
Assoziationenp. 85
Qualifizierte Assoziationp. 90
Kompositionp. 93
Klassenp. 95
Obbekterzeugungp. 98
Übersetzung von Objektdiagrammenp. 102
Konstruktiv eingesetzte Objektdiagrammep. 102
Beispieleiner konstruktiven Codegenerierungp. 104
Als Prädikate eingesetzte Objektdiagrammep. 106
Objektdiagramm beschreibt Strukturmodifikationp. 109
Objektdiagramme und OCLp. 112
Codegenerierung aus OCLp. 112
OCL-Aussage als Prädikatp. 113
OCL-Logikp. 115
OCL-Typenp. 117
Typen als Extensionp. 119
Navigation und Flatteningp. 120
Quantoren und Spezialoperatorenp. 121
Methodenspezifikationp. 122
Vererbung von Methodenspezifikationenp. 125
Ausführung von Statechartsp. 125
Methoden-Statechartsp. 127
Umsetzung der Zuständep. 128
Umsetzung der Transitionenp. 132
Übersetzung von Sequenzdiagrammenp. 136
Sequenzdiagramm als Testtreiberp. 136
Sequenzdiagramm als Prädikatp. 138
Zusammenfassung zur Codegenerierungp. 140
Grundlagen des Testensp. 143
Einführung in die Testproblematikp. 144
Testbegriffep. 145
Ziele der Testaktivitätp. 147
Fehlerkategorienp. 149
Begriffsbestimmung für Testverfahrenp. 150
Suche geeigneter Testdatenp. 152
Sprachspezifische Fehlerquellenp. 153
UML/P als Test- und Implementierungssprachep. 155
Eine Notation für die Testfalldefinitionp. 158
Definition von Testfällenp. 161
Operative Umsetzung eines Testfallsp. 161
Vergleich der Testergebnissep. 163
Werkzeuge JUnit und VUnitp. 166
Modellbasierte Testsp. 171
Testdaten und Sollergebnis mit Objektdiagrammenp. 172
Invarianten als Codeinstrumentierungenp. 175
Methodenspezifikationenp. 177
Methodenspezifikationen als Codeinstrumentierungp. 177
Methodenspezifikationen zur Testfallbestimmungp. 178
Testfalldefinition mit Methodenspezifikationenp. 181
Sequenzdiagrammep. 182
Triggerp. 183
Vollständigkeit und Matchingp. 185
Nicht-kausale Sequenzdiagrammep. 186
Mehrere Sequenzdiagramme in einem Testp. 186
Mehrere Trigger im Sequenzdiagrammp. 187
Interaktionsmusterp. 188
Statechartsp. 189
Ausführbare Statechartsp. 190
Statechart als Ablaufbeschreibungp. 192
Testverfahren für Statechartsp. 194
Überdeckungsmetrikenp. 196
Transitionstests statt Testsequenzenp. 199
Weiterführende Ansätzep. 200
Zusammenfassung und offene Punktebeim Testenp. 201
Testmuster im Einsatzp. 207
Dummiesp. 210
Dummies für Schichten der Architekturp. 211
Dummies mit Gedächtnisp. 212
Sequenzdiagramm statt Gedächtnisp. 214
Abfangen von Seiteneffektenp. 215
Testbare Programme gestaltenp. 215
Statische Variablen und Methodenp. 216
Seiteneffekte in Konstruktorenp. 219
Objekterzeugungp. 219
Vorgefertigte Frameworks und Komponentenp. 220
Behandlung der Zeitp. 222
Simulationder Zeit im Dummyp. 224
Variable Zeiteinstellung im Sequenzdiagrammp. 224
Muster zur Simulation von Zeitp. 227
Timerp. 228
Nebenläufigkeit mit Threadsp. 229
Eigenes Schedulingp. 230
Sequenzdiagramm als Scheduling-Modellp. 231
Behandlung von Threadsp. 232
Muster für die Behandlung von Threadsp. 234
Probleme der erzwungenen Sequentialisierungp. 235
Verteilung und Kommunikationp. 237
Simulation der Verteilungp. 237
Simulation von Singletonsp. 239
OCL-Bedingungen über mehrere Lokationenp. 241
Kommunikation simuliert verteilter Prozessep. 242
Muster für Verteilung und Kommunikationp. 244
Zusammenfassungp. 245
Refactoring als Modelltransformationp. 247
Einführende Beispiele für Transformationenp. 248
Methodik des Refactoringp. 253
Technische und methodische Voraussetzungen für Refactoringp. 253
Qualitát des Designsp. 255
Refactoring, Evolution und Wiederverwendungp. 256
Theorie der Modelltransformationenp. 258
Modelltransformationenp. 258
Semantik einer Modelltransformationp. 259
Beobachtungsbegriffp. 266
Transformationsregelnp. 270
Korrektheit von Transformationsregelnp. 272
Ansatze der transformationellen Softwareentwicklungp. 274
Refactoring von Modellenp. 277
Quellen für UML/P-Refactoring-Regelnp. 278
Definition und Darstellung von Refactoring-Regelnp. 280
Refactoring in Java/Pp. 282
Refactoring von Klassendiagrammenp. 288
Refactoring in der OCLp. 294
Einführung von Testmustern als Refactoringp. 296
Additive Methode für Datenstrukturwechselp. 299
Vorgehensweise für den Datenstrukturwechselp. 299
Beispiel: Darstellung von Geldbeträgenp. 302
Beispiel: Einführung des Chairs im Auktionssystemp. 306
Zusammenfassungder Refactoring-Technikenp. 314
Zusammenfassung und Ausblickp. 317
Literaturp. 321
Indexp. 331
Table of Contents provided by Publisher. All Rights Reserved.

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.