KomplexitĂ€t von Systemen und Methoden des „Kampfes“ damit

Auf die eine oder andere Weise entwerfen und implementieren wir alle Systeme. Ob es sich um Softwaresysteme, Infrastruktur- oder Plattformlösungen handelt. Und im Rahmen dieser Arbeit werden wir stĂ€ndig mit dem Konzept eines „komplexen Systems“ konfrontiert. Als Teil dieses Beitrags möchte ich meine Vision von der KomplexitĂ€t von Systemen und dem „Kampf“ damit teilen.


Beginnen wir mit der Definition des Systems. Ich mag die Definition im Buch Systemarchitektur . Strategie- und Produktentwicklung fĂŒr komplexe Systeme . Die Übersetzung klingt ungefĂ€hr so:


Ein System besteht aus einer Reihe von Komponenten und ihren Beziehungen. Die FunktionalitĂ€t des gesamten Systems ist grĂ¶ĂŸer als die Summe der Funktionen seiner einzelnen Komponenten.

Dies ist eine sehr wichtige Definition. Es wird vorgeschlagen, dass das System ein "Dienstprogramm" generiert. Wenn das System im Vergleich zu den Komponenten, aus denen es besteht, keine Erhöhung des "Nutzens" bietet, ist ein solches System wahrscheinlich nicht sehr notwendig.


Die nĂ€chste Frage, die Sie sich stellen können, ist, was ein "komplexes System" ist. Sie können viel darĂŒber sprechen, aber meiner Meinung nach ist es schwierig, ein System zu nennen, das schwer mit Ihrem Verstand zu beurteilen, schwer zu bearbeiten, schwer zu verstehen und alle Interaktionen in diesem System schwer zu berĂŒcksichtigen ist.


Und hier fĂŒr uns als Ingenieure ist es wichtig, einen Mechanismus zu haben, mit dem diese KomplexitĂ€t gemessen werden kann. Als Basis fĂŒr diesen Mechanismus schlagen die Jungs vom MIT vor, die bekannte "magische Zahl sieben plus minus zwei" zu verwenden. Es gibt eine Originalstudie zu diesem Thema sowie Artikel zu den PrĂ€sentationen von HabrĂ© und TED . Kurz gesagt, die Idee all dieser Studien ist, dass das "ArbeitsgedĂ€chtnis" einer Person gleichzeitig eine begrenzte Anzahl verschiedener Objekte halten und damit arbeiten kann. Hier ist das Konzept "verschiedener" Objekte sehr wichtig, da das Gehirn mit der KomplexitĂ€t zu kĂ€mpfen hat, indem es Objekte gruppiert. Beispielsweise können Verbindungen zwischen Objekten der gleichen Art oder des gleichen Typs als eine Verbindung betrachtet werden. Oder klarer: Sie mĂŒssen sich kein System von Haufen gemischter Kugeln in verschiedenen Farben vorstellen. Gruppieren Sie sie einfach in Ihrem Kopf und sagen Sie, dass es beispielsweise fĂŒnf rote, sieben gelbe und drei blaue Kugeln gibt. Dies vereinfacht die Arbeit mit dem System und reduziert die Anzahl der Objekte von fĂŒnfzehn auf drei. Daher sprechen wir im Rahmen der KomplexitĂ€tsbewertung von verschiedenen atomaren Objekten, die nicht gruppiert werden können.


Am Ende gibt es unterschiedliche SchĂ€tzungen der ArbeitsspeicherkapazitĂ€t. Jemand spricht von vier Objekten, jemand - ungefĂ€hr fĂŒnf, jemand - ungefĂ€hr sieben. In meinen Überlegungen werde ich mich an den klassischen Ansatz halten - "sieben plus minus zwei".


Basierend auf diesen SchĂ€tzungen kann gesagt werden, dass wenn es schwierig wird, mit einem System zu arbeiten, seine Komponenten und Kommunikationen im Speicher zu halten, es anscheinend dieselbe KapazitĂ€tsgrenze von "sieben plus minus zwei" ĂŒberschreitet. Dies bedeutet wiederum, dass diese "magische Zahl sieben" als grundlegende SchĂ€tzung der KomplexitĂ€t des Systems verwendet werden kann. Ich denke, die folgende vorlĂ€ufige Definition hat das Recht auf Leben:


Ein komplexes System ist ein System, das aus 7 + -2 Atomkomponenten und ihren Bindungen in verschiedenen VerhÀltnissen besteht.

Klassische Möglichkeiten, mit KomplexitÀt umzugehen


Erinnern wir uns nun kurz an die klassischen Methoden oder Werkzeuge, um mit der KomplexitÀt in der Entwurfsphase umzugehen. Es gibt nur wenige davon: Abstraktion, Zerlegung, Hierarchie und hierarchische Zerlegung.


  • Abstraktion - Eine Methode, mit der Sie die Hauptfunktion eines Systems oder Subsystems hervorheben und den Inhalt ausblenden können
  • Zerlegung - eine Möglichkeit, das System in kleinere Blöcke oder Komponenten zu unterteilen
  • Hierarchie ist eine Möglichkeit, das System in Ebenen zu unterteilen, wobei Ebenen einen bestimmten Platz in der Struktur haben und ĂŒbereinander liegen
  • Hierarchische Zerlegung - eine Methode, die Hierarchie und Zerlegung kombiniert

Alle diese Tools wurden letztendlich entwickelt, um die einzelnen Subsysteme unseres Systems so zu vereinfachen, dass sie bei der Arbeit mit jeder einzelnen Einheit als Ganzes "in den Kopf passen".


Worum geht es?


Was geben uns all diese Dinge? Einfach ausgedrĂŒckt besteht die Idee darin, mit verschiedenen Methoden einen unstrukturierten Satz von Systemkomponenten in eine Art strukturelle Form umzuwandeln. Wenn wir uns an die magische Sieben erinnern, können wir außerdem sagen, dass jeder Block in der Zerlegung nicht mehr als sieben plus / minus zwei Elemente enthalten sollte. Andernfalls ist es bei einer detaillierten PrĂŒfung eines solchen Blocks schwierig, ihn zu kontrollieren.


Wenn wir andererseits ein System mit einer großen Anzahl von Blöcken haben, die in hierarchische Ebenen unterteilt sind, sollte die Anzahl solcher Ebenen vorzugsweise sieben (plus / minus zwei) nicht ĂŒberschreiten. Zur Veranschaulichung möchte ich eine Folie aus Fundamentals of Systems Engineering mitbringen. Wie Sie auf der Folie sehen können, nimmt die KomplexitĂ€t des Systems mit der Anzahl der Zerlegungsstufen zu.


KomplexitÀtBerechnungen


Somit kann der korrekte Prozess des Systemdesigns ungefÀhr durch die folgende These beschrieben werden:


Bauen Sie keine komplexen Systeme. Erstellen Sie Systeme mit der erforderlichen KomplexitÀt.

Literatur


Source: https://habr.com/ru/post/de425807/


All Articles