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.

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

• Sie besteht aus mehreren verschiedenen festen und flüssigen Nahrungsmitteln<br />

<strong>in</strong> verschiedenen Zuständen (z.B. warm/kalt). Die Zusammenstellung<br />

ist beliebig.<br />

Fahrzeug: Die Beteiligung des Fahrzeugs wird hier erwähnt für den Fall,<br />

dass die Person nicht zu Fuß zur Arbeit geht. Es gibt verschiedenste<br />

Ausprägungen von Fahrzeugen, z.B. Fahrrad, Auto, Bus, etc., die alle<br />

ganz verschiedene Eigenschaften haben. E<strong>in</strong>e Eigenschaft ist ihnen allen<br />

geme<strong>in</strong>sam: sie s<strong>in</strong>d Fortbewegungshilfen, die man entsprechend ihrer<br />

anderen Eigenschaften verwenden kann.<br />

Gebäude: E<strong>in</strong> Gebäude ist e<strong>in</strong> beliebiges Bauwerk mit vielen möglichen Eigenschaften.<br />

E<strong>in</strong>e der Grundeigenschaften ist, dass es e<strong>in</strong>en oder mehrere<br />

Räume be<strong>in</strong>haltet und (hoffentlich...) zum<strong>in</strong>dest e<strong>in</strong>en E<strong>in</strong>- bzw. Ausgang<br />

hat.<br />

Arbeitsplatz: Obwohl der Arbeitsplatz zuvor implizit <strong>in</strong> e<strong>in</strong> Gebäude verlegt<br />

wurde, muss das natürlich nicht se<strong>in</strong>. E<strong>in</strong> Arbeitsplatz ist e<strong>in</strong> beliebiger<br />

Platz mit der e<strong>in</strong>zigen Eigenschaft, dass man dort zum<strong>in</strong>dest zeitweise<br />

se<strong>in</strong>e Arbeit verrichtet.<br />

Ich habe zuvor bewusst ganz e<strong>in</strong>fach h<strong>in</strong>geschrieben, dass man <strong>in</strong> das<br />

Gebäude h<strong>in</strong>e<strong>in</strong>geht und den Arbeitsplatz ansteuert, um zu zeigen, wie<br />

leicht man e<strong>in</strong>en Designfehler begehen kann! Würde man diese Analyse<br />

hier nicht durchführen, kann es nur allzu leicht passieren, dass e<strong>in</strong>e Eigenschaft<br />

e<strong>in</strong>es Arbeitsplatzes ist, dass er <strong>in</strong> e<strong>in</strong>em Gebäude liegt. Das<br />

ist ganz e<strong>in</strong>fach falsch! Man stelle sich vor, dass e<strong>in</strong>e solche Fehlannahme<br />

E<strong>in</strong>gang <strong>in</strong> e<strong>in</strong>e Softwarearchitektur f<strong>in</strong>det und plötzlich muss man<br />

mittels dieser Architektur e<strong>in</strong>en Förster modellieren, der se<strong>in</strong>e Arbeit im<br />

Wald verrichtet... womit sofort die nächste Fehlannahme auffällt: Es<br />

wurde auch impliziert, dass der Weg zur Arbeit zu e<strong>in</strong>em Gebäude führt.<br />

Das ist aber auch nicht zw<strong>in</strong>gend!<br />

Vorsicht Falle: Man sieht, selbst bei e<strong>in</strong>er sehr groben Modellierung e<strong>in</strong>es<br />

völlig alltäglichen Ablaufs kann es schon zu Fehlern kommen. Je detaillierter<br />

man Abläufe beschreibt, umso mehr Chancen hat man, solche Fehler auch<br />

wirklich sofort zu lokalisieren und zu korrigieren. Dies macht man so lange,<br />

bis man im Groben e<strong>in</strong>mal e<strong>in</strong> schlüssiges Modell von Beteiligten und Interaktionen<br />

zwischen diesen hat. Die Abstraktionsebene darf man dabei nicht<br />

verändern, man steht immer noch als Beobachter außerhalb des Problems<br />

und analysiert das Gesamtmodell.<br />

Im Normalfall modelliert man auch nicht nur e<strong>in</strong>en e<strong>in</strong>zelnen Ablauf, wie<br />

es hier der Fall ist, sondern man modelliert e<strong>in</strong>e ganze Reihe von sogenannten<br />

Use-Cases. Jeder Use-Case ist e<strong>in</strong> ganz bestimmter Prozess, der mit bzw. <strong>in</strong><br />

e<strong>in</strong>em System durchführbar se<strong>in</strong> muss. Aus der Analyse aller dieser Use-<br />

Cases ergibt sich dann das grobe Gesamtmodell.<br />

Sobald das Modell schlüssig ist, geht man e<strong>in</strong>en Schritt <strong>in</strong> die Tiefe.<br />

Je nach Problemstellung gibt es verschiedene Interpretationen, was nun e<strong>in</strong>

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!