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