17.01.2014 Views

a way for applicable formal specification of safety requirements by ...

a way for applicable formal specification of safety requirements by ...

a way for applicable formal specification of safety requirements by ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Safety Pattern ds-wet-27<br />

dynamic <strong>safety</strong> requirement without explicit time, concerning beginning <strong>of</strong> validity and<br />

concerning permissibility <strong>of</strong> validity, <strong>safety</strong> pattern no. 27<br />

Safety Pattern in Norm Language<br />

Only strictly after that point in time when p is valid then it is permitted that q is valid .<br />

Safety Pattern in Formal Languages<br />

CTL:<br />

A((not q) W (p and (not q)))<br />

LTL:<br />

(not q) W (p and (not q))<br />

µ-Calculus:<br />

nu Z.((p and ( not q)) or (( not q) and [-]Z))<br />

Temporal OCL 3 : inv: let requiredSequence = Sequence{not qConf, pConf}<br />

in begin implies self@post→<strong>for</strong>All(s:OclPath |<br />

s→includes(requiredSequence) or s→excludes(qConf))<br />

Explanation in Natural Language<br />

A main characteristic <strong>of</strong> this <strong>safety</strong> pattern is that q may only occur strictly after p. The exact<br />

point in time after p is irrelevant. The main thing is that q occurs strictly after p. That means q<br />

must neither occur be<strong>for</strong>e p nor becomes true together with p. q may occur but it do not have to.<br />

Example <strong>of</strong> Use<br />

System<br />

Level crossing in radio based operation<br />

Conventional <strong>specification</strong> <strong>of</strong> the <strong>safety</strong> requirement<br />

Only if the train has received the message “level-crossing-protected”, then it is permitted that the<br />

train drives on the level crossing.<br />

Safety requirement in norm language<br />

Only strictly after that point in time when train.received_message_level-crossing_<br />

protected is valid then it is permitted that train.train_drives_on_level-crossing is valid.<br />

Safety requirement in <strong>for</strong>mal language (CTL)<br />

A( (not train.received_message_level-crossing_protected) W<br />

(train.train_drives_on_level-crossing and<br />

not train.received_message_level-crossing_protected)))<br />

Fig. 1. Example <strong>of</strong> a <strong>safety</strong> pattern.<br />

For developers using the <strong>safety</strong> pattern<br />

concept it would be very hard to identify the<br />

suitable <strong>safety</strong> pattern only on basis <strong>of</strong> a<br />

document, in which the <strong>safety</strong> patterns are listed.<br />

To keep overview on the different kinds <strong>of</strong><br />

classification criteria and <strong>of</strong> the respective<br />

classes a tool support in <strong>for</strong>m <strong>of</strong> a dialog system<br />

is necessary. In this section the tool belonging to<br />

the <strong>safety</strong> pattern approach is explained. This<br />

s<strong>of</strong>tware tool also helps to determine, which<br />

criteria are relevant <strong>for</strong> the <strong>safety</strong> requirement to<br />

be specified. It also supports the user to make<br />

decisions in a meaningful sequential order. The<br />

tool name is SAPIS (Safety Pattern Instantiation<br />

System).<br />

By using different kinds <strong>of</strong> dialog modes the<br />

dialog system is adaptable <strong>for</strong> users with<br />

different background knowledge and experiences<br />

related to the <strong>safety</strong> pattern approach. In<br />

principle there are three possible modes <strong>of</strong> dialog<br />

guidance. The first dialog mode is suitable <strong>for</strong><br />

new users. The second one is the experienced<br />

user mode and the third dialog mode is the expert<br />

mode. The use <strong>of</strong> the third dialog mode is the<br />

less large-scale and the fastest one. But it can be<br />

used effectively <strong>by</strong> those users only who know<br />

the <strong>safety</strong> pattern classification very well. In the<br />

following the different modes are explained:<br />

1 st Strong guided dialog: In this dialog<br />

mode the dialog steps are determined <strong>by</strong> the tool<br />

SAPIS. The dialog takes place in <strong>for</strong>m <strong>of</strong> a<br />

question-answer-interaction. The dialog is<br />

strongly controlled <strong>by</strong> the dialog system because<br />

3 “pConf” describes the configuration, which is reached at the occurrence <strong>of</strong> the event p and “qConf” is the configuration, which is<br />

valid at the execution <strong>of</strong> the action q. Configurations describe unambiguously every possible system state and in this <strong>way</strong> they also<br />

represent certain events and actions.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!