DESC Domain-oriented Embedded System Construction

Transcription

DESC Domain-oriented Embedded System Construction
Industrielle F&E-Partner
InES Institute of
Embedded Systems
DESC Domain-oriented Embedded System Construction
Resultat aus der Forschung und Entwicklung im Bereich Embedded Software Engineering
DESC ist eine modell-basierte Entwicklungsmethode für Embedded Systeme, die mit spezifischen
Teilmethoden und Tools den gesamten Entwicklungsprozess unterstützt. Die Tools werden auf der
Eclipse-Plattform zu einer durchgängigen Tool Chain integriert.
Domänen-orientierte Entwicklung. Sowohl die Struktur als auch das Verhalten der embedded
Software wird durch Eigenschaften der externen Prozesse und ihrer Verbindung zum Embedded
System bestimmt. Diese Eigenschaften sind der Ausgangspunkt der Software-Entwicklung. Das
Resultat sind verständliche und sichere Lösungen.
Komponenten-basierte Konstruktionstechnik. Die Software-Modelle sind aus Komponenten aufgebaut. Die Interaktion zwischen Komponenten wird explizit über Konnektoren spezifiziert, welche
die Komponentenschnittstellen verbinden. Das Resultat sind Lösungen mit robuster Flexibilität.
Separation of Concerns
Die Methoden und Tools unterstützen die Software-Entwicklung in den zentralen Problembereichen.
Function. Modellierung der Steuerfunktionen als Reaktive
Maschinen mit der CIP-Methode (interacting state machines).
Function
Reactive
Models
Scheduling
Scheduling
Hierarchy
Connection. Modellierung der Verbindungssoftware als
geschichtete Datenflussmodelle mit der DEC-Methode.
Scheduling. Zweistufige Scheduling Hierarchie mit der
ESES-Methode (EDF under RMS).
Connection
Dataflow
Models
Virtuelle Interaktion. Die Steuerfunktionen und die Verbindungssoftware werden streng getrennt in
zwei entsprechenden Softwareschichten entwickelt.
Events
Embedded Unit
External
Processes
Physical Interaction
Sensors&
Actuators
Virtual Interaction
Actions
Electronic Signals
Computer
Environment
Reactive
Machine
Control Layer: Reaction
Function Calls for Event and Action Messages
Embedded
Connection
Connection Layer: Interaction
Unit Controller
Embedded System
Reactive Machine. Die Steuerfunktionen interagieren virtuell mit den externen Prozessen.
Embedded Connection. Die reale Interaktion mit den Prozessen erfolgt über die installierten
Sensoren & Aktoren und der Embedded Connection, die mit parallelen Dataflow Machines
modelliert wird.
Prof. Dr. H. Fierz, ZHAW, [email protected] - Mai 2009
Function
CIP – Communcating Interacting Processes
Reaktive Maschinen werden mit dem CIP Tool als
Modell-Architektur
interagierende Zustandsmaschinen modelliert.
ClusterX
Zustandsmaschinen kooperieren synchron innerhalb von Clustern. Die Cluster selbst sind asynA
B
A1
chron kooperierende Reaktive Maschinen.
State
Pulse Cast
E
C
E1
D
Source Channel
C1
Mode Control
E2
H
E3
Sink Channel
A3
A2
Cluster werden automatisiert als parallel ausführbare Software-Komponenten implementiert (Code
Generierung für C, C++ oder Java).
Ausgangspunkt der Entwicklung sind Zustandsmaschinen, die über Eingangs- und Ausgangskanäle
virtuell mit den externen Prozessen interagieren.
Extended Finite
State Machine
F
Inspection
Die Zustandsmaschinen sind Komponenten. Sie
interagieren über explizit spezifizierte Konnektoren.
ClusterY
Message
Channel
Reaktion der Extended Finite State Machines
EFSM Enabler
cashed
EFSM Cashier
EFSM Supervisor
disabled
Deakt
Go
Coin
Close
Coin
paid
enough
Start
start
LampOn
Coin
Go
go
sleeping
ELSE
Eject
op4
op3
Abort
end
Eject
op2
idle
served
op2
served
Eject
op2
Abort
disable
leap
Coin
ToLate
op3
Done
cashed
Abort
running
op4
Coin
paid
Coin
paid
op2
op2
enough
Start
start
LampOn
Coin
ELSE
cashing
idle
cashing
op2
starting
Connection
DEC – Domain-oriented Embedded Connection
Die Software, welche die Reaktive Maschine einer Embedded Unit mit den Rechnerschnittstellen
verbindet, wird mit dem DEC Tool als mehrschichtige Datenflussmaschinen spezifiziert.
Input- und Output-Datenflussmaschine einer Prozessverbindung.
External
Process
Events
Monitored
Quantities
Sensors
Control
Layer
Process
Link
Layer
Signal
Link
Layer
INPUT
CHANNEL
Control Layer
Reactive
Machine
EVENT
MESSAGES
MONITORED
VARIABLES
SW INPUT
SIGNALS
HW INPUT
SIGNALS
Aus den modellierten
Datenpfaden kann der
Source-Code für alle
Schnittstellen der Interaktionsfunktionen generiert
werden.
protocol stacks of a process connection
Embedded Processor
Event
Detection
Functions
Action
Initiation
Functions
Process Link Layer
Input
Handling
Functions
Output
Handling
Functions
Software Signals
Input
Driver
Functions
Output
Driver
Functions
Hardware Signals
OUTPUT
CHANNEL
ACTION
MESSAGES
CONTROLLED
VARIABLES
Control
Layer
External
Process
Actions
Process
Link
Layer
SW OUTPUT
SIGNAL
Controlled
Quantities
Signal
Link
Layer
Die Interaktionsfunktionen
selbst werden im DEC Tool
in kontextsensitiven Editoren programmiert, welche
die modellierten Schnittstellen als Tags zur Verfügung
stellen.
Actuators
HW OUTPUT
SIGNALS
Scheduling
ESES – Event-based Scheduling of Embedded Systems
Das Scheduling erfolgt hierarchisch auf zwei Ebenen. Embedded Units werden asynchron mit
einem RTOS als periodische Server ausgeführt (RMS). Die Ereignisverarbeitung der einzelnen
Units wird hingegegen ohne RTOS deadline-basiert durch den Unit Controller gesteuert (EDF).
Die Verifikation des Scheduling erfolgt
über die Prozessorbenutzungsfaktoren
der Embedded Units. Diese bestimmen,
ob die Embedded Units mit RMS ausführbar sind, und sie definieren pro Embedded Unit die verfügbare Prozessorzeit für
die lokale Ereignisverarbeitung.
Execution of three Embedded Units
Unit1: T1 = 3u
C1 = u, U1 = 1/3
P1 = 3
W1
Unit2: T2 = 12u
C2 = 5u, U2 = 5/12
P2 = 2
Unit3: T3 = 36u
C3 = 8u, U3 = 2/9
P3 = 1
Unit1
T1
W2
Unit2
T2
W3
Unit3
T3
Gewinn
Weniger Fehler, kürzere Entwicklungszeiten, reduzierter Wartungsaufwand,
Wiederverwendbarkeit von Komponenten, verifizierbares Scheduling.
Umsetzung: Tool Provider, Beratung, Coaching
Jürg Schwartz, Syte AG, Reinach, www.syte.ch, [email protected]
Kurse an der ZHAW
Kurse Embedded Software Engineering 1 und 2 (T73 und T74), nächste Kurse im September 2009
www.zhaw.ch/de/zhaw/weiterbildung
Prof. Dr. H. Fierz, ZHAW, [email protected] - Mai 2009
ZHAW / InES
DESC – Domain-oriented System Construction
Industrielle F&E-Partner
InES Institute of
Embedded Systems
DESC
Modell-basierte Entwicklung von Embedded Systemen
F&E-Resultate im Bereich Embedded Software Engineering
Prof. Dr. Hugo Fierz, [email protected]
InES – Institut für Embedded Systems
ZHAW / School of Engineering
School of Engineering
Institut für Embedded Systems InES
ZHAW / InES
Prof. Dr. Hugo Fierz
1
DESC – Domain-oriented System Construction
DESC – Domain-oriented Embedded System Construction
DESC ist eine modell-basierte Entwicklungsmethode für Embedded Systeme.
Separation of Concerns
Methoden und Tools unterstützen die Software-Entwicklung in den zentralen Problembereichen.
Function. Modellierung der Steuerfunktionen als
Reaktive Maschinen mit der CIP-Methode.
Function
Reactive
Models
Scheduling
Scheduling
Hierarchy
Connection
Connection. Modellierung der Verbindungssoftware als
Datenflussmaschinen mit der DEC-Methode.
Scheduling. Zweistufige Scheduling Hierarchie
mit der ESES-Methode (EDF under RMS).
Dataflow
Models
School of Engineering
Institut für Embedded Systems InES
Prof. Dr. Hugo Fierz
2
ZHAW / InES
DESC – Domain-oriented System Construction
Modell-basierte Embedded Entwicklung – State of the Art
Die Steuerung der externen Prozesse wird mit kooperierenden Zustandsmaschinen modelliert.
Embedded System mit Umgebung
Einbettungs- State
Machines
software
Sensoren
Externe
Prozesse
Embedded
System
Aktoren
Fragen
- Konzepte und Modelle für die Entwicklung der Einbettungssoftware?
- Konzepte für das Real-Time Scheduling? Verifikation der Machbarkeit?
School of Engineering
Institut für Embedded Systems InES
ZHAW / InES
Prof. Dr. Hugo Fierz
3
DESC – Domain-oriented System Construction
DESC Methode
- Steuerfunktionen und Einbettungssoftware werden modell-basiert als Komponenten entwickelt.
- Virtuelle Interaktion => Spezifikation der gemeinsamen Komponenten Schnittstellen
Embedded System mit Umgebung
Virtuelle Interaktion
Events
Sensoren
Externe
Prozesse
Actions
Event
Messages
EC - Embedded Connection
RM - Reactive Machine
EC
Aktoren
Virtuelle Interaktion
RM
Embedded
System
Action
Messages
Virtuelle Interaktion – Protokoll für asynchron übertragene Messages
Die Externen Prozesse werden virtuell durch eine Reaktive Maschine (RM) gesteuert.
Reale Interaktion
Sensoren & Aktoren und Einbettungssoftware: Embedded Connection (EC)
School of Engineering
Institut für Embedded Systems InES
Prof. Dr. Hugo Fierz
4
ZHAW / InES
DESC – Domain-oriented System Construction
Generic Domain-oriented Software Architecture
Events
External
Processes
Physical Interaction
Sensors&
Actuators
Embedded Unit
Virtual Interaction
Reactive
Machine
Actions
Control Layer: Reaction
Function Calls for Event and Action Messages
Embedded
Connection
Electronic Signals
Connection Layer: Interaction
Unit Controller
Computer
Environment
Embedded System
Getrennte Entwicklung von funktionaler und Verbindungssoftware:
- Reactive Machine: Modellbasierte Entwicklung mit kooperierenden Zustandsmaschinen: CIP
- Embedded Connection: Modellbasierte Entwicklung als Datenflussmaschinen: DEC
- Scheduling: RMS-Ausführung der Units, EDF-basierte Ereignisverarbeitung durch die Units
School of Engineering
Institut für Embedded Systems InES
ZHAW / InES
Prof. Dr. Hugo Fierz
5
DESC – Domain-oriented System Construction
DESC – Domain-oriented Embedded System Construction
Methoden und Tools unterstützen die Software-Entwicklung in den zentralen Problembereichen.
Function
Reactive
Models
Scheduling
Scheduling
Hierarchy
Connection
Dataflow
Models
School of Engineering
Institut für Embedded Systems InES
Prof. Dr. Hugo Fierz
6
ZHAW / InES
DESC – Domain-oriented System Construction
Connection – DEC (Domain-oriented Embedded Connection)
DEC Software Modell für eine Embedded Unit
Processor
Input Dataflow
Machines
Embedded Unit
Output Dataflow
Machines
Reactive
Machine
transformational
software
reactive
software
Input Channels
transformational
software
Output Channels
Layered Input und Output Channels
- Software-Verbindungen der Reaktiven Maschine zu den Prozessorschnittstellen.
- Input und Output Channels entsprechen Protokollstacks von Kommunikationssystemen.
School of Engineering
Institut für Embedded Systems InES
ZHAW / InES
Prof. Dr. Hugo Fierz
7
DESC – Domain-oriented System Construction
Drei Schichten einer Prozessverbindung: Control Layer, Process Link Layer, Signal Link Layer
protocol stacks of a process connection
Embedded Processor
External
Process
Events
Monitored
Quantities
Sensors
Control
Layer
Process
Link
Layer
Signal
Link
Layer
INPUT
CHANNEL
School of Engineering
Reactive
Machine
EVENT
MESSAGES
MONITORED
VARIABLES
SW INPUT
SIGNALS
HW INPUT
SIGNALS
Correspondence
Control Layer
Event
Detection
Functions
Action
Initiation
Functions
Process Link Layer
Input
Handling
Functions
Output
Handling
Functions
Software Signals
Input
Driver
Functions
Output
Driver
Functions
Hardware Signals
Relation
Institut für Embedded Systems InES
OUTPUT
CHANNEL
ACTION
MESSAGES
CONTROLLED
VARIABLES
SW OUTPUT
SIGNAL
Control
Layer
Process
Link
Layer
Signal
Link
Layer
External
Process
Actions
Controlled
Quantities
Actuators
HW OUTPUT
SIGNALS
Function with Input-Output Relation
Prof. Dr. Hugo Fierz
8
ZHAW / InES
DESC – Domain-oriented System Construction
DEC Tool – Context Sensitive Interaction Function Editor
Beispiel:
Event Detection Editor
PROCESS CONNECTION StepDoor
Input InterfaceI
Output InterfaceI
static BIT_1of8 positionmark_old;
if ( positionMark != positionMark_old ){
if ( positionMark && direction )
OpeningStep( timeStamp );
else if ( positionMark ) && ! direction )
ClosingStep( timeStamp );
positionMark_old = positionMark
}
positionMark
direction
timeStamp
Openingstep()
Closingstep()
Interface Elemente als Tags
Tags referenzieren entsprechende Variablen der generierten Datenstruktur.
- Tags wirken als dynamische Macros: Automatische Konsistenz mit dem DEC-Modell.
- Bei der DEC Codegenerierung werden die ausführbaren Input und Output Channels erzeugt.
School of Engineering
Institut für Embedded Systems InES
ZHAW / InES
Prof. Dr. Hugo Fierz
9
DESC – Domain-oriented System Construction
Function – CIP (Communicating Interacting Processes)
Architektur eines CIP-Modells
Message
Channel
ClusterX
E
A
A1
B
C
A2
D
Extended Finite
State Machine
Source Channel
F
State
Inspection
Pulse Cast
E1
ClusterY
C1
E2
A3
Mode Control
H
E3
Sink Channel
- Asynchron kooperierende Cluster (vgl. SDL und ROOM)
- Cluster sind synchrone Kompositionen erweiterter Zustandsmaschinen (vgl. Statecharts)
- Architekturbasierte Komposition der Zustandsmaschinen (Konnektoren als Interaktionsmodell)
- Generierung nebenläufig ausführbarer reaktiver SW-Komponenten (Reactive Machines)
School of Engineering
Institut für Embedded Systems InES
Prof. Dr. Hugo Fierz
10
ZHAW / InES
DESC – Domain-oriented System Construction
Komponenten-orientierte Spezifikation der Modell-Interaktion
Konnektor Typ
Der Konnektor Typ definiert den Interaktionsmechanismus:
Message Passing, Pulse Cast, State Inspection, Mode Control
EFSM1 F
F
G
G
EFSM2
Konnektor
Konfiguration eines Konnektors
Ein Konnektor stellt eine Beziehung zwischen Komponenten-Schnittstellen her.
“A component is an abstraction with plugs” (O. Nierstrasz)
School of Engineering
Institut für Embedded Systems InES
ZHAW / InES
Prof. Dr. Hugo Fierz
11
DESC – Domain-oriented System Construction
Verhaltensmodell einer EFSM-Komponente (Extended Finite State Machine)
EFSM Cashier
cashed
Abort
USER TYPES
typdef int tAmount;
Coin
ToLate
Eject
op3
Abort
end
Eject
idle
Start
start
LampOn
op1
VARIABLES
amount: tAmount
op2
served
op4
INPORT Events
MESSAGES Start, Coin: tAmount, Abort
Coin
paid
INPULSES
served: tAmount
op2
enough
Coin
OUTPULSES
start, paid, end
op2
OUTPORT Actions
MESSAGES LampOn, Eject: tAmount, ToLate
ELSE
cashing
OPERATIONS
op1 {SELF.amount = 0;}
op2 {SELF.amount = SELF.amount + IN;}
op3 {OUTMSG = SELF.amount;}
op4 {OUTMSG = SELF.amount - IN;}
CONDITIONS
CONDITION enough
SELF.amount + IN >= Choice.price()
- INPORTS und OUTPORT sind Ports für das asynchrone Message Passing Interaktion
- INPULSES und OUTPULSES sind Ports für die synchrone Pulse Cast Interaktion
- VARIABLES, OPERATIONS, und CONDITIONS sind Plugged Primitives (C. C++. Java).
School of Engineering
Institut für Embedded Systems InES
Prof. Dr. Hugo Fierz
12
ZHAW / InES
DESC – Domain-oriented System Construction
Scheduling – ESES (Event-based Scheduling of Embedded Systems)
Scheduling Hierarchie: Event Processing under Embedded Units
Embedded Unit Scheduling
Generic Domain-oriented Software Architecture
Events
Embedded Unit
External
Processes
Virtual Interaction
Reactive
Machine
Actions
Physical Interaction
Sensors&
Actuators
Control Layer: Reaction
Function Calls for Event and Action Messages
Embedded
Connection
Electronic Signals
Connection Layer: Interaction
Unit Controller
Computer
Environment
Embedded System
Embedded Units als periodische preemptible Task Server mit RMS ausgeführt (RTOS)
Capacity Ck definiert die verfügbare Prozessorzeit pro Zyklus Tk
(k = 1, ..., n)
Prozessorbenutzungsfaktor Uk = Ck / Tk < 1
Prozessorbenutzung: U = U1 + ... + Un < 1
School of Engineering
ist notwendig.
Institut für Embedded Systems InES
ZHAW / InES
Hinreichend?
Prof. Dr. Hugo Fierz
13
DESC – Domain-oriented System Construction
Drei Embedded Units als Polling Server ausgeführt
Preemptives Rate Monotonic Scheduling der Unit-Tasks (RTOS-basiert)
Die Prozessorzeit der Embedded Units wird durch eine zyklische Dispatcher-Task verwaltet.
u = dispatcher period
Unit1: T1 = 3u
C1 = u, U1 = 1/3
P1 = 3
W1
Unit2: T2 = 12u
C2 = 5u, U2 = 5/12
P2 = 2
Unit3: T3 = 36u
C3 = 8u, U3 = 2/9
P3 = 1
Unit1
T1
W2
Unit2
T2
W3
Unit3
T3
Background
statically garanteed time interval
School of Engineering
Execution in the garanteed interval
Institut für Embedded Systems InES
Inherited execution time
Prof. Dr. Hugo Fierz
14
ZHAW / InES
DESC – Domain-oriented System Construction
Event Processing einer Embedded Unit
Zyklusbasierte Architektur einer Embedded Unit
Unit
Interaction
Message
Reader
Unit
Controller
EMQ
MII
Reactive
Machine
MOI
Message
Writer
Unit
Interaction
Control Layer
.
Connection Layer
Input
Devices
Input
Output
MOI
MV
Input
Handler
Event
Detector
Action
Initiator
CV
Output
Handler
Output
Devices
SOI
SII
Event Message Queue (EMQ): FCFS oder EDF Scheduling Policy. Schedulability Verification?
Execution Case: Der Unit Controller aktiviert die Interaktionsfunktionen und die Reaktive Maschine
s
s+T
d
I
s+2T
d
P
d: detection
School of Engineering
O I
d
idle
P O
s+3T
I
I: Input-Phase
d
idle
P
I
P: Processing-Phase
Institut für Embedded Systems InES
ZHAW / InES
P
O
O: Output-Phase
Prof. Dr. Hugo Fierz
15
DESC – Domain-oriented System Construction
DESC Tool Chain als Eclipse Plugins
.
DEC Tool (ab Herbst 2009 verfügbar)
Eclipse Plattform
CIP Tool ® (portiert bis Anfang 2010)
ESES Tool (geplant als DEC Tool Plugin)
DEC Tool
ESES Tool
.
CIP Tool
.
Syte AG als DESC Tool Provider der Zukunft
Kontakt: Jürg Schwartz, [email protected]
InES / ZHAW – Kurse und Coaching
Weiterbildungskurse Embeddded Software Engineering 1 und 2 (T73 und T74) im Sept. 2009)
Kontakt: Dr. Hugo Fierz, [email protected]
School of Engineering
Institut für Embedded Systems InES
Prof. Dr. Hugo Fierz
16

Documents pareils