• Keine Ergebnisse gefunden

Modellbasierte Entwicklung am Beispiel von AutoFocus

N/A
N/A
Protected

Academic year: 2021

Aktie "Modellbasierte Entwicklung am Beispiel von AutoFocus"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 1

Modellbasierte Entwicklung am Beispiel von AutoFocus

Modellbildung in der Entwicklung Prof. Dr. Dr. h.c. Manfred Broy Gemeinsam mit Dr. Bernhard Schätz Fakultät für Informatik, TU München SS 2007

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 2

Inhalte

Vorlesungsinhalte:

1. Modellbegriff 2. Grundlagen 3. Anwendung

4. Modellgetriebene Entwicklung 1. Systemmodell

2. Sichten 3. Qualitätssicherung 5. Qualitätsmodelle

6. Domänenspezifische Sprachen

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 3

Systemmodell: Komponente und Schnittstelle

Komponente:

Verhaltenskapsel

Schnittstelle:

Nachrichtenfluss – Richtung – Nachrichtentyp

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 4

Systemmodell: Ablauf

Ablauf: Vollständige Signalgeschichte

• Alle Ports

• Alle Zeitschritte

Facility

ButtonB.Present

IndicatorA.On IndicatorB.On TrafLights.Green PedLights.Stop ButtonB.Present

ButtonB

Pr

Pr - t+2 t+1 t

t+3

IndicatB

-

On - ButtonA

-

- -

TrafLights

-

Green -

PedLights

Stop -

IndicatA

-

On -

-

t+2 t+1 t

t+3 t+2 t+1 t

t+3

t+2 t+1 t

t+3 t+2 t+1 t

t+3

t+2 t+1 t

t+3

(2)

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 5

Systemmodell: Zustand

Zustand: Beobachtung zwischen zwei Übergängen

• Ports: aktuelle Nachrichten

• Variablen: aktuelle Werte

Signal Requested Receive Request

- On - Ind

- Stop - PL

- Green -

TL

- - Present Req

9 10 -1 T

Green Green Green State

T

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 6

Systemmodell: Berechnungsschritt

Berechnungsschritt: Lesen Vorzustand/Schreiben Nachzustand

• Vorzustand: Kontrollzustand, Datenzustand, Eingabe

• Nachzustand: Ausgabe, Datenzustand, Kontrollzustand

Re ceive req u es t Green

(t = = (- 1 )):Req ?Pre s ent :TL!Green ; PL!St o p ; Ind !On :t = TGreen

Green TGreen On Stop Green Present -1 Green

State t Ind PL TL Req t State

Post-State Pre-State

T t+2

t+1

t - On - t+3

Ind

- Stop -

PL

- Green -

TL

- - Present Req

9 10 -1 T

Green Green Green State

Signal Requested Receive Request

Systemmodell: Datenfluss

Funktionsblockdiagramm: Datenflussorientierte Verhaltensbeschreibung

• Signal: Eingabe (z.B. BA), Ausgabe (z.B., Req), interne Signale (z.B. e, f)

• Funktion: Signal-Berechung

• Datenfluss: Schrittweise Berechnung aller Signale

Controller A

Merge A

IndA:IndSig IndB:IndSig TL:TrafColor PL:PedColor BA:Signal

BB:Signal

Req:Signal

Present

=

= Present

k:Signal

&

e:Bool a:Signal

d:Signal

f:Bool

Present g:Signal

Nil h:Signal

BA:Signal

BB:Signal

i:Bool c:Signal

b:Signal Present =

= Present

k:Signal

&

e:Bool a:Signal

d:Signal f:Bool

Present g:Signal

Nil h:Signal

BA:Signal

BB:Signal

i:Bool c:Signal

b:Signal

Systemmodell: Berechnungsfluss

Berechnungsfluss: Rundenweise Berechnung Ausgabe zu Eingabe

• Rundenstart: Lesen Eingabe Berechnung

• Zwischenschritte: Iterative Bestimmung Zwischenberechnungen

• Rundenende: Schreiben Ausgabe Berechnung

t+1 t

T True

True

Present Req

i Present g e

Present b

Present BA

(3)

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 9

Systemmodell: Hierarchie

Hierarchische Systeme: Innensicht von Komponenten

