embedded world Conference 2018 System Engineering für komplexe sichere Systeme

Die Mitglieder des embedded world Conference steering boards geben Einblicke in die von ihnen verantworteten Themenbereiche. Professor Dr. Ing. Peter Fromm über die Themen System Engineering, Modellierungssprachen und aktuelle Herausforderungen bei der Entwicklung komplexer, sicherer Systeme.

Erstmalig wurde der Begriff System Engineering 1940 in den Bell Labs bei der Entwicklung neuer Telefoniegeräte geprägt. Nach dem zweiten Weltkrieg wurde der System-Engineering-Ansatz vor allem für die Entwicklung komplexer Systeme der NASA wie des Apollo- und Space-Shuttle-Programms genutzt. Doch was bedeutet System-Engineering? 

Ein prominentes Beispiel für ein nicht funktionierendes System-Engineering war die Explosion der ersten Rakete Ariane 5 im Jahr 1996. In zahlreichen Veröffentlichungen wird eine fehlerhafte Software der Lageregelung als Ursache für den Absturz genannt.

Die Wirklichkeit ist allerdings etwas komplizierter: Die Software funktionierte jahrelang in dem Vorgängermodell wunderbar, aufgrund einer veränderten Flugbahn (Anforderung auf Systemebene) kam es zu einem Überlauf, der vom System falsch behandelt wurde (Schnittstellenproblem). Dieses führte zu einer fehlerhaften Regelung der Flugbahn und letztendlich zur Sprengung der Rakete.

Was konnte aus diesem und ähnlichen Fehlern gelernt werden? Ein System ist mehr als die Summe der Teilsysteme und die Entwicklung zuverlässiger Systeme erfordert ein hohes Maß an gemeinsamem, interdisziplinärem Systemverständnis.

System Engineering kann somit als Klammer über die drei klassischen Entwicklungsdisziplinen Mechanik, Elektronik und Software betrachtet werden und hat als Aufgabe, 

die Gesamtanforderungen an ein System zu erfassen,

auf die Einzeldisziplinen zu verteilen,

mittels einer Gesamtarchitektur ein gemeinsames Systemverständnis und definierte Schnittstellen über die einzelnen Disziplingrenzen hinweg sicherzustellen,

um damit einen möglichst reibungslosen Integrationsprozess zu gewährleisten und

abschließend das Gesamtsystem zu verifizieren.  

System-Modellierung 

Momentan übernehmen embedded Systeme zunehmend komplexe Steuerungsaufgaben, die bislang dem Menschen vorbehalten waren. Das aktuelle Motto der embedded world Conference »Embedded goes autonomous« verdeutlicht diesen Trend auf beeindruckende Weise. Da bei einer Fehlfunktion dieser Systeme Menschenleben gefährdet werden können, müssen sie unter Berücksichtigung der entsprechenden Sicherheitsnormen entwickelt werden. 

Dabei reicht es nicht aus, wenn nur der Controller oder nur die Software sicher ist, sondern nur im korrekten Zusammenspiel aller Komponenten kann ein sicheres System realisiert werden – die Entwicklung sicherer Systeme ist somit ein Paradebeispiel für System Engineering.

Basierend auf den erfolgreichen Methodiken des Softwareengineerings der 90er Jahre werden daher zunehmend Prozesse und Modellierungssprachen für das System Engineering entwickelt. Der Übergang des reinen Software Prozessmodells CMM auf CMMi und die Weiterentwicklung der Unified Modelling Language UML in Richtung SysML sind dabei zwei prominente Beispiele.

Ziel bei der Entwicklung der SysML war es, eine Notation zu entwickeln, die über die Beschreibung von Software-Systemen hinaus geht und das Gesamtsystem in den Mittelpunkt rückt.

Auch wenn die Überschneidungen zwischen der UML2 und SysML relativ groß sind, so bieten insbesondere die Anforderungsdiagramme und Blockdiagramme interdisziplinären Teams eine einfach zu nutzende aber trotzdem klar spezifizierte Notationssprache. 

Funktionale Sicherheit 

Egal nach welcher Safety-Norm entwickelt wird, in allen Fällen ist es notwendig, die Ergebnisse einer Gefährdungsanalyse mit den entwickelten Architekturartefakten und insbesondere den Sicherheitsfunktionen zusammenzubringen und im Rahmen einer Ausfallanalyse das Restrisiko zu bewerten. Dieses erfolgt heute häufig in Prosa und mit händisch gepflegten Traceability-Tabellen. 

Ähnlich wie die UML im Softwarebereich kann die SysML hier einen wichtigen Baustein bilden, um zwischen allen Projektbeteiligten ein gemeinsames Systemverständnis sicherzustellen und die geforderte Traceability zwischen den Artefakten effizient zu realisieren.

Erforderlich wäre allerdings eine Erweiterung um Diagramme aus dem Bereich der Funktionalen Sicherheit wie etwa Fehlerbaumanalysen. 

Eine noch größere Herausforderung ist der Bereich Informationssicherheit. Immer mehr embedded Systeme haben eine Schnittstelle in die Cloud, über die Parametrisierungen und Eingriffe in das System vorgenommen werden können. Dass dieses nicht immer zum Besten des Benutzers ist, zeigen die aktuellen Hacks von Fahrzeugen und anderen Systemen. 

Auch hier kann die SysML unterstützen, ein gemeinsames Verständnis zwischen verschiedenen Entwicklungsdisziplinen wie IT-Abteilungen und Embedded Entwicklern aufzubauen.(fr)