2006 - Zertifizierung von generierter Software für Luft- und Raum

Deutsche Gesellschaft für Luft- und Raumfahrt - Lilienthal-Oberth e.V

Fachausschuss Software Engineering T6.4


Workshop

"Zertifizierung von generierter Software für Luft- und Raumfahrtsysteme"

11. Oktober 2006 - Institut für Luft- und Raumfahrt, TU München, Garching bei München


Bei Bedarf können die Dokumente zu den jeweiligen Vortraägen bei den Obleuten des Fachausschuss angefordert werden.

Kurzfassung der Vorträge

Dr. Ingo Stürmer: Zertifizierung von Codegeneratoren – Probleme und Lösungsmöglichkeiten

Bei der Entwicklung eingebetteter Software im Luftfahrzeug- und Automobilbereich vollzieht sich ein Paradigmenwechsel, der durch den Übergang von der klassischen Programmentwicklung hin zu modell-basierten Techniken gekennzeichnet ist. Kennzeichnend für die Modell-basierte Entwicklung ist die frühzeitige Beschreibung der eingebetteten Software durch ausführbare Modelle unter Verwendung von Funktionsblockdiagrammen und erweiterten Zustandsautomaten. Modellierungssprachen, die hierfür sowohl im akademischen als auch im industriellen Umfeld weite Verbreitung gefunden haben, sind z.B. MATLAB/Simulink/Stateflow. Diese stellen graphische Editoren und Simulatoren für Blockschaltbilder bzw. Statecharts zur Verfügung. Derartige graphische Modelle dienen als Basis aller weiteren konstruktiven Entwicklungsschritte bis hin zur Implementierung der zu realisierenden Software. Während in der Vergangenheit eine manuelle Implementierung der Software auf Basis der Simulink- und Stateflow-Modelle die Regel war, existieren mittlerweile Codegeneratoren, wie z.B. TargetLink, Real-Time Workshop/Embedded Coder oder SCADE, die automatisch effizienten Code direkt aus dem Softwaremodell generieren können (Modell-basierte Codegenerierung). Der Einsatz eines Codegenerators verspricht dabei einen deutlichen Effizienzgewinn in der Software Implementierungsphase und eine bessere Qualität der generierten Software im Hinblick auf Dokumentation, Lesbarkeit, Fehlerrate, etc.

Für die Entwicklung sicherheits-relevanter Software ist es unerlässlich, dass durch den Einsatz eines Codegenerators bzw. dessen Tool-Kette (Editor, Simulator, Compiler, Linker, Loader, etc.) keine Fehler unbemerkt auf die Zielplattform (eingebettetes System) eingebracht werden. Generell kann dies auch durch einen als korrekt bewiesenen Codegenerator nicht verhindert werden. So können z.B. durch ungeeignete Modellierung oder falsche Anwendung des Codegenerators (Konfiguration) Fehler im generierten Code erzeugt werden.

Der Vortrag diskutiert, wie mittels Zertifizierung bzw. Qualifizierung Entwicklungswerkzeuge wie Codegeneratoren und deren Tool-Kette hinreichend für den Einsatz im sicherheits-relevanten Umfeld abgesichert werden können. Insbesondere werden die sich dabei ergebenden Probleme an Beispielen herausgearbeitet und Lösungsmöglichkeiten vorgestellt. Die Diskussion beschränkt sich hierbei nicht auf das Anwendungsfeld Luftfahrzeug, sondern diskutiert insbesondere Erfahrungen aus der Automobilindustrie.

Dr. Irene Groselj: Prozess zur Qualifizierung von generiertem Code im NH90 Software-Entwicklungsprojekt

Die beiden Rechner, die in NH90 Hubschraubern das Core und Missions System maßgeblich steuern, müssen eine hohe Anzahl von I/O Daten verarbeiten bzw. weiterleiten. Aufgrund der Projekthistorie werden proprietäre Werkzeuge bei der Definition der I/O Daten und deren Realisierung eingesetzt, das sind sowohl spezielle Datenbankanwendungen als auch Source Code Generatoren.

Der Core- und Missionsrechner haben viele gemeinsame Komponenten. Diese sind in einem separaten Konfigurations-Item zusammengefasst. Zu dessen Qualifikation wird operationelle Software mit entsprechenden I/O Daten benötigt. Um den Aufwand gering zu halten, wird ein reduzierter, aber vollständiger und repräsentativer Datensatz verwendet. Dieser Datensatz deckt alle möglichen Klassen von I/O Daten ab. Damit wird der komplette Funktionsumfang des Generators abgedeckt. Sämtliche aus dem repräsentativen Datensatz generierte Dateien werden vollständig getestet.

