hybrid uml and its application to specification and test of train … · 2015-10-16 · hybrid uml...

41
Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 Kirsten Berkenk¨ otter, Stefan Bisanz, Ulrich Hannemann and Jan Peleska University of Bremen , Germany {kirsten,bisanz,ulrichh,jp}@informatik.uni-bremen.de

Upload: others

Post on 05-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Hybrid UML and its Application to Specification and Test of Train Control

Systems. Part 2

Kirsten Berkenkotter, Stefan Bisanz, Ulrich Hannemann and Jan Peleska

University of Bremen , Germany

{kirsten,bisanz,ulrichh,jp}@informatik.uni-bremen.de

Page 2: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Outline

Outline

1. What is “HybridUML”?

2. A short reminder: Railway crossing case study

3. Applied HybridUML: Train controller

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 3: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

What is “HybridUML”?

What is “HybridUML”?

• CHARON

• UML

⇒ UML 2.0 Profile: HybridUML

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 4: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

What is “HybridUML”?

What is “HybridUML”?

• CHARON

+ Hybrid automata

+ Hierarchic modelling → “statecharts-like”

+ Formal semantics

• UML

⇒ UML 2.0 Profile: HybridUML

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 5: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

What is “HybridUML”?

What is “HybridUML”?

• CHARON

• UML 2.0

+ well known, tool support . . .

– no sufficient support for real-time in UML 2.0

– no support for time-continuous modelling

⇒ UML 2.0 Profile: HybridUML

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 6: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

A short reminder: Railway crossing case study

A short reminder: Railway crossing case study

Scenario: Radio controlled train operation.

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 7: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

A short reminder: Railway crossing case study

A short reminder: Railway crossing case study

Scenario: Radio controlled train operation.

• One (circular) track.

• One train.

• CROSSING COUNT crossings.

• VC COUNT restrictive velocity changes.

• V TP COUNT =

CROSSING COUNT + V C COUNT

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 8: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

Applied HybridUML: Train controller

BrakePointController

�agent�CloseRequestController

�agent�CrossingStatusControllerCore

�agent�

�agent�LocalizationController

�agent�

�agent�UserInteractionController

�agent�EmergencyController

�agent�MovementController

�agent�TrainRadioController

�agent�StatusMapper

�agent�CrossingStatusController

TrainController

Subagents of TrainController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 9: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

Applied HybridUML: Train controller

BrakePointController

�agent�CloseRequestController

�agent�CrossingStatusControllerCore

�agent�

�agent�LocalizationController

�agent�

�agent�UserInteractionController

�agent�EmergencyController

�agent�MovementController

�agent�TrainRadioController

�agent�StatusMapper

�agent�CrossingStatusController

TrainController

Subagents of TrainController

Agents:

• hierarchie: simple vs. composite agents

• simple agents: exactly one thread of execu-

tion

• stereotypes of classes

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 10: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

Applied HybridUML: Train controller

BrakePointController

�agent�CloseRequestController

�agent�CrossingStatusControllerCore

�agent�

�agent�LocalizationController

�agent�

�agent�UserInteractionController

�agent�EmergencyController

�agent�MovementController

�agent�TrainRadioController

�agent�StatusMapper

�agent�CrossingStatusController

TrainController

Subagents of TrainController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 11: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

←Subagents of TrainController

ra:RouteAtlas

�agent�

publicx:AnalogReala:AnalogReal

signalrecvCrossing(Telegram)sendCrossing(Telegram)

private

const:GlobalConstants. . .

TrainController

Class view of TrainController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 12: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

←Subagents of TrainController

ra:RouteAtlas

�agent�

publicx:AnalogReala:AnalogReal

signalrecvCrossing(Telegram)sendCrossing(Telegram)

private

const:GlobalConstants. . .

TrainController

Class view of TrainController

• public and private variables

• events

• introduction of AnalogReal

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 13: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

←Subagents of TrainController

ra:RouteAtlas

�agent�

publicx:AnalogReala:AnalogReal

signalrecvCrossing(Telegram)sendCrossing(Telegram)

private

const:GlobalConstants. . .

TrainController

Class view of TrainController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 14: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

: LocalizationController

closeAckknowledged[]

