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.

8.1 Module und Abläufe 153<br />

Begriff des Moduls e<strong>in</strong>führen, der <strong>in</strong> der Informatik (und nicht nur dort)<br />

folgendermaßen def<strong>in</strong>iert ist:<br />

• E<strong>in</strong> Modul ist e<strong>in</strong>e vollkommen <strong>in</strong> sich abgeschlossene E<strong>in</strong>heit mit genau<br />

def<strong>in</strong>ierter Funktionalität.<br />

• Für diese Funktionalität gilt ausnahmslos die Regel, dass e<strong>in</strong> Modul immer<br />

nur e<strong>in</strong>e e<strong>in</strong>zige, se<strong>in</strong>em Abstraktionslevel entsprechende Aufgabengruppe<br />

erledigen darf.<br />

Anm.: Es ist hier absichtlich von Aufgabengruppen die Rede und nicht<br />

von E<strong>in</strong>zelaufgaben, zu diesen kommen wir noch <strong>in</strong> e<strong>in</strong>em anderen Zusammenhang.<br />

• E<strong>in</strong> Modul besitzt e<strong>in</strong>e genau def<strong>in</strong>ierte Schnittstelle zur Außenwelt, über<br />

die (und ausschließlich nur über die!!!) andere Module mit ihm kommunizieren<br />

können.<br />

• Die Schnittstelle des Moduls darf immer nur exakt se<strong>in</strong>em Aufgabengebiet<br />

<strong>in</strong>nerhalb se<strong>in</strong>es Abstraktionslevels entsprechen und niemals Implementationsdetails<br />

nach außen preisgeben, die <strong>in</strong> diesem Level belanglos s<strong>in</strong>d.<br />

Anders betrachtet beschreibt die Modulschnittstelle, was man mit ihm<br />

machen kann, niemals aber, wie dies implementiert ist.<br />

• Durch den Begriff der vollkommen <strong>in</strong> sich abgeschlossenen Funktionalität<br />

ist zwar schon alles gesagt, aber weil es so wichtig ist, möchte ich es hier<br />

noch e<strong>in</strong>mal anführen: E<strong>in</strong> Modul darf ke<strong>in</strong>e direkte Abhängigkeit zu besonderen<br />

Implementationen von Codeteilen außerhalb des Moduls haben.<br />

Es ist ausschließlich die Verwendung von anderen Modulen über ihre def<strong>in</strong>ierten<br />

Schnittstellen erlaubt.<br />

• E<strong>in</strong> Modul kann aus beliebig vielen Submodulen bestehen, die <strong>in</strong> ihrem<br />

Abstraktionslevel um e<strong>in</strong>e Stufe tiefer liegen. Das impliziert, dass alle<br />

Module immer hierarchisch nach ihren Abstraktionslevels strukturiert s<strong>in</strong>d.<br />

Nehmen wir zur Demonstration das Teilbeispiel des Zähneputzens und betrachten<br />

die dort identifizierten Beteiligten und Abläufe. Wenn wir den hier<br />

def<strong>in</strong>ierten Modulbegriff auf dieses Konglomerat anwenden (soll heißen, wir<br />

suchen Funktionalitätsgruppen), so ergibt sich Folgendes:<br />

Zahnpflege-Modul: In diesem ist alle Funktionalität zu f<strong>in</strong>den, die mit der<br />

Zahnpflege zu tun hat. Dies be<strong>in</strong>haltet, wie man e<strong>in</strong>e Zahnbürste gebraucht,<br />

dass es Zahnpasta gibt und wie man mit ihr umgeht, etc.<br />

Behälter-Modul: Dieses Modul fasst alle Funktionalität zusammen, die mit<br />

Behältern zu tun hat, nämlich, welche es gibt (Tube, Becher, Kasten),<br />

wie man mit ihnen umgeht, etc.<br />

Wasserversorgungs-Modul: Dieses Modul fasst alles zusammen, was man zur<br />

Wasserversorgung an Funktionalität braucht, also Wasserleitung, Wasserhahn,<br />

wie man diesen bedient, etc.<br />

Mensch: Dieses Modul fasst das gesamte Zusammenspiel der E<strong>in</strong>zelteile des<br />

Menschen (Hände, Mund, etc.) zusammen und auch, wie e<strong>in</strong> Mensch mit<br />

se<strong>in</strong>er Umwelt umgeht (greifen, sehen, etc.).

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!