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

Fachausschuss Software Engineering T6.4


Workshop

             "Code Generierung und modellbasierte Softwareentwicklung für Luft- und Raumfahrtsysteme"

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




Einleitung

Code Generatoren sind bereits viele Jahre im Einsatz, um stupide, repetitive Programmierarbeit zu automatisieren. Durch den Einsatz von Code Generatoren wird eine höhere Entwicklungsgeschwindigkeit erzielt und damit Kosten gespart. Außerdem reduzieren sich die Fehlerraten, was wiederum die Qualität erhöht. Bestimmte Komponenten, wie z.B. graphische Nutzerschnittstellen, lassen sich ohne spezialisierte Generatoren, den GUI Buildern, gar nicht mehr wirtschaftlich erstellen. Die automatische Code-Erzeugung hat inzwischen einen solchen Stellenwert bekommen, dass es zu einem eigenständigen Fachgebiet avanciert ist, das der Generativen Programmierung.

Während die Generative Programmierung auf Teilkomponenten eingesetzt werden kann, geht das Model Based Software Engineering (MBSE) noch einen Schritt weiter: „Models are the new source code“. Die Idee besteht darin, aus einer abstrakten Systembeschreibung (Model) die gesamte Applikation zu generieren, oder zumindest die Spezifikation ausführbar und damit Tests zugänglich zu machen (Ausführbare Spezifikation). Auch diese Ideen wurden entwickelt lange bevor sich die Objektorientierung auf breiter Front durchsetzte. Der Begriff MBSE wurde bereits in den neunziger Jahren durch das Software Engineering Institute der Carnegie Mellon University geprägt. Ein Beispiel aus dem gleichen Zeitraum ist das Projekt ADAGE, welches im Rahmen des Programms „Domain Specific Software Architectures DSSA“ des US Department of Defense (DoD) durchgeführt worden ist. Dabei wurden Avioniksoftwaresysteme aus Komponenten auf Basis einer Avionikreferenzarchitektur generiert. Allen diesen Ansätzen ist zu eigen, dass sie auf proprietären Modellierungssprachen beruhen.

Hier setzen die Bemühungen der Object Management Group (OMG) an: Die OMG versucht, modellbasierte Softwareentwicklung im Rahmen der „Model Driven Architecture“ (MDA) zu vereinheitlichen. Ausgangspunkt ist die standardisierte Modellierungssprache Unified Modeling Language (UML). Dieser neue Ansatz ist bereits in mehreren missionskritischen Projekten eingesetzt worden, so z.B. bei der Generierung der Applikationssoftware des Modular Mission Computer der F-16.

Ein anderer, eng verwandter Bereich, der ebenfalls enorme Aufwandsreduzierung verspricht, ist das Model Driven Testing (MDT): Hier geht es u.a. um die Generierung von Testfällen oder zumindest von Testinput aus Modellen, bis hin zur modellbasierten Testauswertung. Ausgangspunkt des MDT ist die Überlegung, dass jeder Tester zumindest ein mentales Modell der zu testenden Software besitzen muss. Ein präzise definiertes Modell kann dann natürlich wie zur Code Generierung auch zur Erzeugung von Testfällen und -prozeduren verwendet werden.

Der Anwendung solcher Verfahren im Luft- und Raumfahrtbereich stehen besondere Bedingungen gegenüber: Zum einen handelt es sich vielfach um umfangreiche, extrem komplexe, Realzeitapplikationen, die sehr hohe Anforderungen an die Modellierung stellen. Zum anderen stellen diese missions- oder gar sicherheitskritischen Systeme höchsten Anforderungen an die Zuverlässigkeit. Die dafür notwendige Verifikation und Validierung erzwingt u.a. die Rückverfolgbarkeit der Anforderungen auf den Code und umgekehrt (Traceability), eine rigorose Versionskontrolle der Modelle, sowie die lückenlose Dokumentation des erzeugten Codes.

Ein weiterer Aspekt ist die lange Lebensdauer von Avioniksystemen: Die Obsoleszenz von Entwicklungswerkzeugen kann dazu führen, dass die Wartung des generierten Codes manuell durchgeführt werden muss. Der generierte Code muss daher entsprechend dokumentiert werden und leserlich sein.

Ziel des Workshops am 13. Oktober ist ein intensiver Erfahrungsaustausch über den Nutzen, aber auch die Grenzen des Einsatzes von Code Generatoren und modellbasierter Softwareentwicklung in Luft- und Raumfahrtprojekten.

Bericht

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

Thema des Workshops waren automatische Codegenerierung und modellbasierte Softwareentwicklung für Luft- und Raumfahrtsysteme.

