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
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.