System-Engineering arbeitet interdisziplinär und ist ein Mittel, um erfolgreich Systeme zu realisieren. Es ist auf die Realisierung der geforderten Funktionen zu einem frühen Zeitpunkt im Entwicklungszyklus ausgerichtet, wobei zunächst die Anforderungen dokumentiert werden, gefolgt von Design-Synthese und Systemvalidierung.
Die zentralen Herausforderungen bestehen darin, eine eindeutige und in sich stimmige Spezifikation zu erstellen, alle relevanten Informationen für alle Beteiligten bereitzustellen, die Rückverfolgbarkeit zwischen allen Aktivitäten zu gewährleisten und das System im geeigneten Umfang zu verifizieren und zu validieren. Bis heute fehlt es in der Branche an Tools, die diese Abläufe effizient unterstützen.
Die Interaktion zwischen System- und Software-Engineering spielt eine entscheidende Rolle, um sicherzustellen, dass die Systemanforderungen in den zugehörigen Software-Applikationen effizient umgesetzt werden. Dem modellbasierten System-Engineering (MBSE) kommt dabei die wichtige Aufgabe zu, die unnötige Duplizierung von Informationen und die parallele Weiterentwicklung von Daten zwischen System- und Software-Teams zu vermeiden.
Generell finden System- und Software-Engineering auf unterschiedlichen Abstraktionsebenen und mit unterschiedlichen Sichtweisen statt. Während sich das System-Engineering auf die Beschreibung des »Was« konzentriert, geht es bei der Entwicklung ausführbarer Software um das »Wie« in Bezug auf dieses »Was«. Beide Aktivitäten können mit Modellen arbeiten, die allerdings verschiedener Art sind. Beim System-Engineering ist das Modell eine Abstraktion des realen Systems. Der Softwareentwickler betrachtet das Modell hingegen als ein gutes Abbild des »realen« Subsystems. Eventuelle Diskrepanzen müssen durch Verifizierung behandelt werden.
Alte und neue Möglichkeiten
Die bisherigen Lösungen für das System-Engineering basieren meist auf Zeichenwerkzeugen und Datenbanken, oft in Verbindung mit Excel-artigen Frontend-Tools. Modellbasierte Lösungen werden von vielen Unternehmen in der Softwareentwicklung bereits eingesetzt, für ihre Anwendung im System-Engineering müssen aber noch einige Hürden überwunden werden. Hierzu zählen der Gebrauch verschiedener Sprachen durch die beiden Entwicklungsteams und die hieraus resultierenden Kommunikationsprobleme. Hinzu kommt die ungenügende Interoperabilität verschiedener Tools, bedingt durch Unterschiede in ihren Bedienkonzepten, ihrer Organisation und der durch sie generierten Daten. Eventuell müssen auch Gateways zwischen den Werkzeuge verschiedener Anbieter geschaffen werden.
SCADE (Safety Critical Application Development Environment) ist sowohl eine Darstellungsart als auch ein Konzept, das speziell für die Entwicklung kritischer Systeme in der Luftfahrt entwickelt wurde. Die Scade-Notation umfasst Blockdiagramme und Zustandsautomaten (State Machines), die in jeder Ebene schachtelbar sind. Sie ist formal festgelegt und erlaubt eine strenge und eindeutige Beschreibung des Softwareverhaltens. Die Lösung basiert auf dem SCADE-Toolset, das für den Einsatz im System-Engineering erweitert wurde. In diesem Beitrag bezeichnet »Scade« die Modellierungsnotation und »SCADE Suite« das Toolset, das die Scade-Notation unterstützt.
Die SCADE-Suite-Produktlinie wurde vor einigen Jahren um »SCADE Display« erweitert, eine flexible grafische Toolsuite für Design und qualifizierte Codegenerierung zur Entwicklung sicherheitskritischer Embedded-Display-Systeme. SCADE Suite und SCADE Display stellen feinkörnige Rückverfolgbarkeits-Tools, Konsistenzprüfungen und automatische Dokumentationsgenerierung zur Verfügung.
Sie erfüllen alle Anforderungen für das Software-Engineering, berücksichtigen jedoch nicht die genannten Besonderheiten des System-Engineering. Ein modellbasiertes Entwicklungswerkzeug für System-Engineering-Teams, das die oben genannten Fähigkeiten und Rahmenbedingungen berücksichtigt, ist »SCADE System« (Bild 2). Dies wurde von Listerel entwickelt, einem gemeinsamen Labor von Esterel Technologies, dem Anbieter der SCADE-Tools, und CEA LIST, Projektleiter von »Papyrus«, der »Eclipse-MDT«-Komponente für die Erstellung grafischer UML2-Modelle. Es basiert auf OMG SysML und verwendet Open-Source-Technologien, unterstützt durch eine aktive Community (Eclipse). Das System bietet die gleichen Tools für Rückverfolgbarkeit und Dokumentationsgenerierung wie SCADE Suite und SCADE Display. Auf diese Weise entsteht ein komplettes Framework für die System- und Software-Teams.
Modellierung und Systemarchitektur
OMG SysML wird zum Standard im System-Engineering, dessen Einhaltung wichtig ist, da hierdurch Modelle zwischen Tools verschiedener Hersteller ausgetauscht werden können.
Systementwickler klagen dabei oft über die Komplexität der durch die UML-Welt erzeugten Werkzeuge. SCADE System definiert eine auf den Systementwickler ausgerichtete Sicht der Tool-GUI. Diese Anpassung zählt zu den Stärken, die dem Papyrus-Unterbau zu verdanken ist.
In SysML liefern die Diagramme grafische (Teil-)Ansichten des Modells, sodass sich Modelle jeder Größe skalieren lassen (Bild 3).
Die SCADE-System-Lösung arbeitet mit tabellarischen Ansichten, die als zusätzliche Diagramme gehandhabt werden. Hierdurch müssen keine zusätzlichen SysML-Modellobjekte eingeführt werden, die SCADE System inkompatibel mit dem Standard machen würden.
SCADE System baut auf derselben Plattform auf wie die SCADE Suite (Bild 1) und enthält Papyrus, eine Open-Source-Komponente auf Eclipse-Basis. Durch entsprechende Integration und Umsetzung der GUI-Oberfläche können System- und Software-Teams in derselben Umgebung arbeiten, die dank Eclipse auch um weitere modellbasierte Tools erweitert werden kann. Arbeitsbereiche, Projekte und Dateien wurden vereinheitlicht und zwischen beiden Plattformen abgeglichen. Es ist sogar möglich, ein Projekt sowohl in der Systemansucht als auch in der Scade-Software-ansicht zu bearbeiten, mit identischer Darstellung der Systemressourcen in beiden Fällen.
Nach kompletter Erstellung und Prüfung der Systembeschreibung können die Softwareblöcke im System als Modelle in SCADE Suite optimiert werden. Dies kann durch automatische und nach DO-178B/C DAL A (DO-330 TQL 1) qualifizierte Codegenerierung erfolgen. Zusätzlich können anhand der SCADE-Sys-tem-Beschreibung Skripte zur automatischen Integration der gesamten Applikationssoftware entwickelt werden. Ein spezieller »SCADE System Synchronizer« sorgt für korrekte Zuordnungen. In jedem Fall behält der Anwender die Kontrolle über die Synchronisierungsmaßnahmen zwischen System- und Softwaremodellen. Dieser Synchronisierungsmechanismus lässt sich auch auf andere Softwareentwicklungen anwenden.
Das SCADE-Display-Tool ist eine grafische Gestaltungs- und Entwicklungsumgebung. Es findet typischerweise in den Bereichen Luftfahrt, Bahnindustrie, Nukleartechnik und in kritischen Embedded-Display-Systemen Anwendung. Ausgehend von WYSIWYG-Designeingaben kommt hierbei der »KCG«-Codegenerator zum Einsatz, der für Avionik-Systeme nach DO-178B/C (DO-330 TQL 1) in der höchsten Sicherheitsstufe (DAL A) und für industrielle und bahntechnische Systeme nach SIL 3 gemäß IEC 61508 beziehungsweise bis zu SIL 3/4 gemäß EN 50128 qualifiziert ist.
Weitere Funktionen in SCADE System, die in SCADE Suite und SCADE Display identisch sind, unterstützen einen vollständigen Prozess vom System-Engineering bis zur Generierung von zertifiziertem Embedded-Code.
Über den Autor:
Christian Schrader ist Central Europe Technical Manager bei Ansys Germany.