Direkt zum Hauptbereich

Was ist ein System?


In der Informatik bleibt der Begriff des Systems seltsam unbesetzt. Begriffsprägungen aus der Elektrotechnik oder der Kybernetik lassen sich nicht so recht übertragen. Umso überraschender ist es, dass der Systembegriff des Soziologen Niklas Luhmann als Anregungsquelle taugt und sich überraschend gut mit Konzepten aus der Informatik füllen lässt. Hier ein Versuch interdisziplinärer Annäherung.

Niklas Luhmann war ein Sozialwissenschaftler, er hatte 30 Jahre die Professur für Soziologie an der Universität Bielefeld inne und starb 1998 im Alter von 70 Jahren. Er gilt als einer der Begründer der soziologischen Systemtheorie. Sein Lebenswerk galt der Entwicklung einer "Theorie der Gesellschaft", die er über mehrere Veröffentlichungen hinweg entwarf. Sein Werk ist immens und hat einen bleibenden Einfluss zum Verständnis gesellschaftlicher Systeme hinterlassen.

Luhmann interessierten soziale, psychische und biologische Systeme -- Systeme, die der Inbegriff des Lebendigen sind. Er nennt sie autopoietische, sich selbst erschaffende Systeme. Technische Systeme sind keine Systeme, so Luhmann. Eine Abgrenzung, die ich problematisch finde. Ich habe den Eindruck, dass sich Systeme, wie sie die Informatik erschafft, deutlich näher an der Luhmann'schen Systemdefinition orientieren, als man es auf den ersten Blick glauben mag,

Nach Luhmann definieren sich Systeme nicht aus Elementen und ihren Beziehungen. Das ist ein typisch technisches Systemverständnis, wie es besonders bei Ingenieuren sehr verbreitet ist. Systeme bestehen nicht aus Dingen oder Elementen, Systeme bestehen aus Operationen. Luhmann sagt: "Nur ein System kann operieren, und nur Operationen können ein System produzieren." (Zitat nach Berghaus 2004, S. 39). Durch das Operieren entsteht eine Differenz von System und Umwelt -- wir werden noch besprechen, was das meint. Ein System existiert nur, wenn es operiert. Einer Operation müssen weitere Operationen folgen bzw. folgen können. Das ist die Forderung nach der so genannten Anschlussfähigkeit eines Systems. Ein System muss sich also als operativ geschlossen darstellen.

Durch sein Operieren bildet das System eine Differenz aus, es erschafft sich ein Inneres in Abgrenzung zu einem Äußeren. Dieses Äußere nennen wir die Umwelt des Systems. Entscheidend ist, dass es das System selbst ist, das diese Unterscheidung durch sein Operieren macht. Gleichzeitig bildet diese selbst erzeugte Grenzziehung auch die Grundlage des Systems, seine Umwelt beobachten zu können. Jede Beobachtung ist Unterscheidung, und jede Unterscheidung ist Beobachtung. Wer beobachtet, differenziert, grenzt ab, unterscheidet.

Zu guter Letzt fordert Luhmann von Systemen die Fähigkeit zur Selbstreproduktion. Ein System muss selbst wieder etwas Operierendes hervorbringen können. Das ist die Autopoiesis eines Systems. Die Sprachwurzeln des Begriffs kommen aus dem Altgriechischen und sind leicht zu merken: "auto" wie in auto-matisch oder Auto-mobil heißt "selbst"; die "Poesie" ist im griechischem Wortsinne eine "Erschaffung". Autopoiesis ist also die "Selbsterschaffung".

Ich möchte dieses Systemverständnis in Bezug auf soziale, psychische und biologische Systeme hier nicht ausbreiten, das würde zu weit führen. Wer sich genauer dafür interessiert, dem sei das Buch von Margot Berghaus empfohlen: "Luhmann leicht gemacht", Böhlau-Verlag, 2. Auflage, 2004. Von Luhmann selber ist die "Einführung in die Systemtheorie", herausgegeben von Dirk Baecker, Carl-Auer-Verlag, 4. Auflage, 2008, für einen Laien einigermaßen verständlich.

