UML und SysML im Umfeld von eingebetteten Systemen€¦ · 2 Gliederung Mathematik und Informatik,...

Post on 04-Jun-2018

217 views 0 download

Transcript of UML und SysML im Umfeld von eingebetteten Systemen€¦ · 2 Gliederung Mathematik und Informatik,...

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