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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

emoving a signal). In that case a specific pattern<br />

<strong>of</strong> the following kind is inserted:<br />

Formulation in norm language:<br />

α changes from valid to invalid<br />

Formulation in <strong>for</strong>mal language (CTL):<br />

α & AX not α<br />

In addition to this insertion, be<strong>for</strong>e all other<br />

variables in the <strong>for</strong>mal <strong>specification</strong> <strong>of</strong> the<br />

requirement an AX has to be placed. It is in<br />

process to support also this kind <strong>of</strong> instantiation<br />

<strong>by</strong> the tool SAPIS.<br />

For <strong>specification</strong> <strong>of</strong> complex <strong>safety</strong><br />

<strong>requirements</strong> several <strong>safety</strong> patterns have to be<br />

combined <strong>by</strong> and, or, xor or not connectives<br />

<strong>of</strong> Propositional logic. In other cases <strong>safety</strong><br />

patterns have to be inserted in other <strong>safety</strong><br />

patterns to specify complex <strong>safety</strong> <strong>requirements</strong>.<br />

E.g. a <strong>safety</strong> requirement <strong>of</strong> a train door control<br />

is:<br />

If the door block button is activated, the<br />

ending <strong>of</strong> the door blocking is only permitted<br />

when the signal v5 is not longer contacted.<br />

It is obvious that this <strong>safety</strong> requirement<br />

consists <strong>of</strong> two parts: A causal condition and a<br />

temporal condition. The causal condition <strong>for</strong> the<br />

whole <strong>safety</strong> requirement is: the door block<br />

button is activated. The temporal condition <strong>for</strong><br />

the ending <strong>of</strong> the door blocking is: the signal v5<br />

is not longer contacted. For that reason two<br />

<strong>safety</strong> patterns have to be identified in such a<br />

<strong>way</strong> like it is explained be<strong>for</strong>e, to specify this<br />

<strong>safety</strong> requirement.<br />

First selected <strong>safety</strong> pattern:<br />

Safety pattern in norm language:<br />

Al<strong>way</strong>s if a is valid, then b must also be valid.<br />

Alternative: Al<strong>way</strong>s if a is valid, then it must<br />

also be valid: b<br />

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

AG (a → b)<br />

Instantiation <strong>of</strong> this <strong>safety</strong> pattern <strong>for</strong> the relevant<br />

part <strong>of</strong> the <strong>safety</strong> requirement:<br />

Safety requirement in norm language:<br />

Al<strong>way</strong>s if door_blockbutton_activated<br />

is valid it must also be valid: b<br />

For b a second <strong>safety</strong> pattern has to be inserted.<br />

Second selected <strong>safety</strong> pattern:<br />

Safety pattern in norm language:<br />

a must be valid permanently until b is valid.<br />

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

A(a W (b and a))<br />

Instantiation <strong>of</strong> this <strong>safety</strong> pattern <strong>for</strong> the relevant<br />

part <strong>of</strong> the <strong>safety</strong> requirement:<br />

Safety requirement in norm language:<br />

door_blocked must be valid permanently<br />

until not signal_v5 is valid.<br />

Total result - <strong>specification</strong> <strong>of</strong> the complete <strong>safety</strong><br />

requirement:<br />

Safety requirement in norm language:<br />

Al<strong>way</strong>s if door_blockbutton_activated<br />

is valid then it must also be valid:<br />

door_blocked must be valid permanently<br />

until not signal_v5 is valid.<br />

Safety pattern <strong>for</strong>mulation in <strong>for</strong>mal<br />

language (CTL):<br />

AG (door_blockbutton_activated →<br />

A(door_blocked W (not signal_v5<br />

and door_blocked)))<br />

6. RELATED WORKS<br />

Bitsch & Göhner, 2002 and Bitsch, 2001 have<br />

already discussed works related to the <strong>safety</strong><br />

pattern concept. Moreover there is the pattern<br />

library <strong>for</strong> the Certifier <strong>of</strong> the tool Statemate <strong>of</strong><br />

I-Logix Inc. (I-Logix Inc. and OFFIS Systems<br />

and Consulting GmbH, 2002). A basic difference<br />

<strong>of</strong> their pattern system is that they expect the<br />

user to have knowledge and mastery <strong>of</strong> temporal<br />

logic application, which is not necessary in our<br />

approach. They only divide the patterns into four<br />

classes and give no further support to identify the<br />

correct pattern, neither <strong>by</strong> a detailed pattern<br />

classification nor <strong>by</strong> a tool. There are no patterns<br />

<strong>for</strong> <strong>specification</strong> in a terminology <strong>of</strong> natural<br />

language and only in some cases explanations in<br />

natural language are provided. A good idea is<br />

that they give an example <strong>of</strong> a state diagram <strong>for</strong><br />

every pattern, which meets the respective<br />

requirement. In some cases they give graphical<br />

explanations using timelines.<br />

A main difference to the <strong>safety</strong> patterns<br />

approach is, that they do not restrict the practical<br />

use <strong>of</strong> <strong>for</strong>mal verification to the context <strong>of</strong><br />

<strong>safety</strong>. For this reason their considered kinds <strong>of</strong><br />

<strong>specification</strong> patterns are not restricted to <strong>safety</strong><br />

<strong>requirements</strong>. If the interest <strong>of</strong> a user in <strong>for</strong>mal<br />

<strong>specification</strong> was only in the context to <strong>safety</strong>, it<br />

would be much easier to use a pattern system,<br />

which is restricted to the context to <strong>safety</strong>.<br />

Otherwise there are many patterns, which are not<br />

relevant to <strong>safety</strong> <strong>requirements</strong> in general.<br />

There<strong>for</strong>e it is easier to select the suitable pattern<br />

in a pattern system restricted to the context to<br />

<strong>safety</strong>. Furthermore the bigger the pattern system

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

Saved successfully!

Ooh no, something went wrong!