30.10.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!