UML und SysML im Umfeld von
eingebetteten Systemen Eine Einführung
Oliver Gesch, Betreuer: Dr.-Ing. Edzard Höfig
Fachbereich Mathematik & Informatik
Donnerstag, 12. Januar 2012
2
Gliederung
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
1. Motivation
2. Grundlagen
3. UML2
4. SysML
5. Zusammenfassung
3
1. MOTIVATION
4
Motivation (1/2)
Allgemein
•Vereinfachung von Teamarbeit
•Systematische Vorgehensweise
•Filtern von Sachverhalten
•Zeitersparnis (UML2Code, Code2UML)
•Wiederverwertbarkeit
Eingebettete Systeme
•Erhöhte Komplexität
•Einhaltung von Normen
•Schnittstelle für Hard- und Softwareentwickler
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
5
Motivation (2/2)
Ausführbare Spezifikationen/Modelle
Best-Practice-Verfahren für EB
SysML
Verhältnis zur UML Sichtweisen
UML 2
Aufbau Sichtweisen Lücken
Andreas Korff: „Modellierung von eingebetteten Systemen mit UML und SysML“, Spektrum 2008.
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
6
2. GRUNDLAGEN
7
Grundlagen (1/7)
Ressourcenbeschränkung
Platzbeschränkung
Batteriebetrieb
• Geringe Energiereserven
• Geringe Leistung
kabelloser Kommunikation
• Geringe Datenraten
• Geringe Sendeleistung (Reichweite)
Anwendungsbereiche
• Medizin
• Haushalt
• Verkehrsmittel
• Mobiltelefone
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Eingebettete Systeme
Arduino
8
Grundlagen (2/7)
Beispielsystem MSB-A2 (Modular Sensor Board ARM)
Kategorie: Wireless Sensor Node (WSN)
Domäne: Medizin, Militär, Haushalt, Umweltschutz…
Beispielanwendung: Altersheim (betreutes Wohnen)
Einsatz als ständiger Begleiter der Bewohner.
Kontinuierliche Übertragung von Messdaten an eine
zentrale Sammelstelle. Vorort Diagnose durch LCD-
Display.
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
9
Grundlagen (3/7)
Eigenschaften des MSB-A2
• Prozessor: LPC2387 von TI
• ARM CPU
• 512kB Flash Memory
• 96kB RAM
• Max. 76 MHz Taktrate
• Funkchip: CC1100
• max. 500 kBaud
• Sensor: SHT11
• Temperatur- und Feuchtigkeitssensor
• LCD-Display: LCD128B
• µkleos Mikro-Kernel (RTOS mit Threads)
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
10
Grundlagen (4/7)
Programmierung
• C immer noch sehr dominant
• Codegenerierung/Reverse Engineering für UML
• modellbasierten System-Codegenerierung (MATLAB/Simulink)
Beschreiben (Bootloader)
• Einmalig (oder von Werk aus) Bootloader brennen
• Flash über PC-Schnittstelle (RS232/USB)
Debugging
• JTAG-Schnittstelle und onboard ICE (In-Cirtcuit-Emulator)
• Softwarenachbildung des Mikrocontrollers
• Ausführbare Modelle (Modelchecking)
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
11
Grundlagen (5/7) – The Real-Time Perspective
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Systems Engineering
Software Engineering Architekturdesign Feindesign
Software Engineering
Systemanforderungen
definieren
Softwareanforderungen
definieren
Initiale
Objektarchitektur
entwickeln
Initiale
Softwarearchitektur
entwickeln
Softwarearchitektur
finalisieren
Anwendungsfälle im
Detail definieren
Anwendungsfälle
implementieren und
testen
Systemintegrationstest
Systemakzeptanztest
Vollständig und korrekt?
nein
ja
12
Grundlagen (6/7) – The Real-Time Perspective
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Systems Engineering
Software Engineering Architekturdesign Feindesign
Software Engineering
Systemanforderungen
definieren
Softwareanforderungen
definieren
Initiale
Objektarchitektur
entwickeln
Initiale
Softwarearchitektur
entwickeln
Softwarearchitektur
finalisieren
Anwendungsfälle im
Detail definieren
Anwendungsfälle
implementieren und
testen
Systemintegrationstest
Systemakzeptanztest
Vollständig und korrekt?
nein
ja
13
Grundlagen (7/7) – The Real-Time Perspective
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Systemtest
•Testergebnisse (Integration, System)
•Änderungsvorschläge
•Benutzerdokumentation
Implementierung und Unit-Test
•Source Code
•Komponenten laut Spezifikation
•Technische Dokumentation
•Unit-Testfälle
•(Zielhardware)
Design
•Systemarchitektur (speziell)
•Domänen
•Schnittstellenspezifikation
•Paket und Komponentenspezifikationen
•Datenmodell
Analyse
•Anwendungsfälle
•Anforderungen und Zusicherungen (System und Software)
•Szenarien
•Physikalische Systemdefiniton (allgemein)
•Entwicklungszeitplan
14
3. UML – ANFORDERUNGSDEFINITION
15
UML – Anwendungsfalldiagramme
Temperatur
messen
«primär»
Zeit
Sensorwerte alle 5
Minuten messen
Digitales
Interface
intialisieren
«include»
use case Sensorwerte messen
System
«sekundär»
Temperatursensor
«primär»
Temperatur
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
16
UML – Anwendungsfalldiagramme
Temperatur
messen
Sensorwerte alle 5
Minuten messen
Digitales Interface intialisieren
«include»
use case Sensorwerte messen
System
Zeit Temperatur-sensor
Temperatur
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Grafische Stereotypisierung
17
UML – Anwendungsfalldiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Sinnvolle Verwendung
• Leistung des Systems definieren (Nutzerperspektive)
• Kommunikation mit fachfremden Personen
• Verknüpfung der schriftlichen Spezifikation mit dem Modell
Ungeeignet für
• Umsetzung des Systems
• Darstellung von System-Anforderungen
• Methoden/Attribute
Analyse
18
UML – Zustandsdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Pseudozustand: (tiefe) Historie
aktiv
Sensorwerte
state Zustandsdiagramm für das Display mit tiefer Historie
Feuchtigkeit
Temperatur
EvNext/EvNext/aus
Menü
EvOn/
EvOff/
EvSensoren/
EvMenu/
«create»/
H*
19
UML – Zustandsdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Sinnvolle Verwendung
• Sortieren der Anwendungsfälle
• Ordnung der Interaktionen
• Darstellung von Aktionen Reaktionen
• Systemverhalten modellieren
Ungeeignet für
• Betrachtung der Benutzerschnittstelle
• Darstellung von Systemgrenzen
• Primitive Objekte
Analyse
Design
20
3. UML – SYSTEMMODELLIERUNG
21
UML – Paketdiagramm
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
package Domänenmodell des Sensorknotens
Senke
(Sammelstelle)
Sensorknoten
Benutzerschnittstelle
Schaltflächen
Display
Hardware-
Abstraktion
Threads
Sensoren
AblaufsteuerungFunkübertragung
22
UML – Paketdiagramm
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Sinnvolle Verwendung
• Identifikation von Domänen
• Schaffung von Namensräumen
• Softwareschichten
• Aufgabenverteilung
Ungeeignet für
• Kompakte Systeme
Design
23
UML – Aktivitätsdiagramme
activity Demodulierung und Dekodierung
Demodulator«stream»
CarrierWave
Demodulierung und Dekodierung
«stream»
analogDaten FEC Decoder
PHY Packet
«stream»
demodDaten
packetData
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Streaming Pins
24
UML – Aktivitätsdiagramme
activity Mengenverarbeitung
PHY Pakete empfangen
IP Handling
PHY_Packet
TCP Reassembly
parallel
IP_Pakete
IP_Paket
TCP Packet
TCP Reassembling
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Mengenverarbeitung
• iterativ
• streaming
• parallel
25
UML – Aktivitätsdiagramme
activity Timer
Waiting for TCP ACK
Retransmitting Data
[No ACK]
[ACK]
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Zeitsignale und unterbrechebare Bereiche
26
UML – Aktivitätsdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Sinnvolle Verwendung
• Kontrollfluss und/oder
• Objektfluss visualisieren
• Übersichtliche Darstellung auch von komplexen Anwendungsfällen
Ungeeignet für
• Visualisierung von Besitzverhältnissen
• Darstellung der Auslöser/Ereignisse
Design
27
3. UML 2 ANSI-C
28
UML – ANSI C
activity FOR CONTINUE
Aktion 1
[Bedingung 1]
C Code:
for (Initialisierung; Bedingung 1; Inkrement)
{
Aktion 1;
if (Bedingung 2)
continue;
Aktion 2;
}
[else]
[else]
Aktion 2Inkrement
[Bedingung 2]
Initialisierung
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
29
UML – ANSI C
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
class Attribute
AnzahlSockets: intStatus : boolean
SocketAPI
read(in arguments) : chargetID() : int
socketID : int
Socket
pSocket
/* File: .\SocketAPI.h*/
#ifndef __SOCKETAPI#define __SOCKETAPI
#include "Socket.h"
struct SocketAPI{int AnzahlSockets;int Status;struct Socket *pSocket;};
#endif
1
1
Include
Struct
Pointer
30
UML – ANSI C
class A und B
+ Operation(in parameter : long) : short
- InstanzAttribut : Attributtyp+ KlassenAttribut : Attributtyp
KlasseA
- AttrInB : long
KlasseB
RolleAufB
/* File: .\KlasseA.h*/
#ifndef __KLASSEA#define __KLASSEA
#include "KlasseB.h"
struct KlasseA{Attributtyp InstanzAttribut;struct KlasseB rRolleAufB[5];};
extern Attributtyp KlassenAttribut;short Operation(struct KlasseA *this, long parameter);
#endif
1
5
/* File: .\KlasseA.c*/
#include "KlasseA.h"
Attributtyp KlassenAttribut;
short Operation(struct KlasseA *this, long parameter){Return 1;}
#endif
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Dezidiertes struct als Übergabeelement
31
3. UML TASK MANAGEMENT UND SYNCHRONISIERUNG
32
UML – Taskmanagement und Synchronisierung
object RTOS Tasks
Task A Task B Task C
Speicher Prozessor Peripherie
RTOS
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
33
UML – Taskmanagement und Synchronisierung
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
no type Intertaskkommunikation stereotypisiert
asynchron synchron
ohne Daten
mit Daten
Event Flag
Message Queue
Signal
Mailbox
34
UML – Taskmanagement und Synchronisierung
Communication Semaphor
SocketAPI Application
write() recv()
TCP-Payload
Signal() Wait()
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Semaphorfunktionen: wait()/signal()
35
UML – Kommunikationsdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Sinnvolle Verwendung
• Kommunikation und Interaktionen darstellen
• Zeitlicher Ablauf
• Nachrichten visualisieren
Ungeeignet für
• Zeitlich und logisch sehr komplexer Austausch von Nachrichten
Analyse
Design
36
4. SYSML
37
SysML – Motivation (1/3)
Systemanforderungen modellieren und analysieren
•Keine Softwarezentrierung
•Geringerer Umfang als UML
Nicht funktionale Anforderungen festhalten
Schnittstelle
•Hardwarentwickler
•Elektrotechniker
•weitere Stakeholder
SysMLErweiterungen
SysML
UML2
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
pkg Einbettung der SysML und von SysML-Modellen in UML2
«metamodel»MOF
«metamodel»UML
«metamodel»SysML
«model»Nutzermodell
«modelLibrary»SysML Profile
«instanceOf»
«import»
«instanceOf»
«reuse»
«instanceOf»
38
SysML – Motivation (2/3)
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
39
SysML – Motivation (3/3)
activity Timer
Waiting for TCP ACK
Retransmitting Data
[No ACK]
[ACK]
Intervall: 2*RTT
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Nicht-funktionale Anforderungen
40
4. SYSML - SYSTEMANFORDERUNGEN
41
SysML – Systemanforderungen
class TCP Anforderung
txt
Ein ACK für empfangene Daten muss
innerhalb von 500 ms versendet werden.
id#
S-13.2
«requirement»
ACK versenden
tcp_csum() : bool
sendeACK()
piggybackData()
TCPHandler
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Anforderungen
• Name
• ID
• Text
42
SysML – Systemanforderungen
req Zurückverfolgbare TCP Anforderung
txt
Ein ACK für empfangene Daten muss
innerhalb von 500 ms versendet werden.
id#
S-13.2
«requirement»
ACK versenden
«requirement»
RFC2581
«trace»
TracedTo
«requirement» RFC2581
äquivalente
Semantik
txt
Ein ACK für empfangene Daten muss
innerhalb von 500 ms versendet werden.
id#
S-13.2
«requirement»
ACK versenden
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Nachverfolgbarkeit per «trace»
43
SysML – Systemanforderungen
req TCP Verbindungseigenschaften
«requirement»
Verlässliche und integere TCP Verbindung
«requirement»
TCP Active ACK
«requirement»
Checksum
«requirement»
TCP Retransmit
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Bestandteile von Anforderungen
44
SysML – Systemanforderungen
req UDP Integrität
«requirement»
UDP Integrität
«requirement»
UDP Checksum
«requirement»
Checksum
«copy»
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Wiederverwertbarkeit von Anforderungen
45
SysML – Systemanforderungen
Temperatur
messen
Sensorwerte alle 5
Minuten messen
Digitales Interface intialisieren
«include»
use case Sensorwerte messen
System
Zeit Temperatur-sensor
Temperatur
Refines
«requirement» Umgebungsprofil aktualisieren
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Verfeinern von Anforderungen (in unterschiedlichen Diagrammen)
46
SysML – Systemanforderungen
activity Timer
Waiting for TCP ACK
Retransmitting Data
[No ACK]
[ACK]
Handle Retransmit
Satisfies
«requirement» TCP Retransmit
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Nicht-funktionale Anforderungen erfüllen
47
SysML – Anforderungsdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Sinnvolle Verwendung
• Anforderungen modellieren
• Nichtfunktional
• Funktional
• Nachverfolgbarkeit gewährleisten
Ungeeignet für
• Generische Anforderungen
• Spezifische Umsetzung
• Sehr detailreiche Anforderungen
Analyse
48
4. SYSML: SYSTEMEIGENSCHAFTEN UND –AUFBAU MODELLIEREN
49
SysML – Blockdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
bdd Transceiver
flowPorts
Daten : FunkDaten
values
Flashspeicher : KByte = 512
RAM : KByte = 98
maxProzessorTakt : MHz = 72
«block»
LPC2387
Blöcke
•Name
•Werte
•Operationen
•Teile (parts)
•Ports (standard/flow)
•Referenzen
50
SysML – Blockdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
bdd CPU Flussspez.
flowPorts
Daten : FunkDaten
values
Flashspeicher : KByte = 512
RAM : KByte = 98
maxProzessorTakt : MHz = 72
«block»
LPC2387
flowProperties
in empfangeneDaten : char
out gesendeteDaten : char
«FlowSpecification»
FunkDaten
Flussspezifikationen
• Name
• Flusseigenschaften
51
SysML – Blockdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
bdd WSN
«block»
CC1100«block»
WSN1
TR
«block»
LPC2387
«block»
SHT11
1
CPU
1
«block»
LCD128B1
LCD
«block»
Antenne
A
1
1
S
52
SysML – Blockdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
bdd WSN
flowPorts
in out analogDaten : V
values
Sendeleistung : dBm = +10
Frequenzband : MHz = 868
maxDatenrate : kBaud = 500
«block»
CC1100
Parts
TR : CC1100
CPU : LPC2387
S : SHT11
LCD : LCD128B
A : Antenne
operations
start()
stop()
übertrageFunkDaten() : char
übertrageUSBDaten() : char
flowPorts
in externeEnergie : Elektrische Energie
in out USBDaten : char
in out NutzDaten : char
in Temperatur : int
in Feuchtigkeit : int
«block»
WSN
TR
flowPorts
Daten : FunkDaten
values
Flashspeicher : KByte = 512
RAM : KByte = 98
maxProzessorTakt : MHz = 72
«block»
LPC2387
values
Energieverbrauch : uW = 80
Ansprechzeit : s = 8
maxTemperatur : °C = 125
minTemperatur : °C = -40
«block»
SHT11
S
CPU
1
1
1
1
Operations
writeByte(in wert : Byte) : bool
reset() : bool
values
AnzahlPixel =128*64
Versorgung : mA = 205
«block»
LCD128B
1
LCD
«block»
Antenne
A
1
53
SysML – Blockdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Sinnvolle Verwendung
• Visualisierung des physischen Systemaufbaus
• Systemeigenschaften festhalten
• Eigenschaften von Element- und Objektflüssen spezifizieren
Ungeeignet für
• Physische Schnittstellen
• Darstellung von Softwarebestandteilen
Analyse
Design
54
SysML – Internes Blockdiagramm
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
ibd WSN
«block»
WSN
TR : CC1100
A : Antenne CPU : LPC2387carrierWave
analogDaten
externeEnergie
IF_Services
Daten
USBDaten
Steuerdaten
1 1
1
55
UML – Interne Blockdiagramme
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
Sinnvolle Verwendung
• Visualisierung von physischen und softwarespezifischen Schnittstellen
• Darstellung von Objekt- und Elementflüssen
Ungeeignet für
• Zeit- und Ablaufverhalten
• Nachrichten und Signale
Design
56
5. ZUSAMMENFASSUNG
57
Zusammenfassung
UML
• Anwendungsfalldiagramme
• Grafische Stereotypisierung
• Zustandsdiagramme
• Mit flacher Historie
• Mit tiefer Historie
• Paketdiagramme
• Domänen
• Namensräumen
• Aktivitätsdiagramme
• Pins (regulär, Streaming, Mengenverarbeitung)
• Unterbrechungen
• Zeitlimit sowie periodische Timer
• Kommunikationsdiagramme
• Taskmanagement
• Synchronisierung: Semaphore
SysML
• Anforderungsdiagramm
• Trace, Copy, Refine, Satisfy
• Hierarchie
• Blockdefinitionsdiagramm
• Parts
• Internes Blockdiagramm
• Ports (regulär, atomar, flow Ports)
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
58
VIELEN DANK
59
QUELLEN
60
Quellen
• Andreas Korff: „Modellierung von eingebetteten Systemen mit UML
und SysML“, Spektrum 2008.
• WILLER: „Der wahre Nutzen der UML“, 2007.
• ScatterWeb: „MSBA2 Hardwaredokumentation“, CST 2011.
• Matthew Hause: „Successfully Managing An Incremental Real-time
Project“, ARTiSAN Software Tools 1999.
• Alan Moore & Niali Cooling: „Real-Time Perspective: Overview“,
ARTiSAN Software Tools 2000.
• Alan Moore & Niali Cooling: „Real-Time Perspective: Foundation“,
ARTiSAN Software Tools 2000.
• Tim Weilkiens: „OMG SysML für eingebettete Systeme“, OOSE 2008.
• Jerome L. Krasner: „UML for C Developers“, Embedded Market
Forecasters 2005.
61
UML – Zustandsdiagramme
Sensorwerte
state Zustandsdiagramm für das Display
Feuchtigkeit
Temperatur
EvNext/EvNext/
aus
Menü
EvOn/EvOff/
EvSensoren/
EvMenu/
EvOff/«create»/
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
62
UML – Zustandsdiagramme
Sensorwerte
state Zustandsdiagramm für das Display mit flacher Historie
Feuchtigkeit
Temperatur
EvNext/EvNext/
Haus
Menü
EvOn/EvOff/
EvSensoren/
EvMenu/
EvOff/«create»/
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
63
UML – Aktivitätsdiagramme
activity Zeige Sensorwerte
Umwandeln der Rohdaten, bestimmen
der Zeichenkettenlänge und blockweise übertragen[raw]
Sensorwert
Display
Sensorwert Anzeigen
Länge Blöcke
{weight = Länge}
{upperbound = 256}
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
64
UML – Aktivitätsdiagramme
activity Sprungmarken
Aktion X
Aktion X
Aktion X
Aktion X
1
1
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
65
UML – Aktivitätsdiagramme
activity Zeitsignale
TCP Reassembling
Socket API Handling
TCP_Packet
TCP_Payload
Application Layer Handling
Close
Shutdown
Close TCP Connection
Shutdown TCP Connection
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
66
UML – Aktivitätsdiagramme
activity periodischer Timer
Prepare TCP Keepalive
Send TCP Keepalive
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
67
UML – ANSI C
activity IF-THEN-ELSE
Aktion 1
Aktion 2[else]
[Bedingung]
C Code:
if (Bedingung)
{
Aktion 1;
}
else
{
Aktion 2;
}
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
68
activity SWITCH
Aktion 1
Aktion 2[1]
[0]
C Code:
switch (Variable)
{
Case (0):
{
Aktion 1;
break;
}
Case (1):
{
Aktion 2;
break;
}
default:
{
Aktion 3;
}
}Aktion 3
[else]
«decisionInput» Variable
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
UML – ANSI C
69
activity WHILE
Aktion
[Bedingung]C Code:
while (Bedingung)
{
Aktion;
}
[else]
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
UML – ANSI C
70
UML – ANSI C
class globales Modul
WSensorNode
+ thread_create(in arguments) : int+ thread_sleep() : void+ thread_wakeup(in arguments) : int
Thread
«use»
/* File: .\WSensorNode.c*/
#include "WSensorNode.h"
#include "Thread.h"
/* File: .\Thread.h*/
#ifndef __THREAD#define __THREAD
int thread_create(arguments);void thread_sleep(void);int thread_wakeup(in arguments);
#endif
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
71
UML – Taskmanagement und Synchronisierung
Communication Event flag
MainController DisplayTask
Display-Beleuchtung
set()read()
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
72
UML – Taskmanagement und Synchronisierung
Communication Message Queue
SocketAPI Application
write() recv()
TCP-Payload
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
73
UML – Taskmanagement und Synchronisierung
Communication Signal
IP Transceiver
wait() setSignal()
PHY-Payload
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
74
UML – Taskmanagement und Synchronisierung
Communication Mailbox
IP Transceiver
post() pend()
PHY-Payload
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch
75
SysML – Systemanforderungen
req Abgeleitete TCP Anforderung
txt
Ein ACK für empfangene Daten muss
innerhalb von 500 ms versendet werden.
id#
S-13.2
«requirement»
ACK versenden
txt
Empfangene TCP Pakete müssen aktiv
bestätigt werden.
id#
S-13.0
«requirement»
TCP Active ACK
«derive»
Mathematik und Informatik, UML+SysML, 12.01.2012 Oliver Gesch