4. SDL - Hu

Projekt Erdbebenfrühwarnung
im SoSe 2011
Entwicklung verteilter echtzeitfähiger
Sensorsysteme
Joachim Fischer
Klaus Ahrens
Ingmar Eveslage
[email protected]
EDIM
SOSEWIN-extented
4. SDL als UML-Ersatz
J.Fischer
1.
UML und SDL-Zustandsmaschinen im Vergleich
2.
Werkzeuge
3.
ITU-Standard Z.100
4.
SDL-Grundkonzepte
5.
Musterbeispiel (in UML-Strukturen)
6.
Struktur- und Verhaltensbeschreibung in SDL-RT
SOSEWIN in UML-Darstellung
(vage Vorstellung)
???
Kompositions
strukturdiagramm
SOSEWIN Model
SOSEWIN System
20
Prozessor
SOSEWIN SensorNode
OpenWRT
AP
…
x
y
alert
error
7-3
Beschreibungselemente
• Zustand
• Trigger
• Time-Trigger
• Guard
• Entscheidung
• Eintrittsverhalten
• Zustandsverhalten
• Austrittsverhalten
7-4
UML-Ereignisse
1.
2.
3.
4.
5.
Signal (-ankunft)
Op-Call-Request
Zeitereignis (absolute, relative Zeitangabe)
Zustandsereignis (mit Bedingung)
Implizite Ereignisse (Beendigung einer Aktivität)ein Beendigungsereignis wird vor
allen anderen Ereignissen ausgeführt
• Signal-Parameter werden als Attribute eines Signal-Classifiers repräsentiert
• Senden von Signalen/Aufruf von Operationen sind asynchrone Vorgänge,
an denen mindestens zwei Objekte beteiligt sind
Sonderfälle:
- Broadcast (Empfangsobjekt ist ein Aggregationsobjekt (System/Teilsystem)
- Multicast (Empfänger ist eine Kollektion von Objekten)
7-5
UML-Zustandsdefinition
Bestandteile/Charakteristik
• Name
(optional), kein Name, dann anonymer Zustand
•
Entry-/ Exit- Aktionen bei Eintritt bzw. Austritt
•
interne Do-Aktivität
durch externes Ereignis unterbrechbar,
d.h. per Signal-, Call-, Time-, State-Event
•
Substates/Unterzustände: verschachtelte Struktur
•
interne Transitionen (ohne Wechsel des Zustandes)
durch externes Ereignis unterbrechbar, d.h. per Signal-, Call-, Time-, State-Event
•
Liste von Ereignissen, die nicht in diesem Zustand behandelt werden
(verzögerte Ereignisse)
ohne Parameter
– sequentiell aktive
– gleichzeitig aktive
7-6
Zustände, Interne Transitionen, Unterbrechbarkeit von Aktivitäten
Bestandteile
• Name
(optional), kein Name, dann anonymer Zustand
Enter Password
entry / password.reset()
exit / password.test()
digit / handleCharacter
clear / password.reset()
help / display.help
print / defer
do / supress echo
•
Entry-/ Exit- Aktivität bei Eintritt bzw. Austritt
•
interne Transitionen (ohne Wechsel des Zustandes)
•
Liste von Ereignissen, die nicht in diesem Zustand
behandelt werden (verzögerte Ereignisse)
•
interne Do-Aktivität
•
Substates: verschachtelte Struktur
–
–
sequentiell aktive
gleichzeitig aktive
Aktivitäten:= als Folge Aktionen
bei Auszeichnung von elementaren
nicht unterbrechbaren Aktionen
7-7
UML-Trigger-Arten
• Ereignisse lösen Transitionen aus,
wenn dafür Trigger vorhanden sind
• Trigger können explizit angegeben sein,
oder sie ergeben sich implizit
after (2 seconds) / o.send isAlife
2
Call- oder Signal-Trigger
mit zusätzl. Bedingung
targetAt (p)
[isThreat] /
t.addTarget(p)
Time-Trigger
Idle
3
all / x()
4
Any-Trigger
at (11:49 PM)/ selfTest()
5
Time-Trigger
Tracking
naviergierbares
Objekt
Signaltyp
Elementaraktion
(nicht standardisiert)
noice
1
Call- oder Signal-Trigger
Searching
6
when s.cond()/ y()
implizite Trigger: Change Trigger
(Zustandsereignis, mit Unterbrechung
interner Aktivitäten)
Ein Beendigungsereignis wird
auch dann generiert,
wenn der Zustand gar keine
internen Aktivitäten hat.
(sobald der Zustand betreten wurde)
7
implizite Trigger
(Beendigungsereignis)
Engaging
9
8 [s.ready()] / z()
Wächter-Trigger
impliziter Trigger: Beendigung der internen Aktivitäten
Schalten bei Erfüllung der Wächterbedingung
7-8
Run-to-Completion-Semantik (1)
Ereignispool (ankommende Signale, eingehende Call-Requests,
Zustands- Zeitereignisse)
Y
X
BehavioredClassifierInstanz
Aktionen verwenden
Attribute und Operationen
Objekterzeugung
bedeutet nicht
automatisch
ZustandsautomatAktivierung
OFFEN:
Wie können beide
Aktionen
verbunden werden?
StateMachine
Req
StateMachineInstanz
erlaubte SDL-like Syntax in UML
•
•
Run-to-completion
eine Zustandsmaschine bearbeitet
kein oder genau ein Ereignis
• es wird immer erst dann ein weiteres
Ereignis aus dem Pool bearbeitet,
wenn das vorhergehende Ereignis vollständig abgearbeitet wurde
Probleme in UML
• Reihenfolge der Abarbeitung von Ereignissen ist nicht definiert
(aus der Menge feuerbarer Transitionen wird eine nichtdeterminiert ausgewählt)
 erlaubt den Einsatz verschiedener Priorisierungsverfahren bei UML-Profilen
• Adressierung von Signalen offen
• Semantik von Konnektoren offen
• Mehrfachvererbung ist für Zustandsautomaten nicht definiert
7-9
Run-to-Completion-Semantik (2)
•
Run-to-completion
sichert die Zustandsübergangsfunktion, keine Concurrency-Probleme bei EreignisBearbeitung
•
Abarbeitung von Ereignissen resultiert in der Feuererlaubnis von keiner, einer oder
mehreren Transitionen (bei parallelen Ausführungszweigen)
– falls keine Transition feuerbar ist und es kein zu verzögerndes Ereignis vorliegt wird das
Ereignis gelöscht und der Run-to-completion-Schritt ist beendet
•
Während einer Transition können Aktionen ausgeführt werden
– falls eine solche Aktion der Ruf einer synchronen Operation an einem anderen Objekt
ist,
so wird die Transition erst dann beendet, wenn die Zustandsmaschine des gerufenen
Objektes ihrerseits den Run-to-completion-Schritt abgeschlossen hat
7-10
Run-to-Completion-Semantik (3)
•
Run-to-completion-Semantik und Thread-Semantik
– Run-to-completion wird von aktiven Objekten
(Instanzen von Active Classes) in ihren eigenen Threads ausgeführt
– Innerhalb dieser Threads muss einfache run-to-completion implementiert werden,
jedoch können Threads zwischendurch wiederum wechselseitig suspendiert werden
– Run-to-completion ist unabhängig vom Thread-Scheduling !
7-11
UML-Metamodell
•
UML-Metamodell ~ definiert als Superstructure
besteht aus weiteren Unterpaketen
SuperstructureLibrary
Classes
Kernel
Struktur
elemente
Composite
Structures
Components
Deployments
Definition der Kernkonzepte für
verschiedene Ausprägungen der
Verhaltensmodellierung
Common
Behaviours
UML-Metamodell
(Superstructure)
Interactions
Activities
Actions
State
Machines
UseCases
Verhaltenselemente
7-12
Die UML-Abstraktionsebenen,
MOF
M3
MetaMetamodell
«instanceOf»
M2
«instanceOf»
«instanceOf»
Metamodell
(definiert als
Superstructure)
Attribute
Operation
Class
InstanceSpecification
type
«instanceOf»
«instanceOf»
M1
MOF-Instanziierungsemantik
Eine M1-Element-Instanz ist ein Wert,
dessen Typ durch ein M2-Element-Instanz
einer M3-Klasse beschrieben ist
«instanceOf»
Class
(MOF)
definiert durch
«instanceOf»
«instanceOf»
Modell
Bordkarte
+flugNummer:String
b: Bordkarte
«snapshot»
+flugNummer= “LH801“
+gültig():Boolean
«instanceOf»
M0
System
(in C++)
VMT-Bordkarte
Fkt-Eintrittspunkt
«instanceOf»
flugNummer [Adr]
Zeiger
“LH801“
Standards und ihre Zusammenhänge
Definition von MOF
Definition von UML als
MOF-basiertes Metamodells
CMOF
Superstructure
Diagrammaustausch
Infrastructure
OCL
EMOF
Infrastructure: kleiner UML-Sprachkern wird an MOF ausgerichtet
• liefert die Konzepte für das Meta-Metamodell (MOF)
- eine Teilmenge der Infrastructure (Core) ist mit MOF identisch
• alle Konzepte der Infrastructure sind entweder Core-Konzepte oder
Erweiterungen davon
MOFKonzepte
=
Infrastructure::CoreKonzepte
InfrastructureKonzepte
Spezialisierung
Festlegung semantischer Variationspunkte
7-14
UML-Metamodell
(Kernkonzepte)
Konkrete
Metaklassen
7-15
Superstructure: Übersicht der Classifier
verhaltensspezifischer Classifier:
beschreibt alle Classifier, die eine
Verhaltensspezifikation
besitzen dürfen
 bilden den Kontext einer
Verhaltensspezifikation
… bei Paketauflösung
Classifier
Actor
DataType
Primitive
Type
Signal
Enumeration
Association
Class
Interface
Communication Association Behavior
Class
Path
Opaque
Behaviour
Verhaltensspezifikation
(als abstrakte Basisklasse)
Activity
Information
Item
Class
Interaction
Behaviored
Classifier
UseCase
Structured
Classifier
Collaboration
State
Machine
Artifact
Encapsulated
Classifier
Class
ProtocolState
Machine
Node
Device
Component
Execution
Environment
7-16
Zwei Varianten in UML
•
SM = StateMachine
•
SM beschreibt (unter Bezug auf andere Struktur- und Verhaltensdiagramme)
– das vollständige Verhalten eines Classifiers oder
– eines seiner Verhaltensmerkmale
•
Ausprägungen
1. Behavioral State Machines (internes Verhalten)
• Spezifikation des Verhaltens individueller Classifier
• objektorientierte Variante von State Charts
von Harel
2.
Protocol State Machines (externes Verhalten)
• Spezifikation von Protokollen (Dienstspezifikation)
• Lifecycle als legale Aufrufszenerien bereitgestellter Operationen oder EreignisTrigger
(geeignet für Interfaces und Ports)
Für konkrete Zuordnung von Strukturdiagramm (Kontext-Classifier)
und Zustandsmaschine
gibt es keine UML-Notation (tool-abhängig)
Zustandsautomat: Paket-Struktur
Kernel
BasicBehaviors
(from Classes)
(from CommonBehaviors)
...)
Ports
Interfaces
(from CompositeStructures)
...)
(from Classes)
<<merge>>
<<merge>>
BehaviorStateMachines
<<merge>>
<<merge>>
ProtocolStateMachines
MaximumOneRegion
7-18
Zustandsdiagramm
= Graph
–
–
dessen Knoten Zustände entsprechen, die Objekte (Instanzen des zugeordneten Classifiers)
einnehmen, und dessen gerichtete Kanten den Zustandsübergängen entsprechen
beim Traversieren führt die Zustandsmaschine Aktivitäten aus,
die über Merkmale des Objektes operieren
Zustandsübergänge
-
werden i.allg durch externe Ereignisse ausgelöst (getriggert)
sind mit nicht unterbrechbaren Aktivitäten verbunden (quasi atomar)
Zustand eines Objektes
• Belegung sämtlicher Attribute/Assoziationsenden zu einem Zeitpunkt
Zustand eines Automaten (ist grobkörniger)
–
–
ist ein (Grund-)zustand, bei dem der Zustand des Objektes unterschiedlich ausgelegt sein kann
Objekte verweilen in ihrem Grundzustand (u.U. ändern sich sogar die Attribute) bis ein Ereignis ein
Zustandsübergang auslöst
d.h. Automatenzustände können mit unterbrechbaren Aktivitäten verbunden sein
7-19
Metamodell für Zustandsmaschine
Zustandsmaschine
Transition
Knoten
(Zustände,
PseudoZustände)
Transition
Trigger
7-20
Kernkonzepte:
MOF Kernel
EMOF
Basis für Meta-Metamodell und Metamodell von UML
InfrastructureLibrary
Core
Profiles
PrimitiveType
CMOF
Abstractions
Basic
Constructs
SuperstructureLibrary
CommonWarehouse
Metamodel CWM
Struktur
elemente
UML
Classes
Composite
Structures
Components
Deployments
Common
Behaviours
UML-Metamodell
(Superstructure)
Interactions
Activities
Actions
State
Machines
UseCases
Verhaltenselemente
7-21
UML-Spracherweiterungsmöglichkeiten
InfrastructureLibrary
Core
Neues Metamodell
komplett
neue
Sprache
 neue Tools
