30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

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.

8. Objektorientierung Allgeme<strong>in</strong><br />

Ich habe ganz bewusst bisher im Buch ke<strong>in</strong> umfangreicheres Beispiel besprochen,<br />

da die wichtigsten Features, die C ++ eigentlich erst ausmachen, <strong>in</strong> der<br />

Objektorientierung der Sprache liegen. Um nicht manche Leser dazu anzuregen,<br />

imperatives C ++ zu programmieren anstatt sauberes, echt objektorientiertes<br />

C ++, wollte ich mit e<strong>in</strong>em größeren Beispiel abwarten, bis zum<strong>in</strong>dest<br />

die wichtigsten OO-Konstrukte von C ++ bekannt s<strong>in</strong>d.<br />

E<strong>in</strong>es möchte ich gleich vorausschicken: Zu wissen, wie man Klassen und<br />

Objekte def<strong>in</strong>iert und wie man technisch gesehen damit arbeitet, macht noch<br />

lange ke<strong>in</strong>e Objektorientierung! Objektorientierung ist e<strong>in</strong> Denkmodell, das<br />

von C ++ unterstützt wird. Durch diese Unterstützung kann man e<strong>in</strong> sauberes<br />

OO-Design auch elegant <strong>in</strong> C ++ implementieren. Das bedeutet aber ke<strong>in</strong>eswegs,<br />

dass Code, der irgendwelche OO-Features verwendet, auch wirklich<br />

sauberer objektorientierter Code ist!<br />

Genau aus diesem Grund f<strong>in</strong>de ich es wichtig, erst e<strong>in</strong>mal die Grundgedanken<br />

der Objektorientierung zu diskutieren und Beispiele dafür zu br<strong>in</strong>gen,<br />

bevor wir überhaupt dazu kommen, wie diese Grundgedanken von der Sprache<br />

unterstützt werden. Ke<strong>in</strong>e Aktivität im gesamten Entwicklungszyklus<br />

bee<strong>in</strong>flusst e<strong>in</strong> Produkt so stark, wie das Erstellen der Architektur und des<br />

Designs. Im Pr<strong>in</strong>zip ist dies e<strong>in</strong>e B<strong>in</strong>senweisheit, wenn man sich überlegt,<br />

wie seit Jahrtausenden Bauwerke entstehen: Zuerst wird e<strong>in</strong> Plan gemacht,<br />

der die Basis für das Bauwerk darstellt. Der Plan ergibt sich daraus, dass die<br />

Anforderungen für e<strong>in</strong> Bauwerk <strong>in</strong> puncto Platzbedarf, Verwendungszweck,<br />

Stabilität, u.v.m. <strong>in</strong> e<strong>in</strong>e Architektur umgesetzt werden. Die Ästhetik des<br />

Bauwerks ist e<strong>in</strong> direktes Produkt aus se<strong>in</strong>em Design mit den gegebenen<br />

Randbed<strong>in</strong>gungen. Erst wenn der Plan gezeichnet und baustatische Berechnungen<br />

erfolgreich verlaufen s<strong>in</strong>d, wird mit dem tatsächlichen Bau begonnen.<br />

Die gesamte Struktur des Bauwerks steht zu diesem Zeitpunkt vollständig<br />

fest!<br />

Software steht vom Komplexitätsgrad e<strong>in</strong>em Bauwerk <strong>in</strong> ke<strong>in</strong>ster Weise<br />

nach. Wieso also wird hier genau die wichtigste Phase des Designs und<br />

des Entwurfs der Architektur so oft nur äußerst rudimentär durchgeführt?<br />

E<strong>in</strong>e mögliche Antwort und für mich bisher die e<strong>in</strong>zig logische Erklärung ist<br />

folgende:

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!