Seite wählen

autoConform® Methodik, Software und Ingenieurdienstleistungen

Wie kann die strukturelle Komplexität eines Systems gemessen und reduziert werden?

1. Einleitung

Strukturelle Komplexität, genauer: eine geringe strukturelle Komplexität, ist ein Qualitätsmerkmal eines System- oder Softwaredesigns. Wenn das System- oder Softwaredesign strukturell komplex ist, dann ist es

  • zeitaufwändiger und damit teurer, es zu entwickeln,
  • technisch schwieriger und damit teurer, es herzustellen und zu warten,
  • fehleranfälliger und damit weniger zuverlässig und
  • schwerer zu verstehen und damit bezüglich seiner Sicherheitsargumentation weniger überzeugend.

Daher ist es wichtig, die strukturelle Komplexität im System- und Softwaredesignprozess zu minimieren. Angenommen, wir haben zwei mögliche System- oder Softwarearchitekturentwürfe: wie können wir entscheiden, welcher Entwurf besser ist, weil seine strukturelle Komplexität geringer ist?

Wie lässt sich die strukturelle Komplexität eines Systems oder einer Software quantifizieren?

Eine Systemarchitektur (und analog eine Softwarearchitektur) ist durch mehrere Aspekte gekennzeichnet, nämlich

  1. die Dekomposition des Systems in seine physischen Systemelemente,
  2. die Dekomposition der Systemfunktionen in Systemelementfunktionen,
  3. die physischen und funktionalen Schnittstellen und ihre wechselseitigen Abhängigkeiten innerhalb des Systems und seiner Elemente sowie
  4. die verallgemeinerten Signale (d.h. die Übertragung von Informationen, Material oder Energie) und ihre wechselseitigen Abhängigkeiten innerhalb des Systems und seiner Elemente.

Wir suchen ein Maß für die strukturelle Komplexität, mit dessen Hilfe wir

  1. die Abhängigkeiten der physischen Systemelemente,
  2. die Abhängigkeiten der Funktionen der Systemelemente,
  3. die Abhängigkeiten der systeminternen Schnittstellen und
  4. die Abhängigkeiten der systeminternen (verallgemeinerten) Signale

bewerten können.

Darüber hinaus wollen wir ein wichtiges Merkmal sicherheitskritischer Systeme berücksichtigen: je höher die geforderte Sicherheitsintegrität eines Systemteils ist, desto weniger strukturell komplex darf dieser Systemteil sein.

Abschnitt 2 beschreibt, wie wir vorschlagen, strukturelle Komplexität zu messen und zu reduzieren. Abschnitt 3 fasst die Hauptgedanken dieses Artikels zusammen.

 

2. Welches ist das geeignetste Maß für die strukturelle Komplexität?

2.1. Strukturelle Komplexität wovon?

Der Inhalt dieses Abschnitts 2.1 und des nachfolgenden Abschnitts 2.2 basiert weitgehend auf [1].

Wie bereits in der Einleitung erwähnt, handelt es sich bei struktureller Komplexität um system- oder softwareinterne Abhängigkeiten: Je mehr Abhängigkeiten vorhanden sind, desto höher ist die strukturelle Komplexität. Abb. 1 zeigt beispielhaft einen Abhängigkeitsbaum und die zugehörige Abhängigkeitsstrukturmatrix A (die in der englischen Fachliteratur als „Dependency Structure Matrix“, kurz „DSM“, bekannt ist).

Abb. 1: Abhängigkeitsbaum (links) und zugehörige DSM (rechts), entnommen aus [1], S. 34.

Es können

  1. die Abhängigkeiten der physischen Systemelemente,
  2. die Abhängigkeiten der Systemelementfunktionen,
  3. die Abhängigkeiten der systeminternen Schnittstellen und
  4. die Abhängigkeiten der systeminternen (verallgemeinerten) Signale

durch Abhängigkeitsbäume und DSMs dargestellt werden.

2.2. Empfohlenes Maß für die strukturelle Komplexität

Die Beeinflussung anderer oder die Beeinflussung durch andere Systemelemente muss nicht direkt erfolgen – sie kann auch indirekt über Zwischenverbindungen stattfinden. Um dies zu erfassen, schlagen wir ein Maß für die strukturelle Komplexität vor, das sowohl direkte als auch indirekte Verbindungen in der Systemarchitektur berücksichtigt.

Bei sicherheitskritischen Systemen kann man nicht davon ausgehen, dass alle Systemelemente die gleiche Sicherheitsintegrität haben. Um dieser Tatsache Rechnung zu tragen, wichten wir die Systemelemente entsprechend ihrer Sicherheitsintegrität. Die zugehörige Wichtungsmatrix ist gegeben durch