• Unterkomponenten

• Interne Kanäle

• Schnittstellen

Controller A

Merge A

IndA:IndSig IndB:IndSig TL:TrafColor PL:PedColor BA:Signal

BB:Signal

Req:Signal

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 10

Systemmodell: Komposition

Hierarchische Systeme: Komposition mittels Kommunikation

Controller A

Merge A

IndA:IndSig IndB:IndSig TL:TrafColor PL:PedColor BA:Signal

BB:Signal

Req:Signal

Controller Merge

BB.Pres ent

Req.Present

IndA.On IndB.On TL.Green PL.Stop

BB.Pres ent

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 11

Systemmodell: Verfeinerung

Hierarchische System: Verfeinerung durch interne Kommunikation

Controller A

Merge A

IndA:IndSig IndB:IndSig TL:TrafColor PL:PedColor BA:Signal

BB:Signal

Req:Signal

Controller Merge

BB.Pres ent

R eq.Present

IndA.On IndB.On TL.Green PL.Stop

BB.Pres ent

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 12

Systemmodell: Integration

Integration aller Sichten und Beschreibungstechniken im Systemmodell erlaubt

• Vergleich von Sichten

• Transformation zwischen Sichten

Signal Requested Receive Request

- On - Ind

- Stop - PL

- Green - TL

- - Prese

nt Req

9 10 -1 T

Green Green Green State

T

Controller Merg e

BB.Present

Req.Present

IndA.On In dB.On TL.Green PL.Stop

BB.Present Controller

A

Merge A

IndA:IndSig IndB:IndSig TL:TrafColor PL:PedColor BA:Signal

BB:Signal Req:Signal

Present =

= Present

k:Signal

&

e:Bool a:Signal

d:Signal f:Bool

Present g:Signal Nil h:Signal BA:Signal

BB:Signal

i:Bool c:Signal b:Signal Sig n al req u es t ed

Receive req u es t

Wait in yello w

Wait in red

Wait in r ed yello w Gr een

Yel lo w

Red Red Yello w

In it Swit c h t o yello w

Sw it ch t o red Sw it ch t o r ed yello w

Sw it ch t o g r een in it ializ e

(4)

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 13

Sichten im Entwicklungprozess

Nutzungssicht: Funktionsarchitektur

• Szenarien (Reaktive Funktionen)

• Datenflüsse (Steuerungsfunktionen)

Logische Sicht: Anwendungsarchitektur

• Komponentenstrukturen

• Zustandsmaschinen

• Datenflüsse

Realisierungssicht: SW/HW- Implementierungsarchitektur

• Softwarestrukturen

• Hardwarestrukturen

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 14

Nutzungssicht: Reaktive Funktionen

• Ziel: Strukturierte Beschreibung der reaktiven Funktionalität aus Systemnutzungssicht

• Konzepte: Ein-/Ausgabesignale, Funktionshierarchie

• Notationen: Datenbeschreibungen, Schnittstellenbeschreibung, Szenarienbeschreibungen

Nutzungssicht: Steuerungsfunktionen

• Ziel: Strukturierte Beschreibung der Steuerungsfunktionalität aus Systemnutzungssicht

• Konzepte: Ein-/Ausgabesignal, Funktionshierarchie

• Notationen: Datenbeschreibungen,

Fu e lMa n a g e m e n t PedalPos:int16

FuelMass:int16 KeyPos:Position

0.0

FuelMass:int16

Abschaltmodus

In t e g ra t o r PosMassRatio

LastFuel:int16

PedalPos:int16

FuelMass:int16 Betriebsmodus

Logische Sicht: Reaktive Systeme

• Ziel: Strukturierte Beschreibung der logischen Struktur und des Verhaltens von reaktiven Systemen

• Konzepte: Komponentenhierarchie, Ein-/Ausgabeereignis, Zustand

• Notationen: Datenbeschreibungen, Komponentenbeschreibungen, Zustandsmaschinenbeschreibungen

(5)

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 17

Logische Sicht: Steuerungssysteme

• Ziel: Strukturierte Beschreibung der logischen Struktur und des Verhaltens von Steuerungssystemen

• Konzepte: Datenflusshierarchie, Ein-/Ausgabesignal, Modus

