Mit ERNEST frühzeitig Fehler im Softwareentwurf finden
Fraunhofer-Einrichtung für Systeme der Kommunikationstechnik ESK
-

- © Fraunhofer ESK
Eingebettete Systeme werden aufgrund steigender Anforderungen und Funktionalität stetig komplexer. 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 für deren Behebung. Mit 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 unabdingbar für eine fehlerfreie Funktionsweise des Systems. Die vermehrte Integration unterschiedlicher Komponenten innerhalb eines vernetzten eingebetteten Systems erschwert gerade dies
Das ERNEST Simulationsframework
Mit ERNEST (framework for the EaRly verification and validation of Networked Embedded SysTems) erarbeiten die Wissenschaftler der Fraunhofer ESK eine offene Plattform zur frühen Analyse von komponentenbasierten Softwaresystemen von vernetzten, eingebetteten Systemen. Das Ziel ist es, nicht-funktionale Anforderungen 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 wurde während der Entwicklung auf die Unabhängigkeit der Analyse von der eigentlichen Modellierungssprache – in der die Systemarchitektur modelliert wurde – geachtet. Sichergestellt wird diese Anforderung durch ein eigenes Metamodell, mit dem es möglich ist, die für die Simulation relevanten Informationen abzubilden und aus einem Ausgangsmodell zu extrahieren. Derzeit existiert in ERNEST eine Transformation, die Modelle aus der Architekturbeschreibungssprache EAST-ADL unterstützt. Diese findet vor allem in der Automobil-Branche Anwendung und beschreibt dort die relevanten Hardware- und Softwarebeziehungen. Weitere Transformationen werden sukzessive für andere Modellierungssprachen, z.B. UML/MARTE und AUTOSAR/Artop, realisiert.
Simulationsbasierte Analyse
Kernstück von ERNEST ist eine simulationsbasierte Analyse. Dafür wurde mit 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.
Für eine Analyse der gewonnen Daten werden diesein das ERNEST-Modell zurückgeführt. Dazu schreibt die Simulation die gewonnenen Daten in ein sogenanntes 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, der es möglich macht, 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 diese im Analyseergebniss aus dem Modell zu extrahieren und in einer gewünschten Form zu präsentieren. Aktuell existiert zunächst eine Visualisierung, die vorhandene Zeitanforderungen und ihren Einhaltung anzeigen kann.
Ausblick
Das ERNEST-Framework wird im Rahmen verschiedenster Forschungsprojekte der Fraunhofer ESK stetig weiterentwickelt. Die Qualität der Analyseergebnisse ist abhängig vom Detailgrad der im Benutzermodell erfassten Daten sowie der Qualität der Modelle auf Simulationsebene. Aus diesem Grund ist es unter anderem 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. Zunächst ist ERNEST zur freien Evaluierung verfügbar. In einem nächsten Schritt ist die Veröffentlichung als Open-Source Werkzeug geplant, welches dann selbstständig erweitert oder auch durch Unterstützung durch die Fraunhofer ESK an die eigenen Bedürfnisse angepasst werden kann.

Social Bookmarks