Moderne ZeitenBeschreibung informationsverarbeitender Systeme Das ATOS-Magazin 1/99Von den Ingenieuren lernen?Wenn Sie einem anderen Programmierer Ihr Programmlisting zeigen, ist
das dazu vergleichbar, daß ein Elektroingenieur dem anderen eine von
ihm entworfene und fertig aufgebaute Platine zeigt. Es ist für den
anderen Elektroniker nur sehr schwer möglich, die Zusammenhänge dieser
Schaltung zu verstehen. Aber auch der Bastler selbst wird es nicht
leicht haben, allein anhand der Platine die Struktur der Schaltung zu
erläutern. Da er aber beim Entwurf der Schaltung bestimmt nicht
sogleich konkrete Bauelemente aneinanderreihte, sondern sich über eine
Hierarchie von immer konkreter werdenden Schaltplänen der endgültigen
Lösung angenähert hat, kann er durch Vorzeigen dieser Schaltpläne den
anderen schnell seine Gedankengänge nachvollziehen lassen.
Dokumentation?Bei der Dokumentation von Software sind "Schaltpläne" Mangelware. Da
hilft auch ein "gut dokumentierter Quelltext" (wie man oft stolz
formuliert) nicht aus der Patsche. Analog dazu hätte eine "gut doku-
mentierte Platine" neben jedem Bauteil eine Bemerkung stehen, wozu
dieses dient. Kein Elektrotechniker würde sich die Mühe machen, seine
Platine so zu beschriften.
Aufbaubeschreibung versus AblaufbeschreibungAuch wenn ein Programm nunmal eigentlich keine Verschaltung, sondern
nur eine Verhaltensbeschreibung ist, ist es sinnvoll, sich das Pro-
gramm als Verschaltung einzelner Komponenten vorzustellen und es
anhand von Schaltplänen zu entwerfen und zu beschreiben. Das Zusammen-
schalten von einzelnen Komponenten zu einem System beherrscht der
Mensch seit dem frühen Kindesalter, wo er mit seinem Baukasten ge-
spielt hat; und das Verhalten einer einzelnen Komponente zu beschrei-
ben (also ein Programm dazu anzugeben) ist auch nicht sonderlich
schwer für ihn. Es ist daher im Allgemeinen nicht sinnvoll, den Ver-
such zu starten, für ein komplettes System sofort ein großes Programm
anzugeben. Stattdessen sollte man sich wie der Elektroingenieur durch
immer konkreter werdende Schaltpläne der Lösung annähern.
Aber wie sehen nun solche Schaltpläne für Computerprogramme aus? Bei
der Gestaltung der Pläne orientiert man sich an den Bedürfnissen des
Menschen. Wenn etwas geschieht, müssen wir stets auf den Ort des
Geschehens zeigen können. Daß etwas geschieht, dieses aber "nirgendwo"
geschieht, können wir uns nämlich nicht vorstellen. Als zweites suchen
wir immer nach dem Grund des Geschehens. Bei einer schwebenden Gabel
wird man ein Seil oder einen Magneten suchen. Denn überhaupt erst
dadurch, daß wir uns der vielen "wenn - dann"-Beziehungen bewußt sind,
können wir mit unserer Welt umgehen.
Zwei Dinge interessieren daher vorrangig:
∙ Wo geschieht etwas?
∙ Wer ist schuld daran?
Beim Zeichnen der Schaltpläne hat es sich daran angelehnt als sinnvoll
gezeigt, zwischen zwei konkreten Systemkomponententypen zu unterschei-
den: Zum einen sind dies die Orte, an denen etwas geschieht. Das sind
die passiven Komponenten des Systems. Sie werden in runder Form
(Kreise oder Ovale) dargestellt. Dem gegenüber stehen die aktiven Kom-
ponenten, also die Komponenten, die für Änderungen an den Orten
sorgen. Diese Komponenten zeichnet man wie eine Blackbox rechteckig.
Zur Verdeutlichung noch ein kleines Beispiel:
(GFA-Entwicklungsumgebung)
Dargestellt ist eine mögliche GFA-Basic Entwicklungumgebung, bestehend
aus den aktiven (rechteckige) Komponenten Interpreter (mit Editor),
Compiler und Shell. Als passive (runde) Komponenten sehen Sie den
Speicher für die GFA-Datei, für das Compilat, sowie zwei Kanäle, über
die die Shell den Interpreter und den Compiler aufrufen kann.
Das System läßt sich natürlich weiter verfeinern. Man könnte zum Bei-
spiel in die Shell hineinblicken und würde dort wieder einige aktive
und passive Komponenten in irgendeiner Weise miteinander verschaltet
vorfinden. Als aktive Komponenten wird es vielleicht einen Programm-
nachstarter geben oder einen Menü- und Dialogverwalter, der sich um
die Benutzerschnittstelle kümmert. Als passive Komponente taucht viel-
leicht ein Speicher auf, der die Shellkonfiguration enthält (die INF-
Datei).
Beachten Sie, daß zwei Akteure immer nur über eine passive Komponente
miteinander verbunden werden können.
Diese Einführung war natürlich nur sehr knapp. Die Einblicke sollten
aber helfen, wenn später erklärt wird, welche Objekttypen in informa-
tionellen Systemen auftreten.
Von der Variablen zum Objekt