UML
Profiles
UML
Erweiterungen
(neue Konzepte)
und
Veränderungen
Objektorientierte
Erweiterung der Konzepte,
Redefinition
 neue Tools
Erweiterungen
(aber keine neuen)
Objektorientierte
Einschränkung der Konzepte,
 keine neuen Tools
1-22
4. SDL als UML-Ersatz
J.Fischer
1.
UML und SDL-Zustandsmaschinen im Vergleich
2.
ITU-Standard Z.100
3.
Werkzeuge
4.
SDL-Grundkonzepte
5.
Musterbeispiel (in UML-Strukturen)
6.
Struktur- und Verhaltensbeschreibung in SDL-RT
Repräsentationsformen
Z.100 (konkrete, abstrakte Syntax, statische u. dynamische Semantik
Abstrakte Grammatik
GR
CIF
Common
Interchange
Format (Z.107)
PR
UML Profile
common textual grammar
textual grammar
graphical grammar
(Z.109)
1-24
Geklärte semantische Variationen in SDL
•
Datentypen, Action-Syntax und Action-Semantik (C- Style),
SDL erlaubt Werte- und Referenz-Semantik
•
Beziehungen zwischen aktiven Klassen und Zustandsautomaten
Agenten sind die Vereinigung von Aktiver Klasse und Zustandsautomat
Mehrfachvererbung für Agenten sind ausgeschlossen
•
Agenten besitzen systemweit 1-deutige Referenzen, deren Kenntnis initial nur lokal gegeben
ist. Referenzen werden zur Signaladressierung benutzt.
•
Keine Aussage zum quantitativen Zeitverhalten der Zustandsübergänge.
Übertragungskanäle verbrauchen eine nicht spezifizierte Zeit
•
Ereignisverwaltung (Signalempfangspuffer) ist präzisiert
•
Remote-Procedure-Call (guardeed operation) ist über Ersetzungsmodell präzisiert
•
Systeminstanzen lassen sich definieren
7-25
SDL-ähnliche Notation
eine Entscheidung
– Empfangen eines Signals
– Senden eines Signals
– eine Aktionssequenz
A
B, C
all
…
…
Rest möglicher
Signale
Übernahme des
Signalparameters
in ein Attribut Id
des zugehörigen
Classifiers
7-26
Die strukturelle Systemsicht in SDL
Instanz-Typbezüge können
- impliziter und
- expliziter Art
sein
oberster „Block“
System
g1
Übergang
zur
VerhaltensBeschreibung
Kanäle
g1
S:SystemType
nur auf
unterster
Ebene als
Automat
möglich
SystemType
g6
E1:Element [2]
g3
g4
g2
E2 [3]
g5
Gates
(mit Interface)
Blockinstanzmengen
unterster Block
setzt sich aus
Prozessen / ProzessInstanzmengen
(Objekte aktiver Klassen +
Zustandsmaschinen)
zusammen
1-27
g2
SDL/GR - Syntax
Referenzsymbole
1(1)
System-InstanzReferenzsymbol
system S
system
System-Instanz
Block-Instanz(menge)
1(1)
System S
B1
Kanäle:
Nachrichtenaustausch
B2
System-Diagramm
mit
BlockinstanzReferenzen
B3
Service-Instanz
nicht in SDL-RT
Prozedur
1(1)
Block B1
B11
B12
B13
1(1)
Block B11
P
Prozess als Zustandsautomat
• kommunizieren per asynchronen
Nachrichtenaustausch
(impliziter Empfangspuffer)
• können andere Prozesse erzeugen
• Verhalten: endlich,unendlich
Prozess-Instanz(menge)
(Default-Kardinailität=1)
Q
[AK]
R
Process R
SDL-Editor-Anforderung:
Diagramm- und Seitennavigation
• lokale Variablen
(auch Assoziationsenden)
• lokale Datentypen
• lokale Prozeduren/Funktionen
• lokale Zustände
• Zustandsübergänge als Ereignistrigger
1-28
Systemsichtweisen von SDL
•
strukturelle Sichtweise
– Instanzsicht
Beschreibung der Konfiguration eines Systems (system) bestehend aus funktionalen
Einheiten (block) und ihren Relationen (channel) bei Identifikation der
Systemgrenzen
– Typsicht (falls für Instanzen/Instanzmengen Typen festgelegt sind)
– Pakete (package) zur bequemen Wiederverwendung von Typen
•
verhaltensorientierte Sichtweise
– Verhalten einer funktionalen Einheit wird durch kommunizierende
nebenläufig agierende Zustandsautomaten erbracht (agent/process)
– Prozessverhalten: zeitdiskret
– Strukturierungsmöglichkeiten von Verhaltensbeschreibungskonstrukten
(procedure, service)
7-29
4. SDL
J.Fischer
1.
UML und SDL-Zustandsmaschinen im Vergleich
2.
ITU-Standard Z.100
3.
Werkzeuge
4.
SDL-Grundkonzepte
5.
Musterbeispiel (in UML-Strukturen)
6.
Struktur- und Verhaltensbeschreibung in SDL
Überblick
•
TAU-Werkzeug, IBM Rational
(ursprünglich schwedische Firma TeleLogic)
•
Cinderella (Standard-SDL, SDL 96, dänische Firma)
mit Codegenerator der HU Berlin
•
SDL-2000 ASM-Interpreter
(MicroSoft, HU Berlin, Uni Kaiserslautern)
•
PragmaDev Developer Studio (pragmatische SDL-Variante)
– Eingeschränktes SDL
– C/C++ Actionsprache
– Kombination mit UML: KlassenDG, UseCaseDG, SequenceDG, DeploymentDG
mit modifiziertem Codegenerator der HU Berlin
•
SDL-Werkzeug auf UML-Basis nur rudimentär
(HU Berlin)
7-31
4. SDL als UML-Ersatz
J.Fischer
1.
UML und SDL-Zustandsmaschinen im Vergleich
2.
Werkzeuge
3.
ITU-Standard Z.100
4.
SDL-Grundkonzepte
5.
Musterbeispiel (in UML-Strukturen)
6.
Struktur- und Verhaltensbeschreibung in SDL
SDL-Basis
Agent= aktive Klasse mit Process-Beschreibung
- Classifier-Eigenschaft
•
ein SDL-System besteht zur Laufzeit aus einer Menge von kommunizierenden
Zustandsmaschinen
definiert durch je einen Repräsentanten der festgelegten
Process (Agenten)- Instanzmengen
die in ihrer Wechselwirkung untereinander und mit der
Umgebung des Systems das Verhalten erbringen
•
die Wechselwirkungen werden über einen asynchronen Nachrichtenaustausch
realisiert
- Sender und Empfänger sind damit entkoppelt
•
jede Prozessinstanz besitzt (genau) einen Empfangspuffer zur Speicherung
ankommender Nachrichten
dieser ist idealerweise a priori unbeschränkt
- keine Blockierung des Senders aufgrund eines vollen Puffers
7-33
SDL-Laufzeitsystem
anonym strukturierte
Systemumgebung
zeitlos bzw.
zeitkonsumierende
Übertragungskanäle
env
QType
PType
PType
P1
Q1
P3
P2
Q2
asynchron kommunizierende Zustandsautomaten
1-34