vallowed

sendCrossing[](. . . )

recvCrossing[](. . . )

a

x

tclosedTooLong[]

brakingRequired

const

x

v

vtpActive[]

ra

: BrakePointController

v

location ra

vallowed

x

: TrainRadioController

sendCrossing[](. . . )

vtpActive[]

v

x

: EmergencyController

ra

emergency()

closeAckknowledged[]

x

v

statusFailed(. . . )

ra

crossingStatusReq(. . . )

vtpActive[]

const

crossingStatus(. . . )

v

auser

a

const

brakingRequired

class TrainController

: CrossingStatusController

tclosedTooLong[]

: MovementController

emergency()

activateCrossing(. . . )

crossingActivated(. . . )

crossingNotActivated(. . . )

vtpActive[]

closingFailed(. . . )

const

x

v

ra

: CloseRequestController

auser

: UserInteractionController

crossingStatus(. . . )

crossingStatusReq(. . . )

activateCrossing(. . . )

crossingActivated(. . . )

crossingNotActivated(. . . )

recvCrossing[](. . . )

Structure diagram of TrainController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 15: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

: LocalizationController

closeAckknowledged[]

vallowed

sendCrossing[](. . . )

recvCrossing[](. . . )

a

x

tclosedTooLong[]

brakingRequired

const

x

v

vtpActive[]

ra

: BrakePointController

v

location ra

vallowed

x

: TrainRadioController

sendCrossing[](. . . )

vtpActive[]

v

x

: EmergencyController

ra

emergency()

closeAckknowledged[]

x

v

statusFailed(. . . )

ra

crossingStatusReq(. . . )

vtpActive[]

const

crossingStatus(. . . )

v

auser

a

const

brakingRequired

class TrainController

: CrossingStatusController

tclosedTooLong[]

: MovementController

emergency()

activateCrossing(. . . )

crossingActivated(. . . )

crossingNotActivated(. . . )

vtpActive[]

closingFailed(. . . )

const

x

v

ra

: CloseRequestController

auser

: UserInteractionController

crossingStatus(. . . )

crossingStatusReq(. . . )

activateCrossing(. . . )

crossingActivated(. . . )

crossingNotActivated(. . . )

recvCrossing[](. . . )

Structure diagram of TrainController

Structure diagram of UML 2.0 with

• one port for each global variable or event

• shared variables/events are connected

• read-only: white, read/write: black

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 16: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

: LocalizationController

closeAckknowledged[]

vallowed

sendCrossing[](. . . )

recvCrossing[](. . . )

a

x

tclosedTooLong[]

brakingRequired

const

x

v

vtpActive[]

ra

: BrakePointController

v

location ra

vallowed

x

: TrainRadioController

sendCrossing[](. . . )

vtpActive[]

v

x

: EmergencyController

ra

emergency()

closeAckknowledged[]

x

v

statusFailed(. . . )

ra

crossingStatusReq(. . . )

vtpActive[]

const

crossingStatus(. . . )

v

auser

a

const

brakingRequired

class TrainController

: CrossingStatusController

tclosedTooLong[]

: MovementController

emergency()

activateCrossing(. . . )

crossingActivated(. . . )

crossingNotActivated(. . . )

vtpActive[]

closingFailed(. . . )

const

x

v

ra

: CloseRequestController

auser

: UserInteractionController

crossingStatus(. . . )

crossingStatusReq(. . . )

activateCrossing(. . . )

crossingActivated(. . . )

crossingNotActivated(. . . )

recvCrossing[](. . . )

Structure diagram of TrainController

Zooming . . .

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 17: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

v

vallowed

tclosedTooLong[]

class TrainController

: CrossingStatusController

tclosedTooLong[]

: MovementController

emergency()

x

: LocalizationController

vallowed

vtpActive[]

closeAckknowledged[]

const

x

ra

v

statusFailed(. . . )

ra

: BrakePointController

crossingStatusReq(. . . )

a

vtpActive[]

v

const

x

crossingStatus(. . . )

v

location

auser

brakingRequired

a

const

brakingRequired

ra

Focus on BrakePointController

Zooming . . .

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 18: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

x

v

v

: CrossingStatusController

tclosedTooLong[]

