adr alix android apu asa asciidoc auswahl backup bash bewegung bom buecher c cfengine checklisten cisco computernetz container crypto ddr debian denog dhcp docker dokumentieren duply dvcs ebtables email epub fairphone2 fedora firewall fossilscm git gns3 gre grep guug hardware i2c iproute ipsec iptables ipv6 kalender konferenz kpartx latex laufen lernen libgcrypt lighttpd linux lua lur make mikrotik monotone mount mysql netbox netflow nfdump nfsen openvpn openwrt pac paketfilter pcap performance perl postfix programmieren projekt proxmox-ve proxy pxelinux python qubes-os rancid rezension rfc rpm rs232 schreiben script seriell sftp shell software spiel stehen switch sysadmin syslog system systemd termux test troubleshoot ubuntu uci vcs virtualbox virtuell vpn wine wireshark xen xml

Systeme verstehen in Theorie und Praxis (1)

Ein System zu verstehen ist Voraussetzung für die erfolgreiche Fehlersuche. Zwar ist es möglich, dass ich den einen oder anderen Fehler behebe ohne zu wissen, was ich da eigentlich tue, doch das ist dann eher Zufall und das System ist robust genug, um durch wahlloses Ausprobieren nicht noch mehr kaputt zu gehen.

Wenn ich ein System verstehe kann ich Aussagen zu seinem Verhalten über die Zeit und seine Reaktionen auf auftretende Ereignisse machen. Auch kann ich dann passende Ansätze finden, um das System zu reparieren, wenn es nicht macht, was es soll.

Um ein komplexes System zu verstehen, beginne ich damit, es in einfache Teilsysteme zu zerlegen. Anschließend kann ich deren Interaktionen und Wechselwirkungen studieren und entscheiden, auf welche Teilsysteme ich einen genaueren Blick werfen will.

Bilanzverfahren

Eine Möglichkeit, ein System zu analysieren und in Teilsysteme zu zerlegen, ist das Bilanzverfahren. Ich kann damit die Topologie des Systems und die inneren Abläufe sowie Interaktionen zwischen dem System und der Umgebung analysieren und beschreiben.

Dabei ziehe ich zunächst eine Grenze um das betrachtete System, um es von seiner Umgebung zu unterscheiden. Sodann schaue ich - je nach System - nach Stoff-, Energie- und/oder Informationsflüssen.

Diese Flüsse beginnen oder enden

  • an der Systemgrenze, dann behalte ich das beteiligte externe System im Blick,
  • an einer Quelle oder Senke im System, das sind Kandidaten für Teilsysteme,
  • an einem Speicher im System, diese betrachte ich hier später gesondert.

Flüsse von oder zu externen Systemen beschreiben die Interaktionen des Systems mit seiner Umgebung. Dort finde ich Ereignisse, die das System von außen beeinflussen oder durch das System ausgelöst wurden. Außerdem kann ich hier kontinuierliche Flüsse finden, die das System ebenfalls bestimmen. Ein charakteristisches Merkmal dafür ist die Durchflussmenge pro Zeiteinheit, deren Maximum ein Grenzwert ist, ebenso wie das Versiegen des Flusses. Die Grenzwerte sind wichtige Parameter, um das System zu verstehen.

Eine Quelle ist ein Ausgangspunkt für einen Fluss, eine Senke dementsprechend ein Endpunkt. Das heißt in einer gewählten Abstraktionsebene, dass Stoffe, Energie oder Informationen entstehen oder verschwinden. Tatsächlich werden sie umgewandelt und aus diesem Grund sind sie gute Kandidaten für Teilsysteme, deren Verhalten ich dann später separat untersuchen kann. Das charakteristische Merkmal hier ist die Menge pro Zeiteinheit, die erzeugt beziehungsweise vernichtet wird, mit dem Maximum als Grenzwert.

Speicher als letztes Grundelement werden durch zufließende Flüsse gefüllt und durch abfließende geleert. Ihre charakteristischen Merkmale sind der Füllstand und als Grenzwert das Fassungsvermögen. Ein zweiter Grenzwert mit Einfluss auf das Systemverhalten ist der leere Speicher.

Will ich ein System mit Hilfe des Bilanzverfahrens analysieren, so schaue ich auf die Flüsse, ihre Wege und die pro Zeiteinheit transportierte Menge. Ich schaue auf den Füllstand der Speicher und die Summen der zu- und abfließenden Flüsse. Damit kann ich den Füllstand im Laufe der Zeit einschätzen.

Interessant ist, wenn der Füllstand eines Speichers seinen Maximalwert erreicht. Stoppt der Zufluss automatisch, so reduziert sich der Abfluss des davorliegenden Speichers. Läuft der Speicher über, brauche ich in meinem Modell eine Senke, in der die überschüssige Menge verschwindet.

Habe ich das System vollständig erfasst, kann ich anhand der Wege der Flüsse erkennen, wo Redundanzen vorhanden sind beziehungsweise benötigt werden.