Fassen wir zusammen, was Luhmann als System definiert:

  • Ein System entsteht durch Operationen.

  • Einer Operation müssen Operationen folgen (können); sonst hört das System auf zu operieren, sprich zu existieren.

  • Durch die Operation wird eine Differenz, eine Unterscheidung erzeugt, durch die sich das System von einer Umwelt abgrenzt.

  • Die Differenzbildung begründet und beschränkt die Fähigkeit, die Umwelt beobachten zu können.

  • Systeme sind autopoietisch, d.h. sie können sich mit ihren Operationen selbst reproduzieren.


Das alles scheint schwer verständlich und kryptisch. Dennoch ist die Nähe zu Konzepten aus der Informatik auffällig. Starten wir einen Versuch, die Luhmann'sche Begriffswelt mit Informatik-Konzepten aufzuladen.

Jedem Informatiker ist der Begriff der Operation vertraut. Eine Operation ist ein atomarer Verarbeitungsschritt. Ein Beispiel ist die Ausführung eines Maschinenbefehls.

Um ein System durch Operationen entstehen zu lassen, muss eine Folge von Operationen irgendwann zu einer Operation führen, die bewirkt, dass es einen Rücksprung zu einer bereits ausgeführten Operation gibt. Der Fluss der Operationen muss zu einem Zirkelschluss führen, damit das System operativ bleibt. Denn nur durch andauerndes Operieren entsteht ein System. Wir wollen diesen geschlossenen Kreislauf von Operationen einen aktiven Prozess nennen. Den Begriff des Prozesses kennen sie zum Beispiel aus der Welt der Betriebssysteme.

Die Operationen des aktiven Prozesses greifen notwendigerweise auf Speicherinhalte zu -- ansonsten passiert nichts Spannendes. Mit anderen Worten, ein aktiver Prozess ist mit einem endlichen Satz an Zuständen und Zustandswerten assoziiert. Darüber entsteht die Differenz zur Umwelt. Alles, was nicht zu den Operationen und zu dem Zustandsraum eines Prozesses gehört, ist die Außenwelt des Prozess-Systems. Der Zustandsraum ist sozusagen der verinnerlichte Teil einer Rechenwelt in den Grenzen eines abgeschlossenen Flusses von Operationen.

Das schließt nicht aus, dass ein anderer Prozess ebenso dieselben Speicherinhalte bzw. Zustände verinnerlicht. Vielmehr sind diese geteilten Bereiche die einzige Möglichkeit zur Kommunikation von Prozessen untereinander. Die Veränderung des Werts einer gemeinsamen Speicherzelle ist Mitteilung einerseits und Beobachtung andererseits. Prozesse können auf diese Weise Informationen austauschen. Wir nennen solch eine geteilte Domäne eine Schnittstelle oder ein Interface. Ein Interface ist kein System!

Wie Sie sehen, führt der abgeschlossene Fluss von Operationen zu einer Assoziation mit einem Speicherbereich und damit zu einer Abgrenzung vom Rest des Speichers. Teilen sich abgeschlossene Operationsflüsse Speicherbereiche, dann kann diese Gemeinsamkeit zur Kommunikation genutzt werden. Das alles ist in Einklang mit der Systemdefinition nach Luhmann!

Prozesse können derart angelegt werden, dass sie sich selbst zu kopieren vermögen. Ist ihnen über eine Operation die Fähigkeit gegeben, einen separaten Fluss von Operationen auf der Kopie in Gang zu setzen, dann hat sich das Prozess-System reproduziert! Prozesse können, sofern sie eine Operation zur Initiierung eines eigenständigen Operationsflusses haben, als autopietisch bezeichnet werden.

Das wird einem Luhmann und vielen anderen Systemtheoretikern sicher widerstreben. Denn Autopoiesis wird als auszeichnendes Merkmal lebender Systeme verstanden. Es scheint auch intuitiv nicht einleuchtend, ein Informatik-System als lebendig zu bezeichnen. Andererseits muss eine Definition des Lebendigen eine klare Aussage machen, was genau das Lebendige vom Nicht-Lebendigen unterscheidet, und dies in einer Weise tun, die durchaus auch den Raum lässt, von Menschenhand geschaffene Systeme eines Tages als lebendig zu klassifizieren.

Beliebte Posts aus diesem Blog

Lidl und der Kassen-Bug

Es gibt Fehler, im Informatiker-Jargon "Bugs", die etwas anrühriges haben. Ich bat den Menschen an der Kasse bei Lidl um einen Moment Geduld und meine Kinder um Ruhe, um nicht den wunderbaren Moment zu verpassen, bei dem es passierte. Der Lidl-Mensch fluchte kurz auf -- und ich war entzückt! "Einen Moment, davon muss ich ein Foto machen!" Und dann machte ich noch eines. Ich bin heute extra für diesen Fehler zu Lidl gepilgert -- ich wollte es mit eigenen Augen sehen. Gestern hat mir ein Student (vielen Dank Herr Breyer) von diesem Fehler in einer EMail berichtet. Ein richtig schöner Fehler, ein Klassiker geradezu. Ein Fehler, den man selten zu Gesicht bekommt, so einer mit Museumswert. Dafür wäre ich sogar noch weiter gereist als bis zum nächsten Lidl. Der Fehler tritt auf, wenn Sie an der Kasse Waren im Wert von 0 Euro (Null Euro) bezahlen. Dann streikt das System. Die kurze Einkaufsliste dazu: Geben Sie zwei Pfandflaschen zurück und Lidl steht mit 50 Cent bei Ihne...

Syntax und Semantik

Was ist Syntax, was ist Semantik? Diese zwei Begriffe beschäftigen mich immer wieder, siehe zum Beispiel auch " Uniform Syntax " (23. Feb. 2007). Beide Begriffe spielen eine entscheidende Rolle bei jeder Art von maschinell-verarbeitbarer Sprache. Vom Dritten im Bunde, der Pragmatik, will ich an dieser Stelle ganz absehen. Die Syntax bezieht sich auf die Form und die Struktur von Zeichen in einer Sprache, ohne auf die Bedeutung der verwendeten Zeichen in den Formen und Strukturen einzugehen. Syntaktisch korrekte Ausdrücke werden auch als "wohlgeformt" ( well-formed ) bezeichnet. Die Semantik befasst sich mit der Bedeutung syntaktisch korrekter Zeichenfolgen einer Sprache. Im Zusammenhang mit Programmiersprachen bedeutet Semantik die Beschreibung des Verhaltens, das mit einer Interpretation (Auslegung) eines syntaktisch korrekten Ausdrucks verbunden ist. [Die obigen Begriffserläuterungen sind angelehnt an das Buch von Kenneth Slonneger und Barry L. Kurtz: Formal Syn...

Factor @ Heilbronn University

It was an experiment -- and it went much better than I had imagined: I used Factor (a concatenative programming language) as the subject of study in a project week at Heilbronn University in a course called "Software Engineering of Complex Systems" (SECS). Maybe we are the first university in the world, where concatenative languages in general and Factor in specific are used and studied. Factor is the most mature concatenative programming language around. Its creator, Slava Pestov, and some few developers have done an excellent job. Why concatenative programming? Why Factor? Over the years I experimented with a lot of different languages and approaches. I ran experiments using Python, Scheme and also Prolog in my course. It turned out that I found myself mainly teaching how to program in Python, Scheme or Prolog (which still is something valuable for the students) instead of covering my main issue of concern: mastering complexity. In another approach I used XML as a tool ...