Als strukturelles Komplexitätsmaß c schlagen wir die Frobenius-Norm der spaltengewichteten erweiterten Erreichbarkeitsmatrix Rext vor, wobei die Spalten entsprechend der Sicherheitsintegrität der Systemelemente gewichtet werden:

Welche Werte sollten für die skalaren Wichtungen gewählt werden?

In den nachstehenden Tabellen 1 und 2 geben wir Empfehlungen, die davon abhängen, ob die Systemelemente nach

  1. den „Safety Integrity Levels (SILs)“ der IEC 61508 oder
  2. den „Automotive Safety Integrity Levels (ASILs)“ der ISO 26262

klassifiziert sind.

Tabelle 1: Empfohlene Wichtung der Systemelemente mit SIL-Klassifizierung

Safety Integrity Level (SIL)
des Systemelements sj

Wichtung wj
des Systemelements sj

Keines / QM 1
SIL 1 2
SIL 2 4
SIL 3 8
SIL 4 16

 

Tabelle 2: Empfohlene Wichtung der Systemelemente mit ASIL-Klassifizierung

Automotive Safety Integrity Level (ASIL)
des Systemelements sj
Wichtung wj
des Systemelements sj
Keines / QM 1
ASIL A 2
ASIL B 4
ASIL C 6
ASIL D 8

Die ISO 26262:2018, Teil 9, ermöglicht eine sogenannte „ASIL-Dekomposition“ von Sicherheitsanforderungen. In der Praxis wird diese Idee auf ASIL-Dekompositionen von Systemelementen und Systemfunktionen ausgeweitet, die die dekomponierten Sicherheitsanforderungen erfüllen. Die Wichtungen in Tabelle 2 wurden so gewählt, dass jede Art von ASIL-Dekomposition „komplexitätsneutral“ ist. Ein Beispiel für eine solche ASIL-Dekomposition ist in Abb. 2 a) und b) dargestellt, wobei die strukturelle Komplexität in a) und b) gleich ist.

Abb. 2: Abhängigkeitsbäume (a) ohne und (b) mit ASIL-Dekomposition.

2.3 Reduzierung der strukturellen Komplexität

Nehmen wir an, wir haben einen statischen Systemarchitekturentwurf. Für diesen Entwurf bestimmen wir den c-Wert. Die strukturelle Komplexität des Systems zu reduzieren bedeutet, nach alternativen Architekturentwürfen mit niedrigeren c-Werten zu suchen (durch „Ausprobieren“).

Niedrige c-Werte werden in der Regel erreicht durch

  • Definition von Abhängigkeiten, die sich von oben nach unten „verzweigen“, aber weiter unten nicht wieder „verbinden“,
  • Einführung von SIL/ASIL-Dekompositionen und zugehörigen Sicherheitsmechanismen so nahe wie möglich an den sicherheitsbezogenen Ausgängen des Systems und
  • Sicherstellung, dass ein möglichst großer Teil der Systemfunktionalität nicht sicherheitsbezogen bzw. sicherheitskritisch ist.

3. Zusammenfassung

In diesem Artikel wurde ein strukturelles Komplexitätsmaß c aus der Netzwerktheorie auf sicherheitskritische Systeme übertragen. Dieses Maß c für die strukturelle Komplexität basiert auf einer spaltengewichteten erweiterten Erreichbarkeitsmatrix. Eine solche Erreichbarkeitsmatrix kann bestimmt werden für

  1. das physische System und seine Dekomposition in physische Systemelemente,
  2. das System und seine funktionale Dekomposition,
  3. die Schnittstellenketten, die in den sicherheitsbezogenen Ausgangsschnittstellen des Systems enden, und
  4. die (verallgemeinerten) Signalketten, die in den sicherheitsbezogenen Ausgängen des Systems enden.

Die folgenden Eigenschaften, die von einem strukturellen Komplexitätsmaß erwartet werden, werden erfüllt durch c:

  1. c ist ein Maß im mathematischen Sinne (vgl. z.B. [2]). Insbesondere ist bei einem System, das aus den n Elementen s1, …, sn besteht, der Wert von c unabhängig von der Reihenfolge der Systemelemente s1, …, sn.
  2. Der Wert von c steigt mit der Anzahl n der Systemelemente.
  3. Der Wert von c steigt mit der Anzahl der direkten oder indirekten Abhängigkeiten zwischen den Systemelementen.
  4. Der Wert von c steigt mit zunehmendem „Safety Integrity Level“ der Systemelemente.

 

Literatur

[1] Sturtevant, D.J.: „System design and the cost of architectural complexity“, 2013, https://dspace.mit.edu/handle/1721.1/79551

[2] Maß (Mathematik) – Wikipedia

Wie kann die strukturelle Komplexität eines Systems gemessen und reduziert werden?

Ihr Ansprechpartner:

Zugänglichkeit