1. Das Problem
Die Unified Modeling Language (UML) ist das Ergebnis eines jahrelangen
Entwicklungsprozeßes. UML wird heutzutage in einer Vielzahl von Projekten in allen
Phasen der Entwicklung eingesetzt. Sie wird von einer Vielzahl von Werkzeugen
unterstützt und ist allgegenwärtig in der Literatur. Zum Beispiel spielen Klassen-
und Sequenzdiagramme in dem Standardwerk der Objektorientierten Programmierung
"Design Patterns" [1] eine herausragende Rolle. Klassendiagramme werden allerdings
erstaunlich selten für die Dokumentation von konkreten Klassen aus der Praxis
eingesetzt. "Java in a Nutshell" [2] war bisher eines der wenigen prominenten Werke,
daß Klassendiagramme benutzte. Bezeichnenderweise verzichtet aber auch die neueste
Auflage auf ihre Verwendung.
Dabei stehen eine Vielzahl von Werkzeugen bereit. Typischerweise gibt es auf den
zugehörigen Homepages Tutorials in denen der Gebrauch demonstriert wird. Regelmäßig
wird dabei gezeigt wie man eine Ober- und Unterklasse anlegt und wie man 1-2
Methoden und 1-2 Felder hinzufügt. Das Ergebnis ist dann meist auch noch recht
annehmbar. Die Verhältnisse im wirklichen Leben sehen jedoch ganz anders aus.
Dazu studiere man das Klassendiagramm in Bild 1. (Ein Klick auf das Bild öffnet ein
neues Fenster in dem das Diagramm in Originalgröße angezeigt wird.) Das Diagramm
wurde automatisch mit TogetherJ [3] erzeugt und zeigt 15 Klassen aus dem Collection-
Framework des JDK.
Ein unvoreingenommener Betrachter sollte einmal an Hand des
Diagramms versuchen, die folgenden Fragen zu beantworten:
- Wo ist die Klasse LinkedList und welche Obertypen besitzt sie?
- Welche Klassen sind Implementationen von Set?
- Was ist der Unterschied zwischen den ersten beiden Konstruktoren von LinkedHashSet?
Um das lästige Scrollen auf dem Bildschirm zu vermeiden, könnte man versucht sein,
das Diagramm auszudrucken. Dabei wird man feststellen, daß hierzu 12 DIN A4 Seiten
nötig sind, die auf dem Boden in die richtige Reihenfolge zu bringen und
zusammenzukleben sind.
Ein gelegentlicher Nutzer wird daher nur einen geringen Vorteil aus solchen
Diagrammen ziehen können. Aber auch ein Anfänger, der sich in das
Collection-Framework einarbeiten will und als erstes ein solches Diagramm zu Angesicht
bekommt, wird wohl eher abgeschreckt reagieren. Es ist also kein Wunder, das
Lehrbücher auf solche Diagramme verzichten.
2. Die Ursachen
|