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.

1.2 Motivation 7<br />

über die Hälfte der Gesamtentwicklungszeit h<strong>in</strong>aus ke<strong>in</strong>e Zeile Code produziert.<br />

Danach allerd<strong>in</strong>gs sche<strong>in</strong>t sich die Arbeit von außen gesehen enorm<br />

zu beschleunigen. In sehr kurzer Zeit wird sehr viel implementiert und die<br />

Implementation ist üblicherweise auch relativ fehlerfrei.<br />

Wenn man im Gegensatz dazu den Projektfortschritt bei e<strong>in</strong>er Hacklösung<br />

ansieht, bei der die Arbeit gleich von Beg<strong>in</strong>n an am Computer stattf<strong>in</strong>det, ohne<br />

zuerst e<strong>in</strong> vollständiges (!!) und schlüssiges (!!) Design zu erstellen, dann<br />

beobachtet man als Außenstehender im Pr<strong>in</strong>zip das Gegenteil: Zu Beg<strong>in</strong>n<br />

passiert <strong>in</strong> kurzer Zeit sehr viel und es gibt sehr schnell e<strong>in</strong>en Prototypen zu<br />

sehen, der e<strong>in</strong>en Teil der geforderten Funktionalität mehr oder weniger gut<br />

implementiert. Gewisse Fehler werden natürlich toleriert, denn man steckt<br />

ja noch mitten <strong>in</strong> der Entwicklung. Mit jedem zusätzlichen Feature, das die<br />

Software dem Endprodukt näher br<strong>in</strong>gt, geht die Arbeit schleppender voran.<br />

Nach e<strong>in</strong>er gewissen Zeit bedeuten auch die kle<strong>in</strong>sten Erweiterungen des<br />

halbfertigen Pakets bereits immensen Implementationsaufwand. Außerdem<br />

steigt die Fehlerhäufigkeit auf e<strong>in</strong> unerträglich hohes Maß. Das Beheben von<br />

Fehlern wird immer mehr zum Spießrutenlauf, denn mit jeder Änderung <strong>in</strong><br />

e<strong>in</strong>em Teil der Software passieren ungeahnte D<strong>in</strong>ge <strong>in</strong> anderen Teilen der<br />

Software. Mit Glück ist das geforderte Produkt vom Funktionsumfang her<br />

kle<strong>in</strong> genug, dass man dessen Fertigstellung noch irgendwie mehr schlecht als<br />

recht über die Runden br<strong>in</strong>gt. Sehr oft allerd<strong>in</strong>gs muss man den Kunden erklären,<br />

dass gewisse Features “aus technischen Gründen gar nicht realisierbar<br />

s<strong>in</strong>d” und hoffen, dass diese das akzeptieren.<br />

Noch viel dramatischer wird das Bild, wenn Erweiterungen oder Änderungen<br />

e<strong>in</strong>es existenten Softwarepakets gefordert s<strong>in</strong>d. Bei der sauberen Entwicklung<br />

ist die Erweiterbarkeit e<strong>in</strong> Teil des Konzepts und im Regelfall s<strong>in</strong>d<br />

neue Features relativ e<strong>in</strong>fach realisierbar. Sollte durch neue Features das<br />

Ursprungskonzept verändert werden müssen, so ist auch das im Normalfall<br />

möglich, wenn auch mit e<strong>in</strong>igem Aufwand verbunden. Das Endprodukt bleibt<br />

trotzdem sauber.<br />

Ganz im Gegensatz dazu steht die Erweiterbarkeit der Hacklösung. Schon<br />

die kle<strong>in</strong>sten Änderungen dauern enorm lang und destabilisieren die gesamte<br />

Software. Sehr oft beobachtet man den Fall, dass <strong>in</strong> sogenannten Bugfix-<br />

Releases zwar e<strong>in</strong>ige bekannte schwere Fehler behoben wurden, dafür aber<br />

m<strong>in</strong>destens genau so viele neue Fehler e<strong>in</strong>gebaut wurden, da die Auswirkungen<br />

von Programmänderungen nicht mehr überschaubar s<strong>in</strong>d.<br />

Vollkommen katastrophal wird es, wenn man die Menge an Source-Code<br />

e<strong>in</strong>es sauberen Projekts mit der e<strong>in</strong>er Hacklösung vergleicht. Im Normalfall<br />

ist die Hacklösung bei gleicher Funktionalität gleich x-Mal so groß wie die<br />

saubere Lösung. Nicht nur, dass die Codemenge ungleich größer ist, auch die<br />

Komplexität des Codes ist durch Seiteneffekte enorm.<br />

Es gibt e<strong>in</strong>en ganz bestimmten Grund, warum ich mich über saubere<br />

und Hacklösungen so ausführlich auslasse: Zur Zeit, zu der OO-Sprachen,<br />

<strong>in</strong>sbesondere C ++, ihren E<strong>in</strong>gang <strong>in</strong> die Industrie fanden, war die Euphorie

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!