Suchen

Qualitätssicherung ERNEST deckt Fehler schon in der Entwicklungsphase auf

Autor / Redakteur: Annette Paulić * / Franz Graser

Das offene Framework ERNEST bietet eine simulationsbasierte Analyse von Softwaresystemen im Entwicklungsprozess. Wesentliches Merkmal ist seine breite Einsatzfähigkeit.

Firmen zum Thema

Der Aufbau von ERNEST: Durch Modelltransformationen wird der Code für die Simulation erzeugt.
Der Aufbau von ERNEST: Durch Modelltransformationen wird der Code für die Simulation erzeugt.
(Grafik: Fraunhofer ESK)

Komplexität hat ihren Preis, auch in der Entwicklung: Durch die vermehrte Integration unterschiedlicher Komponenten innerhalb eines vernetzten eingebetteten Systems wird es immer schwieriger, Fehler rechtzeitig im Entwicklungsprozess zu finden und zu beheben.

Dieses frühzeitige Auffinden von Fehlern ist das Ziel von ERNEST, einem vom Fraunhofer-Institut für Eingebettete Systeme und Kommunikationstechnik ESK entwickelten offenen Framework. Es besteht aus einem Meta-Modell, diversen Eclipse-Plug-Ins und einem auf SystemC basierenden Simulations-Framework.

Die offene Architektur ermöglicht es jedem Benutzer, ERNEST nach seinen eigenen Bedürfnissen zu erweitern und anzupassen. Durch das Meta-Modell können verschiedene Modell-Formate unterstützt werden, die mithilfe von Modell-zu-Modell-Transformationen in ERNEST integriert werden können.

Insbesondere geht es darum, nicht-funktionale Eigenschaften von Systemen zu analysieren, und das möglichst frühzeitig. Ein wichtiges Beispiel für eine solche Eigenschaft ist das Zeitverhalten.

Gerade in komplexen eingebetteten Systemen müssen bestimmte Zeitvorgaben eingehalten werden, da es fatale Auswirkungen haben kann, wenn eine Systemmeldung zu spät kommt. So kann ein Bremsvorgang nur dann erfolgreich ausgeführt werden, wenn alle benötigten Informationen innerhalb eines begrenzten Zeitintervalls weitergeleitet werden.

Das Modell ermöglicht die Simulation

Erster Schritt einer solchen Analyse ist es, ein Modell des Systems, das unter die Lupe genommen werden soll, zu erstellen. Veranschaulichen lässt sich das am Beispiel eines Brake-by-Wire-Systems, also eines Bremssystems, in dem die Bremse nicht mehr hydraulisch, sondern elektronisch ausgelöst wird.

Das Diagramm zeigt ein vereinfachtes Beispiel-Modell eines Bremssystems.
Das Diagramm zeigt ein vereinfachtes Beispiel-Modell eines Bremssystems.
(Bild: Fraunhofer ESK)

In dem Architekturmodell dieses Bremssystems ist der BremsController die zentrale Instanz. Er bekommt über Sensoren die Geschwindigkeit des Fahrzeugs übermittelt. Der BremsmomentRechner berechnet aus dem aktuellen Bremspedalwinkel (PedalValue), der ebenfalls von einem Sensor gemessen wird, das bisherige Bremsmoment und schickt dies an den BremsController.

Aus diesen Daten berechnet der BremsController das aktualisierte Bremsmoment, das zusammen mit der aktuellen Geschwindigkeit an das ABS_1 (Anti-Blockier-System) weitergeleitet wird. Der ABS-Regler vergleicht die Geschwindigkeit des Fahrzeugs mit der aktuellen Geschwindigkeit der Räder, die wiederum über Sensoren erfasst wird. Mit diesen Daten wird das Bremsmoment angepasst und die benötigte Bremskraft (brakeForceDisc) an die Brems-Aktuatoren weitergegeben, die schließlich den Bremsvorgang auslösen.

In dem genannten Beispiel eines Bremssystemswurde das Modell in der Modellierungssprache EAST-ADL erstellt. Allerdings 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. Damit soll das wichtige Entwurfsziel von ERNEST, nämlich dessen breite Einsatzfähigkeit, erreicht werden.

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 (siehe Grafik). Durch eine Transformation lässt sich das Benutzer- in ein Analysemodell überführen. Letzteres ist nach dem Meta-Modell von ERNEST aufgebaut. Neben EAST-ADL werden sukzessive weitere Transformationen für andere Modellierungssprachen wie UML/MARTE und AUTOSAR/Artop realisiert.

Angabe von Constraints für das Timing

Im Analysemodell sind unter anderem die Werte hinterlegt, die das Zeitverhalten des Systems beschreiben, die sogenannten Constraints. Sie bilden die Grundlage für die Timing-Analyse. Sind bereits im Benutzermodell Informationen zum Zeitverhalten des Systems enthalten, so werden diese bei der Transformation in das Analysemodell übernommen.

Über einen Constraint kann nun definiert werden, welche Bedingungen an das Zeitverhalten gestellt werden. Dabei werden die Ports von System-Komponenten angegeben, die zur Messung des Zeitverhaltens herangezogen werden. In einem Constraint wird zudem festgelegt, wie das Zeitverhalten zwischen zwei Ereignissen sein soll, also etwa wie viel Zeit maximal oder minimal vergehen darf zwischen dem Eintreffen eines Events am ersten Port und dem Eintreffen eines Events am zweiten.

Daran, und das ist das Kernstück von ERNEST, schließt sich eine simulationsbasierte Analyse des Softwaresystems an. Zunächst kann man noch definieren, wie lange die Simulation laufen soll. Dann wird aus dem bestehenden Analysemodell, das auch die Informationen zum Zeitverhalten enthält, automatisch der Code für die Simulation generiert: Die Entwicklungsumgebung Eclipse sorgt für die Kompilierung des SystemC-Codes, wodurch eine ausführbare Simulation erzeugt wird.

Während der Simulation wird aufgezeichnet, welche Events zu welchem Zeitpunkt eintreffen. Die Speicherung dieser Informationen erfolgt in Form eines Trace, welcher anschließend im Analysemodell hinterlegt wird. Ein Trace wird für die Aufzeichnung verschiedener Daten genutzt, um diese später auswerten zu können. Für diese Traces sind verschiedene Formate wie beispielsweise OT1 (Open Timing Information Exchange Format) denkbar.

ERNEST lässt sich jederzeit erweitern, um zusätzliche Tracing-Formate zu unterstützen. Auf diesem aufgezeichneten Trace wird schließlich die Analyse durchgeführt. Über die gesamte Dauer der Simulation findet eine Prüfung statt, ob die definierten Constraints bezüglich des Zeitverhaltens eingehalten wurden oder nicht. Das Ergebnis der Prüfung fließt in das Analysemodell ein.

Visualisierung zeigt Fehler auf

Um nicht jeden Constraint einzeln prüfen zu müssen, verfügt ERNEST über eine Visualisierung, die die Ergebnisse der Analyse einfach und kompakt darstellt. Die Ergebnisse werden als Zeitstrahl angezeigt. Es ist genau markiert, zu welchem Zeitpunkt Events an den beiden zu überwachenden Ports auftreten. Im Beispiel des Bremssystems sind das der Bremspedal-Winkel (PedalValue) und die Bremskraft (brakeForceDisk). Ist der Abstand zwischen diesen Events größer als der zuvor angegebene maximale Zeitraum, so wurde der Constraint verletzt (rot markiert). Andernfalls wurde der Constraint eingehalten (grün markiert).

Visualisierung der Ergebnisse.
Visualisierung der Ergebnisse.
(Bild: Fraunhofer ESK)

Zusätzlich wird im Modell markiert, an welchen Komponenten das Zeitverhalten verletzt wurde. Gekennzeichnet werden jeweils die Software-Komponenten, zu denen die betrachteten Ports gehören. Das erleichtert die Identifikation von Problemstellen.

Eingesetzt wird das offene Framework ERNEST bislang zur Analyse des Zeitverhaltens von Automotive-Systemen. Die Analyse erfolgt sowohl intern in Projekten bei ESK als auch in gemeinsamen Projekten mit Partnern aus Wissenschaft und Industrie.

Nutzung und Weiterentwicklung des Frameworks

Für Anfang 2015 ist die Bereitstellung des Basis-Frameworks sowie der Eclipse-Anbindung als Open-Source-Software geplant. Dadurch wird eine freie Nutzung und Weiterentwicklung von ERNEST ermöglicht, sowie eine Anpassung von ERNEST an eigene Bedürfnisse. Um die Zuverlässigkeit zukünftiger Bordnetze überprüfen zu können wird das ERNEST-Framework außerdem im Rahmen verschiedener Projekte des Fraunhofer ESK stetig weiterentwickelt, wie beispielsweise im EU-Projekt SafeAdapt zur Entwicklung sicherer adaptiver Architekturen für Elektromobilität und hochautomatisiertes Fahren.

* Annette Paulić ist als wissenschaftliche Mitarbeiterin am Fraunhofer-Institut für Eingebettete Systeme und Kommunikationstechnik ESK tätig.

(ID:43159939)