: MovementController

emergency()

const

statusFailed(. . . )

vtpActive[]

ra

brakingRequired

crossingStatusReq(. . . )

ra

vtpActive[]

const

crossingStatus(. . . )

: BrakePointControllerv

vallowed

auser

x

a

closeAckknowledged[]

const

tclosedTooLong[]

brakingRequired

Focus on BrakePointController

Zooming . . .

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 19: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

x

v

v

: CrossingStatusController

tclosedTooLong[]

: MovementController

emergency()

vallowed

const

statusFailed(. . . )

vtpActive[]

ra

brakingRequired

crossingStatusReq(. . . )

ra

vtpActive[]

const

crossingStatus(. . . )

: BrakePointControllerv

auser

x

a

closeAckknowledged[]

const

tclosedTooLong[]

brakingRequired

Focus on BrakePointController

Zooming . . .

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 20: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

vtpActive[]

: CrossingStatusController

: MovementController

a

brakingRequired

brakingRequired

x

v

vtpActive[]

: BrakePointController

Focus on BrakePointController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 21: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

vtpActive[]

: CrossingStatusController

: MovementController

a

brakingRequired

brakingRequired

x

v

vtpActive[]

: BrakePointController

Focus on BrakePointController

BrakePointController:

• continuously calculates brake points

• according to dynamic velocity profile

• for each velocity target point (VTP)

• sets brakingRequired iff braking is re-

quired

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 22: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

vtpActive[]

: CrossingStatusController

: MovementController

a

brakingRequired

brakingRequired

x

v

vtpActive[]

: BrakePointController

Focus on BrakePointController

MovementController:

• adjusts accelaration if braking re-

quired

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 23: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

vtpActive[]

: CrossingStatusController

: MovementController

a

brakingRequired

brakingRequired

x

v

vtpActive[]

: BrakePointController

Focus on BrakePointController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 24: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

brakePoint[1..VTP COUNT]:AnalogReal

�agent�

public

ra:RouteAtlas

BrakePointController

x:AnalogReal

v:AnalogReal

brakingRequired:Boolean

tclosedTooLong[1..CROSSING COUNT]:AnalogReal

const:GlobalConstants

vtpActive[1..VTP COUNT]:Boolean

private

brakePointControl

xclosedTooLong,1[1..CROSSING COUNT]:AnalogReal

tbrake:AnalogReal

xclosedTooLong,2[1..CROSSING COUNT]:AnalogReal

sbrake:AnalogReal

Class view of BrakePointController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 25: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

brakePoint[1..VTP COUNT]:AnalogReal

�agent�

public

ra:RouteAtlas

BrakePointController

x:AnalogReal

v:AnalogReal

brakingRequired:Boolean

tclosedTooLong[1..CROSSING COUNT]:AnalogReal

const:GlobalConstants

vtpActive[1..VTP COUNT]:Boolean

private

brakePointControl

xclosedTooLong,1[1..CROSSING COUNT]:AnalogReal

tbrake:AnalogReal

xclosedTooLong,2[1..CROSSING COUNT]:AnalogReal

sbrake:AnalogReal

Class view of BrakePointController

• public variables as seen in structure

diagram

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 26: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

brakePoint[1..VTP COUNT]:AnalogReal

�agent�

public

ra:RouteAtlas

BrakePointController

x:AnalogReal

v:AnalogReal

brakingRequired:Boolean

tclosedTooLong[1..CROSSING COUNT]:AnalogReal

const:GlobalConstants

vtpActive[1..VTP COUNT]:Boolean

private

brakePointControl

xclosedTooLong,1[1..CROSSING COUNT]:AnalogReal

tbrake:AnalogReal

xclosedTooLong,2[1..CROSSING COUNT]:AnalogReal

sbrake:AnalogReal

Class view of BrakePointController

• private variables controlled

continuously (here)

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 27: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

brakePoint[1..VTP COUNT]:AnalogReal

�agent�

public

ra:RouteAtlas

BrakePointController

x:AnalogReal

v:AnalogReal

brakingRequired:Boolean

tclosedTooLong[1..CROSSING COUNT]:AnalogReal

const:GlobalConstants

