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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

108 8 Das allgemeine <strong>Qualität</strong>smodell<br />

Diskussion<br />

Knappheit verbessert die Verständlichkeit eines Entwurfs. Außerdem ist er wegen des<br />

geringeren Umfangs leichter zu dokumentieren und schneller zu implementieren.<br />

Schließlich entsteht auch weniger Code, <strong>der</strong> getestet und gewartet werden muss.<br />

Durch einen geringeren Umfang nimmt auch <strong>der</strong> Aufwand für Prüfung und Überarbeitung<br />

des Entwurfs ab. Allerdings führt sehr hohe Knappheit (z. B. nur sehr<br />

wenige, dafür umfangreiche Klassen) zu einer geringeren Verständlichkeit, da dann<br />

Dinge zusammengefasst werden, die eigentlich nichts miteinan<strong>der</strong> zu tun haben<br />

(führt zu einem geringen Zusammenhalt). Im Extremfall besteht das System aus einer<br />

einzigen Klasse System mit einer einzigen Methode run, in <strong>der</strong> sämtliche Funktionalität<br />

implementiert ist – für die Wartung wohl <strong>der</strong> schlimmste Fall.<br />

Die Knappheit steht in Konkurrenz zu Entkopplung und Zusammenhalt. Beispielsweise<br />

kann man zur Entkopplung zweier Komponenten eine weitere Komponente<br />

einführen, wie das beim Mediator (vgl. Gamma et al., 1995) <strong>der</strong> Fall ist. Damit verringert<br />

sich zwar die Kopplung, aber die Anzahl <strong>der</strong> Klassen steigt. In <strong>der</strong> an<strong>der</strong>en Richtung<br />

kann man zwar die Zahl <strong>der</strong> Klassen verringern, indem man einige miteinan<strong>der</strong><br />

verschmilzt, man erhält dadurch aber meistens Klassen mit sehr geringem Zusammenhalt.<br />

Ein guter Entwurf sucht also nach <strong>der</strong> richtigen Balance zwischen Knappheit<br />

auf <strong>der</strong> einen Seite, Entkopplung und Zusammenhalt auf <strong>der</strong> an<strong>der</strong>en Seite.<br />

Reduktion, also eine Vereinfachung ohne Verlust an an<strong>der</strong>en <strong>Qualität</strong>en, ist immer<br />

erstrebenswert; häufig führt sie auch zu mehr Eleganz. Allerdings ist die Reduktion<br />

oft teuer, da sie viel Kreativität und Arbeit erfor<strong>der</strong>t. Mies van <strong>der</strong> Rohes Wahlspruch<br />

„So einfach wie möglich, koste es was es wolle“ ist daher nur dann sinnvoll, wenn die<br />

Kosten keine Rolle spielen. An<strong>der</strong>nfalls ist absolute Knappheit unwirtschaftlich.<br />

Die Vermeidung von Redundanz ist ein spezieller Aspekt <strong>der</strong> Knappheit. Redundanzfreiheit<br />

ist beson<strong>der</strong>s wichtig für die Wartbarkeit, da bei vorhandener Redundanz<br />

(z. B. durch Copy-and-Paste-Programming, Brown et al., 1998) immer alle Kopien<br />

geän<strong>der</strong>t werden müssen (Burd, Munro, 1997). Dazu müssen diese Kopien erst einmal<br />

gefunden und dann konsistent geän<strong>der</strong>t werden. Das ist viel fehleranfälliger, als<br />

wenn die Än<strong>der</strong>ung auf eine Stelle beschränkt wäre.<br />

8.3.2 Strukturiertheit<br />

The only problems we can really solve in a satisfactory manner are those that finally admit a<br />

nicely factored solution.<br />

(Dijkstra, 1972)<br />

Definition<br />

Die Strukturiertheit ist hoch, wenn die Struktur des Entwurfs von einem Menschen<br />

leicht überblickt und erfasst werden kann. Laut Melton et al. (1990) sind die psychologische<br />

(d. h. die wahrgenommene) Komplexität und die strukturelle Komplexität<br />

nicht dasselbe, da bei <strong>der</strong> psychologischen Komplexität <strong>der</strong> Leser eine wesentliche<br />

Rolle spielt, d. h. sie ist individuell verschieden. Die strukturelle Komplexität ist allerdings<br />

ein guter Indikator für die psychologische Komplexität.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!