Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4.5 Probleme des Entwurfs 37<br />
Komponente angepasst werden muss (o<strong>der</strong> die Komponente an den Entwurf – sofern<br />
das überhaupt geht, was man meist erst weiß, wenn man es versucht hat).<br />
Entwerfen ist eine Tätigkeit, die am effektivsten von einer kleinen Gruppe durchgeführt<br />
wird. Auf <strong>der</strong> an<strong>der</strong>en Seite muss <strong>der</strong> <strong>Projekt</strong>leiter aus Effizienzgründen alle<br />
Mitarbeiter im Team beschäftigen. Das führt oft dazu, dass statt eines richtigen Entwurfs<br />
ad hoc eine Aufteilung in Teilsysteme vorgenommen wird, die dann von kleineren<br />
Gruppen implementiert werden (DeMarco, 1998, Kap. 19). Der Entwurf entsteht<br />
so mehr o<strong>der</strong> weniger implizit, was auch dazu führt, dass die Entwurfsstruktur<br />
und die Organisationsstruktur sich sehr ähnlich sind (dieses Phänomen ist bekannt<br />
als Conway’s Law; Conway, 1968). Durch ein solches Vorgehen wird aber die Chance<br />
verschenkt, einen guten Entwurf (insbeson<strong>der</strong>e mit minimalen Schnittstellen, Parnas,<br />
1972a) zu erstellen. Als Folge ergeben sich unnötige Redundanz und hohe wechselseitige<br />
Abhängigkeiten zwischen den Teilsystemen. Dies bedingt eine hohe Kommunikation<br />
zwischen den Entwicklergruppen, da häufig über Schnittstellen neu verhandelt<br />
werden muss. Auf diese Weise nimmt nicht nur Implementierungsaufwand zu,<br />
son<strong>der</strong>n auch <strong>der</strong> Wartungsaufwand.<br />
Die empfohlene Vorgehensweise ist deshalb, dass zunächst ein kleines Architekturteam<br />
(etwa drei bis fünf Entwickler) in Ruhe einen Architekturentwurf ausarbeitet. Es<br />
kann auch sinnvoll sein, einen Chefarchitekten zu bestimmen, <strong>der</strong> in Zweifelsfällen<br />
die letzte Entscheidung trifft und einen einheitlichen Stil durchsetzt. Wenn <strong>der</strong> Architekturentwurf<br />
fertig ist, können Untergruppen gebildet werden, welche die Teilsysteme<br />
und Komponenten unter <strong>der</strong> Aufsicht <strong>der</strong> Architekturteams fertig entwerfen<br />
und dann implementieren. Die Personalausstattung eines <strong>Projekt</strong>s sollte entsprechend<br />
angepasst werden. Zu Beginn des Entwurfs wird nur wenig Personal eingesetzt.<br />
In <strong>der</strong> Implementierungsphase wird dann das Personal aufgestockt, weil sich<br />
die Arbeit besser verteilen lässt. Notfalls können „überflüssige“ Teammitglie<strong>der</strong> während<br />
des Architekturentwurfs auch mit <strong>der</strong> Ausarbeitung von Testfällen und des<br />
Benutzerhandbuchs auf <strong>der</strong> Basis <strong>der</strong> Spezifikation beschäftigt werden.<br />
4.5.3 Technologie<br />
Even if we knew the requirements, there are many other facts that we need to know to design<br />
the software. Many of the details only become known to us as we progress in the implementation.<br />
Some of the things we learn invalidate our design and we must backtrack.<br />
(Parnas, Clements, 1986, S. 251)<br />
Nach <strong>der</strong> bereits angesprochenen Studie <strong>der</strong> KPMG (1995) ist neu eingeführte Technologie<br />
mit 45% ein weiterer häufig genannter Grund für das Scheitern von Softwareprojekten:<br />
„Technology is developing faster than the skills of the developers.“ Die<br />
Entwickler müssen sich zunächst in die Technologie einarbeiten und machen anfangs<br />
viele Fehler bei <strong>der</strong> Anwendung <strong>der</strong> Technologie. Außerdem sind neue Technologien<br />
in <strong>der</strong> Regel noch nicht ausgereift (das gilt insbeson<strong>der</strong>e für Software-basierte Technologien).<br />
Schließlich kann die Technologie auch für das Problem unangemessen o<strong>der</strong><br />
unbrauchbar sein, was häufig vorher nicht abzusehen ist. Daher stellt <strong>der</strong> Einsatz<br />
einer neuen Technologie beim Entwurf ein nicht zu vernachlässigendes Risiko dar.<br />
Aber auch mit vorhandener Technologie gibt es Schwierigkeiten. Zunächst muss <strong>der</strong><br />
Entwerfer Wissen über verfügbare Technologien haben, die er einsetzen kann (z. B.<br />
Middleware, Standardsoftware, Komponenten, Bibliotheken, Rahmenwerke). Er