30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

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.

10.2 Das DDD 261<br />

kann sich sicher nicht immer ganz genau er<strong>in</strong>nern, wer jetzt e<strong>in</strong>e Klasse wie<br />

verwendet hat.<br />

Allen Lesern, die sich bisher immer gesträubt haben, e<strong>in</strong> DDD zu erstellen,<br />

bevor sie zu implementieren begonnen haben, möchte ich <strong>in</strong> der Folge e<strong>in</strong>e<br />

Kompromisslösung vorstellen, wie sie <strong>in</strong> kle<strong>in</strong>en Projekten recht brauchbar<br />

e<strong>in</strong>gesetzt werden kann. Sie ist nicht vollkommen gleichwertig zu e<strong>in</strong>em echten<br />

DDD, aber sie stellt zum<strong>in</strong>dest e<strong>in</strong>e deutliche Verbesserung im Vergleich<br />

zur Vorgehensweise dar, gar ke<strong>in</strong> DDD zu schreiben. Außerdem bekommt<br />

man durch diese Methode e<strong>in</strong>igermaßen dokumentierten Source Code, ohne<br />

h<strong>in</strong>terher mühsam dokumentieren zu müssen.<br />

10.2.1 Klassendiagramm<br />

Im ersten Schritt nimmt man das ADD zur Hand. Aus der dar<strong>in</strong> umrissenen<br />

Architektur ergibt sich <strong>in</strong> der Folge durch mehrere Analyse- und Verfe<strong>in</strong>erungsschritte<br />

das grobe Klassendiagramm, wie es <strong>in</strong> Abbildung 10.1 dargestellt<br />

ist. Die Ableitungspfeile s<strong>in</strong>d ja schon bekannt, die strichlierten Pfeile<br />

<strong>in</strong> diesem Diagramm stehen für entsprechende Referenzen der Klassen untere<strong>in</strong>ander<br />

(=HAS-A Relationen).<br />

10.2.2 Klassendeklarationen<br />

Mit Hilfe des Klassendiagramms erstellt man die vollständigen Deklarationen<br />

für die e<strong>in</strong>zelnen Klassen. Hierbei werden gleich die entsprechenden Headers<br />

geschrieben, die auch <strong>in</strong> der fertigen Implementation verwendet werden. Der<br />

Trick bei diesem Schritt ist, dass alle Variablen, Methoden und Funktionen<br />

gleich im Header genau beschrieben werden. Dadurch hat man erstens die<br />

Möglichkeit, zu prüfen, ob das Design funktionieren kann oder ob man vielleicht<br />

etwas vergessen hat. Auch fallen Fehldesigns sehr schnell auf, weil<br />

diese schon <strong>in</strong> der Beschreibung recht umständlich werden. Dadurch aber,<br />

dass man noch ke<strong>in</strong>en Code geschrieben hat, s<strong>in</strong>d Änderungen noch relativ<br />

problemlos möglich. Weil die <strong>in</strong> der Designphase geschriebenen Headers<br />

auch wirklich <strong>in</strong> der Implementation verwendet werden, s<strong>in</strong>d <strong>in</strong> der hier abgedruckten<br />

Version auch e<strong>in</strong> paar Inl<strong>in</strong>e Methoden zu f<strong>in</strong>den, die nicht aus<br />

der Designphase, sondern aus der Implementation kommen.<br />

E<strong>in</strong> ganz großer Vorteil bei dieser Vorgehensweise ist auch, dass man die<br />

Headers an andere Entwickler zur Implementation weitergeben kann. Durch<br />

die genaue Beschreibung müssen diese dann nicht selbst alles noch e<strong>in</strong>mal<br />

von vorn durchdenken (und dabei vielleicht das Design verletzen), sondern<br />

können nach genauer Vorgabe zur Implementation schreiten. Schreiten wir<br />

also zur Tat...<br />

E<strong>in</strong> ke<strong>in</strong>er Exkurs: Im Anschluss an die dokumentierten Klassendeklarationen<br />

f<strong>in</strong>den sich noch ausgewählte Teile des Source Codes. Diese sollen

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!