Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von...

21
Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive Systeme ASCET MD / INTECRIO

Transcript of Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von...

Page 1: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 1

Seminar Software-Engineering für softwareintensive Systeme

ASCET MD / INTECRIO

Page 2: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 2

Ü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...)

Page 3: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 3

ASCET

• Modularer Aufbau

ASCET MDEntwurf & Simulation

ASCET RPRapid Prototyping & Testing

ASCET SECodegenerierung für ...

ASCET SE... unterschiedliche Zielsysteme

Page 4: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 4

Arbeitsablauf in ASCET MD

1. Spezifizieren einzelner Komponenten

• Module

• Klassen / Zustandsautomaten

2. Testen der Einzelkomponenten durch Simulation

3. Zusammenfassung der Komponenten zu einem Projekt

4. Schedule für Gesamtsystem festlegen

5. Testen des Gesamtsystems

Page 5: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 5

Komponenten

Module• Nur eine Instanz

• Keine Parameter / Rückgabewerte

• Echtzeit-Interprozess-kommunkikation durch Messages

Klassen• Mehrere Instanzen

• Beliebige Parameter / ein Rückgabewert

• Keine Interprozess-kommunikation

• Elemente: Variablen / Parameter

• Schnittstellen: Prozesse / Methoden / Variablen / Messages

• Algorithmen: spezifiziert durch Blockdiagramme / ESDL / C

Page 6: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 6

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

Page 7: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 7

Komplexe ElementeBedingter Operator

If (condition)Then trueValue;Else fasleValue;

Elemente in Blockdiagrammen (1)

Messages

Parameter

Variablen

Arithmetische Operatoren + - x /...

Vergleichsoperatorn < > = ...

Logische Operatorn & | !

Page 8: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 8

Elemente in Blockdiagrammen (2)

Komplexe Elemente

Page 9: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 9

Semantik von Blockdiagrammen

• Anschlüsse können verbunden werden• Sequenznummern bestimmen Ausführungsreihenfolge

Page 10: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 10

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;

}

Page 11: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 11

Vergleich Blockdiagramme / ESDL (2)

While (i < 10) {

c = b * c;

i = i + 1;

}

Page 12: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 12

Zustandsautomaten

• Werden wie Klassen behandelt

• Hierarchische Zustände

• Eintritts- / Austritts- und statische Aktionen

• History

• Trigger als öffentliche Methode

• Reihenfolge der Transitionen festlegbar (Prioritäten)

Page 13: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 13

Arbeitsablauf in ASCET MD

1. Spezifizieren einzelner Komponenten

• Module

• Klassen / Zustandsautomaten

2. Testen der Einzelkomponenten durch Simulation

3. Zusammenfassung der Komponenten zu einem Projekt

4. Schedule für Gesamtsystem festlegen

5. Testen des Gesamtsystems

Page 14: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 14

Simulation

• Simulation einzelner Komponenten oder des Gesamtsystems

• Animierte Automaten

• Eingabe jederzeit modifizierbar

• Vielfältige Ausgaben

• Zahlenwerte

• Oszilloskop

• ...

Page 15: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 15

Arbeitsablauf in ASCET MD

1. Spezifizieren einzelner Komponenten

• Module

• Klassen / Zustandsautomaten

2. Testen der Einzelkomponenten durch Simulation

3. Zusammenfassung der Komponenten zu einem Projekt

4. Schedule für Gesamtsystem festlegen

5. Testen des Gesamtsystems

Page 16: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 16

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

Page 17: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 17

Scheduling

Keine integrierte Schedulability Analyse!

( eigenes Werkzeug RTA-Trace)

Page 18: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 18

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

Page 19: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 19

Co-Simulation

• Generierter C-Code kann über ein Interface in INTECRIO integriert werden

Page 20: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 20

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

Page 21: Universität Paderborn Fachgebiet Softwaretechnik Seminar SEFSIS ASCET MD / INTECRIO Markus von Detten - 1 Seminar Software-Engineering für softwareintensive.

Universität PaderbornFachgebiet SoftwaretechnikSeminar SEFSIS

ASCET MD / INTECRIO Markus von Detten - 21

Prototyping

• Verbindung mit ES1000-Testsystem

• Unterschiedliche Erweiterungskarten

• Schnittstellen

• Simulationskarten

• D/A-Wandler

• Verschiedene Analysefunktionen