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