Von den sieben angekündigten Vorträgen musste leider einer kurzfristig abgesagt werden.

Martin Gestwa vom Deutschem Zentrum für Luft- und Raumfahrt begann die Vortragsreihe. Er berichtete über die heterogene Entwicklung experimenteller Flugsteuerungssoftware, deren Erprobung im Fluge mit dem Flugversuchsträger ATTAS erfolgt. Bei der Entwicklung dieser Software wird die Modellierung unter Verwendung von MATLAB / SIMULINK sowie die Generierung mit Real-Time Workshop durchgeführt. Der Standard Coder von Real-Time Workshop wurde durch einen eigens entwickelten ATTAS Coder ersetzt, der mehr Möglichkeiten hinsichtlich der Einbindung von Experimentalfunktionen bietet.

Dr. Hartmut Braun von der ESG Elektroniksystem- und Logistik GmbH beschrieb den Ansatz der Code Generierung wie er bei Eurocopter Deutschland in der Entwicklung der Avioniksoftware von TIGER und NH90 zum Einsatz kommt. Hier wird operationeller Code aus Datenbanken generiert. Die dazu notwendigen Generatoren werden bei Eurocopter selbst entwickelt und gepflegt, was eine hohe Flexibilität garantiert. Es gelten dabei die gleichen Richtlinien wie bei der Entwicklung der Anwendungssoftware.

Hr. Ehrgott von der EADS Deutschland berichtete über die modellbasierte Erstellung der Spezifikation für die Avioniksoftware des Eurofighter. Das Design des Avioniksystems und die Softwarerequirements der Avionikrechner werden als ausführbare Spezifikation mit dem Werkzeug STATEMATE modelliert und anschliessend simuliert. Hiervon verspricht man sich eine Verminderung der Anzahl der Entwicklungszyklen bei gleichzeitiger Verkürzung ihrer Durchlaufzeiten.

Dr. Andre Windisch, ebenfalls  von der EADS Deutschland, gab einen Ausblick auf zukünftige Architekturen auf Basis der Integrierten Modularen Avionik (IMA) und stellte einen Ansatz zur Automatisierung der Abbildung von Applikationskomponenten auf Plattformelemente vor. Letztere werden mit Hilfe eines speziellen UML Profils modelliert. Mit diesem UML Modell können dann die entsprechenden Blueprints bzw. Konfigurationstablellen generiert werden.

Harald Eisenmann von EADS Astrium stellte das Model-based Development and Verification Environment (MDVE) vor, welches zur Verifikation und Validierung von Satelliten und deren Komponenten eingesetzt wird. Ein wichtiger Aspekt ist dabei die Möglichkeit, die simulierten Komponenten nach und nach durch die echte Hardware zu ersetzen und diese dadurch testen zu können. Eingesetzt wurde MDVE bei den Projekten Cryosat, GOCE  und TerraSAR.

Zum Abschluss berichtete Alfred Hönle von der Kayser-Threde GmbH über seine Erfahrung mit dem Einsatz von UML und Automatischer Codegenerierung in einem mittelständischen Raumfahrt-Unternehmen. Er stellte dazu eine Reihe von Projekten vor, bei denen UML mit anschliessender Codegenerierung eingesetzt wurde und beleuchtete die Vor- und Nachteile dieses Ansatzes. So wies er in seinem Vortrag darauf hin, dass generierter Code in der Regel mehr Hardwareressourcen benötigt. Ausserdem stellte er das bei den Entwicklern erforderliche Know-how dar.

Das fachkundige Publikum stellte viele Detailfragen, die von den Vortragenden kompetent beantwortet wurden. Viele interessante Diskussionen fanden in den beiden Kaffeepausen und während des Mittagessens statt.

Zusammenfassend läßt sich sagen, dass operationeller Code in den wenigsten der vorgestellten Ansätzen automatisch generiert wird. Allen Vorträgen gemein ist die Tatsache, dass eine hundertprozentige Generierung von Code derzeit nicht erreicht wird.

Hr. Westerbuhr drückte in seinem Schlusswort die Hoffnung aus, dass der Workshop die Ziele der DGLR und seines Fachausschusses T6.4 erfüllt habe, die darin bestehen, den Erfahrungsaustausch auf dem Gebiet des Software Engineering in der Luft- und Raumfahrt zu fördern. Die Teilnehmer regten an, das Thema beim nächsten Workshop mit dem Schwerpunkt der Zertifizierung von Codegeneratoren bzw. des generierten Codes fortzuführen.

