| |
Einige Bücher und
Zeitschriftenartikel meiner umfangreichen
OO-Literatur-Sammlung habe ich im folgenden kommentiert. Die Auswahl der
vorgestellten Bücher ist sehr pragmatisch: es sind einfach diejenigen, für
die ich die Zeit zur Kommentierung gefunden habe. Neue Besprechungen
werden unten angefügt, eine alphabetisch nach Autor sortierte Liste finden
Sie hier:
|
Arrington:
Enterprise Java with UML, Wiley 2001 |
Balzert:
Lehrbuch der Objektmodellierung. 1999 |
Beck:
Extreme Programming Explained. 1999 |
Buschmann
et al: A System of Patterns 1996 |
Buschmann
et al: Patterns for Concurrent and Networked Objects. 2000 |
Carey et al :
San Francisco Design Patterns 2000 |
Cheesman/Daniels:
UML Components. 2001 |
Coad:
Java Modeling in Color with UML, 1999 |
Cockburn:
Writing Effective Use Cases. 2001 |
Conallen:
Building Web Applications with UML 1999 |
Cook/Daniels:
Designing Object Systems with Syntropy. 1994 |
Core
J2EE Patterns. Sun 2001 |
D'Souza:
The Catalysis Approach. Addison Wesley 1999 |
Eriksson:
UML Toolkit, 1998 |
Fowler:
UML Distilled 1997 |
Fowler,
Beck, u.a: Refactoring: Improving the Design of Existing
Code.1999 |
Fowler,
Rice, u.a.: Patterns of Enterprise Application Architecture.
2002 |
Gamma,
Helm, Johnson, Vlissides: Design Patterns. 1995 |
Herzum
/ Sims: Business Component Factory. Wiley 2000 |
Larman,
Craig: Applying UML and Patterns (2nd ed.), 2002 |
Lea:
Concurrent Programming in Java (2nd ed.) 1999 |
Leymann
/ Roller: Production Workflow. 2000 |
Jeckle
et al: UML 2 glasklar. Hanser 2004 |
Monson-Haefel:
Enterprise JavaBeans. O'Reilly 2000 |
Rumbaugh: UML
Reference Manual, 2nd ed. Addison Wesley 2004 |
Tate et.al.: Bitter EJB. Manning
2003 |
| |
| [Gamma95] Gamma, Helm, Johnson, Vlissides:
Design Patterns. Addison-Wesley 1995 Ein Kommentar
erübrigt sich: der Klassiker. UML-Modelle der Patterns finden sich
hier und
(etwas ausführlicher) auf der
Internet-Seite
von Mark Grand, der in seinem Buch die Patterns in Java vorstellt.
Beginnend mit diesem Buch haben sich Patterns als Thema etabliert.
Hier
ist der Einstiegspunkt für alle seitdem entstandenen Pattern-Kataloge.
|
| [Cook94] Steve Cook, John Daniels:
Designing Object Systems with Syntropy. Prentice Hall
94 Heute nur noch von historischem Interesse. Methode der 2.
Generation, die auf OMT aufbaut. |
| [Eriksson 98] Hans-Erik Eriksson, Magnus
Penker: UML Toolkit, Wiley 1998. Das Buch erklärt sehr
ausführlich die UML-Notation. Beginnend bei Use-Case-Diagrammen, über
Klassendiagramme und Dynamik-Diagramme (mit einem extra Kapitel zu
Realtime-Systemen), bis hin zur physikalischen Architektur. Entgegen
der Suggestion durch den Titel scheint keine Verbindung zu den
“offiziellen” UML-Autoren vorhanden, insofern ist wie bei jedem dieser
Titel zu fragen, inwieweit sich die Autoren an die UML halten und
inwieweit eigenwillige Interpretationen vorgetragen werden. Meines
Erachtens ist die vorgetragene UML-Interpretation sehr treffend
und korrekt, die Beispiele sind meist eigene Beispiele und
gelungen. Den Abschluss bildet die vollständige Modellierung
einer Bibliothek, von den Use-Case-Diagrammen bis zur Implementierung in
Java. Auf den 27 Seiten wird das Wichtigste vorgestellt, auf der
beigefügten CD ist das vollständige Modell enthalten.
An einem solch ausführlichen Beispiel entzünden
sich am ehesten die Diskussionen. Für meinen Geschmack wird zu viel mit
find-Methoden auf Klassenebene gearbeitet, die ein bestimmten Objekt
anhand von Suchkriterien heraussuchen. Auch an den Stellen, an denen es
möglich wäre, wird nicht navigierend gearbeitet. Vermutlich ist die
Ursache dafür, dass bei dem System sogar eine einfache Persistenz
eingebaut ist, und Assoziationen nicht über Objektreferenzen
angesprochen werden, sondern vermittels der Persistenzschicht.
|
| [Fowler 97] Martin Fowler, Kendall Scott:
UML Distilled. Addison Wesley 1997 Eine schlanke
Beschreibung der UML, die vor den "offiziellen" UML-Büchern erschienen
ist. Zeigt, was man in der täglichen Analyse-Arbeit so braucht. Sehr
empfehlenswert. Es gibt eine deutsche Übersetzung und eine Neuauflage
von 1999. |
| [Beck 99] Kent Beck: Extreme Programming
Explained. Addison Wesley 1999 Ist nicht mein Ding, da ich im
Herzen Modellierer bin und Kent Beck - was ich so zwischen den Zeilen
heraushöre - nicht viel von graphischer Modellierung hält. Innerhalb der
XP-Gemeinde gibt es aber auch welche, die der Modellierung ihren Platz
einräumen, siehe http://www.ronin-intl.com/publications/xm.htm
(vielen Dank an Rainer Bauer für den Hinweis). Meiner Ansicht
nach wird in dem Buch Refactoring überbetont. Wenn in Analyse oder
Architektur etwas verbockt wurde, lässt sich das mit Refactoring kaum
mehr ausbügeln. |
| [Coad 99] Peter Coad, Eric Lefebvre, Jeff de
Luca: Java Modeling in Color with UML, Prentice Hall 1999
Besser ist eigentlich der Untertitel “Enterprise Components and
Process”. Für Peter Coad und seine Coautoren mag vielleicht das
Wichtigste sein, dass die Modellierung von Problem-Domain-Objekten auf 4
Archetypen reduziert werden kann:
- dingliche Objekte, die individuell identifizierbar sind (Artikel,
Personen, Organisationen, Plätze, u. ä.)
- Beschreibungen, die für mehrere dieser dinglichen Objekte
gelten
- Rollen, die dingliche Objekte einnehmen (Kassierer, Kunde,
bestellter Artikel etc..)
- Vorgänge (Bestellung, Rechnung, etc.)
Die Klassen dieser Archetypen werden nicht nur mit entsprechenden
UML-Stereotypen gekennzeichnet, sondern auch in unterschiedlicher Farbe
dargestellt - daher die Farbe im Buchtitel. Naja. Ich finde an
diesem Buch sehr lehrreich und wichtig, dass es in geballter Form
Problem-Domain-Modelle für alle Industriebereiche vorgestellt: für
Materialwirtschaft, für Fertigung, für Verkauf, für Personalwirtschaft,
für Planung etc. etc. Nicht in der betriebswirtschaftlichen Tiefe wie die
Referenzmodelle von Prof. Scheer, aber das ist ja auch nicht der
Anspruch. Getragen wird das Buch von der Vorstellung dieser Modelle, und
begleitend werden verschiedene Design-Probleme erörtert und die gewählte
Lösung begründet. Natürlich sind die Modelle in UML (es werden
Klassendiagramme und Sequenzdiagramme benutzt) und der Beispielcode in
Java.
|
| [D'Souza 99] Desmond F. D'Souza:
Objects, Components and Frameworks with UML. The
Catalysis Approach. Addison Wesley 1999 Mit UML hat
das Buch nicht so viel zu tun, interessanter sind die eigenen Konzepte
dieser Methode, die in UML ausgedrückt werden, wenn es passt, und in
eigener Notation, wenn es darüber hinausgeht (oft der Fall). Ich habe
nur einige Ausschnitte gelesen, interessant fand ich - das Konzept
der Aktionen, first class model elemente wie die Klassen, mit
Verfeinerungskonzept dafür, auf der untersten Ebene dieser Verfeinerung
entspricht eine Aktion einer Nachricht/Operation.
|
| [Lea 99] Doug Lea: Concurrent Programming in
Java (2nd ed.) Design Principles and Patterns. Addison Wesley 1999
Inhaltsangabe hier Bewertung: 5 Sterne
für das Buch: selten so viel gelernt.
|
| [Conallen 99] Jim Conallen: Building
Web Applications with UML . Addison Wesley 1999 Es gelingt dem
Autor sehr gut, die Brücke zwischen dieser sich rasant entwickelnden
Technologie (JSP, ActiveX, etc.etc.etc.) und den entsprechenden
Abstraktionen zu schlagen. Die UML wird mit Stereotypen erweitert, so
dass man die wesentlichen Entwurfsentscheidungen für eine Web-Application
damit ausdrücken kann. Conallen kristallisiert drei Architektur-Patterns
heraus:
* Thin Client (Client nutzt irgendeinen
Browser, keine Kontrolle über Client-Konfiguration, alle Business-Logik
wird auf dem Server ausgeführt) * Thick Client (ein
Teil der Business-Logik kann auf dem Client ausgeführt werden)
* Web Delivery (distributed objects, der Web-Browser dient
vor allem zur Verteilung)
|
| [Balzert 99] Heide Balzert: Lehrbuch der
Objektmodellierung. Analyse und Entwurf. Spektrum 1999 Der
Unterschied zum Vorgängerbuch von 1996 ist nicht nur die Verwendung der
UML als Notation, sondern eine durchgreifende Weiterentwicklung von
Inhalt und Struktur. Wie in 1996 ist die Vorstellung der OO-Konzepte und
die Checklisten zur Erstellung der jeweiligen Modelle in verschiedene
Kapitel getrennt. Jede Checkliste enthält drei Teile: a) die
konstruktiven Schritte (wie findet man ein Modellelement?) b)
die analytischen Schritte (ist es ein "gutes" Modellelement?) c)
Hilfestellung für "klassische" Entwickler
|
| [Leymann 00] F. Leymann, D.Roller:
Production Workflow. Concepts and Techniques. Prentice Hall 2000
Die Vorstellung dieses Titels ist auf eine
gesonderte
Seite ausgelagert.
|
| [Fowler 99] Martin Fowler, Kent Beck, u.a:
Refactoring: Improving the Design of Existing Code.
Addison Wesley 1999 Refactoring ist das Ändern von Software
dergestalt, dass sich das externe Verhalten nicht ändert, aber die
interne Struktur verbessert wird. Das Buch enthält einen Katalog von
Refactoring-Maßnahmen einschl. der durchzuführenden Schritte. Teilweise
ist das Resultat der Einsatz eines Patterns aus
[Gamma
95].
|
| [POSA1] Buschmann/Rohnert/Stal/...:
Pattern-Oriented Software Architecture Vol.1. Wiley 1996 Eine
Vorstellung des Inhalts kann ich mir sparen, der ist unter http://www.hillside.net/patterns/books/Siemens/book.html
zu ersehen. Zur Bewertung: ein wichtiges Buch über Patterns, wenig
Überschneidungen mit [Gamma
95], manches gründlicher erklärt. Z.B. enthält POSA1 für mich die
ausführlichste Erklärung von MVC von den vielen, die ich gesehen habe.
|
| [POSA2] Buschmann/Rohnert/Stal/Schmidt:
Pattern-Oriented Software Architecture Vol.2: Patterns for Concurrent
and Networked Objects. Wiley 2000 Wenn ein Web-Server auf einem
Port "horcht", dann geschieht dies in der Regel mit einer Event-Loop,
die einer GUI-Event-Loop recht ähnelt. Eingehende Events werden an
entsprechende Event-Handler weitergeleitet. Das entsprechende Pattern
heisst "Reactor" und eines von 16 Patterns in POSA2. Eine Vorstellung
des Inhalts kann ich mir sparen, der ist unter http://www.cs.wustl.edu/~schmidt/POSA#pgfId-604777
zu ersehen. Der Beispiel-Code ist in der Regel in C++, auf Java wird ab
und zu eingegangen. Beispielsweise sind die Patterns Reactor und
Proactor in dieser Form in Java nicht anwendbar, denn die beiden
Patterns behandeln betriebssystem-nahe asynchrone IO-Funktionen, wie sie
im WIN32- oder POSIX-API unterstützt werden, aber nicht in Java.
|
| [SanFrancisco] J.Carey, B.Carlson, T.Graser:
San Francisco Design Patterns. Blueprints for Business
Software. Addison Wesley 2000 Dies ist nicht ein Buch, um die
Architektur von San Francisco zu verstehen, sondern es enthält Design
Patterns, die für jedermann interessant sind. Im Unterschied zu den
meisten anderen Design Pattern-Büchern geht es hier um Business
Software. Das durchgängig verwendete Beispiel ist ein Food Warehouse,
das ausführlich vorgestellt wird. Eine Übersicht über die 18 Patterns
finden Sie
hier.
|
| Peter Herzum / Oliver
Sims:
Business Component Factory. Component-Based Development for the
Enterprise. Wiley 2000 Vergessen Sie erst mal das Wort
"Factory" im Titel, wichtig ist, dass hier Business Components bis hin
zur Geschäftsprozess-Ebene erstellt werden. Es ist ein grundlegendes,
wichtiges Werk über die Entwicklung von Komponenten.
. Ausführliche Besprechung folgt, wenn Zeit vorhanden.
|
| John Cheesman / John Daniels:
UML Components. A simple process for specifying
component-based software. Addison-Wesley 2001
|
| Alistair Cockburn: Writing
Effective Use Cases. Addison-Wesley 2001 Sehr
empfehlenswert. Besprechung auf einer
gesonderten Seite.
|
| Richard
Monson-Haefel:
Enterprise JavaBeans. 2nd Ed, O'Reilly 2000 Gutes
Buch. Stellt die EJB-Technologie ausführlich vor (in der mir
vorliegenden Ausgabe EJB 1.0 und 1.1) Als Beispiel wird verwendet ein
Schiff mit Decks und Kabinen, die in einer Reiseagentur für eine
Kreuzfahrt reserviert werden können (EntityBeans: Cabin, Ship, Cruise,
Customer und Reservation, TravelAgent ist ein statefull SessionBean,
ProcessPayment ist ein stateless SessionBean
Klassendiagramm). Wie
meistens bei O'Reilly wird keine UML verwendet, sondern eine eigene
grafische Darstellung.
Die offizielle WebPage des Buches: http://www.oreilly.com/catalog/entjbeans2/
und http://www.ejbnow.com/
|
| CT Arrington: Enterprise Java
with UML, Wiley 2001 Das Buch spannt den Bogen von der
Anforderungsanalyse bis zur Implementierung in Java. Für jede Phase
werden nicht nur die Inhalte vorgestellt, sondern auch die Ziele und das
Vorgehen. Diese Bandbreite ist gleichzeitig die grösste Schwäche des
Buches, denn weder wird eine der Technologien in ausreichender Tiefe
vorgestellt, noch die Methodik. Ich persönlich habe kaum etwas neues
gelernt. Hier finden Sie die ausführliche
Besprechung
|
| Martin Fowler: Patterns of Enterprise
Application Architecture. Addison-Wesley Nov. 2002 Dieses
Buch ist vergleichbar mit einem J2EE-Patterns-Buch, geht aber darüber
hinaus, da es von der Technologie abstrahiert. Es werden Patterns
vorgestellt, die für eine moderne kommerzielle Anwendung notwendig sind,
und in J2EE oder .NET oder anderen Servertechnologien umgesetzt werden
können. Dazu zählen Patterns für
| die Persistenzschicht, insbesondere für das objekt-relationale
Mapping |
| die Verteilung bzw. für die daraus entstehenden Probleme
|
| die Präsentation mit HTML und co.
|
| den Zustand einer Benutzer-Sitzung
|
Ein ausführlicher
Überblick findet sich hier. Ein sehr empfehlenswertes Buch.
|
| Craig Larman: Applying UML and
Patterns: an Introduction to Object-Oriented Analysis and Design and the
Unified Process. 2nd ed. Prentice Hall 2002 Mit
[Fowler
97] bestimmt eines der besten Einführungen in UML. Es ist wesentlich
umfangreicher als das Büchlein von Fowler, nicht weil es etwa die UML
tiefer ausloten würde, sondern weil es tatsächlich eine Einführung in
das objektorientierte Modellieren ist, mit einem
durchgängigen Beispiel, bei dem die Modellierungsentscheidungen
ausführlich erörtert werden und Modellierungsalternativen einander
gegenübergestellt werden. Das Beispiel beginnt bei den Use-Cases und
wird fortgeführt bis zu detaillierten Design-Überlegungen. Das Buch ist
strukturiert entlang der Iterationen zur Ausarbeitung des Beispiels, die
notwendige UML wird "an Ort und Stelle" eingebracht. Beispielsweise
finden sich die grundlegenden Aussagen über Use Cases ganz am Anfang des
Buches, während die Relationships zwischen Use Cases erst in der
Elaboration Iteration 3 vorgestellt werden. Als ich die erste Ausgabe
kaufte, war ich von dem Buch enttäuscht. Die ausführlichen Diskussionen
über (aus gewisser Sicht "einfache") Modellierungsprobleme langweilten
mich, und es gab entgegen der scheinbaren Versprechungen im Titel keine
"neuen" Patterns. Heute habe ich verstanden, daß die 5 GRASP-Patterns
nicht Design-Patterns wie in Gamma95
sind, sondern 5 grundlegende Prinzipien zur Zuordnung von
Verantwortlichkeiten, dem zentralen Thema des objektorientierten Designs
(General Responsibility
Assignment Software Patterns).
Sie seien kurz zitiert:
- Information Expert: assign a responsibility to the
information expert - the class that has the information
necessary to fulfill the responsibility.
- Creator: assign class B the responsibility to create an
instance of class A if one or more of the following is true:
- B
aggregates A objects - B contains A objects - B records
instances of A objects ..............
- Low Coupling: assign a responsibility so that (unnecessary)
coupling remains low
- High Cohesion: assign a responsibility so that cohesion
remains high
- Controller: assign the responsibility for receiving or
handling a system event message to a class representing one of the
following choices:
- represents the overall system, device, of
subsystem (facade controller) - represents a use case scenario
within which the system event occurs.
Die dritte Auflage enthält erneut
Verbesserungen, u.a. Verwendung der UML 2.0, Agiles Modellieren, etc.
|
| Mario Jeckle, Chris Rupp, Jürgen Hahn,
Barbara Zengler, Stefan Queins: UML 2 glasklar. Hanser
2004 436 Seiten voll von Details über die UML 2. Ich habe fast keine
Fehler gegenüber der OMG-Spezifikation entdeckt (das bedeutet ein dickes
Lob). Die Beispiele stammen nicht aus dem kommerziellen Bereich, sondern
dem Party-Bereich, und es ist erstaunlich, wieviel passende Erklärungen
die Autoren daraus ziehen können. Die einzige Kritik könnte sein: das
Buch ist zu dick, es erschlägt einen. Anders formuliert: der Leser
sollte UML bereits kennen und sich schon eine eigene Meinung gebildet
haben, was und wie tief er mit UML modellieren will. Die WebSite des
Buches: http://www.uml-glasklar.de/
|
| Deepak Alur, John Crupi, Dan Malks:
Core J2EE Patterns. Best Practices and Design Strategies. Sun 2001
Erstens findet sich der wesentliche Inhalte dieses Buches im Internet,
und zwar
hier, zweitens ist es in
wichtigen Teilen überholt. Ich empfehle stattdessen [Bitter
EJB] oder [Fowler02].
|
| Bruce Tate, Mike Clark, Bob
Lee, Patrich Linskey: Bitter EJB. Manning 2003
Das Buch enthält EJB-Anti-Patterns. Ein Anti-Pattern ist "a literary form
that describes a commonly occurring solution to a problem that generates
decidedly negative consequences."
Es werden insbesondere Anti-Patterns zu Session Beans, Message Beans
(sic!) und
Entity Beans beschrieben. Ein paar Gedanken dazu finden Sie
hier.
Forum des
Buches
Website des Nachbar-Buches "Bitter
Java"
|
| Jim Rumbaugh, Ivar
Jacobson, Grady Booch: The Unified Modeling Language Reference Manual,
2nd ed. Addison Wesley 2004
Die 2.Auflage deckt UML 2.0 ab (Stand Juni 2004). Aber Vorsicht! Das ist
das "Reference Manual", nicht der "User Guide". Das heisst: der Hauptteil
des Buches besteht aus einer alphabetisch angeordneten
Erklärung der UML-Begriffe. Das ist nicht so schwierig zu lesen wie die
Original-Spezifikation der UML, aber doch wesentlich trockener als der
"User Guide"(den es bis jetzt nicht für UML 2 gibt) oder andere
UML-Einführungen. Auf der beigelegten CD sind die verschiedenen Begriffe
untereinander verlinkt, wie es sich für ein Lexikon gehört. Das ist
praktisch. |
|
|