vtpActive[1..VTP COUNT]:Boolean

private

brakePointControl

xclosedTooLong,1[1..CROSSING COUNT]:AnalogReal

tbrake:AnalogReal

xclosedTooLong,2[1..CROSSING COUNT]:AnalogReal

sbrake:AnalogReal

Class view of BrakePointController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 28: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

statemachine brakePointControl

[ inv: condBrakingRequired (→1) ]

BrakingRequired

[ inv: condBrakingNotRequired (→2) ]

/ brakingRequired := true

[ condBrakingNotRequired (→2) ]

/ brakingRequired := false

BrakingNotRequired

[ alge: algeBrakePoint (→4) ]

[ alge: algeStoppingDistance (→5) ]

[ alge: algeStoppingDuration (→6) ]

[ condBrakingRequired (→1) ]

[ alge: algeGuaranteedPosition1 (→7) ]

[ alge: algeGuaranteedPosition2 (→8) ]

[ flow: ∀c ∈ {1..CROSSING COUNT} • tclosedTooLong[c] = −1 ]

Behavior of BrakePointController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 29: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

statemachine brakePointControl

[ inv: condBrakingRequired (→1) ]

BrakingRequired

[ inv: condBrakingNotRequired (→2) ]

/ brakingRequired := true

[ condBrakingNotRequired (→2) ]

/ brakingRequired := false

BrakingNotRequired

[ alge: algeBrakePoint (→4) ]

[ alge: algeStoppingDistance (→5) ]

[ alge: algeStoppingDuration (→6) ]

[ condBrakingRequired (→1) ]

[ alge: algeGuaranteedPosition1 (→7) ]

[ alge: algeGuaranteedPosition2 (→8) ]

[ flow: ∀c ∈ {1..CROSSING COUNT} • tclosedTooLong[c] = −1 ]

Behavior of BrakePointController

Mode:

• single top-level mode of simple agent

• hierarchy by means of OR-States

• no AND-States – no parallelism within

simple agents

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 30: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

statemachine brakePointControl

[ inv: condBrakingRequired (→1) ]

BrakingRequired

[ inv: condBrakingNotRequired (→2) ]

/ brakingRequired := true

[ condBrakingNotRequired (→2) ]

/ brakingRequired := false

BrakingNotRequired

[ alge: algeBrakePoint (→4) ]

[ alge: algeStoppingDistance (→5) ]

[ alge: algeStoppingDuration (→6) ]

[ condBrakingRequired (→1) ]

[ alge: algeGuaranteedPosition1 (→7) ]

[ alge: algeGuaranteedPosition2 (→8) ]

[ flow: ∀c ∈ {1..CROSSING COUNT} • tclosedTooLong[c] = −1 ]

Behavior of BrakePointController

Time-continuous behavior:

• algebraic equations:

enforced to be satisfied

• flow equations:

similar, but directly specifying change

by derivative

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 31: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

statemachine brakePointControl

[ inv: condBrakingRequired (→1) ]

BrakingRequired

[ inv: condBrakingNotRequired (→2) ]

/ brakingRequired := true

[ condBrakingNotRequired (→2) ]

/ brakingRequired := false

BrakingNotRequired

[ alge: algeBrakePoint (→4) ]

[ alge: algeStoppingDistance (→5) ]

[ alge: algeStoppingDuration (→6) ]

[ condBrakingRequired (→1) ]

[ alge: algeGuaranteedPosition1 (→7) ]

[ alge: algeGuaranteedPosition2 (→8) ]

[ flow: ∀c ∈ {1..CROSSING COUNT} • tclosedTooLong[c] = −1 ]

Behavior of BrakePointController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 32: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

statemachine brakePointControl

[ inv: condBrakingRequired (→1) ]

BrakingRequired

[ inv: condBrakingNotRequired (→2) ]

/ brakingRequired := true

[ condBrakingNotRequired (→2) ]

/ brakingRequired := false

BrakingNotRequired

[ alge: algeBrakePoint (→4) ]

[ alge: algeStoppingDistance (→5) ]

[ alge: algeStoppingDuration (→6) ]

[ condBrakingRequired (→1) ]

[ alge: algeGuaranteedPosition1 (→7) ]

