ASCET-DEVELOPER - Modellbasierte Entwicklung und automatische Code-Generierung für eingebettete Systeme

Die ASCET-DEVELOPER IDE (Integrated Development Environment) mit grafischen und textuellen Modellen, Modellbrowser und tabellarischen Editoren ermöglicht ein effizientes Arbeiten.

Mit ASCET-DEVELOPER entwickeln Softwareingenieure wartungsfreundliche, sichere Embedded Software mit hoher Leistung und geringem administrativem Aufwand. ASCET-DEVELOPER ist speziell darauf zugeschnitten, Produkte in hohen Stückzahlen zu niedrigen Kosten und unter Einhaltung von Industrie- und höchsten Sicherheitsstandards herzustellen.

ASCET-DEVELOPER-Modelle können einfach grafisch erstellt, oder textbasiert mit der Embedded Software Development Language (ESDL) programmiert, werden.

In der Praxis bewährt

Mit ASCET-DEVELOPER generierter Code wird seit über 20 Jahren in Serienprojekten eingesetzt: Mehr als 450 Millionen Steuergeräte basieren auf dieser Technologie. Der generierte Code erfüllt höchste Sicherheits- und Portabilitätsanforderungen.

Beispiele für Steuergeräteanwendungen die mit ASCET-DEVELOPER programmiert werden sind: Bremssysteme wie ABS/ESP, klassische und elektrische Antriebsstränge, Bremssteuerungen für Hochgeschwindigkeitszüge, Getriebesteuerungen und Fahrerassistenzsysteme.

ASCET-DEVELOPER unterstützt etablierte Industriestandards wie MISRA, OSEK, ASAM, AUTOSAR und FMI.

Geeignet für sicherheitskritische Softwareentwicklung

ASCET-DEVELOPER ermöglicht die Entwicklung von Software, die alle wichtigen Sicherheitsstandards erfüllt.

  • TÜV-zertifizierte Code-Generierung für ISO26262-ASIL-D- und IEC61508-SIL3-Anwendungen
  • MISRA-C:2012-konform
  • Beseitigung potenzieller Fehler durch automatische Ausführung defensiver Code-Prüfungen

Eigenschaften

Modellierung

Mit ASCET-DEVELOPER lassen sich Texte und Grafiken auf einfache Weise den individuellen Programmieranforderungen entsprechend kombinieren. Es gibt verschiedene Möglichkeiten, Logikschaltungen möglichst effizient zu modellieren. Vier Spezifizierungsmöglichkeiten stehen zur Wahl:

  • Grafische Spezifizierung mit Blockdiagramm
  • Grafische Spezifizierung mit Zustandsautomat
  • Textuelle Spezifizierung mit ESDL-Editor
  • Textuelle Spezifizierung mit C-Editor

Darüber hinaus verfügt ASCET-DEVELOPER über wichtige Eigenschaften, welche die Modell- und Codequalität verbessern und die Effizienz erhöhen:

  • Statische Analyse „on-the-fly“: Modelle können während der Bearbeitung auf Fehler überprüft werden
  • Integrierte Qualitätsmetriken führen zu besseren Modellen

Die Semantik von ASCET-DEVELOPER-Modellen wird in ESDL gespeichert. Dies bietet folgende Vorteile:

  • Strukturierung der Funktionen in Klassen ermöglicht die objektbasierte Kapselung und systematische Wiederverwendung
  • Um physikalische Wertebereiche zu erfassen, diese systematisch zu quantifizieren und wiederzuverwenden besteht die Möglichkeit abstrakte Typen zu erstellen.
  • Funktionszusammenhänge sind klar dargestellt und so leicht überprüfbar
  • Versionen sind übersichtlich miteinander vergleichbar
  • Typsicherheit

Blockdiagramm-Editor

  • Der Blockdiagramm-Editor erleichtert die Modellierung und Visualisierung von Daten und die Steuerung des Datenflusses

 

  • Vollständig deterministische Ausführungsreihenfolge durch explizite Sequenzierung von Berechnungen

Zustandsautomaten-Editor

  • Programmierung und Visualisierung der Entscheidungslogik basieren auf Notationen für endliche Zustandsautomaten

 

  • Aktionen und Bedingungen können direkt als ESDL-Code geschrieben oder in einer separaten, im Blockdiagramm-Editor programmierten Methode gekapselt werden

ESDL-Editor

  • ESDL-Editor für textbasierte Spezifikation mit Autocomplete und Syntaxhervorhebung verfügbar

 

  • Leicht zu erlernen durch vertraute objektorientierte Programmierkonstrukte, die für sicherheitskritische eingebettete Software entwickelt wurden

Live-Validierung

  • On-the-fly-Modellvalidierung zur frühzeitigen Fehlererkennung

 

  • Probleme werden in den Editoren als Einblendung angezeigt und in der Problemansicht gruppiert

 

  • Intelligente Schnellkorrekturen helfen Anwendern automatisch die richtige Lösung zu finden

Qualitätsmetriken

  • Integrierte Qualitätsmetriken mindern die technische Tiefe und ermöglichen die Entwicklung von wartungsfreundlicherem Code

 

  • Auswahl der für den individuellen Prozess geeigneten Metriken einschließlich Festlegung des eigenen Schwellenwerts verfügbar

Validierung

ASCET-DEVELOPER bietet verschiedene Möglichkeiten, um Modelle in verschiedenen Entwicklungsstufen effizient und umfassend zu validieren:

  • Einfaches Prüfen der Modelle durch Trennung von Modell- und Darstellungseigenschaften. Der Schwerpunkt liegt zunächst auf dem physikalischen Verhalten und kann später im Prozess mit Target-spezifischen Randbedingungen geprüft werden.
  • Integriertes Test-Framework
  • Open-Loop-PC-Simulation mit ETAS Experiment Environment
  • Modellüberdeckung und -analyse aus der Testausführung mit Metriken wie Statement, Branch, State, Transition und Modifizierter Bedingungs-/Entscheidungsüberdeckung (MC/DC).
  • ASCET-DEVELOPER-Modelle können zusammen mit anderen Modellen in externen Tools simuliert werden, wenn sie den FMI-Standard unterstützen. Die Verbindung erfolgt über den FMU-Export oder in MATLAB/Simulink über den S-Function-Export.
  • Funktionsprototyping auf Echtzeit-Hardware mit der Prototyping-Lösung von ETAS ermöglicht frühe, realitätsnahe Validierung am Prüfstand oder im Fahrzeug.

Unit-Testing

  • Systematisches Testen von Softwareeinheiten mit dem ESDL Unit Testing Framework

 

  • Nutzung von ESDL-Testklassen zum Testen unabhängiger Softwareeinheiten und zur anschließenden Visualisierung der Ergebnisse

PC-Simulation

  • Frühe Entwurfsvalidierung mittels PC-Simulation mit Live-Messung und Kalibrierung der Daten

 

  • Fortschrittliche Experimentierumgebung mit Signalgeber, Datenprotokollierung und Widgets

Testabdeckung

  • Interaktive Testabdeckung durch laufende PC-Simulation oder Ausführung von Unit-Tests

 

  • Zusammenfassung der Testabdeckung für alle in der Ausführung befindlichen Softwareeinheiten in der „Coverage View“

 

  • Visualisierung der Abdeckung in Text- oder Grafikeditoren zur Anzeige der getesteten Modellteile

Automatische Code-Generierung

Manuelle Code-Generierung erfordert zusätzlichen Aufwand, um Laufzeitfehler zu verhindern und Standards sowie Coding Guidelines einzuhalten. Mit ASCET-DEVELOPER können Sie sich voll und ganz auf die Lösung ihres Problems konzentrieren, den Rest übernimmt der Code-Generator. Dieser zeichnet sich durch folgende Eigenschaften aus:

  • Hochwertiger und serientauglicher MISRA-konformer C-Code
  • Für den Anwender leicht lesbare Darstellung
  • Rückverfolgbarkeit des Codes zum jeweiligen ASCET-DEVELOPER-Modell
  • Automatisches Einfügen von defensivem Code. Beispiele hierfür sind der Schutz vor Division durch Null, zulässige Wertebereiche basierend auf Typeneigenschaften sowie der Schutz vor der Überschreitung von Indexgrenzen bei Arrays.
  • Festkomma Code-Generierung
  • AUTOSAR-Code-Generierung durch Abbildung des ASCET-DEVELOPER-Modells auf die AUTOSAR-Struktur
  • Schnelle Wiederverwendung vorhandener ASCET-DEVELOPER-Modelle und Generierung von Code für verschiedene Targets über Anpassungsoptionen
    • Benutzerdefinierte Rückrufe an gerätespezifische Arithmetik-, Interpolations- oder Servicebibliotheken
    • Speicheranweisung für Compiler
    • Bedingte Code- und Datenstrukturen, die zur Kompilierungs- oder Generierungszeit aufgelöst werden können
    • Zahlreiche Optimierungsstrategien für Ressourcen und Laufzeitperformance

Integration in bestehende Werkzeugketten

ASCET-DEVELOPER stellt verschiedene Schnittstellen sowie ein standardisiertes Austauschformat zur Verfügung und lässt sich so einfach in den jeweiligen Entwicklungsprozess oder die entsprechende Toolchain integrieren. Folgende Eigenschaften von ASCET-DEVELOPER erleichtern die Integration:

  • ASCET-DEVELOPER baut auf der Eclipse-Plattform auf. Dies erlaubt die nahtlose Integration von Prozesswerkzeugen in derselben Integrierten Entwicklungsumgebung.
    • Verbindung zu JIRA, Bitbucket, Git, SVN, IBM RTC mit nativen Eclipse-Plugins
    • Installation auf vorhandener Eclipse-Workbench verschiedener Anbieter wie STM, ARM
    • Modellierung und Code-Generierung für mehrere Targets; Entwicklung, Debuggen in derselben IDE
  • Anforderungsverfolgung mit Yakindu Traceability ermöglicht die Verknüpfung von Prozessartefakten mit ASCET-Modellen (z. B. DOORS für das Anforderungsmanagement)
  • Erzeugung zusätzlicher Prozessartefakte wie A2L, ARXML, MDX aus ASCET-Modellen
  • Erweiterung über das mitgelieferte ASCET SDK für den eigenen Prozess (z. B. Einfügen der eigenen Codierungsrichtlinien in die statische Analyse-Engine von ASCET)
  • Workbench-Automatisierung für kontinuierliche Integration