Ein besonderes Schmankerl erwartete die Teilnehmer bei Abschluss des Workshops: Sie wurden von Mitarbeitern des Lehrstuhls für Flugmechanik und Flugregelung eingeladen, den Forschungssimulator und den Ultraleichtflugzeugsimulator des Lehrstuhls zu besichtigen und auch ein wenig Probe zu fliegen.

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.

Programm
09:00
Begrüßung der Teilnehmer
Prof. Dr. Kau
Institut für Luft- und Raumfahrt
09:10 Einführung Frank Westerbuhr
Frank Dordowsky
DGLR T6.4
09:15 Heterogene Software-Entwicklung für den Flugversuchsträger ATTAS
[Kurzfassung] [Download (zipped PDF)]
Martin Gestwa
Deutsches Zentrum für Luft- und Raumfahrt e.V.
10:00
Entwicklung und Anwendung von Software-Generatoren in den Projekten TIGER und NH90
[Kurzfassung] [Download (zipped Powerpoint)]
Dr. Hartmut Braun
ESG Elektroniksystem- und Logistik GmbH
10:45 Kaffeepause  
11:15
Modellbasierte Erstellung der Spezifikation für die Avionik des Eurofighter Systems
[Kurzfassung] [Download (zipped PDF)]
H.-D. Ehrgott, M. Randolph, W. Mansel
EADS Deutschland GmbH
12:00 Mittagessen
13:00 Ein Ansatz zur Automatisierung der Integration von IMA
Systemen
[Download (zipped PDF)]
Dr. Andre Windisch
EADS Deutschland GmbH
13:45 System Verification supported by UML Modeling
[Kurzfassung] [Download (zipped PDF)]
Harald Eisenmann
EADS Astrium GmbH
14:30
Kaffeepause
15:00 5 Jahre Erfahrung mit UML und Automatischer Codegenerierung in einem mittelständischen Raumfahrt-Unternehmen
[Kurzfassung] [Download (zipped PDF)]
Alfred Hönle
Kayser-Threde GmbH
15:45  Schlußwort Frank Westerbuhr
DGLR T6.4

Allgemeine Informationen
 
 


Termin:

13. Oktober 2003 


Ort:

TU München
Boltzmannstr. 15
85748 Garching
Institut für Luft- und Raumfahrt
Gebäude MW-6
Raum 0608M

Kontakt:

Frank Westerbuhr
EADS Deutschland GmbH
Postfach 80 11 09
81663 München

Telefon: 089/607-23794
Telefax: 089/607-26451
E-Mail: frank.westerbuhr@eads.com



Frank Dordowsky
ESG Elektroniksystem- und Logistik-GmbH
Postfach 80 05 69
81605 München

Telefon: 089/607-22425
Telefax: 089/607-26152
E-Mail: frank.dordowsky@esg.de

Sponsoren

Wir danken für die freundliche Unterstützung:

Lehrstuhl für Luftfahrttechnik, TU München

EADS Deutschland GmbH

ESG Elektroniksystem und -Logistik GmbH <>

 

Kurzfassungen der Vorträge

Martin Gestwa: Heterogene Software-Entwicklung für den Flugversuchsträger ATTAS

Das Deutsche Zentrum für Luft- und Raumfahrt e.V. (DLR) verfügt mit dem Flugversuchsträger ATTAS (Advanced Technologies Testing Aircraft System) über ein in Europa zurzeit einzigartiges System. Als Basisflugzeug dient das Kurzstreckenflugzeug VFW 614, welches beim Hersteller so verändert wurde, dass ein im DLR entwickeltes Fly-by-Wire/Light Flugsteuerungssystem integriert und in Betrieb genommen werden konnte. Der dazugehörige Bordrechnerverbund besteht aus einem Duplex-System mit insgesamt neun flugtauglichen Rechnern. Zur Einbindung von Experimenten steht dem Experimentator ein frei programmierbarer Experimentrechner zur Verfügung.

Die heterogene ATTAS Software-Entwicklungsumgebung basiert einerseits auf reinen Quellcode-Dateien und andererseits auf dem problemorientierten Entwicklungswerkzeug MATLAB/SIMULINK mit der Toolbox Real-Time Workshop. Das genannte Produkt hat sich im Bereich der Flugzeug- und Automobilindustrie in den letzten Jahren als de facto Standard etabliert. MATLAB/SIMULINK ist ein Entwicklungswerkzeug zur Modellierung einer Vielzahl technischer Problemstellungen, während mit Hilfe des Real-Time Workshops direkt aus einem Simulink-Modell Quellcode-Dateien in der Programmsprache C erzeugt werden. Das generierte Programmsystem weist dabei die gleiche Funktionalität wie das Simulink-Modell auf.

