Buchvorstellungen aus LOG IN Heft Nr. 127 (2004)


Forbrig, Peter: Objektorientierte Softwareentwicklung mit UML. Leipzig: Fachbuchverlag (Carl Hanser), 22002. ISBN 3-446-21975-7. 168 S.; EUR 14,90 (einschl. 1 CD-ROM).


Das Buch gliedert sich in drei Teile, nämlich (1) Grundbegriffe der objektorientier- ­ten Softwareentwicklung, (2) UML und (3) Von der Ana­lyse zur Implementation. In der Einführung wird mit Recht darauf hingewiesen, dass Modellierung (realer Objekte) ohne Festlegung eines Ziels bzw. Programmzwecks nicht möglich bzw. sinnlos ist. Im zugehörigen Beispiel, das vom Studenten Paul handelt, vergisst der Autor aber diese Einsicht, indem er sich Gedanken über Pauls Fähigkeiten zum Lernen und Feiern macht. Welchen (vernünftigen) Zweck soll ein entsprechendes Programm haben; wie sollen Lernen und Feiern sinnvoll als Methoden realisiert werden? Spätere Beispiele sind noch bedenklicher; so wird etwa zur Erläuterung des Vererbungsbegriffs von einem Luxustaxi (Kombination aus Bar und Taxi) Gebrauch gemacht.

Bei der Definition der Grundbegriffe lehnt der Autor sich an Balzert (1999) an, beachtet aber nicht, dass dieser Objekte, Klassen, Attribute und Methoden im Zusammenhang der Programmierung (mit JAVA) einführt. Bereits auf den ers­ten Seiten des rezensierten Buchs wird somit deutlich, dass Modellieren ohne Programmieren i.d.R. zu (für Anfänger) unverständlichen Aussagen führt. Wenn gesagt wird, dass ein Objekt einem anderen eine Botschaft schickt, dass es das andere kennt usw., so darf dies ja nicht wörtlich verstanden werden. Für Lernende (Schüler, Studenten) ergeben solche Redeweisen nur einen Sinn, wenn sie anhand eines Programmtexts erfahren, dass Botschaft senden den Aufruf einer Prozedur bedeutet oder dass mit Kennen einer Klasse deren Nennung als Attribut gemeint ist.

Im zweiten Teil geht es um die Unified Modeling Language (UML) als Notation zur Spezifikation, Visualisierung und Konstruktion von Software. Es werden Anwendungsfall-, Klassen- und Verhaltensmodelle besprochen. Dabei wäre es hilfreich gewesen, bei der Definition eines Begriffs (z.B. Anwendungsfall), jeweils auch die Entsprechung in Englisch (use-case) zu nennen. Im Zusammenhang damit fällt auf, dass einmal von Aktionen, zum anderen von Aktivitäten die Rede ist, wobei zunächst nicht gesagt wird, ob es sich um Synonyme handelt. Erst an späterer Stelle wird klar, dass in UML beide Termini unterschiedliche Bedeutung haben. Der Satz: Ein Zustand mit einer internen Aktion wird als Aktivität bezeichnet (S.118) muss allerdings jedem Denkenden als unverständlich erscheinen, denn Zustände können niemals Aktivitäten sein. Ein Satz wie: Semantisch kann diese Abhängigkeit ganz unterschiedliche Ursachen modellieren (S.89) ist sprachlogisch ebenfalls sehr zweifelhaft (Abhängigkeiten modellieren keine Ursachen, und erst recht nicht semantisch). Was hat der Autor sich beim Niederschreiben solcher Sätze eigentlich gedacht? Ein Großteil der angebotenen Sätze muss der Leser sich erst einmal in vernünftiges bzw. verständliches Deutsch übersetzen, bevor er sich mit der Sache auseinandersetzen kann.

Der dritte Teil beschäftigt sich mit Problemen der Softwarespezifikation und stellt unterstützende Techniken zur Ermittlung von Anforderungen vor. Außerdem werden Entwurfsmuster und Modelltransformationen sowie deren Werkzeug­unterstützung betrachtet. In diesem Zusammenhang wird auch eine vom Autor entwickelte Methode zur Verknüpfung von Entwurfsmustern beschrieben. Die Beispiele sind sehr allgemein gehalten, sodass aus der Lektüre eigentlich nur Gewinn zieht, wer den Problemkreis bereits kennt.

Das Sachregister ist dürftig. Die CD-ROM enthält u.a. ein Lernprogramm zu UML, eine Dreißig-Tage-Version des Softwarewerkzeugs RationalRose und Hinweise zur Programmiersprache PAL (Pattern Language), einer an EIFFEL angelehnten Sprache zur Formulierung von Entwurfsmustern, die vom Autor (und Mitarbeitern) stammt.