Der Vortrag diskutiert sowohl die Tool Kette als auch den Prozess, welche der Qualifikation von generiertem Code in der NH90 Software zugrunde liegen.

Klaus Wachsmuth: Automatische Generierung von ARINC653 Configuration Records, zertifiziert nach DO-178B, Level A

Die Konfigurationsbeschreibung für ein ARINC653 System besteht typischerweise aus einigen 10.000 Zeilen von XML-Spezifikationen. Die Aufgabe des Systemintegrators ist es, die Konsistenz dieser Beschreibungen zu prüfen, den binären Configuration Record zu erzeugen, der dem System zur Laufzeit zur Verfügung stehen muss, und diesen Configuration Record zu verifizieren. Die Verifikation des Configuration Records mit entsprechenden Tests ist eine sehr umfangreiche und komplexe Aufgabe. Insbesondere ist der Nachweis, daß die Verifikation vollständig ist, sehr schwer zu führen. Eine alternative Methode soll in diesem Vortrag vorgestellt werden. Beschrieben wird ein Prozess sowie eine Suite von qualifizierten Tools, womit auf der Basis der XML-Beschreibung der Systemkomponenten, Konsistenzprüfungen automatisch vorgenommen werden können und der Configuration Record ebenfalls automatisch generiert wird. Durch die Verwendung von qualifizierten Tools ist eine weitere Verifikation des erzeugten Configuration Records nicht mehr nötig.

Josef Märtz: Zertifizierung von generierter Software für Kernkraftwerke

Die Präsentation basiert auf Erfahrungen des ISTec aus der Qualifizierungspraxis und auf Arbeiten, die im Rahmen eines europäischen Projekts „Benchmark Exercise of Safety Evaluation of Computer Based Systems” (BE-SECBS) bei ISTec durchgeführt wurden. Gegenstand des Projekts war die Sicherheitsbewertung eines computerbasierten Systems für Kernkraftwerke. Das Projekt-Konsortium bestand aus einem industriellen Partner (FANP), der das zu bewertende Referenz-System zur Verfügung gestellt hat, drei Prüf-Teams (IRSN Frankreich, ISTec Deutschland und VTT/STUK Finnland), sowie dem Projekt-Koordinator JRC-IE, der abgesehen von der Koordinierung auch einen Vergleich der Ergebnisse durchgeführt hat.

Beim Referenz-System für das Benchmark-Projekt handelt es sich um Teile eines sicherheitsrelevanten, modernen, computerbasierten Begrenzungs-Systems, das exemplarisch aus einem realen System abgeleitet ist und das mit TELEPERM-XS (TXS) implementiert ist. TELEPERM-XS ist eine integrierte Werkzeugumgebung zur Spezifizierung und Generierung der Software computerbasierter, leittechnischer Systeme.

Der Hauptteil der Präsentation ist der Prüfmethode gewidmet, die bei ISTec im Rahmen des Benchmark-Projekts angewendet wurde. TELEPERM XS und das Referenzsystem werden nur soweit vorgestellt wie dies für das Verständnis der Prüfmethode erforderlich ist.

Die Prüfmethode ist entscheidend dem vorgegebenen Referenzfall von generierter Software einer typgeprüften Werkzeugumgebung (TXS) angepasst. Die Präsentation wird die einzelnen Prüfschritte parallel zum Software-Lebenzyklus und die Ergebnisse der Prüfschritte darstellen. Es wird deutlich gemacht, wie sich generierte, typgeprüfte Software auf den Prüfprozess, den Prüfaufwand und die Prüfergebnisse auswirkt.

Den Abschluss bildet eine knappe Skizze der Prüfmethoden und Prüfergebnisse der anderen Prüfteams.

Dr. Stefan-Alexander Schneider: Spezifikationsmethode zur Generierung von Modellen und Tests

Codegeneratoren und Compiler transformieren z.B. graphische Modelle in C-Code und ausführbaren Code. Der Einsatz von solchen komplexen Software-Werkzeugen setzt daher ein berechtigtes Vertrauen in deren Anwendung voraus. Dieser Nachweis kann z.B. durch systematisches Testen erbracht werden, wo geeignete Modelle mit entsprechenden Eingaben sich genauso verhalten wie der aus den Modellen generierte Code.