Ein einfaches Beispiel für ein System, das auch Meadows [1] verwendet, ist eine Badewanne, in die ich Wasser einlasse. Ich schließe den Abfluss, drehe den Hahn auf und bekomme einen Anruf im Laufe dessen ich die Badewanne vergesse. Da die Wanne einen Überlauf hat, steigt das Wasser entsprechend der Größe der Wanne und der Zulaufgeschwindigkeit bis es den Überlauf erreicht. Ab dann läuft das Wasser geordnet ab, solange es mindestens so schnell abfließen kann, wie es aus dem Hahn zufließt. Kann aus irgendeinem Grund das Wasser nicht mehr so schnell abfließen, läuft die Wanne über und ich habe eine Senke im System aus Wanne, Wasserhahn und Abfluss, nämlich den Fußboden, die angrenzenden Räume und möglicherweise die darunterliegenden Wohnungen.

Ein anderes Beispiel, in dem ich das Bilanzverfahren anwenden kann, um ein System zu verstehen, ist die Ausweisung der Buchhaltungsbilanz einer Firma oder eines Vereins. Dieses System ist komplexer, da verschiedene tatsächliche oder buchungstechnische Konten existieren, zwischen denen Geldbeträge transferiert werden. Dabei wird bei der doppelten Buchhaltung der Geldbetrag, welcher einem Konto gutgeschrieben wird, einem anderen, dem Gegenkonto, abgezogen. Der Bilanzraum umfasst alle Bank- und Buchhaltungskonten der Firma oder des Vereins. Die Analyse konzentriert sich dabei auf zwei Schwerpunkte: zunächst wird geprüft, ob die Zahlen in der Buchhaltung korrekt sind und dann, ob die Transaktionen mit den Zielen der Firma oder des Vereins und geltenden gesetzlichen Vorgaben (z.B. Steuerforderungen) vereinbar sind.

Als letztes Beispiel mag die Analyse des Datenverkehrs an einem Gateway dienen. Dieses leitet den Datenverkehr von den Geräten downstream (aus dem lokalen Netz) zu den Netzen upstream (zum Internet) weiter und den entsprechenden Gegenverkehr in die andere Richtung. Kommen mehr Daten aus dem lokalen Netz als zur gleichen Zeit ins Internet weitergeleitet werden können, würden die überschüssigen Daten verloren gehen, wenn das Gateway keinen Pufferspeicher hätte, in denen sie kurzzeitig zwischengespeichert werden können, bis sie gesendet werden. Die Bemessung diese Pufferspeichers ist eine Wissenschaft für sich, die in den vergangenen Jahrzehnten ausgiebig erforscht wurde. Solange die Differenz zwischen ankommenden und abgehenden Daten nur kurzzeitig besteht, funktioniert das Gateway mit dem Pufferspeicher gut. Sollte der Puffer jedoch dauerhaft gefüllt sein, ergeben sich daraus Wechselwirkungen auf die Regelsysteme auf die ich in einem späteren Artikel zurückkomme.

Gemäß dem Spruch, dass in der Theorie Theorie und Praxis gleich sind, in der Praxis jedoch unterschiedlich, werfe ich noch einen Blick auf einige Details, die dafür sorgen können, dass die mit dem Bilanzverfahren gewonnenen Erkenntnisse erheblich von der Wirklichkeit abweichen.

Es beginnt damit, die passende Systemgrenze zu finden und geeignete Flüsse für die Analyse auszuwählen. Das hängt davon ab, welches Problem ich lösen, welche Fragen ich beantworten will und aus welchem Blickwinkel ich das System betrachte.

Will ich zum Beispiel eine Firma beurteilen, wähle ich die Systemgrenze so, dass alle Firmenkonten innerhalb des Systems liegen und fremde Konten außerhalb. Je nachdem, wie detailliert ich die Firma analysieren und welche Fragen ich beantworten will, schaue ich nur auf die Geldflüsse oder betrachte auch Rohmaterialien, Abfall und Endprodukte.

Um die Entwicklung eines Kredits von der Bank zu beurteilen, nehme ich das Schuldkonto bei der Bank und das Firmenkonto, über welches die Zahlungen abgewickelt werden, in das System hinein und betrachte die Zahlungsflüsse und Kontenstände beider Konten unter Berücksichtigung von Zinsen und Tilgung über den Zeitraum, den der Kredit läuft. Hier liegt die Systemgrenze ganz anders als bei der Bilanz, aber das Ergebnis dieser Analyse kann in die Bewertung der Bilanz einfließen.

Ein weiteres Detail sind über die Zeit variierende Flüsse. Die Variationen können interne Ursachen haben, die ich mit diesem Verfahren beurteilen kann, oder externe Ursachen, die sich hier der Analyse entziehen.

