Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

23
18.11.2005 Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik

description

Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement. Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik. Hinweis: Am Freitag entfällt die Vorlesung! - PowerPoint PPT Presentation

Transcript of Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Page 1: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

18.11.2005

Software-Engineering IIEingebettete Systeme, Softwarequalität, Projektmanagement

Prof. Dr. Holger SchlingloffInstitut für Informatik der Humboldt Universität

und

Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik

Page 2: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 2H. Schlingloff, Software-Engineering II 18.11.2005

•Hinweis: Am Freitag entfällt die Vorlesung!

(Projekttreffen IMMOS)

•Hinweis: Nächsten Freitag entfällt die Vorlesung ebenfalls!

(Tagung M4M – Methods for Modalities)

• (Mittwoch findet sie aber statt!)(Übungsblattausgabe)

Page 3: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 3H. Schlingloff, Software-Engineering II 18.11.2005

nächstes Übungsblatt …

Page 4: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 4H. Schlingloff, Software-Engineering II 18.11.2005

SimuLink

• Modellierung durch Datenflussdiagramm jede „Leitung“ entspricht einer Variablen

Page 5: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 5H. Schlingloff, Software-Engineering II 18.11.2005

Page 6: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 6H. Schlingloff, Software-Engineering II 18.11.2005

Abstraktion

• Hauptstärke von SimuLink besteht in der Möglichkeit, Blöcke zusammenzufassen Abstraktion von

Verhalten baumartige Navigation Parametrisierung Modulbibliotheken externe Erweiterungen Codeanbindung

• Modelltransformation und –entwicklung!

Page 7: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 7H. Schlingloff, Software-Engineering II 18.11.2005

Beispiel: Fensterheber

Page 8: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 8H. Schlingloff, Software-Engineering II 18.11.2005

Kurzüberblick über das IMMOS-Projekt

• Projekttitel: IMMOS – Eine integrierte Methodik zur modellbasierten Steuergeräteentwicklung für den Automobilbereich

• Laufzeit: Januar 2004 – Juni 2006• Ziele: Definition einer integrierten Software-

Entwicklungsmethodik für Steuergeräte im KFZ und Erprobung dieser Methodik durch die Entwicklung eines automobilen Demonstrators

• Projektpartner: Fraunhofer FIRST, DaimlerChrysler AG, dSPACE GmbH, IT Power Consultants, FZi / Universität Karlsruhe, c-Lab / Universität Paderborn

• Mittel: 285 PM

Page 9: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 9H. Schlingloff, Software-Engineering II 18.11.2005

modellbasierte Entwicklung

• frühzeitige Erstellung eines ausführbaren Modells (Systemmodell) auf Grundlage der Anforderungen

• Test und Erprobung auf Modellebene• Verfeinerung zum

Implementierungs-modell

• automatische Code-generierung für Hostund Target

• automatischeTestgenerierung

Page 10: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 10H. Schlingloff, Software-Engineering II 18.11.2005

Aktivitäten und Artefakte

Lastenheft formaleSpezifikation

Virtueller Prototyp

Testfälle

Target-Code

PrototypingModellierung

Verifikation

Codegenerierung

TestgenerierungZusätzlicherCode

Zielsystem

Integration

Testausführung

Testgenerierung

Portierung

Formalisierung

Implementierungs- modell T_des_Drive [Nm] (Wunschabtriebsmoment)

T_Des_Brake [Nm] (Wunschbremsmoment)

2

PedalFlags

1

DesiredTorques

f(u)

selection

70

ped_min

T_70_Drive(v)

T_100_Drive(v)

>=

>

Mux

1/100T_max_Brake

1/30

1/70

(boolean)

(boolean)

2

PedalPositions

1

v_act

<T_des_Drive, T_des_Brake>

v_act

<phi_Brake>

<phi_Acc, phi_Brake>

<phi_Acc><phi_Acc>

<phi_Acc>

T_des_Drive

<phi_Acc>

<phi_Brake>

AccPedal

BrakePedal<AccPedal, BrakePedal>

AccPedal

BrakePedal

T_des_Brake

Verfeinerung

Systemmodell

Page 11: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 11H. Schlingloff, Software-Engineering II 18.11.2005

Modellierungsformalismen

• herkömmliche Formalismen: Zustandsmaschinen, Diagramme, Petrinetze, StateCharts, Message Sequence Charts, ...

gut etabliert, Toolunterstützung vorhanden Wildwuchs, Varianten, mangelnde Konstanz Prognose: werden durch UML2.0 abgelöst werden

• UML 2.0 vereinigt verschiedene Arten von Diagrammen extrem mächtig, sehr umfangreich zu lernen fehlende Semantik, verschiedene Ausbaustufen

• Matlab / Simulink / Stateflow teilweise gut eingeführt und bekannt limitierte Ausdrucksfähigkeit nur eine Quelle