Fazit: Ein einführendes Buch für Personen, die sich rasch einen Überblick über das Gebiet verschaffen wollen und hinsichtlich logischer Sauberkeit und sprachlicher Präzision keine allzu hohen Ansprüche stellen. Wer sich halbwegs solide Kenntnisse aneignen möchte, muss weitere Bücher zurate ziehen.


Rüdeger Baumann


Literatur

Balzert, H.: Lehrbuch Grundlagen der Informatik. Heidelberg: Spektrum Akademischer Verlag, 1999.


zurück




Stevens, Perdita; Pooley, Rob: UML Softwareentwicklung mit Objekten und Komponenten. München: Pearson Studium, 2001. ISBN 3-8272-7003-5. 305 S.; EUR 39,95.


Das Buch gliedert sich in vier Teile, nämlich (1) Konzeptioneller Hintergrund, (2) UML, (3) Fallstudien und (4) Praxis. Ziel ist eine einführende Darstellung für Studenten, nicht für erfahrene Entwickler. Andererseits wird vorausgesetzt, dass die Leserinnen und Leser eine gewisse Programmiererfahrung mitbringen.

Beim (einführenden) ersten Teil haben die Autoren die richtige Entscheidung getroffen, die objektorientierte Begrifflichkeit und die Verwendung von UML in das Problem der Entwicklung guter (qualitativ hochwertiger) Software einzubetten. Diese sollte den Bedürfnissen bzw. Anforderungen der Benutzer gerecht werden, d.h. nützlich, zuverlässig, flexibel, kostengünstig und verfügbar sein. Anhand von (auch für Schüler instruktiven) Beispielen und Diskussionsfragen werden die hierbei entstehenden Probleme erörtert.

Bei der Erklärung der Begriffe Objekt, Zustand, Verhalten, Nachricht usw. ziehen die Autoren nicht eines der in der Literatur häufig anzutreffenden (Schwachsinns-) Beispiele aus dem täglichen Leben (wie Student, Party, Auto, Geschirrspüler usw.) heran, mit denen man dem Leser entgegenkommen will, ihn in Wirklichkeit aber verwirrt (da sich an ihnen kein vernünftiger Programmzweck erkennen lässt). Vielmehr erläutern sie die Begriffe anhand einer Fallstudie (zur Bibliotheksverwaltung) und geben zugleich einen ersten Überblick über UML. Zum Schluss des ersten Teils wird auf den Software-Entwicklungsprozess im Einzelnen eingegangen.

In Teil 2 wird die Unified Modeling Language (UML, Version 1.3) ausführlich dargestellt. Es geht um Klassen-Modelle, Anwendungsfall-Modelle und Interaktionsdiagramme.

Der dritte Teil ist drei ausführlich diskutierten Fallstudien, nämlich einer Kursverwaltung an der Universität (vergleichbar einer Oberstufenverwaltung am Gymnasium), der Konzeption von Zweipersonenspielen und der Systemsimulation gewidmet. Alle drei Beispiele können auch als Anregung für den Informatikunterricht genutzt werden.

Im vierten Teil wird die Frage (von Teil 1) nach qualitativ hochwertiger Software wieder aufgegriffen und im Licht der bisherigen Begriffe und Einsichten erörtert. Es geht um Wiederverwendung (Komponenten und Entwurfsmuster), Produktqualität (Verifikation, Validierung und Test) sowie schließlich um Prozessqualität (Management, Arbeitsgruppen und Qualitätssicherung). Dieses letzte Kapitel ist insbesondere für Lehrkräfte ins­truktiv, die Projektunterricht durch­führen wollen.

Das Buch setzt sich in gut lesbarer Diktion ausführlich und ehrlich mit den Schwierigkeiten objektorientierter Modellierung auseinander. Es verzichtet auf (nichts sagende) Definitionsversuche der Art Eine Nachricht ist eine Botschaft, über die Objekte miteinander kommunizieren, da eine aussagekräftige Begriffsbestimmung oft gar nicht möglich ist. Vielmehr erschließt sich die Bedeutung eines zu definierenden Begriffs allmählich durch den Sprachgebrauch. Dies funktioniert allerdings nur, wenn hohe sprachliche und logische Präzision angestrebt wird. Dieses Bestreben ist im Buch stets zu erkennen. Es kann ohne Einschränkung empfohlen werden.


Rüdeger Baumann


zurück