So ändert sich beim Beispiel mit dem Kredit die Geschwindigkeit, mit der die Kreditsumme bei gleichbleibenden Raten sinkt, da durch die gezahlte Tilgung bei festem Zinssatz die Zinsen über die Zeit geringer und der Anteil der Tilgung größer wird. Sind hingegen variable Zinsen vereinbart, so ist dir Ursache extern und kann nicht mit dem Bilanzverfahren erklärt werden.

Ein anderes Beispiel für einen variierenden Fluss wäre eine volle Badewanne, bei der zwar der Wasserhahn zugedreht ist, jedoch durch einen nicht dicht schließenden Stöpsel stetig Wasser entweicht. Da die Durchflussgeschwindigkeit proportional zum Druckunterschied ist und der Druck an der kleinen Öffnung proportional zur Höhe des Wassers in der Wanne ist, fließt das Wasser aus der vollen Wanne doppelt so schnell ab, wie aus der halbvollen und immer langsamer je niedriger der Wasserstand ist.

Außerdem muss ich in der Praxis beachten, dass die Verbindungswege zwischen den Speichern und Teilsystemen, durch die die Flüsse fließen, selbst auch eine Speicherkapazität haben und hierdurch Verzögerungen bewirken. Wenn ich morgens früh warmes Wasser aus dem Hahn haben möchte, dauert es eine Weile, bis das kalte Wasser aus der Leitung abgeflossen ist und warmes Wasser aus dem Hahn kommt. Auch in Datennetzen haben die Leitungen eine Kapazität, das heißt ein bestimmtes Fassungsvermögen für Daten. Die Kapazität berechnet sich bei Rohrleitungen aus deren Querschnitt und ihrer Länge. Bei Datenverbindungen berechnet sich die Kapazität aus dem Produkt von Bandbreite und der Signallaufzeit.

So kann ich zum Beispiel bei einer Leitung von 1 GBit/s und einer Laufzeit von 10 ms ungefähr 10 MBit auf der einen Seite senden, bis das erste Bit auf der anderen Seite ankommt. Diese Verzögerung wirkt sich vor allem auf geregelte Systeme aus, auf die ich in einem späteren Artikel zurückkomme.

Ein letztes Beispiel für die Kapazität des Übertragungsmediums ist die Ladefläche der LKWs, die Waren vom Sender zum Empfänger transportieren. In den Zeiten, als Just-in-Time-Lieferungen attraktiv waren, war es sinnvoll, diese Kapazität in die Berechnung der benötigten Lagerkapazität einzubeziehen. Bei unsicheren Zeiten mit Unterbrechungen in der Lieferkette ist es jedoch besser, ausreichende stationäre Speicherkapazität in der Nähe des Ziels einzuplanen.

Schließlich gibt es die wichtige Frage, was die Ströme antreibt. Das sind bei Flüssigkeiten und Gasen Druckunterschied zwischen Anfang und Ende der Leitung. Ein wichtiges Detail dabei ist, für welchen Maximaldruck die Leitung ausgelegt ist.

Bei elektrischem Strom ist es der Spannungsunterschied, der den Widerstand überwindet und damit den Strom bestimmt. Dabei bestimmt der Widerstand, welche Spannungsdifferenz schon durch die Leitung verursacht wird. An einigen Stellen möchte ich einen möglichst geringen Widerstand, bei anderen einen möglichst hohen und an wieder anderen einen angepassten Widerstand, der weder zu hoch noch zu niedrig ist.

Bei Informationsflüssen bestimmt die Programmlogik, das heißt der Algorithmus, welchen Weg die Informationen nehmen. Dabei kann der Algorithmus in der Theorie recht einfach erscheinen, in der praktischen Umsetzung bei Berücksichtigung aller Sonderfälle und Nebenbedingungen durch die Details soweit verdeckt werden, dass er kaum noch zu erkennen ist, wenn er nicht vorher bekannt ist.

Damit sind wir am Ende des Themas Bilanzverfahren für die Systemanalyse. Weiter geht es in einem Folgeartikel mit Steuerelementen und einfachen geregelten Systemen um danach einen Blick auf Interaktionen von komplexen Systemen zu werfen.

[1] Donella H. Meadows: Thinking in Systems / A Primer; Chelsea Green Publishing, White River Junction, Vermont, 2008; ISBN 978-1-60358-055-7

Posted 2026-03-31 Tags:

Systeme verstehen in Theorie und Praxis (1)
Posted 2026-03-31
GUUG Frühjahrsfachgespräch 2026
Posted 2026-03-08
Normseiten mit Asciidoctor erzeugen
Posted 2026-02-21
Eine VM von Proxmox VE zu VirtualBox migrieren
Posted 2026-02-08
Computer in der DDR
Posted 2025-12-26
Kalender 2026
Posted 2025-12-21
32bit-Programme auf 64bit-Linux
Posted 2025-11-25
Konfiguration und Dokumentation
Posted 2025-10-20
Default-Konfiguration finden
Posted 2025-09-23
Git einrichten
Posted 2025-08-03