Der Vortrag geht auf die Erstellung dieser systematischen Tests ein. Es wird eine Spezifikationssprache vorgestellt, die es erlaubt sowohl vergleichsweise viele Modelle mit geeigneten Eingaben zu spezifizieren als auch zu generieren.

Workshopbericht

Der Fachausschuss T6.4 "Software Engineering" hielt seinen diesjährigen Workshop am 11. Oktober traditionsgemäß im Institut für Luft- und Raumfahrt in Garching bei München ab. Prof. Dr.-Ing. Kau, Ordinarius des Lehrstuhles für Flugantriebe und Direktor des Instituts für Luft- und Raumfahrt, eröffnete die Tagung vor ca. 40 Teilnehmern aus Forschung, Industrie, Bundeswehr und Behörden im vollbesetzten Sitzungssaal.

Die beiden letzten Workshops des Fachausschusses T6.4 hatten sich mit den Themen „Codegenerierung und modellbasierte Softwareentwicklung“ beschäftigt. Der diesjährige Workshop hat diese Themenreihe fortgesetzt und die Fragestellungen der Zulassung von automatisch generierter Software im Bereich Aerospace behandelt. Der Nachweis zur Zertifizierung erfolgt nach festgelegten Normen wie beispielsweise der RTCA DO-178B und kann einen erheblichen Teil der Entwicklungszeit und –kosten verschlingen.

Auf dem Workshop wurden unterschiedliche Vorgehensweisen vorgestellt, die sich grob in zwei Kategorien unterteilen lassen:

  • Der Code wird mit nicht-qualifizierten Tools erzeugt (z.B. Codegenerator aus einem Modell) und mit der gleichen Vorgehensweise verifiziert wie manuell geschriebener. Dabei können einige Eigenschaften des generierten Codes zur Vereinfachung des Verfahrens herangezogen werden, oder es kann mit weiteren Werkzeugen gearbeitet werden (z.B. Werkzeuge zum modellbasierten Testen).
  • Die Entwicklungswerkzeuge, die den operationellen Code generieren, werden qualifiziert. Dies erfolgt mit der gleichen Sicherheitsstufe wie die zu generierende operationelle Software und damit nach den gleichen Richtlinien und Verfahren. Der generierte Code braucht dann nicht mehr separat qualifiziert werden. Die Qualifizierung kann im Rahmen des Projektes oder direkt vom Toolhersteller erfolgen.

Der zweite Ansatz, vollständig qualifizierte Generatoren, wird zum heutigen Tag nur in Ausnahmefällen von ganz wenigen Werkzeugherstellen angeboten. Dies liegt u. a. am ungeheuren Aufwand einer Toolzertifizierung und an den nach wie vor bestehenden technischen Problemen. Dr. Ingo Stürmer (Model Engineering Solutions) stellte in seinem Vortrag anhand von Beispielen aus der Entwicklungspraxis dar, wie mangelhafte Modellierungspraktiken, ungeeignete Toolkonfigurationen oder schlichte Fehler im Generator zu fehlerhaftem, inperformanten oder auch nur unleserlichem Code führt.

Zwei Vorträge beschrieben Ansätze zur Verringerung des Testaufwands bei der Toolqualifizierung: Dr. Stefan-Alexander Schneider (BMW Group) und Dr. Oscar Slotosch (Validas) stellten eine Spezifikationssprache vor, mit der man auf einfache Weise sowohl Testmodelle als auch Testeingaben spezifizieren und damit eine Testsuites für Toolqualifizierungen generieren kann. Christian Buckl von der Technischen Universität München stellte den Ansatz einer vorlagenbasierten Codegenerierung vor. Durch die Trennung von Vorlagen und Übersetzungskern kann man zu einer einfacheren Validierung des Werkzeuges kommen.

Hr. Wachsmuth von der Firma Verocel stellte vor, wie ein qualifiziertes Werkzeug die Entwicklungsarbeit erleichtern kann. Das Werkzeug VerIMAx erzeugt aus XML basierten Konfigurationsbeschreibungen Configuration Records für ein ARINC 653 Betriebssystem und kann in Projekten nach DOo-178B bis Level A eingesetzt werden.

Die Mehrheit der Vortragenden jedoch beschrieb oder befürwortete einen Ansatz der ersten Kategorie, in dem mit einem nicht-qualifizierten Codegenerator die Software aus einem Modell erzeugt wird und dann eine mehr oder minder vereinfachte Zertifizierung des generierten Codes möglich ist. Dr. Stürmer präsentierte einen Prozess, bei der der generierte Code nicht nur getestet und einer statischen Analyse unterworfen wird, sondern überdies sowohl das Modell als auch der generierte Code noch einem Review unterzogen wird. Das vorgestellte Verfahren wurde in einem Automotiveprojekt eingesetzt.

