Formale Spezifikation und Analyse des zeitlichen Verhaltens eingebetteter Systeme mittels Message Sequence Charts (MSC) und Intervall-Petri-Netzen (IPN) Wolfgang Fengler Vesselka Duridanova Technische Universität Ilmenau Institut für Theoretische und Technische Informatik Fachgebiet Rechnerarchitekturen e-mail: wfengler,
[email protected]
TU llmenau
Gliederung
1. Entwurfsprozess 2. Formale Spezifikation 3. Formale Analyse 4. Abbildung von MSC auf IPN
TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
2
Entwurfsprozess Formale Spezifikation Lastenheft
UML, MSC
Formale Analyse
Statecharts, Simulink, Objektnetze
Petri-Netze (zeitliche, hybride)
Implementierung
TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
3
Formale Spezifikation = Anforderungsanalyse und Prüfung Analyse / Formalisierung der Aufgabenstellung / Systemkomponentenstruktur Spezifikationssprachen / UML ? Use-Case-Diagramme ? Klassendiagramme ? Sequenz-Diagramme / MSC (HMSC) Ziel / Aufgabe vollständig und wiederspruchsfrei formulieren / Sicherheitsanalyse > Echtzeitanforderungen > Worst-Case Analyse > Risiko, Gefahrenanalyse
TU llmenau
Aufgabe Text
Formale Spezifikation
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
4
Message Sequence Charts (MSC) Formale Spezifikationssprache / grafische Repräsentation / textuelle Notation / algebraische Deskription Anwendungsfelder / Spezifikation von Kommunikationsystemen und -Protokollen / Dokumentation zu Echtzeit-Systemen / Simulation von Echtzeitanwendungen Spezifikationsmuster / asynchrones Nachrichtenaustausch zwischen nebenläufige (Sub)systeme / Verwendung von Kommunikationsszenarien / Darstellung von komplexen Systemen (HMSC/BMSC)
TU llmenau
msc connection Intiator
Responder Dis
ICrq IC
ICid Wait ICrs
ICcnf Connected
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
5
Formale Analyse Formale Methoden / Mathematischer Nachweis von (generellen) Systemeigenschaften / Erfassung des gesamten Zustandsraumes / Eindeutigkeit garantieren / frühe Erkennung von Entwicklungsfehlern / hoher Aufwand bei komplexen Systemen Toolunterstützung / automatische Überführung Spezifikation -> formale Methode > Nachvollziehbarer Entwicklungsweg > keine fundierten Kenntnisse vom Anwender erforderlich / Wiederverwendbarkeit / rechnergestützter Korrektheitsnachweis / Teamunterstützung
Auswahl der geeigneten formalen Analysemethode
TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
6
Intervall-Petri-Netze (IPN) N = (P, T, F, V, m 0, I ) → IPN (1) P, T, F → endliche Mengen mit P ∩ T = 0, P ∪ T≠0, F ⊆ (P x T) ∪ (T x P) dom(F) ∪ cod(F) = P ∪ T (Netz) (2) V : F → N+ (Kantengewicht) (3) m0 : P → N (Anfangsmarkierung) (4) I: T → Q0 x (Q0 ∪ {∞} ) und ∀ t∈T I1(t) ≤ I2(t), I(t) = (I1(t), I2(t)) I → Zeitfunktion von N Zustand
z = (m,J)
in N mit J : T → Q0 ∪ {#}
(1) m erreichbare Markierung (2) ∀ t (t∈T ∧ t--- ≤ m → J(t) ≤ I2(t)) (3) ∀ t (t∈T ∧ t--- ≤ m → J(t)= #) TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
7
Intervall-Petri-Netze (IPN) t
[eft, lft] t[a,b]
0 Equivalenz-Relationen > Operationen Toolunterstützung > Unterstützung von modularer Strukturierung > Vereinfachung von Hierarchiebildung > Vereinfachung von Analysetechniken > Verwendung von Designmustern MSC → tPBC → IPN
Beschreibung von BMSC und HMSC durch tPBC
TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
10
Zeit-Petri-Netz-Kalkül (tPBC) Intervall Petri Box B ist eine Equivalenzklasse
B = [∑]
∑ = ( P, T, F, V, m0,I, λ ) λ : P → { {e},0,{x} } → entry,interne,exit Plätze λ:T→F→L∪W → Kommunikation-, Hierarchietransitionen •∑ {p ∈ P| λ(p) = {e}} → Entry-Plätze ∑• {p ∈ P| λ(p) = {x}} → Exit-Plätze λ(t) = 0 → interne Transitionen 1. ∀ t ∈T : •t ≠ 0 ≠ t• → jede t besitzt Vor- und Nachplatz 2. •∑ ≠ 0 → mindestens ein Entry-Platz 3. ∑• ≠ 0 → mindestens ein Exit-Platz 4. ∀ p ∈ •∑ ∀ t ∈T : W(p,t) = 0 → keine Kanten zum Entry-Plätze 5. ∀ p ∈ ∑ • ∀ t ∈T : W(p,t) = 0 → keine Kanten aus Exit-Plätze 6. ∀ t ∈T : ( λ(t) ∈ W ⇒ ∀ p ∈ P : W(p,t) = 1∧ W(t,p) =1) → nur einfache Gewichtsfunktion an Hierarchietransitionen 7. ∀ t ∈T : ( λ(t) ∈ W ⇒ ∀ p ∈ P : W(p,t) = 0 ∨ W(t,p) =0) → keine seitige Bedingungen bei Hierarchietransitionen
TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
11
Zeit-Petri-Netz-Kalkül (tPBC) - Semantik E::={ Basic Boxes }
{},{ß} {ß}@[eft,lft] X
Basis-Operatoren sequentielle Konstrukte Sequenz Choice nebenläufige Konstrukte Parallel Synchronisation Abstraktionskonstrukte Restriktion Scoping relabelling hirarchische Konstrukte Iteration Verfeinerung asynchrone Konstrukte Tie E1 TU llmenau
Aktion Aktion mit Zeitintervall Variable
E1 ; E2 E1 [] E2 E1 || E2 E1 sy < Tiefe > Multimenge E1 rs Multimenge [E1 : Multimenge] E[f] [ E1 ∗ E2 ∗ E3 ] E[ X ← E ] E1 tie a
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
12
MSC → tPBC → IPN msc connection Intiator
Responder
IICONrq
[2,5] ICONrs
Intiator_Entry
Initiator || Responder [Initiator←( {ICONrq+} {ICONrs-} )] [Responder← [{begin_int1,end_int1}:( {ICONrq-,begin_int1}; {ICONrs+,end_int1}) || (^begin_int1;{}@[2,5];^end_int1)] ] Responder_Entry
[2,5]
TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
13
Anti-Schlupf-Regelung
ASS
[9,9]
/ Iteration → [ E1 ∗ E2 ∗ E3 ] [ Sreering_check_up ∗ Driving@[9,9] ∗ Car_switch_off ]
TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
14
tPBC → Anti-Schlupf-Subsystem (AS_SYSTEM) [{begin_inst,end_inst}: ASS[ASS end_inst])] TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
15
IPN → Anti-Schlupf-Subsystem (AS_SYSTEM)
TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
16
MSC → Anti-Schlupf-Subsystem (AS_SYSTEM)
RCO_Sreer
RCO_Brake RCO_Accel
[1, 1]
Motor_Ctrl
Wheel_Req
Front_Wheel
Car_Speed
Rear_Wheel
[1, 1]
Wheel_Sig Angle_Val
[1, 1]
[2, 2] Brake_Req
Brake_Sig [2, 2]
Brake_Val
Wheel_Speed [1,1] [1,1]
[1, 1]
Car_Speed_Val Wheel_Speed
[0.2, 0.2]
[1, 1] Accel_Req Accel_Sig Accel_Val [2, 2]
Angle Strength Voltage
TU llmenau
Fak. Informatik und Automatisierung l Inst. Theoretische und Technische Informatik l FG Rechnerarchitekturen
17
tPBC → Anti-Schlupf-Subsystem (AS_SYSTEM) [ {begin_inline,end_inline}: ( (
(ROCSTEER||ROCBRAKE||ROCAC CEL||MOTORCTRL ||FRONTWHEEL||REARWHEEL) [ROCSTEER