• Notationen: Datenbeschreibungen, Datenflussbeschreibungen, Modusbeschreibungen

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 18

Technische Sicht

Controlle r Tim er Ma nualSwitch Mer ge

ke y: Norm al

ASS: Pre s ent

Req : Pre s ent ke y: Norm al

ke y: Norm al Ind : Pr e se nt CS: Gr e en PS: Stop

se t: 1 0

• Ziel: Strukturierte Beschreibung der technischen Realisierung des System

• Konzepte: Prozess, Nachricht, Steuergerät, Kommunikationskanal

• Notationen: SW-Beschreibungen, HW-Beschreibungen, Allokations- /Schedulingsbeschreibungen

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 19

Modellbasierung und Qualitätssicherung

Modellbasierung verbessert die Produktqualität durch

• Aufgabenorientierte Darstellung von Systemperspektiven – Zielgerichtete Abbildung von Anwender-/Entwicklerwissen – Gezielte Vorgaben für Abfolge von Entwicklungsprodukten

• Abstrahierte Sichten des Gesamtsystems

– Verständliche/überprüfbare Darstellung Gesamt/Teilsystem – Konstruktive Vermeidung von fehlerhaften Produkten

• Umfassende Integration und Werkzeugtechnische Unterstützung – Sichtenkonsistenz und Sicherung von Systemeigenschaften

– Weiterverwendung/Transformation von Produkten inkl. Codegenerierung

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 20

Beispiel: Modelle und QS-Techniken

Analyse Analyse

TestTest

Entwurf

Entwurf IntegrationIntegration

Realisierung Realisierung

Testmodelle Testmodelle

Verhaltensmodelle Verhaltensmodelle Szenarien

Szenarien

SW-Modelle SW-Modelle

Testmodelle Testmodelle Strukturmodelle

Strukturmodelle Verhaltensmodelle Verhaltensmodelle

Plattformmodelle Plattformmodelle HW-Modelle HW-Modelle

Prozessintegrierte Qualitätsmaßnahmen durch definierte Produkte und konstruktive/analytische Verfahren

Modellbasiertes Testen

Modell- prüfung Modell- verifikation

Modellbasiertes Testen

Codegenerierung

Deployment Modell-

Validierun Modellkonstruktion

Funktionen Funktionen

(6)

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 21

Strukturierung Klassifizierung Formalisierung

Modellkonstruktion

Modellkonstruktion: Konstruktive Qualitätssicherung

• Hohe Effektivität (vgl. Pretschner et al. (2005))

• Schritte: Strukturierung, Klassifizierung, Formalisierung

• Aspekte: Präzisierung – Sicherung Eindeutigkeit – Entdeckung Unvollständigkeit

– Sicherung Prüfbarkeit Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 22

Modellprüfung

Modellprüfung: Analytische Qualitätssicherung

• Schritte: Richtliniendefinition, -prüfung (Review/Inspektion)

• Aspekte: „Gute Modellierung“

– Vermeidung von Modellierungsfehlern – Lesbarkeit, Wartbarkeit

• Grady: 50-75% der Designfehler durch Modell-Reviews entdeckt

Definition Prüfung

Modellprüfung: Prüfungsaspekte

• Beispiele Prüfungsaspekte

– Vermeidung von Problemen bestimmter Modellierungssprachen (12 o‘clock-Semantik in Stateflow)

– Eingrenzung der Modellierungssprache für bestimmte Zwecke (Code-Generierung, sicherheitskritische Anwendungen) – Unternehmensstandards zur leichteren Lesbarkeit (Farben,

Annotationen)

• Beispiele für Richtlinien

– Scott W. Ambler: The Elements of UML 2.0 Style – MAAB-Richtlinie für Matlab/Simulink (Automotive) – MISRA für Matlab/Simulink (sicherheitskritisch, Vorversion

verfügbar)

– ESA/ESTEC-Richtlinien für VHDL

Modellprüfung: Metriken

• Analog zu Code-Metriken

• Komplexitätsmetriken

– Zahl der Schnittstellen zu anderen Komponenten – Zahl der Pfade durch Statechart

– Zahl der Zustände

• Obergrenzen, Voraussage fehleranfälliger Teile

• Praktisch nur bedingt von Nutzen (Begründung oft schwierig)

• Siehe auch

– Objekt-orientierte Metriken von Chidamber und Kemerer – Wagner und Jürjens (2005)

(7)

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 25

Controller A

Merge A

IndA:IndSig IndB:IndSig TL:TrafColor PL:PedColor BA:Signal

BB:Signal Req:Signal

Controlle r Merge

BB.Present

R eq.Presen t IndA.On IndB.On TL.Gree n PL.Stop

BB.Present Sig n al req ues t ed

Recei ve req u es t

Wait in yel lo w

Wait in red Wai t i n red yello w Green

Yell ow

Red Red Yello w In it Sw it ch t o yello w

Sw it ch t o red Swit ch t o red yell ow

Swi t ch t o g reen in it iali ze

Formalisierung Validierung

Modellvalidierung

Modellvalidierung: Analytische Qualitätssicherung

• Schritte: Modellkonstruktion, Modellsimulation, Ablaufgenerierung

• Aspekte: Validierung Angemessenheit

– Ausführbare Spezifikation (Blackbox-/Glassboxsimulation) – Prototypenkonstruktion (In-the-Loop-Simulation)

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 26

Modelltest

Modelltest: Analytische Qualitätssicherung

• Schritte: Modellkonstruktion, Modellverifikation

• Aspekte: Frühe Qualitätssicherung – Konsistenz deskriptive/konstruktive Modelle – Modellsimulation

Controller A Merge

A

IndA:IndSig IndB:IndSig TL:TrafColor PL:PedColor BA:Signal

BB:Signal Req:Signal

Sig nal r eque st ed

Rece ive req uest

Wait in ye llow

Wa it in red Wait in r edyellow Gr ee n

Yellow

Red RedYe llow Init Switch t o yellow

Swit ch to r ed Swit ch to re dye llow

Switch t o g ree n init ializ e

Verifikation Definition/Integration

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 27

Contr olle r Time r Ma nu alSwitc h Me r ge

ke y: Nor ma l ASS: Pr e s e nt Re q : Pr e s e nt ke y: Nor ma l

ke y: Nor ma l In d : Pr e s e nt CS: Gr e e n P S: Stop se t: 1 0 Controller

Req.Pres ent

IndA.On IndB.On TL.Green PL .Stop

Req.Pres ent Req.Pres ent Sig n al req ues t ed

Receive req u est

Wait in yello w

Wait in red Wait in redyellow Green

Yello w

Red Red Yello w In it Sw it ch t o yello w

Sw itch t o red Sw it ch t o red yello w

Swit ch to g reen in it ializ e

Modellierung Generierung Instantiierung

Modellbasiertes Testen

Modellbasiertes Testen: Analytische Qualitätssicherung

• Schritte: Modellbildung, Testfallgenerierung, Testfallinstantiierung

• Aspekte: Ableitung von Modellausführungen – Analysephase: Validierung Spezifikationsadäquanz – Testphase: Konformanz Spezifikation/Realisierung

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 28

Codegenerierung/Deployment

Codegenerierung/Deployment: Konstruktive Qualitätssicherung

• Schritte: Modellkonstruktion, Implementierungsgenerierung

• Aspekte: Automatisierung Implementierung – Wiederverwendbarkeit

– Konstruktive Korrektheit (Zertifizierte Codegenerierung)

Sig nal r eque st ed

Rece ive req uest

Wait in ye llow

Wa it in red Wait in r edyellow Gr ee n

Yellow

Red RedYe llow

Init Switch t o yellow

Swit ch to r ed Swit ch to re dye llow

Switch t o g ree n init ializ e

// local variables for components int Comp_Timer_Var_t = 0;

// State variables for components char Comp_Timer_state = Comp_Timer_State_ready;

// component Timer with Automaton Timer void do_Comp_Timer() { switch (Comp_Timer_state){

case Comp_Timer_State_ready : // (t == 1);set?;timeout!Present;t=0 if ((!(Comp_Timer_Port_set_present) &&

(Comp_Timer_Var_t == 1))) { // set output on port timeout with

Present Comp_Timer_Port_timeout = Present;

/* update local variable t with 0 */

copyint(&Comp_Timer_Var_t,0);

// state ready did not change break;

} // local variables for components int Comp_Timer_Var_t = 0;