Die Verwendung von Software-Generatoren in den Projekten NH90 und TIGER wurde bereits in dem ersten Workshop dieser Reihe im Jahre 2004 vorgestellt. Dr. Irene Groselj von Eurocopter stellte in iIhrem Vortrag dar, wie im Projekt NH90 die generierte Software qualifiziert wird. Das Verfahren basiert auf der Festlegung von Testklassen, die stellvertretend für den gesamten generierten Code getestet werden. Durch die Einführung der Testklassen kann der Testaufwand deutlich reduziert werden.

Hr. Josef Märtz stellte einen Ansatz dar, mit dem Software für computergesteuerte Begrenzungssysteme in Kernkraftwerken generiert wird. Zur Generierung des sequenziellen Codes bedient man sich des Werkzeugs TELEPERM, das typgeprüft ist , was einer Qualifikation entspricht. Der generierte Code wird aber trotzdem weiteren Überprüfungen unterzogen, wobei weitere Tools wie z.B. RE-TRANS eingesetzt werden.

Alle bisher erwähnten Vorträge beleuchteten die Problematik aus der Sicht des Werkzeugherstellers oder des Projekts. Fr. Cheryl Dorsey vom Office of Airworthiness der EADS DE stellte die Problematik aus der Sicht der Zulassungsbehörde dar, mit dem Schwerpunkt der zivilen Zulassung. Danach sind viele der vom DO-178B geforderten Kriterien noch nicht oder nur teilweise erfüllt. Beispiele für solche Forderungen sind die Rückverfolgbarkeit von Modellelementen auf natürlichsprachliche Anforderungen, Rückverfolgbarkeit des generierten Codes auf die Modellelemente, sowie Aspekte des Konfigurations- und Änderungsmanagements. Auch der Ansatz, aus dem gleichen Modell sowohl den operativen Code als auch die Tests für diesen Code zu generieren, wird als „inzestiös“ eingestuft und dementsprechend nicht akzeptiert.

Der diesjährige Workshop war der dritte in einer Reihe von Veranstaltungen, die sich mit dem Thema der Code-Generierung im Luft- und Raumfahrtbereich befassten. Dabei ging es diesmal weniger um die technische Machbarkeit als um den für die Luft- und Raumfahrt bedeutsamen Aspekt der Zulassung. Wie in den vergangenen Workshops wurde deutlich, dass diese Problematik nicht auf den Luft- und Raumfahrtbereich beschränkt ist – ein nicht unerheblicher Anteil der Beiträge und der Teilnehmer kamen aus anderen sicherheits-kritischen Bereichen wie Automotive und Kraftwerkssteuerung. Einige Teilnehmer hoben hervor, dass gerade diese Mischung einen fruchtbaren Informations- und Wissensaustausch ermöglichte.

Die Vorträge wurden von umfangreichen Fragen und engagierten Diskussionen begleitet, die in den beiden Kaffeepausen und während des Mittagessens fortgesetzt wurden. Erfreulicherweise gibt es inzwischen einen relativ hohen Anteil von Stammgästen bei dieser Veranstaltungsreihe des Fachausschusses.

Zusammenfassend lässt sich wohl sagen, dass es für die Zulassung von generiertem Code in Luft- und Raumfahrzeugen noch keinen einheitlichen, standardisierten Ansatz gibt und noch viele Probleme diesbezüglich überwunden werden müssen. Insbesondere ist die automatische Code-Generierung noch lange kein „Push Button“ Ansatz, wie es Dr. Stürmer in seinem Vortrag treffend formuliert hat.

Ein herzliches Dankeschön geht an die Vortragenden für ihre hervorragenden Präsentationen, sowie an die Mitarbeiter des Instituts für Luft- und Raumfahrt für ihre tatkräftige Unterstützung bei der Vorbereitung des Workshops sowie an die Firmen EADS und ESG für die Übernahme der Kosten für die Getränke in den Pausen. Die Vorträge im elektronischen Format und weitere Informationen zum Workshop werden auf der Veranstaltungsseite des DGLR Fachbereichs T6.4 im Internet zur Verfügung gestellt.

Danksagungen

Wir danken für die freundliche Unterstützung bei der Vorbereitung und Durchführung des Workshops: