KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS...

33
1 KAOS in Action: the BART System KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie Informatique, Univ. Louvain B-1348 Louvain-la-Neuve (Belgium) {eletier, avl}@info.ucl.ac.be

Transcript of KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS...

Page 1: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

1KAOS

in Action: the BART System

KAOS in Action: The BART System

Emmanuel Letier and Axel van Lamsweerde

Dept. Ingénierie Informatique, Univ. LouvainB-1348 Louvain-la-Neuve (Belgium)

{eletier, avl}@info.ucl.ac.be

Page 2: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

2KAOS

IntrG

TheIdFEIdDEIdO

C

O

Con

in Action: the BART System

Outline

oductionoal-Oriented RE with KAOS

BART Case Studyentifying Goals from Initial Documentormalizing Goals and Identifying Objectslaborating the Goal Structureentifying Agents and Responsibilitieseriving Monitored and Controlled Quantitiesxploring Alternative Responsibility Assignmentsentifying Operationsperationalizing Goals through Strenghtened Operations

onflict Analysis: an Example

bstacle AnalysisObstacle GenerationObstacle Resolution

clusion

Page 3: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

3KAOS

KAOS

and)

leration(tr.Loc, tr.Speed, ...)

del

goal refinementequirements, AssumptionsProps

responsibilities

Dom Pre/PostReq Pre/ Trigger / Post

in Action: the BART System

Goal-Oriented Requirement Engineering withGoal Model

Operation SendComDomPre ¬ Sent(m, trDomPost Sent(m, tr)ReqPostFor SafeAce

m.Acceleration ≤ F

Operation MoAgent Interface Model

Responsibility Model

Object Model

AND/ORGoals, R

+ Dom

Or

software agents+ environment agents

Train TrackSegmentOn

2-level language:semantic net levelformal assertions

NoTrainCollision

SafeAcceleration

0:1

Page 4: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

4KAOS

t

Initi

Avoid[TrainEnteringClosedGate]

in Action: the BART System

Goal Identification From Initial Documen

al document: see http://www.hcecs.sandia.gov/bart.htm

==> Further goals identified by asking WHY and HOW questions

ServeMorePassengers

TrainsMoreCloselySpaced NewTracksAdded

Minimize[Costs]

Min[TimeBetweenStations]

SafeTransport

Maintain[WCSDistBetweenTrains]

Maintain[TrackSegmentSpeedLimit]

... ...

Min[DvlptCosts] Min[OperationalCosts]

...

Page 5: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

5KAOS

SmoothMovement

PsgerComfort

MinimizessOnEquipment]

...

...

in Action: the BART System

[StreMinimize

[PowerUsage

Page 6: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

6KAOS

t

==>

Avoid[TrainEnteringClosedGate]

SmoothMovement

PsgerComfort

MinimizessOnEquipment

...

...

in Action: the BART System

Goal Identification From Initial Statemen

Further Goals identified by asking WHY and HOW questions

ServeMorePassenger

TrainsMoreCloselySpaced NewTracksAdded

Minimize[Costs]

Min[TimeBetweenStation

SafeTransport

Maintain[WCSDistBetweenTrains]

Maintain[TrackSegmentSpeedLimit

... ...

Min[DvlptCosts] Min[OperationalCosts]

...

[StreMinimize

[PowerUsage

Page 7: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

7KAOS

(1)

it

ed REn forlationships, attributes

in Action: the BART System

Formalizing Goals and Identifying Objects

TrackSegment

SpeedLimit: SpeedUn...

Train

Speed: SpeedUnit...

On

Goal Maintain[TrackSegmentSpeedLimit]Definition A train should stay below the maximum

speed the track segment can han-dle.

FormalDef ∀ tr: Train, s: TrackSegment :On(tr, s) ⇒ tr.Speed ≤

Goal-oriented vs. Object-orientGoals provide precise criterio

identification of objects, re

Page 8: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

8KAOS

(2)

eedUnit

if the train it.

in Action: the BART System

Formalizing Goals and Identifying Objects

TrackSegment

SpeedLimit: Sp...

Train

Speed: SpeedUnitLoc : LocationWCSDist : Distance

Following

Goal Maintain[WCSDistBetweenTrains]Definition A train should never get so close to a train in front so that

in front stops suddenly (e.g., derailment) the next train would hitFormalDef ∀ tr1, tr2: Train :

Following(tr1, tr2)⇒ tr1.Loc - tr2.Loc > tr1.WCSDist

On

Page 9: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

9KAOS

(3)

eedUnit

,)

’, ‘closed’}

sGate

“Since”:“Until” in the past

in Action: the BART System

Formalizing Goals and Identifying Objects

TrackSegment

SpeedLimit: Sp...

Train

Speed: SpeedUnitLoc : LocationWCSDist : Distance

Following

Goal Avoid[TrainEnteringClosedGate]Definition A train should not enter a closed gate if it can

(i.e. if it is possible for the train to stop before the gateFormalDef ∀ tr: Train, g: Gate, s: TrackSegment:

g.status = ‘closed’ Since tr.Loc - g.Loc > tr.WCSDist∧ HasGate(s, g)⇒¬ @ On(tr, s)

On

Gatestatus: { ‘openedLoc : Location

Ha

Page 10: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

10KAOS

1)

taintSpeedLimit]

idailment]

...

railent]should never derailrain :nt(tr)

in Action: the BART System

Eliciting New Goals : WHY Questions (

Maintain[WCSDistBetweenTrains]

Avoid[TrainCollisions]

Main[TrackSegmen

Avo[TrainDer

Goal Avoid[TrainCollisions]Definition Trains should nerver collideFormalDef ∀ tr1, tr2: Train :

❑ ¬ Collision(tr1, tr2)

Goal Avoid[TrainDeDefinition Trains FormalDef ∀ tr: T

❑ ¬ Derailme

Page 11: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

11KAOS

2)

n]

TrackSegment

h ...

in Action: the BART System

Eliciting New Goals : WHY Questions (

Avoid[TrainEnteringClosedGate]

Avoid[TrainOnSwitchInWrongPostion]

Maintain[TrainOnCorrectLine]

Maintain[GateClosedWhen

SwitchInWrongPositio

Goal Avoid[TrainOnSwitchInWrongPostion]Definition When a train is on a switch, theswitch should be in the direction of travel ofthe trainFormalDef ∀ tr: Train, sw: Switch:

On(tr, sw) ⇒ sw.Position = tr.DirectionSwitc

Page 12: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

12KAOS

)

WC ysical speed of the train

[aintain

uddenStopedingTrain]

in Action: the BART System

Eliciting New Goals: HOW Questions (1

SDist : the physical Worst-Case Stopping Distance based on the ph

Maintain[WCSDistBetweenTrains]

Avoid[TrainsCollisions]

MaintainSafeSpeed/AccelerationCommanded]

Maintain[SafeTrainResponse

ToCommand]

M[NoS

OfPrec

Page 13: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

13KAOS

:.Loc + δ tr.Speed= tr.Speed + δ tr.acc

Fo⇒tr1

∧tr1

in

’ ≥ tr2.Speed - δ MaxBrakeRate

in Action: the BART System

DomProptr.Loc’ = trtr.Speed’

Following(tr1, tr2)⇒tr1.Loc -tr2.Loc > tr1.WCSDist

llowing(tr1, tr2)

.AccCM’ ≤ F(tr1.Loc, tr2.Loc,tr1.Speed, tr2.Speed)

.SpeedCM’ > tr1.Speed (!)

∀ tr: Traintr.AccCM ≥ 0 ⇒ tr.Acc’ ≤ tr.AccCM∧■≤MCdelay tr.AccCM < 0 ⇒ tr.Acc’ ≤ 0∧tr.Speed ≤ tr.Speed

⇒ tr.Speed’ ≤ tr.SpeedCM

∀ tr2: Tra❑

tr2.Speed

Page 14: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

14KAOS

)

WC ysical speed of the train

aintainddenStopedingTrain]

:.Loc + δ tr.Speed= tr.Speed + δ tr.Acc

Fo⇒tr1

∧tr1

in

’ ≥ tr2.Speed - δ MaxBrakeRate

in Action: the BART System

Eliciting New Goals: HOW Questions (1

SDist : the physical Worst-Case Stopping Distance based on the ph

Maintain[WCSDistBetweenTrains]

Avoid[TrainsCollisions]

Maintain[SafeSpeed/AccelerationCommanded]

Maintain[SafeTrainResponse

ToCommand]

M[NoSu

OfPrece

DomProptr.Loc’ = trtr.Speed’

Following(tr1, tr2)⇒tr1.Loc -tr2.Loc > tr1.WCSDist

llowing(tr1, tr2)

.AccCM’ ≤ F(tr1.Loc, tr2.Loc,tr1.Speed, tr2.Speed)

.SpeedCM’ > tr1.Speed (!)

∀ tr: Traintr.AccCM ≥ 0 ⇒ tr.Acc’ ≤ tr.AccCM∧■≤MCdelay tr.AccCM < 0 ⇒ tr.Acc’ ≤ 0∧tr.Speed ≤ tr.SpeedCM

⇒ tr.Speed’ ≤ tr.SpeedCM

∀ tr2: Tra❑

tr2.Speed

Page 15: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

15KAOS

)

aintainddenStopedingTrain]

in Action: the BART System

Eliciting New Goals: HOW Questions (2

Maintain[WCSDistBetweenTrains]

Avoid[TrainCollisions]

Maintain[SafeComandToFollowingTrain

BasedOnSpeed/PositionEstimates]

Maintain[AccurateSpeed/

PositionEstimates]

Maintain[SafeSpeed/AccelerationCommanded]

Maintain[SafeTrainResponse

ToCommand]

M[NoSu

OfPrec

Page 16: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

16KAOS

c - ti2.Ldev ,v , ti2.Speed - ti2.Sdev )

∀ Tra⇒ti.L∧ti.S

in Action: the BART System

FollowingInfo(ti1, ti2)∧ Tracking(ti1, tr1) ∧ Tracking(ti2, tr2)⇒tr1.AccCM’ ≤ F (ti1.Loc+ ti1.LDev , ti2.Lo

ti1.Speed + ti1.Sde∧tr1.SpeedCM’ > ti1.Speed+ ti1.Sdev

tr: Train, ∃! ti: TrainInfo: Tracking(ti,tr)

tr: Train, ti: TrainInfo:cking(ti, tr)❑

oc - ti.Ldev ≤ tr.Loc ≤ ti.Loc +ti.Ldev

peed - ti.Sdev ≤ tr.Speed ≤ ti.Speed +Sdev

Page 17: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

17KAOS

)

c - ti2.Ldev ,, ti2.Speed - ti2.Sdev )

∀ Tra⇒ti.L∧ti.S

aintainddenStop

eedingTrain]

in Action: the BART System

Eliciting New Goals: HOW Questions (2

Maintain[WCSDistBetweenTrains]

Avoid[TrainsCollisions]

Maintain[SafeComandToFollowingTrain

BasedOnSpeed/PositionEstimates]

Maintain[AccurateSpeed/

PositionEstimates]

FollowingInfo(ti1, ti2)∧ Tracking(ti1, tr1) ∧ Tracking(ti2, tr2)⇒tr1.accCM’ ≤ F (ti1.Loc+ ti1.LDev , ti2.Lo

ti1.speed + ti1.Sdev∧tr1.SpeedCM’ > ti1.Speed+ ti1.Sdev

tr: Train, ∃! ti: TrainInfo: Tracking(ti,tr)

tr: Train, ti: TrainInfo:cking(ti, tr)❑

oc- ti.Ldev ≤ tr.Loc ≤ ti.Loc + ti.Ldev

peed- ti.Sdev ≤ tr.Speed ≤ ti.Speed +Sdev

Maintain[SafeSpeed/AccelerationCommanded]

Maintain[SafeTrainResponse

ToCommand]

M[NoSu

OfPrec

Page 18: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

18KAOS

)

e]

Maintain[NoSuddenStop

OfPrecedingTrain]

Maintain[DeliveredCmdMsg

Exercised]

in Action: the BART System

Eliciting New Goals: HOW Questions (3

Achieve[CmdMsgSentInTime]

Maintain[SafeCmdMsg]

Achieve[SentCmdMsg

DeliveredInTim

Maintain[WCSDistBetweenTrains]

Avoid[TrainCollisions]

Maintain[SafeComandToFollowingTrain

BasedOnSpeed/PositionEstimates]

Maintain[AccurateSpeed/

PositionEstimates]

Maintain[SafeSpeed/AccelerationCommanded]

Maintain[SafeTrainResponse

ToCommand]

Page 19: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

19KAOS

in Action: the BART System

∀ cm: CommandMessage , ti1, ti2: TrainInfocm.Sent ∧ cm.TrainID = ti1.TrainID∧ FollowingInfo(ti1, ti2)⇒cm.Acc ≤ F (ti1.Loc+ ti1.LDev, ti2.Loc - ti2.Ldev,

ti1.Speed + ti.Sdev, ti2.Speed - ti2.Sdev)∧ cm.Speed > ti1.Speed+ ti1.Sdev

Page 20: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

20KAOS

)

e]

Maintain[NoSuddenStopfPreceedingTrain]

Maintain[DeliveredCmdMsg

Exercised]

in Action: the BART System

Eliciting New Goals: HOW Questions (3

Achieve[CmdMsgSentInTime]

Maintain[SafeCmdMsg]

Achieve[SentCmdMsg

DeliveredInTim∀ cm: CommandMessage , ti1, ti2: TrainInfocm.Sent ∧ cm.TrainID = ti1.TrainID∧ FollowingInfo(ti1, ti2)⇒cm.Acc ≤ F (ti1.Loc+ ti1.LDev, ti2.Loc - ti2.Ldev,

ti1.Speed + ti.Sdev, ti2.Speed - ti2.Sdev)∧ cm.Speed > ti1.Speed+ ti1.Sdev

Maintain[WCSDistBetweenTrains]

Avoid[TrainsCollisions]

Maintain[SafeComandToFollowingTrain

BasedOnSpeed/PositionEstimates]

Maintain[AccurateSpeed/

PositionEstimates]

Maintain[SafeSpeed/AccelerationCommanded]

Maintain[SafeTrainResponse

ToCommand] O

Page 21: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

21KAOS

ents

sgme]

Maintain[NoSuddenStop

OfPrecedingTrain]

Maintain[DeliveredCmdMsg

Exercised]

OnBoardTrainController

Resp

OnBoardTrainController

in Action: the BART System

Identifying Potential Responsibility Assignm

Achieve[CmdMsgSentInTime]

Maintain[SafeCmdMsg]

Achieve[SentCmdM

DeliveredInTi

Maintain[WCSDistBetweenTrains]

Avoid[TrainCollisions]

Maintain[SafeComandToFollowingTrain

BasedOnSpeed/PositionEstimates]

Maintain[AccurateSpeed/

PositionEstimates]

Maintain[SafeSpeed/AccelerationCommanded]

Maintain[SafeTrainResponse

ToCommand]

Speed/AccelerationControlSystem

CommunicationInfrastructure

Resp

Resp

Resp

TrackingSystem

Resp

Resp

Page 22: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

22KAOS

r

MonitoringAgent

Attribute

ed/AccelerationontrolSystem

esp

in Action: the BART System

Corresponding Agent Interface Model

Train

Speed/AccelerationControlSystem

TrainInfo CmdMsg

OnBoardTrainControlle

Goal Maintain[SafeCmdMsg]FormalDef ∀ cm: CommandMessage, ti1, ti2: TrainInfo

cm.Sent ∧ cm.TrainID = ti1.TrainID∧ FollowingInfo(ti1, ti2)⇒cm.Acc ≤ F (ti1.Loc+ ti1.LDev, ti2.Loc - ti2.Ldev,

ti1.Speed + ti.Sdev, ti2.Speed - ti2.Sdev)∧ cm.Speed > ti1.Speed+ ti1.Sdev

TrackingSystem

Train.AccTrain.Speed

ControllingAgent

Object.

SpeC

R

...

Train.Loc

Page 23: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

23KAOS

==>

]

Maintain[NoSuddenStop

OfPreceedingTrain]

OnBoardTrainController

in Action: the BART System

Alternative Goal Refinementsand Responsibility Assignments

different design : fully distributed system

Maintain[WCSDistBetweenTrains]

Maintain[PreceedingTrainSpeed/Position

KnownToFollowingTrain]

Maintain[SafeAccelerationBasedOn

PreceedingTrainSpeed/Position

Or

Achieve[PreceedingTrainSpeed/PositionCommunicatedToFollowingTrain]

Maintain[AccurateSpeed/

PositionEstimates]

Resp

TrackingSystem

Resp

CommunicationInfrastructure

Resp

...

Page 24: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

24KAOS

t

= Id

GoaF

==>

OpeInODD

in Action: the BART System

Identifying Operations and DomPre/Pos

entify state transitions relevant to goals

l Maintain[SafeCmdMsg]ormalDef ∀ cm: CommandMessage, ti1, ti2: TrainInfocm.Sent ∧cm.TrainID = ti1.TrainID∧ FollowingInfo(ti1, ti2)⇒cm.Acc ≤ F (ti1.Loc+ ti1.LDev, ti2.Loc - ti2.Ldev,

ti1.Speed + ti.Sdev, ti2.Speed - ti2.Sdev)∧ cm.Speed > ti1.Speed+ ti1.Sdev

ration SendCommandMessageput Train {arg tr}utput ComandMessage {res cm}omPre ¬ cm.SentomPost cm.Sent ∧ cm.TrainID = tr.ID

Page 25: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

25KAOS

GoaF

==>Ope

In

ODD

R

2.Sdev)

R

in Action: the BART System

Operationalizing Goals

l Maintain[SafeCmdMsg]ormalDef ∀ cm: CommandMessage, ti1, ti2: TrainInfocm.Sent ∧cm.TrainID = ti1.TrainID∧ FollowingInfo(ti1, ti2)⇒cm.Acc ≤ F (ti1.Loc+ ti1.LDev, ti2.Loc - ti2.Ldev,

ti1.Speed + ti.Sdev, ti2.Speed - ti2.Sdev)∧ cm.Speed > ti1.Speed+ ti1.Sdev

ration SendCommandMessageput Train {arg tr}

TrainInfoutput ComandMsg {res cm}omPre ¬ cm.SentomPost cm.Sent ∧ cm.TrainID = tr.ID

eqPostFor [SafeCmdMsg]Tracking(ti1, tr) ∧ Following(ti1, ti2)→cm.Acc ≤ F (ti1.Loc+ ti1.LDev, ti2.Loc - ti2.Ldev, ti1.Speed + ti.Sdev, ti2.Speed - ti∧ cm.Speed > ti1.Speed+ ti1.Sdev

eqTrigFor [CmdMsgSentInTime]■≤1/2 sec ¬ ∃ cm2: CommandMessage: cm2.Sent ∧ cm2.TrainID = tr.ID

Page 26: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

26KAOS

in Action: the BART System

This is not the end of the story ...

Page 27: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

27KAOS

fPhysicalSpeed]

eed + 7

itedAccelerationWhendedSpeedAbove7mph

PhysicalSpeed

SmoothMove

for conflict

in Action: the BART System

Conflict Analysis: An Example

tr.AccCM ≥ 0⇒tr.SpeedCM ≤ tr.Speed+ fn(dist_obstacle)

Maintain[CmdedSpeedCloseToPhysicalSpeed]

DistanceBetweenTrainsIncreasesWithCmdedSpeed

Maintain[CmdedSpeedAbove7mphO

tr.accCM ≥ 0⇒tr.SpeedCM > tr.Sp

◊ (∃ tr: Train):tr.AccCM ≥ 0∧fn(dist_obstacle) ≤ 7

LimCmOf

ServeMorePsgers

speed speed+7speed+fn(dist_obst)

Min[DistBetweenTrains]

Max[TrainSpeed]SafeTransport

boundary condition

Page 28: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

28KAOS

Not

==>

Rat eleration mode

leration

t) ≤ 7 fn(dist_obst) > 7

in Action: the BART System

Conflict Resolution

e: fn(dist_obst) increases with dist(obst)

Conflict Resolution :Weaken Maintain [CmdedSpeedAbove7mphOfPhysicalSpeed]

tr.AccCM ≥ 0⇒tr.SpeedCM > tr.Speed + 7 ∨ fn(dist_obst) ≤ 7

ionale: if boundary condition is true, priority is to avoid going into dec

Train

WCSD

FullBraking Deceleration Acce

fn(dist_obs

Page 29: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

29KAOS

• O

Ob

y)

• H

=

=

Han

1. Ins

2. G

3. A

in Action: the BART System

Obstacle Analysis

bstacle = high-level exception

stacle O obstructs goal G iff1. {O, Dom } |== ¬ G (Obstruction)2. Dom |=/= ¬ O (Domain Consistenc

andle obstacles at RE time

=> identification of new requirements

=> more robust system

dling obstacles during goal-oriented requirements elaboration

dentify obstacles-> formal techniques for generating obstacles from goal formulatio-> heuristics as ligthweight rules of thumb

enerate alternative obstacle resolutions-> resolution operators ==> new goals/requirements

lternative evaluation and selection

Page 30: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

30KAOS

• G

• F

A ineering,andling, 2000.

eMsgTime]

CN

sgInTime

gte

DeliveredCmdMsgCorrupted

in Action: the BART System

Obstacle Identification

oal-anchored form of Fault-Tree construction

ormal techniques to generate obstacles from goal formulations

. van Lamsweerde and E. Letier, Handling Obstacles in Goal-Oriented Requirement Engto appear in IEEE-TSE, Special Issue on Exception H

Maintain[SafeComandToFollowingTrain

BasedOnSpeed/PositionEstimates]

Achieve[CmdMsgSentInTime]

Maintain[SafeCmdMsg]

Achiev[SentCmd

DeliveredIn

CmdMsgNOTSentInTime

mdMsgOTSent

CmdMsgSentLate

CmdMsgSentTo

WrongTrain

UnsafeCmdMsgSentCmdM

NOTDelivered

SentCmdMsgNOTDelivered

SentCmdMsDeliveredLa

...

Page 31: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

31KAOS

ns

Go= cCm

lerationControlSystem==> ller

Age= cUns

lerationControlSystemtionComputer

Ob= aImp Speed/PositionEstimates==>

StationComputer )

Go= w

in Action: the BART System

Generating Alternative Obstacle Resolutio

al Substitutionhoose alternative goaldMsgSentLate Obstructs Achieve[CmdMsgSentInTime]

UnderResponsibilityOf Speed/Acce alternative design : acceleration calculated by on-board train contro

nt Substitutionhange responsibility assignment for obstructed goalafeAccelerationInCmdMsg Obstructs SafeAccelerationInCmdMsg

UnderResponsibilityOf Speed/Acce==> UnderResponsibilityOf VitalSta

stacle Preventiondd new goal: ¬ OossibleChangeInTrainSpeed/PositionEstimates Obstructs Accurate New Goal: Avoid[ImpossibleTrainInfoChange]

( to be assigned as responsibility of TrackingSystem OR

al Deidealizationeakening goal to make obstruction disappear

Page 32: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

32KAOS

Ob= ae.g

==>

MaintainenOutOfDateTrainInfo]

O

[APo

in Action: the BART System

stacle Mitigationdd new goal that tolerates obstacle but mitigates its consequences.

derivation of new requirementsMessage Origination Time Tag attribute

Maintain[NoCollisionWhenOutOfDateTrainInfo]

Avoid[TrainsCollisions]

[NoCollisionWhAchieve

[FullBrakingWhenOutOfDateTrainInfo]utOfDate

TrainInfo

Achieve[FullBrakingWhen

MOTTinCmdMsgExpired]

Maintain[AccurateMOTT

inCmdMsg]

...

mitigatesMaintain

ccurateSpeed/sitionEstimates]

Page 33: KAOS in Action: The BART Systemjm/2507S/Notes02/BART.pdf · KAOS in Action: the BART System 1 KAOS in Action: The BART System Emmanuel Letier and Axel van Lamsweerde Dept. Ingénierie

33KAOS

• S

rolled objects)

• G

• G

• G

• S perties

• E

in Action: the BART System

Conclusions

ystematic derivation of requirements from goals

(required pre/post/trigger conditions, monitored/cont

oal formalization

==> refinement correctness proof

==> conflict identification/resolution

==> obstacle generation/resolution

oal-oriented explanation of requirements

oal structure provides structure for requirements document

eparation of concerns: requirements vs. assumptions vs. domain pro

xploration of alternative system proposals