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 immer 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. Und das hat Folgen: Je später im Entwicklungsprozess Fehler in einem System erkannt werden, desto höher sind die Kosten für deren Behebung. Deshalb forscht das Fraunhofer ESK daran, mittels komponentenbasierter Softwareentwicklung dieser Herausforderung entgegenzuwirken.

Dabei hat 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 wie etwa Zeitverhalten ist für eine fehlerfreie Funktionsweise des Systems unabdingbar. Durch die vermehrte Integration unterschiedlicher Komponenten innerhalb eines 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 nicht-funktionalen Anforderungen notwendig.

Offenes Simulations- und Analyseframework

Mit ERNEST 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 zu validieren. 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 haben die Forscher des ESK während der Entwicklung darauf geachtet, dass die Analyse von der eigentlichen Modellierungssprache, in der die Systemarchitektur beschrieben wurde, unabhängig bleibt. Sichergestellt wird dies durch ein eigenes Meta-Modell, mit dem es möglich ist, die für die Simulation relevanten Informationen abzubilden und aus einem Benutzermodell zu extrahieren, welches die Systemarchitektur beschreibt. Durch eine Transformation lässt sich das Benutzermodell in ein sogenanntes Analysemodell überführen, das nach dem ERNEST Meta-Modell aufgebaut ist. Derzeit verfügt ERNEST über eine Transformation, die Modelle aus der Architekturbeschreibungssprache EAST-ADL unterstützt. 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 hat das ESK mittels der Systembeschreibungssprache SystemC ein Simulationsframework entwickelt, das dabei hilft, das Verhalten des modellierten eingebetteten Systems möglichst genau nachzubilden. Dazu wird aus dem Analysemodell Code für das ERNEST Framework generiert. Während der Ausführung der Simulation werden Traces erstellt. Die Aufzeichnung der Kommunikation findet an den Ports der Komponenten des Analysemodells statt, an denen nicht-funktionale Anforderungen definiert wurden.

Um eine Analyse der gewonnenen Daten durchzuführen, ist eine Rückspiegelung dieser Daten in das Analysemodell notwendig. Dazu zeichnet die Simulation die gewonnenen Daten in einem Binary Trace auf. Diese Trace-Daten werden automatisiert in das Analysemodell übernommen. Dadurch ist eine Zuordnung der Daten, die durch die Simulation gewonnen wurden, zu den entsprechenden Elementen des Analysemodells möglich. Zusätzlich kann die Simulation um andere Trace-Formate erweitert werden.

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 Analysemodellen angewendet werden. Das Eclipse Modeling Framework bietet zudem verschiedene Möglichkeiten, um die gewonnenen Analyseergebnisse darzustellen. Aktuell enthält ERNEST eine Visualisierung, die vorhandene Zeitanforderungen und deren Einhaltung anzeigt.

Freie Nutzung

Die Veröffentlichung des Basis-Frameworks sowie der Eclipse Anbindung und die zukünftige Bereitstellung als Open Source Software, die für Anfang 2015 geplant ist, ermöglichen eine freie Nutzung und Weiterentwicklung von ERNEST. Dadurch können Kunden  ERNEST mit Unterstützung des Fraunhofer ESK an die eigenen Bedürfnisse anpassen, auch vor Ort unter Mitarbeit von ESK-Ingenieuren.

Zusätzliche Funktionen bieten ESK-Erweiterungen, wie etwa die Unterstützung spezieller Bussysteme oder die Anbindung an Modellierungssprachen wie AUTOSAR. Das ERNEST-Framework wird zudem im Rahmen verschiedener Projekte des Fraunhofer ESK stetig weiterentwickelt.

Social Bookmarks