Komplexe Produkte entwickeln

Bindeglieder für das Systems Engineering

Funktionale Anforderungen

Abgesehen von zeitlichen Randbedingungen werden funktionale Anforderungen in der Regel auf der Architekturebene nicht speziell behandelt, außer dass sie parallel zur Systemzerlegung ebenfalls in abgeleitete Anforderungen zerlegt werden. Die vollständige Analyse in diesem frühen Stadium ist mit formalisierten Anforderungen prinzipiell möglich. Aber aufgrund der Schwierigkeit, einen vollständigen Satz von Anforderungen und Annahmen zu erhalten, wird sie in der Praxis nur sehr selten angewandt. Stattdessen wird eine Simulation auf Komponenten- und Architekturebene vorgeschlagen, um die Konsistenz der Anforderungen sowohl lokal als auch im Gesamtsystemverhalten zu validieren. Dafür ist es essenziell, das Gesamtarchitekturmodell simulieren zu können, das zur Definition der Komponenten mit ihren Schnittstellen und Verbindungen verwendet wurde. So lassen sich viele Fehler vermeiden, die durch einen Bruch des Systems Engineering und des Designablaufs verursacht werden.

Umgang mit Komplexität

Per Definition sind Systeme komplexer als nur die Software oder nur die Hardware oder jede andere Segmentierung des Systems. Die Konzentration auf Teile des Systems während jeder Entwurfstätigkeit ist jedoch zwingend erforderlich, um sich nicht in Komplexitätsfragen zu verheddern. Wenn aber wichtige Kontextinformationen über die Rolle einer Komponente oder ihrer systeminternen Umgebung fehlen, werden Spezifikations- oder Designfehler meist unvermeidlich. Es muss also eine geeignete Teilmenge (eine Ansicht) des Systems eingerichtet werden, um ein spezifisches Design- oder Analyseanliegen zu verstehen, wobei nur die minimal erforderlichen Kontextinformationen enthalten sein dürfen. Alles, was für die vorliegende Aufgabe nicht relevant ist, sollte ausgeblendet werden können. Es ist zwar anspruchsvoll, eine angemessene Ansicht zu finden, die den oben genannten Kriterien entspricht, aber es reicht in der Regel nicht aus, nur eine Ansicht für einen Teil des Systems zu haben. Eine Ansicht für alle erforderlichen Betrachtungen funktioniert hier nicht, da verschiedene Perspektiven der Systembetrachtung verschiedene Ansichten erfordern, die sich überlappen. Dies sind etwa funktionale Abhängigkeiten, organisatorische Abhängigkeiten, Engpassbetrachtungen, Überlegungen zum Energieverbrauch, Lieferantenabhängigkeiten, Reifegrade, Ansichten zur Ausfallwahrscheinlichkeit, Abschnitte zum Sicherheitsintegritätsniveau usw. Ein vollständiges Verständnis eines bestimmten Design- oder Analyseanliegens erfordert ein schnelles Umschalten zwischen einer großen Anzahl verschiedener Gruppierungen und Filter auf der (Teil-)System-Ebene. Da all diese unterschiedlichen Sichtweisen auf ein System stets einheitlich sein müssen, ist die Tool-Unterstützung für die Definition und Verwendung solcher Sichtweisen von entscheidender Bedeutung.

Die passenden Werkzeuge

Aufgrund der Größe und Komplexität von Systemen sind klassische Ansätze mit Zeichentools und Tabellenkalkulationen zur Berücksichtigung benutzerdefinierter Eigenschaften und entsprechender Analysen nicht mehr angemessen. Die Wahrscheinlichkeit von Problemen durch fehlende Konsistenz oder veraltete Daten ist ohne Spezialtools zu hoch. Aus diesem Grund sind Systems-Engineering-Werkzeuge oder Entwicklungsumgebungen für Software und für Hardware, die Lösungen für die genannten Herausforderungen und Aufgaben bieten, anzuraten. Darüber hinaus sollte diese Funktionalität in eine Entwicklungsumgebung integriert sein, so dass die Verwendung der strukturellen Architektur, der Schnittstellendefinitionen oder der Anforderungen für den anschließenden Entwurf der Verhaltensspezifikation innerhalb der Umgebung möglich ist. So wird eine nahtlose Fortsetzung der Arbeit auf Komponentenebene sowie eine automatische Integration in das Architekturmodell einschließlich der Systemsimulationsfunktionen für die Validierung ermöglicht.