// State variables for components char Comp_Timer_state = Comp_Timer_State_ready;

// component Timer with Automaton Timer void do_Comp_Timer() { switch (Comp_Timer_state){

case Comp_Timer_State_ready : // (t == 1);set?;timeout!Present;t=0 if ((!(Comp_Timer_Port_set_present) &&

(Comp_Timer_Var_t == 1))) { // set output on port timeout with

Present Comp_Timer_Port_timeout = Present;

/* update local variable t with 0 */

copyint(&Comp_Timer_Var_t,0);

// state ready did not change break;

}

Co ntro lle r Tim er Ma n ualSwitch Mer ge

k ey: No rm al ASS: Pr es ent

Req : Pr es en t k ey: No rm al

k ey: No rm al In d : Pr ese nt CS: Gr ee n PS: Stop

s et: 1 0

Generierung

(8)

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 29

Bewertung modellbasiertes Testen

• Vorteile

– Effektiv, findet teilweise andere Fehler als manuelle Tests – Automatische Generierung großer Testsuiten

– Schnelle Neugenerierung bei Änderungen an Spezifikation und Modell

– Explizite Modellierung schärft die Spezifikation

• Nachteile

– Modellierung aufwändig

– Es kann nur getestet werden, was modelliert wurde – Auswahl der Testfälle: Was ist ein sinnvolles Vorgehen zur

Generierung?

Fakultät für Informatik

Lehrstuhl IV: Software & Systems Engineering 30

Literatur

• Broy, Jonsson, Katoen, Leucker, Pretschner: Model-Based Testing of Reactive Systems. LNCS 3472, Springer-Verlag, 2005.

Clarke, Grumberg, Peled. Model Checking. MIT Press, 2000.

• Pretschner, Prenninger, Wagner, Kühnel, Baumgartner, Sostawa, Zölch, Stauner: One Evaluation of Model-Based Testing and its Automation. Proc. 27th International Conference on Software Engineering (ICSE’05). ACM Press, 2005.

• Wagner, Jürjens: Model-Based Identification of Fault-Prone Components. Proc. 5th European Conference on Dependable Computing (EDCC-5). LNCS 3463, Springer-Verlag, 2005.

• Scott W. Ambler. The Elements of UML 2.0 Style. Cambridge University Press, 2005.

• MathWorks Automotive Advisory Board. Controller Style Guidelines For Production Intent Using Matlab, Simulink and Stateflow, 2001.

• Ghosh, France, Braganza, Kawane. Test Adequacy Assessment for UML Design Model Testing. Proc. 14th International Symposium on Software Reliability Engineering (ISSRE’03). IEEE CS Press, 2003.

Literatur II

• Nipkow, Paulson, Wenzel. Isabelle/HOL. A Proof Assistant for Higher-Order Logic. LNCS 2283, Springer-Verlag, 2005.

• Musa. Software Reliability Engineering. 2nd ed., AuthorHouse, 2004.

• Wagner. A Model and Sensitivity Analysis of the Quality Economics of Defect-Detection Techniques.

Proc. International Symposium on Software Testing

and Analysis (ISSTA’06). ACM Press, 2006.

Referenzen

ÄHNLICHE DOKUMENTE

This is basically a copy of the STLC “one

• In our case: Use directed variant of type equivalence relation, reduce until normal form reached. • In practical languages, a slightly weaker

Implizit: open Modulname macht die Namen des Moduls verfügbar Das Modul Pervasives ist immer

Implizit: open Modulname macht die Namen des Moduls verfügbar Das Modul Pervasives ist immer

A Proof System for Higher-Order Logic 4.1 Methods and Rules.. 4.2 Rewriting

Relying on implicit shared understanding has a strong economic impact on software development: The higher the extent of implicit shared understanding, the less resources have to

Konkret bietet AutoF OCUS dem Entwickler eine Anzahl grafischer und textueller Beschreibungstechniken (siehe § 3) f¨ur verschiedene Abstraktionsebenen (siehe § 2).. Damit ist

The orientation was such that the tip links over most of the bundle (i.e. over the left half and most of the right half) ran i n a direction nearly parallel to the tip links on