Seminar Software-Engineering für softwareintensive Systeme ASCET MD / INTECRIO Seminar Software-Engineering für softwareintensive Systeme
Softwarewerkzeuge der Firma ETAS ASCET Überblick Softwarewerkzeuge der Firma ETAS ASCET Entwurf von Steuerungssoftware Unterstützt Prototyping und Simulation Codegenerierung für versch. Zielsysteme INTECRIO Integriert Steuerungsmodelle aus unterschiedlichen Anwendungen (ASCET MD, Matlab/Simulink, usw...)
Modularer Aufbau ASCET ASCET MD ASCET RP ASCET SE ASCET SE Entwurf & Simulation ASCET RP Rapid Prototyping & Testing ASCET SE Codegenerierung für ... ASCET SE ... unterschiedliche Zielsysteme
Arbeitsablauf in ASCET MD Spezifizieren einzelner Komponenten Module Klassen / Zustandsautomaten Testen der Einzelkomponenten durch Simulation Zusammenfassung der Komponenten zu einem Projekt Schedule für Gesamtsystem festlegen Testen des Gesamtsystems
Komponenten Klassen Module Mehrere Instanzen Nur eine Instanz Beliebige Parameter / ein Rückgabewert Keine Interprozess-kommunikation Module Nur eine Instanz Keine Parameter / Rückgabewerte Echtzeit-Interprozess-kommunkikation durch Messages Elemente: Variablen / Parameter Schnittstellen: Prozesse / Methoden / Variablen / Messages Algorithmen: spezifiziert durch Blockdiagramme / ESDL / C
Modellierung von Komponenten Blockdiagramme intuitiver für Ingenieure (Schaltplansemantik) größtenteils äquivalent zu ESDL ESDL an Java angelehnt für automotiven Bereich ausgelegt: nur Datentypen udisc, sdisc, cont, log (kein String!) keine Vererbung, keine Methodenüberladung ANSI C für BD und ESDL : zielspezifische Generierung des Codes hier : zielspezifische Programmierung erforderlich keine Datenkonsistenzprüfung durch ASCET MD
Elemente in Blockdiagrammen (1) Messages Parameter Variablen Arithmetische Operatoren + - x /... Vergleichsoperatorn < > = ... Logische Operatorn & | ! Bedingter Operator If (condition) Then trueValue; Else fasleValue; Komplexe Elemente
Elemente in Blockdiagrammen (2) Komplexe Elemente
Semantik von Blockdiagrammen Anschlüsse können verbunden werden Sequenznummern bestimmen Ausführungsreihenfolge
Vergleich Blockdiagramme / ESDL (1) ndiff = n_nominal - n; pi_value = Integrator.integrate(ndiff) + (ndiff * Kp); if (pi_value > air_low) { air_nominal = pi_value; } else { air_nominal = air_low; }
Vergleich Blockdiagramme / ESDL (2) While (i < 10) { c = b * c; i = i + 1; }
Zustandsautomaten History Werden wie Klassen behandelt Trigger als öffentliche Methode Reihenfolge der Transitionen festlegbar (Prioritäten) Werden wie Klassen behandelt Hierarchische Zustände Eintritts- / Austritts- und statische Aktionen
Arbeitsablauf in ASCET MD Spezifizieren einzelner Komponenten Module Klassen / Zustandsautomaten Testen der Einzelkomponenten durch Simulation Zusammenfassung der Komponenten zu einem Projekt Schedule für Gesamtsystem festlegen Testen des Gesamtsystems
Simulation Simulation einzelner Komponenten oder des Gesamtsystems Animierte Automaten Eingabe jederzeit modifizierbar Vielfältige Ausgaben Zahlenwerte Oszilloskop ...
Arbeitsablauf in ASCET MD Spezifizieren einzelner Komponenten Module Klassen / Zustandsautomaten Testen der Einzelkomponenten durch Simulation Zusammenfassung der Komponenten zu einem Projekt Schedule für Gesamtsystem festlegen Testen des Gesamtsystems
Projekt Task Projekte & Tasks Enthält alle Komponenten Legt Scheduling der Prozesse fest „Gehirn“ des eingebetteten Kontrollsystems Task Fasst Prozesse mit gleicher Frequenz zusammen Führt diese in fester Reihenfolge aus verschiedene Typen (Alarm-Tasks, Init-Tasks, ...) präemptiv / kooperativ / nicht-unterbrechbar
Scheduling Keine integrierte Schedulability Analyse! ( eigenes Werkzeug RTA-Trace)
INTECRIO Modellierungs-Tools unterschiedlich gut geeignet für bestimmte Aspekte (z.B. MatLab Differentialgleichungen zur Beschreibung der Umwelt) Verschiedene Notationen (nicht einheitlich wie z.B. UML) Zusammenführung verschiedener Modelle gewünscht Zwei Möglichkeiten Überführung der Modelle ineinander (gleiche Semantik nötig) Co-Simulation in einem Framework
Co-Simulation Generierter C-Code kann über ein Interface in INTECRIO integriert werden
Integration mehrerer Modelle Vorhandene Interfaces für ASCET und MatLab / SIMULINK Erweiterbar durch benutzerspezifizierte Interfaces INCODIO generiert Interface aus vorhandenem C-Code Verwendung mehrerer alternativer Modellierungen aus unterschiedlichen Tools Umschaltung zur Systemlaufzeit
Prototyping Verbindung mit ES1000-Testsystem Unterschiedliche Erweiterungskarten Schnittstellen Simulationskarten D/A-Wandler Verschiedene Analysefunktionen