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 ...
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.