Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Wir könnten natürlich auch die Prozedur an<strong>der</strong>s definieren:<br />
Schicht(i): if i>1<br />
then Schicht einlegen;<br />
Schicht (i-1)<br />
else Schicht einlegen<br />
Hier wird die Prozedur noch einmal aufgerufen, bevor sie fertig ist. Man nennt diese Prozedur deshalb rekursiv.<br />
Mit den Parametern und <strong>der</strong> Rekursion haben wir die Strukturierungsmöglichkeiten von Pascal erreicht.<br />
Mit diesen Möglichkeiten <strong>der</strong> Ablaufstrukturierung und den noch zusätzlichen Möglichkeiten <strong>der</strong> Datenstrukturierung<br />
kann man alle Verfahren beschreiben, die sich überhaupt beschreiben lassen. Die Untersuchung,<br />
welche Verfahren sich algorithmisch beschreiben lassen, ist ein Thema <strong>der</strong> theoretischen <strong>Informatik</strong>.<br />
1.3.5 Modularisierung<br />
Es zeigt sich nun in <strong>der</strong> Praxis, daß man weitere Strukturierungsmöglichkeiten braucht, um einen zuverlässigen<br />
Betrieb zu gewährleisten. Stellen Sie sich vor, <strong>der</strong> Koch darf in die Kasse greifen, obwohl nur <strong>der</strong> Kassierer<br />
für die Kasse verantwortlich ist, und <strong>der</strong> Kassierer greift ins heisse Öl, da er nicht als Koch ausgebildet ist. In<br />
unseren Burger-Betrieb hat je<strong>der</strong> seine Aufgaben und kein an<strong>der</strong>er kann in seinen Bereich eingreifen. Daraus<br />
ergibt sich, daß <strong>der</strong> Betrieb eine Sammlung von Teilbetrieben (Küche, Kasse, Buchhaltung) ist, die sich<br />
gegenseitig Leistungen anbieten, aber je<strong>der</strong> in seinem Bereich strikt autonom ist. Es gibt nun zwei extreme<br />
Ansätze <strong>der</strong> Kommunikation und des Materialflusses dieser Teilbetriebe:<br />
• Zentral: Je<strong>der</strong> Teilbetrieb empfängt Anweisungen und Materialien vom Chef und liefert alles an den Chef.<br />
Der Chef or<strong>der</strong>t einen einfachen Burger und stellt dafür ein Brötchen, ein tiefgekühltes Hacksteak, eine<br />
Portion Salatblätter, Tomaten, Essiggurken und KetchUp zur Verfügung. Der Koch gibt den fertigen<br />
Burger an den Chef zurück, <strong>der</strong> ihn ins Fach stellt. Eine solche zentrale Organisation <strong>der</strong> Kommunikation<br />
und des Materialflusses nennt man Top-Down.<br />
• Dezentral: Je<strong>der</strong> Teilbetrieb macht und verwaltet das, was er eben kann. Die Kommunikation erfolgt<br />
direkt zwischen den Teilbetrieben. Die Kasse or<strong>der</strong>t bei <strong>der</strong> Küche einen Burger. Die Küche verlangt<br />
vom Lager ein Brötchen, ein tiefgekühltes Hacksteak, eine Portion Salatblätter, Tomaten, Essiggurken<br />
und KetchUp. Das Lager liefert das Gewünschte, Die Küche macht den Burger fertig und liefert ihn<br />
an die Kasse. Ein Chef in obiger Form ist nicht notwendig. Je<strong>der</strong> Burgerbetrieb ist nach dieser Form<br />
organisiert. Man nennt diese Organisationsform <strong>der</strong> Komunikation und des Materialflusses objektbasiert.<br />
Der Unsinn einer zentralistischen Organisation ist im obigen Beispiel evident. Trotzdem wurde bis etwa 1980<br />
nach diesem Konzept programmiert(, was aber nicht nur ein Fehler <strong>der</strong> <strong>Informatik</strong> war). Das Subsidiaritätsprinzip,<br />
daß jede Einheit das leistet, was sie selbst leisten und verantworten kann, und sich nicht entmündigen<br />
läßt, hat in <strong>der</strong> <strong>Informatik</strong> die Namen Geheimnisprinzip o<strong>der</strong> Datenkapselung, Dies drückt aber nur aus: “den<br />
Koch geht die Art, wie die Kasse arbeitet, nichts an und umgekehrt”. Die schärfere For<strong>der</strong>ung “die Kasse<br />
macht alles, was eine Kasse eben zu tun hat” muß man sich stets dazu denken. In <strong>der</strong> <strong>Informatik</strong> heißen die<br />
Teilbetriebe Moduln o<strong>der</strong> Units. Modula, Ada und Turbo Pascal 5.0 unterstützen das objektbasierte Konzept.<br />
1.3.6 Klassifizierung<br />
Bis jetzt haben wir nur über eine Küche und eine Kasse gesprochen. Das ist aber unökonomisch, da eine<br />
Küche mehr produziert, als eine Kasse verkaufen kann. Daher müssen wir mehrere Kassen einrichten, die<br />
unabhängig voneinan<strong>der</strong> mit <strong>der</strong> Küche zusammenarbeiten. D.h. wir haben zwar nur eine Beschreibung <strong>der</strong><br />
Kasse, aber mehrere Kassen, die nach dieser Beschreibung arbeiten. Die Beschreibung nennen wir Klasse. Die<br />
einzelnen Kassen sind Objekte dieser Klasse, die sich genau nach dem vorgegeben Konzept <strong>der</strong> Klasse Kasse<br />
richten. Das Klassenkonzept wird von Simula67, Smalltalk, Eiffel und von Turbo Pascal 5.5 unterstützt.