Der Real-Time Workshop unterstützt verschiedene Software-Strukturen, jedoch müssen in Hinblick auf die Einbindung von Experimentfunktionen über die ATTAS Software-Entwicklungsumgebung bestimmte Anforderungen erfüllt werden. Allerdings können alle Standard-Coder des Real-Time Workshops diese Anforderungen nicht genügen, deswegen wurde ein spezieller ATTAS Coder entwickelt.

Die heterogene Software-Entwicklungsumgebung wurde bereits in vielen Projekten sehr erfolgreich eingesetzt. Zu nennen sind unter anderem die Entwicklung eines Autolandsystems im Rahmen des EU-Projekts REAL, die nicht-lineare In-Flight Simulation für einen Regionaljet sowie die Simulation von Wirbelschleppen im Fluge. Details über die heterogene Software-Entwicklungsumgebung, den ATTAS-Coder und den erfolgreichen Einsatz des vorgestellten Konzepts sollen im Rahmen des Workshops präsentiert werden.

Zurück zum Programm

Dr. Hartmut Braun: Entwicklung und Anwendung von Software-Generatoren in den Projekten TIGER und NH90

In der SW-Entwicklung der Avioniksysteme der Hubschraubern Tiger und NH90 der Fa. Eurocopter wird an den verschiedensten Stellen SW- Generierung, meist mit selbstentwickelten Generatoren, eingesetzt. Der Vortrag beschreibt den generellen Aufbau und die Funktion sowie die verschiedenen Einsatzgebiete der Generatoren. Die bei der Entwicklung und Nutzung gewonnenen Erfahrungen werden dargestellt und daraus generelle Anforderungen an Generatoren abgeleitet, die auch für die Nutzung proprietärer SW-Generatoren anwendbar sind.

Zurück zum Programm

H.-D. Ehrgott, M. Randolph, W. Mansel: Modellbasierte Erstellung der Spezifikation fuer die Avionik des Eurofighter Systems

Modellbasierte Entwicklung in Form einer ablauffähigen Spezifikation stellt für große Avioniksysteme, die eine große Anzahl komplexer Systemfunktionen beinhalten eine große Herausforderung dar. Hier wurden im Rahmen des Projektes Enhanced Process/Toolset für die Avionikentwicklung Eurofighter erhebliche Fortschritte erzielt.

Sowohl die System Requirements und das System Design für das Avioniksystem als auch die SW Requirements für dessen Prozessrechner werden als ausführbare Spezifikation mit dem Werkzeug Statemate entwickelt und als navigierbares PDF-Dokument dokumentiert. Die ausführbare Spezifikation wird als sogenanntes Architekturmodell erstellt. Dieses Architekturmodell ist ein funktionales Model, das allerdings die tatsächliche Architektur der Eurofighter Avionik berücksichtigt.

Es wird gezeigt, wie, beginnend mit dem „Requirements Capture“ mittels Use Case Analyse bis hinunter zu den detaillierten Algorithmen der SW Requirements, ein durchgängiges Statemate Modell zur Verfügung stehen wird. Die ausführbare Spezifikation wird zu Testzwecken genutzt. Auf der Grundlage von Szenarien und Sequenzdiagrammen aus der anfänglichen Use Case Analyse werden Anwendungsfälle systematisch im ausgeführten Modell getestet. Das Verfahren erlaubt sowohl die Validierung der Anwendungsfälle gegen die ursprünglichen Requirements als auch die anschließende Verifizierung der ausführbaren Spezifikation gegen die Anwendungsfälle.

Das gesamte Statemate Modell sowie die Use Cases und weitere Requirements Dokumente sind in ein Requirements Management eingebettete, das durch das Werkzeug DOORS unterstützt wird. Der Nachweis der Requirements Erfüllung wird dadurch entscheidend verbessert.

Der Erfolg in der wirtschaftlichen Erstellung der ausführbaren Spezifikation hat eine wesentliche Grundlage in der engen Kooperation mit dem Statemate-Werkzeughersteller I-Logix. Innerhalb der letzten beiden Jahre hat Statemate aufgrund von Anforderungen aus dem Projekt wesentliche Verbesserungen bekommen. Hierzu zählen neue Funktionalitäten wie Router, Population-of-Information Flows, Local/Global Interface Report, automatische Erzeugung von Sequenzdiagrammen. Die Entwicklung von Statemate wird konsequent weitergeführt, um den erreichten Zustand zu stabilisieren und weiter auszubauen.

Zurück zum Programm

Harald Eisenmann: System Verification supported by UML Modeling

System validation and verification is a critical element in the process life-cycle for the development of complex systems – in particular for spacecrafts. Compared to other systems spacecraft verification and validation have in particular the following challenges:

  • Limited access to the spacecraft with respect to maintainability and corrections to the system

  • In many cases spacecrafts are still unique. Which means the verification and test approach is different for each spacecraft. This also involves dedicated test equipment to perform the verification.

In order to improve the process over the last years here at Astrium a model-based design and verification environment has been developed. The purpose of it is to improve the development process by a set of executable models of the spacecraft. During the verification process those models can be used in different configurations, beginning with the design verification. An important aspect is the development of the test equipment which is also supported by this approach. It is also be possible to run parts of the flight S/W on this models and eventually parts of the flight hardware can be integrated in to the simulators, this allows to run the flight software in its original target environemnt.

A central element is a UML based modeling of the spacecraft. The modeling environment is able to incorporate spacecraft design information as retrieved from the engineering database. Those UML models will be then transformed to an execution engine in order to become executable models automatically and limit the amount of hand-written code for the verification environment.

Zurück zum Programm


Alfred Hönle: 5 Jahre Erfahrung mit UML und Automatischer Codegenerierung in einem mittelständischen Raumfahrt-Unternehmen

Obwohl die automatische Codegenerierung aus Modellen mittlerweile eine beträchtliche Verbreitung erfahren hat, werden noch in vielen Unternehmen CASE-Tools nur als Zeichenwerkzeug eingesetzt und die volle Leistungsfähigkeit von Codegenerator, zugrunde liegendem Framework und Objektorientierung bleibt ungenutzt.

Dieser Vortrag stellt die Anwendersicht eines mittelständischen Unternehmens bzgl. vollständigem CASE-Tool Einsatz aufgrund mehrjähriger Erfahrung dar, da bei der Firma Kayser-Threde (München) die automatische Codegenerierung aus Modellen bereits seit Anfang 1999 zur Anwendung kommt. Grundlage war von Beginn an die UML (neben einer in einem Projekt eingesetzten proprietären Sprache) mit automatisch generiertem C++ Code auf Echtzeitsystemen, aber auch auf Linux und Windows.

Durch den Einsatz der entsprechenden Werkzeuge und Methoden bei Kayser-Threde hat sich der Focus schnell weg von der Implementierung und hin zur Modellierung verschoben, obwohl immer noch ein beträchtlicher Prozentsatz des Codes manuell erstellt werden muss. Dies liegt hauptsächlich daran, dass es mit einer Sprache wie UML bis jetzt nicht möglich ist, ein Problem umfassend zu beschreiben. Trotzdem stieg die Effizienz bei der Software-Entwicklung spürbar.

Einsatzgebiet der Codegenerierung aus Modellen ist bei Kayser-Threde hauptsächlich die Raumfahrt (bis jetzt: ISS Infrastruktur, Experimente innerhalb und ausserhalb der ISS, Bodenbetriebsgerät von Höhenforschungsraketen), aber auch die Telematik im Bahn-Bereich. Die damit durchgeführten Raumfahrt-Projekte waren/sind generell für die ESA bestimmt, mit PSS-05 oder ECSS-E40 als Software-Prozess Standards.

Schwerpunkte des Vortrags werden sein:

  • Autocoding im Raumfahrt-Bereich: Besonderheiten des Umfeldes
  • Nutzersicht: Leistungsfähige Funktionen verbessern die Software-Entwicklung
  • Warum ist diese Technologie noch nicht durchgängig verbreitet, was ist das benötigte Wissen ?
  • Unterstützung großer Teile des SW-Lebenszyklus, angefangen von Erstellen und Nachverfolgen der Requirements mit einem separaten Tracing-Werkzeug bis hin zur Testdokumentation
  • Positive und negative Überraschungen in der Praxis
  • Kurzer Überblick über das verwendete kommerzielle CASE-Tool
  • Zwei Anwendungsbeispiele aus dem selben Projekt (Texus Ground Control):
    • Graphisches Frontend mit Microsoft Visual C++, funktioneller Kern dahinter entwickelt mit UML/C++
    • Zu verarbeitendes Datenformat in XML vorhanden (aus OpenOffice), ausführbare UML Statecharts prozessieren dieses: Verbindung beider Welten über SAX-basierten Parser
Präsentationsmaterial in Englisch geplant, Vortragssprache deutsch.

Zurück zum Programm



 

DGLR

T6

DGLR

DGLR

Inhalt: Frank Dordowsky