Mit ERNEST frühzeitig Fehler im Softwareentwurf finden

Fraunhofer-Institut für Eingebettete Systeme und Kommunikationstechnik ESK

© Fraunhofer ESK

Eingebettete Systeme werden aufgrund steigender Anforderungen und Funktionalität stetig komplexer, was man insbesondere am Beispiel moderner Automobile erkennen kann. Ohne eine frühzeitige Absicherung solch komplexer Systeme bleiben Fehler unerkannt und führen in späteren Entwicklungsphasen zu Problemen. Je später im Entwicklungsprozess Fehler in einem System erkannt werden, desto höher sind die Kosten zu deren Behebung. Mittels komponentenbasierter Softwareentwicklung wirkt man dieser Entwicklung entgegen. Dabei hat es sich gezeigt, dass eine reine Betrachtung der funktionalen Aspekte nicht ausreicht, um Fehler in vernetzten eingebetteten Systemen zu finden.
Insbesondere das Einhalten nicht-funktionaler Anforderungen ist für eine fehlerfreie Funktionsweise des Systems unabdingbar. Durch die vermehrte Integration unterschiedlicher Komponenten innerhalb eines heutigen vernetzten eingebetteten Systems wird jedoch gerade dies erschwert. Um die Entwicklungskosten zu reduzieren und robustere Softwaresysteme zu erhalten, ist daher eine frühe Validierung von nichtfunktionalen Anforderungen notwendig.

Offenes Simulations- und Analyseframework

Mit ERNEST (framework for the EaRly verification and validation of Networked Embedded SysTems) erarbeiten die ESK-Wissenschaftler eine offene Plattform, die zur frühen Analyse von komponentenbasierten Softwaresystemen im Bereich vernetzter eingebetteter Systeme mit dem Schwerpunkt Automotive eingesetzt werden kann. Ziel ist es, nicht-funktionale Anforderungen möglichst schon zum Zeitpunkt der Systemmodellierung und -auslegung validieren zu können. Dafür nutzt ERNEST ein eigens entwickeltes Simulationsframework und bindet dieses zur flexiblen Anwendung in den modellgetriebenen Entwurf mit der Entwicklungsumgebung Eclipse ein.

Integration und Anpassbarkeit

Ein wichtiges Entwurfsziel von ERNEST ist dessen breite Einsatzfähigkeit. Daher wurde während der Entwicklung darauf geachtet, dass die Analyse von der eigentlichen Modellierungssprache, in der die Systemarchitektur modelliert wurde, unabhängig bleibt. Sichergestellt wird diese Anforderung durch ein eigenes Meta-Modell, mit dem es möglich ist, die für die Simulation relevanten Informationen abzubilden und aus einem Ausgangsmodell zu extrahieren. Derzeit verfügt ERNEST über eine Transformation, die Modelle aus der Architekturbeschreibungssprache EAST-ADL unterstützt. Diese findet v. a. im Automotive-Bereich Anwendung und beschreibt dort die relevanten Hardware- und Softwarebeziehungen. Weitere Transformationen werden sukzessive für andere Modellierungssprachen wie UML/MARTE und AUTOSAR/Artop realisiert.

Simulationsbasierte Analyse

Kernstück von ERNEST ist eine simulationsbasierte Analyse. Dafür wurde mittels der Systembeschreibungssprache SystemC ein Simulationsframework entwickelt, das dabei hilft, das Verhalten (Hardware, Software und Kommunikation) des modellierten eingebetteten Systems möglichst genau nachzubilden. Dazu wird mit einer Modell-zu-Text Transformation C++ Quellcode erzeugt, der mithilfe von ERNEST die ausführbare Simulation bildet. Während der Ausführung der Simulation werden Traces aufgezeichnet. Die Aufzeichnung findet an den Ports der Komponenten statt, an denen nicht-funktionale Anforderungen definiert werden.

Um eine Analyse der gewonnenen Daten durchführen zu können, ist eine Rückpropagation dieser in das ERNEST-Modell notwendig. Dazu schreibt die Simulation die gewonnenen Daten in ein sog. Change-Model. Das Change-Model ist ein Mechanismus, welcher vom Eclipse Modeling Framework bereitgestellt wird. Dadurch lassen sich Änderungen an einzelnen Modellelementen beschreiben und können automatisiert in dem Ursprungsmodell übernommen werden. Somit ist eine Zuordnung der durch die Simulation gewonnenen Daten mit den jeweiligen Elementen des ERNEST-Modells möglich.

Erweiterbares Analysewerkzeug

Der offene Framework-Ansatz und die Nutzung der Eclipse Entwicklungsumgebung machen ERNEST zu einer frei erweiterbaren Analyseplattform. Hierzu stellt die ERNEST Eclipse-Erweiterung einen Anknüpfungspunkt zur Verfügung, um eigene Analysen anzufügen. Diese können dann auf den ERNEST-Modellen angewendet werden. Auch die Auswertung der Ergebnisse kann durch die gesammelten Daten im Modell auf vielfältige Art und Weise geschehen. So bietet das Eclipse Modeling Framework ausreichend Möglichkeiten, um die Analyseergebnisse aus dem Modell zu extrahieren und in einer gewünschten Form zu präsentieren. Aktuell existiert eine Visualisierung, die vorhandene Zeitanforderungen und ihre Einhaltung anzeigen kann.

Freie Nutzung

Die Veröffentlichung des Basis-Frameworks sowie der Eclipse Anbindung und die zukünftige Planung als Open-Source Software machen eine freie Nutzung und Weiterentwicklung von ERNEST möglich. Erweiterungen, wie die Unterstützung spezieller Bussysteme oder die Anbindung an Modellierungssprachen wie AUTOSAR, können zusätzlich von Fraunhofer ESK bereitgestellt werden. Außerdem ist es möglich, ERNEST mit der Unterstützung des Fraunhofer ESK an die eigenen Bedürfnisse anzupassen.

Ausblick

Das ERNEST-Framework wird im Rahmen verschiedenster Projekte des Fraunhofer ESK stetig weiterentwickelt. Die Qualität der Analyseergebnisse ist abhängig von dem Detailgrad der im Benutzermodell erfassten Daten sowie der Qualität der Modelle auf Simulationsebene. Aus diesem Grund ist es u. a. denkbar, die Qualität bis auf zyklengenaue Prozessormodelle zu verbessern. Aktuell wird untersucht, inwiefern der dadurch entstehende Simulationsaufwand mit den genaueren Ergebnissen zu rechtfertigen ist.