Mit ERNEST frühzeitig Fehler im Softwareentwurf finden

Das ERNEST-Framework (EaRly verification and validation of Networked Embedded SysTems) ist eine offene Plattform, welche vom Fraunhofer ESK für die Analyse von komponentenbasierter Software für vernetzte eingebettete Systeme entwickelt wurde. Ziel ist es, nicht-funktionale Anforderungen möglichst schon zum Zeitpunkt der Systemmodellierung und -auslegung zu validieren.

ERNEST Screencast

Das ERNEST-Simulationsframework

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 an komponentenbasierter Softwareentwicklung.

© Foto panthermedia.net / David Castillo Dominici

Dabei reicht eine reine Betrachtung der funktionalen Aspekte nicht aus, um Fehler in vernetzten eingebetteten Systemen zu finden, sondern es müssen auch nicht-funktionale Anforderungen wie etwa Zeitverhalten beachtet werden. 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.

Das ERNEST-Framework (EaRly verification and validation of Networked Embedded SysTems) ist eine offene Plattform, die das Fraunhofer ESK für die Analyse von komponentenbasierter Software für vernetzte eingebettete Systeme entwickelt hat. 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 verbindet dieses mit der Entwicklungsumgebung Eclipse. Dies bietet die Flexibilität, um die Plattform in modellgetriebenen Entwurfsprozessen einzusetzen.

Funktionen

Die Plattform beinhaltet folgende Funktionen:

  • ERNEST Analysis model and framework*
  • ERNEST Code-Generator*
  • ERNEST Simulation Framework*
  • ERNEST Visualization*
  • EAST-ADL-BbW-Case-Study
  • EAST-ADL-Transformation to ERNEST
  • EAST-ADL-Feedback from ERNEST
  • Binary Trace Reader

*Quellcode verfügbar bei GitHub: