Warum soll man Architekturen simulieren?

Februar 2023, Reto Schreppers

Aus der Titelfrage folgt eine weitere Frage: Was ist gemeint mit „Architekturen simulieren“? Wenn man sich mit Architektur befasst, geht es häufig darum, die richtigen Entscheidungen für das zu gestaltende System zu treffen.

Also spricht man über Systeme und macht sich Gedanken, welche Aspekte des Systems man simulieren soll. Die Simulation von Architekturen umfasst meistens (aber nicht immer) mehrere Teilsysteme und unterscheidet sich bezüglich Simulationsgegenstand und Systemgrenzen nicht von anderen komplexen Simulationen.

Der Unterschied liegt in den Zielen, welche sich mit Vor- und Nachteilen von Architekturvarianten befassen. Man möchte also eine Entscheidungshilfe bezüglich der Wahl der Architektur, was zu folgenden Randbedingungen und Zielen führt:

  • Wir sind früh im Entwicklungszyklus, viele Details sind noch nicht bekannt.
  • Eine zeitliche Simulation vom Verhalten des Systems ist wichtig, damit Vor- und Nachteile klar hervortreten.
  • Mehrere Varianten müssen effizient verglichen werden können.

Häufig werden Architekturentscheidungen ohne Simulation getroffen. Der Architekt versucht sich die Varianten im Kopf vorzustellen. Leider hat das menschliche Kurzzeitgedächtnis eher wenig Kapazität, so dass wir nicht das ganze Modell der Architektur „im Kopf“ halten können. Zeitliche Vorgänge können wir und noch viel schlechter vorstellen als eine statische Architektur.
Unser Hirn täuscht uns mit einer gefühlten Konsistenz des zu entwerfenden Systems, obwohl wir einen Teil der Zusammenhänge schon wieder vergessen haben…

Schon bei mittlerer Komplexität ist der Mensch allein überfordert und braucht Hilfe. Falls es gelingt, mit geringem Aufwand ein digitales Modell in mehreren Varianten zu erzeugen und „alle“ relevanten Zusammenhänge einem Simulationsmodell beizubringen, dann wird der Vergleich klarer, fairer und nachvollziehbar. Auch subjektive Bevorzugung einer Lieblingsvariante kann reduziert werden.

Anwendung in der Praxis

In einem konkreten Projekt im Bahnumfeld musste genau diese Herausforderung gelöst werden.  Bei der Ansteuerung von Weichen musste ein funktionales/digitales Modell mit der analogen elektrischen Ansteuerung von Motoren und dem daraus folgenden Verhalten der mechanischen Komponenten kombiniert werden. Dabei sind Weiche und Motor gegeben, bezüglich Verteilung der Speisespannung und funktionaler Logik bestehen Architekturvarianten. Es resultiert ein interdisziplinäres Modell, das von der Steuerung in Software bis zu verschiedenen physikalischen Teilsystemen alle notwendigen Komponenten in derselben Simulationsumgebung abbilden können muss.

Abbildung 1 – Architektur

Wir haben es mit digitalem, elektrischem und mechanischem Verhalten zu tun. Damit sind die spezialisierten Simulations-Werkzeuge, die sich auf einen oder wenige Typen von Teilsystemen oder Komponenten konzentrieren, aus dem Rennen.
Als generisches Werkzeug für das Model verwenden wir „PTC Modeler“ mit eXecutable UML (xUML) zur zeitlichen Simulation.

Wichtig sind dabei folgende Punkte:

  •  Die Simulation muss einfach genug und mächtig genug sein, so dass die gewünschten Architekturvarianten effizient simuliert werden können.
  • Noch wichtiger als die Simulations-Toolbox ist das korrekte Verständnis der Zusammenhänge in der Domäne der zu gestaltenden Systems und eine erfolgversprechende Wahl der Architekturkandidaten.

Neben der Wahl des Models und der Architekturvarianten müssen auch die passenden Ziele schon ganz am Anfang definiert werden. So kann zum Beispiel das Ziel einer ausgeglichenen Belastung der Stromversorgung erreicht werden.

Abbildung 2 – Resultate

Fazit

Obwohl wir die Nutzung von ausführbaren Modellen vorschlagen, ist die Erfahrung des Architekten der wichtigste Erfolgsfaktor. Ein erfahrener Architekt wird bessere Varianten vorschlagen als jemand, der nur die Simulation gut bedienen kann.
Das beschriebene Vorgehen erlaubt es dann, die optimale Variante zu finden und die Vor- und Nachteile nachvollziehbar zu dokumentieren.