[ alge: algeGuaranteedPosition2 (→8) ]

[ flow: ∀c ∈ {1..CROSSING COUNT} • tclosedTooLong[c] = −1 ]

Behavior of BrakePointController

Discrete behavior (as usual):

• submodes

• transitions

with guards, events, actions

• invariants:

force a transition if not satisfied

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 33: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

Applied HybridUML: Train controller

statemachine brakePointControl

[ inv: condBrakingRequired (→1) ]

BrakingRequired

[ inv: condBrakingNotRequired (→2) ]

/ brakingRequired := true

[ condBrakingNotRequired (→2) ]

/ brakingRequired := false

BrakingNotRequired

[ alge: algeBrakePoint (→4) ]

[ alge: algeStoppingDistance (→5) ]

[ alge: algeStoppingDuration (→6) ]

[ condBrakingRequired (→1) ]

[ alge: algeGuaranteedPosition1 (→7) ]

[ alge: algeGuaranteedPosition2 (→8) ]

[ flow: ∀c ∈ {1..CROSSING COUNT} • tclosedTooLong[c] = −1 ]

Behavior of BrakePointController

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 34: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

The end.

The end.

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 35: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

The end.

condBrakingRequired ≡∃i ∈ {1..V TP COUNT}•

brakePoint[i].x ≤ x ∧ ra.vtp[i].v < v ∧ ra.vtp[i].x > x∧(vtpActive[i] ∨ condTooLate (→3))

(1)

condBrakingNotRequired ≡∀i ∈ {1..V TP COUNT}•¬(brakePoint[i].x ≤ x ∧ ra.vtp[i].v < v ∧ ra.vtp[i].x > x∧

(vtpActive[i] ∨ condTooLate (→3)))

(2)

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 36: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

The end.

condTooLate ≡ra.vtp[i].type = V TP TY PE.CROSSING∧((xclosedTooLong,1[ra.vtp[i].cr.id] ≤ ra.vtp[i].cr.xend + const.l

∧ tclosedTooLong[ra.vtp[i].cr.id] ≤ tbrake)∨ (xclosedTooLong,2[ra.vtp[i].cr.id] ≤ ra.vtp[i].cr.xend + const.l

∧ tclosedTooLong[ra.vtp[i].cr.id] > tbrake))

(3)

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 37: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

The end.

algeBrakePoint ≡∀i ∈ {1..V TP COUNT} • brakePoint[i] = ra.vtp[i].x− ra.vtp[i].v2−v2

2·const.amin

(4)

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 38: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

The end.

algeStoppingDistance ≡sbrake = −v2

2·const.amin

(5)

algeStoppingDuration ≡tbrake = −v

const.amin

(6)

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 39: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

The end.

algeGuaranteedPosition1 ≡∀c ∈ {1..CROSSING COUNT}•xclosedTooLong,1[c] = x + const.amin

2 · tclosedTooLong[c]2 + v · tclosedTooLong[c]

(7)

algeGuaranteedPosition2 ≡∀c ∈ {1..CROSSING COUNT}•xclosedTooLong,2[c] = x + sbrake + (tclosedTooLong[c]− tbrake) · const.vpass

(8)

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 40: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

The end.

1

VelocityTargetPoint

x:Real

�dataType�

v:Realtype: VTP TYPEid:Integer

xbeginning:Realxend:Realtyellow:Realtgate:Realtapproach:Realid:Integer

�dataType�Crossing

vtp VTP COUNTCROSSING COUNTcr

vtp cr

0..1

�dataType�RouteAtlas

Datatypes

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz

Page 41: Hybrid UML and its Application to Specification and Test of Train … · 2015-10-16 · Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2

The end.

1

VelocityTargetPoint

x:Real

�dataType�

v:Realtype: VTP TYPEid:Integer

xbeginning:Realxend:Realtyellow:Realtgate:Realtapproach:Realid:Integer

�dataType�Crossing

vtp VTP COUNTCROSSING COUNTcr

vtp cr

0..1

�dataType�RouteAtlas

Datatypes

DataType:

• simple structure

• no behavior

20.11.2003 Hybrid UML and its Application to Specification and Test of Train Control Systems. Part 2 S. Bisanz