210 likes | 328 Views
Seminar Software-Engineering für softwareintensive Systeme. ASCET MD / INTECRIO. Überblick. Softwarewerkzeuge der Firma ETAS ASCET Entwurf von Steuerungssoftware Unterstützt Prototyping und Simulation Codegenerierung für versch. Zielsysteme INTECRIO
E N D
Seminar Software-Engineering für softwareintensive Systeme ASCET MD / INTECRIO
Ü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...)
ASCET • Modularer Aufbau ASCET MD 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
Module Nur eine Instanz Keine Parameter / Rückgabewerte Echtzeit-Interprozess-kommunkikation durch Messages Klassen Mehrere Instanzen Beliebige Parameter / ein Rückgabewert Keine Interprozess-kommunikation Komponenten • 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 • 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
Projekte & Tasks Projekt • 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