• logische und algebraische Modelle, z.B. TLA, ASM/ASML, CSP nahe an natürlichsprachlichen Formulierungen Forschungsbedarf

Page 12: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 12H. Schlingloff, Software-Engineering II 18.11.2005

Pause!

„Bist du sicher, dass du kein Modell brauchst?“

Page 13: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 13H. Schlingloff, Software-Engineering II 18.11.2005

Noch einer

• Google „model cartoon“

Page 14: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 14H. Schlingloff, Software-Engineering II 18.11.2005

Codegenerierung

• Ziel: automatische Übersetzung von Modellen in ausführbaren (C-) Code

• zwei kommerzielle Produkte verfügbar Real Time Workshop (The MathWorks) TargetLink (dSPACE GmbH)

• Codegenerator ist „Compiler für Modelle“ Wiederverwendung schnelle Prototyp- und

Produkterstellung erhöhte Zuverlässigkeit

gegen Programmierfehler automatische Optimierung

des generierten Codes• Wie kann man

sicherstellen, dass der generierte Codedas Erwartete leistet?

Quelle: dSPACE GmbHThanks for the slides: Daniela Weinberg

Page 15: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 15H. Schlingloff, Software-Engineering II 18.11.2005

Prinzip

Mirko Conrad, Ingo Stürmer

Implementation Model(fixed-point)

C Code Code generator

Compiler(Linker)

Host PC

Target

Physical Model(floating-point)

Cross-compiler(Linker / Loader)

Page 16: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 16H. Schlingloff, Software-Engineering II 18.11.2005

Beispiel

• Schaltsystem mit Schwellwert 0.5 physikalisches Modell (SimuLink)

Implementierungsmodell (TargetLink)

Äquivalenz?

Page 17: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 17H. Schlingloff, Software-Engineering II 18.11.2005

generierter Code

• Zweierpotenz-Skalierung; 128 * 2-8 = 0.5

Void switch_system(Void) { /* Switchswitch_system/switch_primitive */ if (Sa1_Input2_ >= 128 /* 0.5 */) { /* # combined # Outport: switch_system/OutputPort */ Sa1_OutputPort_ = Sa1_Input1_; } else { /* # combined # Outport: switch_system/OutputPort */ Sa1_OutputPort_ = Sa1_Input1_; }}

Page 18: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 18H. Schlingloff, Software-Engineering II 18.11.2005

Codeabsicherung

• Qualitätssicherung auf jeder Ebene notwendig!

Implementation Model(fixed - point)

C Code Code generator

Compiler(Linker)

Host PC

Target

Physical Model(floating - point)

Cross-compiler(Linker / Loader)

(b) Code-

Generator

(c) generierter

Code(a) Modell (d) Code

Ausführung

Page 19: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 19H. Schlingloff, Software-Engineering II 18.11.2005

QS auf Modellebene

• Modellierungsrichtlinien Qualität des Implementierungsmodells

ausschlaggebend für Qualität des generierten Codes Richtlinien und Muster existieren (z.B. MathWorks

Automotive Advisory Board - MAAB guidelines) Toolunterstützung zur Umsetzung der Richtlinien

- demnächst www.eGuidelines.de

Vorteile - Lesbarkeit

- Wartbarkeit

- Wiedervervendbarkeit

- Testbarkeit

Page 20: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 20H. Schlingloff, Software-Engineering II 18.11.2005

modellbasierter Test

• Simulation /Ausführung des Modells und generierten Codes in verschiedenene Entwicklungsphasen MiL

(Model in the Loop) SiL

(Software in the Loop) PiL

(Processor in the Loop) HiL

(Hardware in the Loop)

test output

resultcomparison

physical model

implementation model

test stimuli

C code (target)

ECU

MiL (physical model)

MiL (impl. model)

SiL

PiL

C code (host)

Page 21: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 21H. Schlingloff, Software-Engineering II 18.11.2005

Szenarien für Testautomatisierung

Requirements

Modell

Code

Testsuite

Requirements

Modell Code

Testsuite

UseCases

Page 22: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 22H. Schlingloff, Software-Engineering II 18.11.2005

Absicherung von Codegeneratoren

• Probleme häufige Generationenfolge von Prozessoren und

Codegeneratoren Notwendigkeit zusätzlicher Absicherung

• Ansatz in IMMOS Validationssuite für Codegeneratoren Graph-Transformationen als logische Basis

Modellgenerator

Testfallgenerator

Transformationsregeln

Simulator

ModellCodegenerator

Code

ComparatorSimulationsergebnisse Ausführungsergebnisse

Target

Page 23: Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement

Folie 23H. Schlingloff, Software-Engineering II 18.11.2005

Im Beispiel

LHS RHSr

test model test vector

test vector generatorReactis, ET-Tool

test cases optimization test module

0.3

0.0 0.1 0.2 0.3

1.0

0.0 0.1 0.2 0.3

0.5

Input1(t)

Input2(t)

test model

test vectors

model generatorModeSSa

optimization rule