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.

A WAY FOR APPLICABLE FORMAL SPECIFICATION OF SAFETY<br />

REQUIREMENTS BY TOOL-SUPPORT<br />

Friedemann Bitsch<br />

Universität Stuttgart, Germany, Institute <strong>of</strong> Industrial Automation and S<strong>of</strong>tware Engineering (IAS),<br />

Adress: Pfaffenwaldring 47, D-70550 Stuttgart<br />

Phone: +49 (0)711 685-7292, Fax: +49 (0)711 685-7302, E-mail: bitsch@ias.uni-stuttgart.de<br />

Abstract: This paper is focused on a solution to solve difficulties <strong>of</strong> <strong>for</strong>mal <strong>specification</strong> <strong>of</strong> <strong>safety</strong><br />

<strong>requirements</strong> according to CENELEC standards. A faulty or ambiguous specified <strong>safety</strong> requirement<br />

may lead to the development <strong>of</strong> a rail<strong>way</strong> system, which contain hazards <strong>for</strong> men and environment.<br />

Formal <strong>specification</strong> languages had been developed <strong>for</strong> avoiding ambiguities. But experiences show that<br />

such <strong>for</strong>mal languages involve difficulties <strong>of</strong> correct application. These difficulties and hazards in<br />

consequence can be met with the application <strong>of</strong> patterns <strong>for</strong> <strong>for</strong>mal <strong>specification</strong> <strong>of</strong> <strong>safety</strong> <strong>requirements</strong>.<br />

Such patterns are called <strong>safety</strong> patterns, enabling the developer to specify correctly, precisely and easily<br />

interpretable <strong>safety</strong> <strong>requirements</strong> in an <strong>applicable</strong> <strong>way</strong>. This paper explains how the selection <strong>of</strong> the<br />

suitable <strong>safety</strong> patterns is supported <strong>by</strong> the s<strong>of</strong>tware tool SAPIS (Safety Pattern Instantiation System). A<br />

dialog-based user interface guides the developer to characterise the needed <strong>safety</strong> <strong>requirements</strong> and to<br />

<strong>for</strong>mulate them correctly.<br />

Keywords: <strong>safety</strong> <strong>requirements</strong>, <strong>for</strong>mal <strong>specification</strong>, precise <strong>for</strong>mulation, temporal logic, <strong>specification</strong><br />

patterns<br />

1. INTRODUCTION<br />

When developing safe rail<strong>way</strong> control systems<br />

issues <strong>of</strong> functional <strong>safety</strong> have to be specified in<br />

<strong>for</strong>m <strong>of</strong> <strong>safety</strong> <strong>requirements</strong>. If a <strong>safety</strong><br />

requirement is <strong>for</strong>mulated in an ambiguous <strong>way</strong><br />

or if it is misinterpreted <strong>by</strong> an engineer the<br />

consequences could be fatal in such a <strong>way</strong> that<br />

the system is not safe. For that reason the precise<br />

and correct <strong>specification</strong> <strong>of</strong> <strong>safety</strong> <strong>requirements</strong><br />

is a very important prerequisite to guarantee safe<br />

operation <strong>of</strong> such a system. Further benefit <strong>of</strong><br />

precise <strong>safety</strong> <strong>requirements</strong> <strong>specification</strong> is that it<br />

enables a precise check if an operational system<br />

or s<strong>of</strong>tware model actually meets these <strong>safety</strong><br />

<strong>requirements</strong>. An <strong>applicable</strong> verification method<br />

is model checking. It is a finite state verification<br />

method allowing to per<strong>for</strong>m automatically<br />

<strong>for</strong>mal checks <strong>of</strong> the operational model.<br />

Algorithms pass through the complete state space<br />

<strong>of</strong> the operational model <strong>of</strong> the s<strong>of</strong>tware and<br />

simultaneously the compliance <strong>of</strong> the specified<br />

<strong>requirements</strong> is checked. For that purpose the<br />

operational model has to be specified as a finite<br />

state transition system, while the <strong>requirements</strong><br />

are typically specified in temporal logic (Dwyer<br />

et al. 1999). It would be obvious to use <strong>for</strong>mal<br />

verification to check a model against an entire<br />

<strong>requirements</strong> <strong>specification</strong>. But from an<br />

economical point <strong>of</strong> view this would be too<br />

expensive, because <strong>for</strong>mal verification still<br />

requires too much man power. There<strong>for</strong>e the use<br />

<strong>of</strong> <strong>for</strong>mal verification is reasonable <strong>for</strong> <strong>safety</strong><br />

<strong>requirements</strong>, only.<br />

In prEN50129 finite state machines are<br />

described in the following <strong>way</strong>: “Many systems<br />

can be described in terms <strong>of</strong> their states, their<br />

inputs, and their actions. Thus when in a state S1,<br />

on receiving input I a system might carry out<br />

action A and move to state S2. By describing a<br />

system’s actions <strong>for</strong> every input in every state we<br />

can describe a system completely. The resulting<br />

model <strong>of</strong> the system is called a finite state<br />

machine. It is <strong>of</strong>ten drawn as a so-called state<br />

transition diagram showing how the system<br />

moves from one state to another [...].” Nowadays<br />

a widespread notation <strong>for</strong> state machines are the<br />

state transition diagrams <strong>of</strong> the Unified<br />

Modelling Language (compare Arabestani &<br />

Gayen, 2000). Preconditions are discussed and<br />

approaches are referenced in Bitsch, 2002 to


check the compliance <strong>of</strong> <strong>safety</strong> <strong>requirements</strong> in<br />

an UML system model <strong>by</strong> model checking.<br />

In prEN50129 temporal logic is<br />

characterised as suitable <strong>for</strong> direct expression <strong>of</strong><br />

<strong>safety</strong> <strong>requirements</strong> and as basis <strong>for</strong> <strong>for</strong>mal<br />

demonstration that the expressed properties are<br />

preserved in the different development steps.<br />

Gorski, 1986 is a basic contribution outlining the<br />

benefit <strong>of</strong> temporal logic <strong>for</strong> precise <strong>specification</strong><br />

<strong>of</strong> <strong>safety</strong> <strong>requirements</strong>.<br />

For those reasons in the CENELEC standard<br />

EN50128 and in the generic standard <strong>for</strong> <strong>safety</strong><br />

critical systems IEC61508 the use <strong>of</strong> <strong>for</strong>mal<br />

<strong>specification</strong> is recommended at least <strong>for</strong><br />

specifying the s<strong>of</strong>tware parts <strong>of</strong> a system in case<br />

<strong>of</strong> high <strong>safety</strong> critical systems. It is highly<br />

recommended <strong>for</strong> the highest Safety Integrity<br />

Level. From the point <strong>of</strong> view <strong>of</strong> the German<br />

supervising authority (Eisenbahnbundesamt)<br />

there is the objective <strong>of</strong> using <strong>for</strong>mal methods<br />

not only <strong>for</strong> the s<strong>of</strong>tware parts but also <strong>for</strong> the<br />

modelling <strong>of</strong> the system (see Kammel et al.<br />

2000).<br />

A reason <strong>for</strong> the insignificant dissemination<br />

<strong>of</strong> <strong>for</strong>mal <strong>specification</strong> <strong>of</strong> <strong>safety</strong> <strong>requirements</strong><br />

lies in the difficulty <strong>of</strong> using temporal logic. In<br />

Bitsch, 2001 papers are referenced, which<br />

confirm these difficulties. How can be<br />

guaranteed that the <strong>for</strong>mal <strong>specification</strong> <strong>of</strong> a<br />

<strong>safety</strong> requirement is correct and that temporal<br />

logic has been used correctly? How can be<br />

checked that a <strong>safety</strong> requirement specified in<br />

temporal logic is interpreted correctly?<br />

This paper is focused on the <strong>for</strong>mal<br />

<strong>specification</strong> <strong>of</strong> <strong>requirements</strong> in context to <strong>safety</strong>.<br />

In section 2 the difficulty <strong>of</strong> specifying <strong>safety</strong><br />

<strong>requirements</strong> <strong>by</strong> using temporal logic is<br />

discussed in some more detail. After these<br />

fundamentals, in section 3 the idea <strong>of</strong> the <strong>safety</strong><br />

pattern approach is explained to overcome the<br />

barriers <strong>of</strong> the difficulty <strong>of</strong> <strong>for</strong>mal <strong>safety</strong><br />

<strong>requirements</strong> <strong>specification</strong>. On that basis section<br />

4 points out, how the application <strong>of</strong> the <strong>safety</strong><br />

pattern approach can be supported <strong>by</strong> a s<strong>of</strong>tware<br />

tool in <strong>for</strong>m <strong>of</strong> a dialog system. In section 5 the<br />

application <strong>of</strong> the <strong>safety</strong> pattern approach is<br />

explained. Related works are discussed in section<br />

6 and finally the paper concludes <strong>by</strong> naming the<br />

most important results and with a discussion on<br />

future works.<br />

2. DIFFICULTY OF SPECIFYING SAFETY<br />

REQUIREMENTS FORMALLY<br />

Heitmeyer et al. 1998 reports from the case study<br />

<strong>of</strong> Dill et al. 1992 on model checking, where not<br />

only model failures are detected but also errors in<br />

the <strong>for</strong>mally stated <strong>requirements</strong> in temporal<br />

logic. Despite the automation <strong>of</strong> model checking,<br />

developers still have to be able to specify<br />

<strong>for</strong>mally the <strong>safety</strong> <strong>requirements</strong> in temporal<br />

logic (Dwyer et al. 1999). In IEC61508 temporal<br />

logic is described in the following <strong>way</strong>:<br />

“Temporal <strong>for</strong>mulas are interpreted on sequences<br />

<strong>of</strong> states (behaviours). What constitutes a ‘state’<br />

depends on the chosen level <strong>of</strong> description. It can<br />

refer to the whole system, a system component<br />

or the computer program.” For the understanding<br />

and the application <strong>of</strong> the approach <strong>of</strong> <strong>for</strong>mal<br />

<strong>safety</strong> <strong>requirements</strong> <strong>specification</strong> presented in<br />

this paper, it is not necessary to be able to use or<br />

to understand temporal logic. But <strong>for</strong> background<br />

knowledge and <strong>for</strong> checking the correctness <strong>of</strong><br />

the examples in this paper, in the following a<br />

short introduction into the most popular kind <strong>of</strong><br />

temporal logic, which is CTL (Computation Tree<br />

Logic), is given.<br />

CTL <strong>for</strong>mulas consist <strong>of</strong> particular<br />

propositions. Every proposition corresponds to<br />

variables in conditions, events, actions, states or<br />

configurations <strong>of</strong> the operational model. The<br />

propositions are related <strong>by</strong> standard connectives<br />

<strong>of</strong> propositional logic and CTL temporal<br />

connectives. Connectives <strong>of</strong> propositional logic 1<br />

are and, or, xor, not, →, ↔. Every<br />

CTL temporal connective is a pair <strong>of</strong> symbols.<br />

The first symbol is a path quantifier. When<br />

calculating the state space there are many<br />

execution paths starting at the current state. The<br />

symbol is one <strong>of</strong> A and E. A means “along All<br />

paths” and E means “along at least (there Exists)<br />

one path”. The second pair is one <strong>of</strong> temporal<br />

modalities, which describes the order <strong>of</strong><br />

propositions in time along an execution path.<br />

These are X, F, G, U or W, meaning “neXt state”,<br />

“some Future states”, “all future states<br />

1 Meaning <strong>of</strong> propositional logic connectives:<br />

p<br />

q<br />

p<br />

and<br />

q<br />

p<br />

or<br />

q<br />

p<br />

xor<br />

q<br />

p<br />

→<br />

q<br />

p<br />

↔<br />

q<br />

0 0 0 0 0 1 1<br />

0 1 0 1 1 1 0<br />

1 0 0 1 1 0 0<br />

1 1 1 1 0 1 1


(Globally)”, “Until” and “Weak until” 2 , (see<br />

Huth & Ryan, 2000 and Villa et al.).<br />

In the following the difficulty <strong>of</strong> <strong>safety</strong><br />

requirement <strong>specification</strong>s in CTL is shown <strong>by</strong><br />

means <strong>of</strong> an example. A <strong>safety</strong> requirement <strong>for</strong> a<br />

pneumatic train door control could be:<br />

The execution <strong>of</strong> the close function <strong>of</strong> valve v3 is<br />

permitted only after receiving the close<br />

command.<br />

(1) shows the <strong>for</strong>mal <strong>specification</strong> <strong>of</strong> this<br />

<strong>safety</strong> requirement. However, the problem is that<br />

(2) is also a possible <strong>for</strong>mal <strong>specification</strong>. It<br />

depends on the interpretation <strong>of</strong> the word “after”,<br />

which <strong>of</strong> these possible <strong>for</strong>mal <strong>for</strong>mulas is the<br />

right one.<br />

A(not close_function_valve_v3 W<br />

(receive_close_command and not<br />

close_function_valve_v3))<br />

A(not close_function_valve_v3 W<br />

(receive_close_command and not<br />

close_function_valve_v3)) and<br />

(AG (receive_close_command →<br />

(AX close_function_valve_v3 and<br />

AX AX AG not<br />

close_function_valve_v3)) xor<br />

AG not close_function_valve_v3)<br />

(1)<br />

(2)<br />

In (2) “after” has the meaning <strong>of</strong> “exactly<br />

after” in the sense <strong>of</strong> directly after or<br />

immediately after. In context to the example the<br />

meaning would be that until the close command<br />

is executed the execution <strong>of</strong> the close function is<br />

not permitted. In the chronological succession <strong>of</strong><br />

actions the valve close function is not true in that<br />

time when “receiving the close command”<br />

becomes valid. In case that the <strong>safety</strong><br />

requirement is related to a time triggered system<br />

the meaning is that the execution <strong>of</strong> the close<br />

function is only permitted in the state after the<br />

next time trigger. In case <strong>of</strong> an event triggered<br />

system then in between the temporal succession<br />

<strong>of</strong> the both actions it is not permitted that any<br />

other variable defined in the operational model<br />

(e.g. state, action or event variable) changes its<br />

value. In (1) “after” has the meaning <strong>of</strong> “strictly<br />

after”. In context to the example the meaning<br />

would be as in (2) that until the close command<br />

2<br />

In (p W q) with the temporal modality “Weak until” the<br />

proposition q does not have to be true in any state in<br />

difference to the <strong>for</strong>mula (p U q) with the ordinary “Until”.<br />

In particular, if q is never true, then p needs to hold <strong>for</strong> all<br />

states <strong>of</strong> that path.<br />

is executed the execution <strong>of</strong> the close function is<br />

not permitted but in difference to (2) it is<br />

permitted any time after.<br />

This example shows that such kind <strong>of</strong> <strong>for</strong>mal<br />

<strong>for</strong>mulas like (1) or (2) are difficult to read, to<br />

understand and to write correctly especially <strong>for</strong><br />

an engineer, who is not familiar with higher<br />

logic. It easily happens, that a <strong>for</strong>mula is<br />

specified, which states something different than<br />

it should.<br />

To handle these difficulties, in IEC61508<br />

and EN50128 it is necessarily required to specify<br />

in addition to <strong>for</strong>mal <strong>specification</strong> also in natural<br />

language <strong>for</strong> reasons <strong>of</strong> clear understandability.<br />

But this is not a sufficient solution. The problem<br />

is that natural language permits ambiguous<br />

<strong>for</strong>mulations. There<strong>for</strong>e a possible consequence<br />

could be a specified <strong>safety</strong> requirement, which is<br />

interpreted differently with respect to the original<br />

intention <strong>of</strong> the <strong>for</strong>mal <strong>specification</strong>. Moreover<br />

an equivalent <strong>specification</strong> <strong>of</strong> the original<br />

intention cannot be guaranteed. A solution to<br />

solve these problems <strong>of</strong> <strong>applicable</strong> precise<br />

<strong>specification</strong> and interpretation and <strong>of</strong><br />

<strong>specification</strong> in a natural language terminology<br />

equivalent to <strong>for</strong>mal <strong>specification</strong> is the <strong>safety</strong><br />

pattern approach. This approach is explained in<br />

detail in the next section.<br />

3. SAFETY PATTERNS – THE KEY TO<br />

FORMAL SPECIFICATION OF<br />

SAFETY REQUIREMENTS<br />

The core idea <strong>of</strong> the <strong>safety</strong> pattern approach is<br />

that the engineer applies pre-specified generic<br />

<strong>safety</strong> <strong>requirements</strong> <strong>for</strong> <strong>safety</strong> <strong>requirements</strong><br />

<strong>specification</strong> (see Bitsch, 2001 and Bitsch &<br />

Göhner, 2002). These patterns contain only those<br />

temporal logic expressions, which are suitable<br />

<strong>for</strong> the different kinds <strong>of</strong> <strong>safety</strong> <strong>requirements</strong>.<br />

Because these patterns are used <strong>for</strong> the<br />

<strong>specification</strong> <strong>of</strong> <strong>safety</strong> <strong>requirements</strong> they are<br />

called <strong>safety</strong> patterns. They are listed in a<br />

catalogue <strong>of</strong> <strong>safety</strong> patterns. This catalogue<br />

contains 305 different <strong>safety</strong> patterns. In a first<br />

step the developer identifies the suitable <strong>safety</strong><br />

pattern with the respective <strong>for</strong>mal <strong>for</strong>mula in this<br />

catalogue. The identification is supported <strong>by</strong> a<br />

structure <strong>of</strong> the <strong>safety</strong> patterns based on a<br />

semantic classification <strong>of</strong> different kinds <strong>of</strong><br />

<strong>safety</strong> <strong>requirements</strong>. Bitsch, 2001 and Bitsch &<br />

Göhner, 2002 explain the classification and the<br />

principle <strong>of</strong> deriving <strong>safety</strong> patterns. In a second<br />

step the developer has to adapt the identified


<strong>safety</strong> pattern to the respective <strong>safety</strong><br />

requirement in context to the operational model.<br />

The result is a <strong>for</strong>mally specified <strong>safety</strong><br />

requirement, which is an instance <strong>of</strong> a <strong>safety</strong><br />

pattern.<br />

In the catalogue every <strong>safety</strong> pattern is given<br />

in the <strong>for</strong>mal notations CTL (Computation Tree<br />

Logic), LTL (Linear Time Temporal Logic) and<br />

µ-Calculus. Furthermore the <strong>specification</strong> in<br />

Temporal OCL (an extension <strong>of</strong> the Object<br />

Constraint Language <strong>by</strong> temporal logic aspects,<br />

compare Flake & Mueller, 2001) is in process. In<br />

this <strong>way</strong> the developer is able to choose the<br />

<strong>for</strong>malism required <strong>for</strong> the model checker<br />

according to his preferences. For that reason the<br />

expressive power <strong>of</strong> different variants <strong>of</strong><br />

temporal logic is considered in the <strong>safety</strong><br />

patterns approach. Every <strong>safety</strong> pattern is<br />

explained in natural language, so that the<br />

meaning <strong>of</strong> the <strong>safety</strong> patterns is easily to<br />

understand.<br />

Like explained be<strong>for</strong>e, IEC61508 and<br />

EN50128 necessarily require <strong>for</strong> reasons <strong>of</strong> clear<br />

understandability that in case <strong>of</strong> <strong>for</strong>mal<br />

<strong>specification</strong> there should be also a <strong>for</strong>mulation<br />

in natural language. For that reason <strong>safety</strong><br />

patterns do not only support <strong>for</strong>mal <strong>specification</strong><br />

<strong>of</strong> <strong>safety</strong> <strong>requirements</strong> but also enable<br />

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

language equivalent to the <strong>for</strong>mal <strong>specification</strong>.<br />

Every <strong>safety</strong> pattern contains a <strong>specification</strong><br />

template in a restricted terminology <strong>of</strong> natural<br />

language. The meanings <strong>of</strong> the allowed<br />

constructs and words being used <strong>for</strong> description<br />

are fixed (see Bitsch & Göhner, 2002). That<br />

means that a norm language <strong>for</strong> <strong>safety</strong> patterns is<br />

used. A norm language sounds like a natural<br />

language, but it is a strongly reduced <strong>for</strong>m <strong>of</strong><br />

natural language. It is a connecting link between<br />

natural languages and <strong>for</strong>mal languages (Ortner,<br />

1997 and Schienmann, 1997). By the fixed<br />

assignment <strong>of</strong> a <strong>for</strong>mal <strong>for</strong>mulation and a<br />

<strong>for</strong>mulation in a restricted <strong>safety</strong> <strong>requirements</strong><br />

related terminology the equivalence <strong>of</strong> <strong>for</strong>mal<br />

<strong>specification</strong> and <strong>specification</strong> in words <strong>of</strong><br />

natural language is guaranteed. The demands <strong>of</strong><br />

the standards are fulfilled and simultaneously the<br />

weakness <strong>of</strong> the standards is solved. In this <strong>way</strong> a<br />

<strong>safety</strong> pattern can also be used to precisely<br />

<strong>for</strong>mulate a <strong>safety</strong> requirement in natural<br />

language. Especially in teamwork, clearly<br />

understandable and precisely <strong>for</strong>mulated<br />

<strong>specification</strong>s <strong>of</strong> <strong>safety</strong> <strong>requirements</strong> are a<br />

precondition <strong>for</strong> the development <strong>of</strong> safe<br />

automation systems. Besides in communication<br />

with approval authorities the meaning <strong>of</strong> <strong>for</strong>mal<br />

<strong>safety</strong> <strong>requirements</strong> based on such a <strong>safety</strong><br />

pattern catalogue is easy to understand. Figure 1<br />

shows an example <strong>of</strong> a <strong>safety</strong> pattern.<br />

It is also in process to enlarge the data in<br />

every <strong>safety</strong> pattern with graphical descriptions.<br />

The graphical description contains typical<br />

possible sequences <strong>of</strong> states and also different<br />

examples <strong>of</strong> possible computation paths (see<br />

Bitsch & Göhner, 2002).<br />

Bitsch, 2002 showed the role and the benefit<br />

<strong>of</strong> embedding the <strong>safety</strong> pattern approach in the<br />

process <strong>of</strong> developing system <strong>requirements</strong><br />

<strong>specification</strong>s <strong>for</strong> rail<strong>way</strong> systems. Also a<br />

process is explained how to specify <strong>safety</strong><br />

<strong>requirements</strong> in context <strong>of</strong> the operational model<br />

(see also Bitsch et al. 2000 and Moik, 2002) so<br />

that <strong>safety</strong> <strong>requirements</strong> are <strong>for</strong>mulated with<br />

variables and sizes <strong>of</strong> the operational model.<br />

We can note the following benefits <strong>of</strong> <strong>safety</strong><br />

patterns. Safety patterns support:<br />

• to specify correctly <strong>safety</strong> <strong>requirements</strong> in<br />

<strong>for</strong>mal languages.<br />

• to interpret correctly <strong>for</strong>mal <strong>specification</strong>s.<br />

• to specify <strong>safety</strong> <strong>requirements</strong> <strong>by</strong> using a<br />

restricted terminology <strong>of</strong> natural language<br />

corresponding to the <strong>for</strong>mal <strong>specification</strong>.<br />

• different tools <strong>for</strong> correctness checking.<br />

4. SAFETY PATTERN IDENTIFICATION<br />

The <strong>safety</strong> patterns are catalogued <strong>by</strong> means <strong>of</strong><br />

14 classification criteria. Every classification<br />

criterion is decisive <strong>for</strong> the classification <strong>of</strong> a<br />

<strong>safety</strong> pattern to one <strong>of</strong> two or more classes. E.g.<br />

one criterion is temporal restriction <strong>of</strong> validity.<br />

The decisive question is: What kind <strong>of</strong> temporal<br />

validity restriction <strong>of</strong> a property is to be set? The<br />

possible classes are duration <strong>of</strong> validity,<br />

beginning <strong>of</strong> validity or beginning and duration<br />

<strong>of</strong> validity (see Figure 2).<br />

A certain combination <strong>of</strong> classes <strong>of</strong> different<br />

classification criteria describes the different<br />

properties <strong>of</strong> a certain <strong>safety</strong> pattern. Based on<br />

this <strong>safety</strong> patterns classification scheme it is<br />

possible to identify the appropriate <strong>safety</strong> pattern<br />

<strong>for</strong> the <strong>safety</strong> requirement to be specified. Every<br />

classification criterion can be used to<br />

characterise a property <strong>of</strong> the <strong>safety</strong> requirement<br />

to be specified. In this <strong>way</strong> the properties <strong>of</strong> the<br />

searched <strong>safety</strong> pattern are identified and so the<br />

searched <strong>safety</strong> pattern itself is identified.


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.


the order <strong>of</strong> questions is fixed. At the beginning<br />

<strong>of</strong> the dialog the user is able to choose one <strong>of</strong><br />

several question orders. That <strong>way</strong> the user is able<br />

to check the result <strong>of</strong> a complete dialog <strong>by</strong><br />

comparing the identification <strong>of</strong> the suitable<br />

<strong>safety</strong> pattern using different question orders.<br />

2 nd Light guided dialog: In difference to the<br />

1 st dialog mode the user sees in one window all<br />

classification criteria with the classes belonging<br />

to them. That means he does not see the<br />

questions step-<strong>by</strong>-step but rather all criteria<br />

appear together in a <strong>for</strong>m he has to fill in.<br />

Reading <strong>of</strong> questions is not necessary <strong>for</strong><br />

experienced users but would be time consuming.<br />

There<strong>for</strong>e, only the criteria and the classes are<br />

displayed. The question <strong>of</strong> a certain criterion is<br />

only displayed on inquiry. First the dialog is<br />

controlled <strong>by</strong> a general order, which<br />

classification decisions should be made be<strong>for</strong>e<br />

which other ones. Second it is controlled through<br />

the knowledge about which <strong>safety</strong> pattern class<br />

excludes which other ones. Those classification<br />

criteria which have already been decided and<br />

those, which can not be decided yet are masked.<br />

3 rd Open dialog: In this dialog mode all<br />

possible question orders are considered. Like in<br />

the second dialog mode the user has to fill in a<br />

<strong>for</strong>m, in which all classification criteria with the<br />

possible classes are displayed in one window.<br />

The user is able to choose at any point in time<br />

any classification criterion he likes to answer.<br />

The dialog is controlled <strong>by</strong> SAPIS only in this<br />

<strong>way</strong> that the system has knowledge about which<br />

<strong>safety</strong> pattern classes are excluded <strong>by</strong> which<br />

other ones. In difference to dialog mode 2 it is<br />

possible that <strong>by</strong> one decision also other criteria<br />

might be implicitly decided, in case that the<br />

decision <strong>for</strong> one criterion requires that other<br />

criteria are decided be<strong>for</strong>e. For the userfriendliness<br />

<strong>of</strong> SAPIS, it is important in the 3 rd<br />

dialog mode that the user is able to identify the<br />

appropriate <strong>safety</strong> pattern via any possible order<br />

<strong>of</strong> classification criteria decisions. With the help<br />

<strong>of</strong> the tool Cernato (navicon GmbH, 2002) it can<br />

be checked if all these possibilities are<br />

implemented in SAPIS. It is based on the<br />

methods <strong>of</strong> the begrifflichen Wissensverarbeitung<br />

(conceptual knowledge work) <strong>of</strong> Wille<br />

et al. 2000. This tool enables a complete<br />

graphical overview and analysis <strong>of</strong> data<br />

dependencies, exceptions, mutuality, connections<br />

and differences.<br />

In all modes it is also possible to get further<br />

more detailed in<strong>for</strong>mation <strong>for</strong> every criterion and<br />

its classes if the <strong>for</strong>mulation <strong>of</strong> a question is not<br />

sufficient <strong>for</strong> the user to decide <strong>for</strong> a class.<br />

SAPIS is usable via Internet and is available at<br />

the location which can be found in the reference<br />

at Bitsch & Lovasi, 2002. The GUI runs in a web<br />

browser on a client computer. The application<br />

logic is located on a web server. This computer<br />

or a third one is used as database server <strong>for</strong> the<br />

<strong>safety</strong> pattern data. The following section<br />

explains <strong>by</strong> means <strong>of</strong> an example <strong>of</strong> use how<br />

SAPIS supports the precise and correct<br />

<strong>specification</strong> <strong>of</strong> <strong>safety</strong> <strong>requirements</strong>.<br />

class duration <strong>of</strong> validity: validity <strong>of</strong> a<br />

proposition only until a certain point in time;<br />

[0,T]:<br />

proposition<br />

validity<br />

1<br />

0<br />

T<br />

t<br />

class beginning <strong>of</strong> validity: validity <strong>of</strong> a<br />

proposition from a certain point in time on;<br />

[T,∞):<br />

proposition<br />

validity 1<br />

0<br />

T<br />

t<br />

class beginning & duration <strong>of</strong> validity: validity<br />

<strong>of</strong> a proposition between two points in time;<br />

[T 1 ,T 2 ]:<br />

proposition<br />

validity 1<br />

0<br />

T 1 T t<br />

2<br />

Fig. 2. Illustration <strong>of</strong> the classes <strong>of</strong> the<br />

classification criterion temporal restriction <strong>of</strong><br />

validity.<br />

5. APPLICATION OF THE SAFETY<br />

PATTERN APPROACH BY<br />

USING THE TOOL SAPIS<br />

The application <strong>of</strong> SAPIS will be demonstrated<br />

<strong>by</strong> a brief example. For the <strong>safety</strong> requirement <strong>of</strong><br />

a one-<strong>way</strong> level crossing in radio based operation<br />

there is the <strong>safety</strong> requirement:<br />

If the train does receive the message<br />

“level_crossing_not_protected“, then the train<br />

has to stop be<strong>for</strong>e the level crossing.<br />

To detect the suitable <strong>for</strong>mal <strong>specification</strong> in<br />

CTL first the <strong>safety</strong> requirement has to be<br />

assigned to the correct classes <strong>of</strong> the different<br />

criteria with the help <strong>of</strong> SAPIS. We choose the


mode “strong guided dialog“ so that the order <strong>of</strong><br />

the question is given. In the following the<br />

relevant classification criteria , which have to be<br />

decided are listed (a) with the questions<br />

belonging to them (b). Then the decision <strong>for</strong> the<br />

correct class the <strong>safety</strong> requirement belongs to is<br />

explained (c):<br />

1. a. Existence <strong>of</strong> a temporal logic<br />

aspect in the <strong>safety</strong> requirement.<br />

b. Does the <strong>safety</strong> requirement contain any<br />

temporal logic aspect?<br />

c. Yes, the possible message reception<br />

and the stop <strong>of</strong> the train be<strong>for</strong>e the<br />

level crossing are in a temporal<br />

relation. There<strong>for</strong>e the class dynamic<br />

<strong>safety</strong> requirement has to be selected.<br />

2. a. Type <strong>of</strong> time <strong>specification</strong>.<br />

b. Does the <strong>safety</strong> requirement contain<br />

any explicit time <strong>specification</strong>?<br />

c. No, there is no temporal statement in<br />

dependence on a system clock. For that<br />

reason it is a <strong>safety</strong> requirement with<br />

implicit time <strong>specification</strong> only.<br />

3. a. Existence <strong>of</strong> temporal dependencies<br />

between propositions.<br />

b. Does the <strong>safety</strong> requirement contain<br />

any temporal dependencies between<br />

propositions or does it require a<br />

reachability or an assurance <strong>of</strong><br />

reaching without temporal conditions?<br />

c. There exists a temporal dependency<br />

between ...<br />

• if the train receives the message<br />

“level_crossing_not_protected“ and<br />

• that the train stops be<strong>for</strong>e the level<br />

crossing.<br />

There<strong>for</strong>e, the <strong>safety</strong> requirement belongs<br />

to the class <strong>safety</strong> <strong>requirements</strong> with<br />

temporal dependencies between<br />

propositions.<br />

4. a. Temporal restriction <strong>of</strong> validity.<br />

b. What kind <strong>of</strong> temporal validity restriction<br />

<strong>of</strong> a property is to be set?<br />

c. It is stated at which point in time the train<br />

has to be stopped. So the correct class is<br />

beginning <strong>of</strong> validity.<br />

5. a. Frequency <strong>of</strong> validity in validity<br />

interval.<br />

b. What is the frequency <strong>of</strong> the predicate<br />

validity in the validity interval?<br />

c. There is no <strong>safety</strong> related necessary<br />

restriction with respect to the frequency<br />

but the train must stop at least one time<br />

if the train receives the negative message.<br />

There<strong>for</strong>e the right class is validity at<br />

least n times (with n=1).<br />

6. a. Modality <strong>of</strong> demand.<br />

b. What is the modality <strong>of</strong> demand?<br />

c. The <strong>safety</strong> requirement does not state a<br />

permitted or <strong>for</strong>bidden behaviour but a<br />

necessary one. That is why the class is<br />

necessity.<br />

7. a. Type <strong>of</strong> beginning <strong>of</strong> validity.<br />

b. When exactly should the validity <strong>of</strong> the<br />

demanded property begin?<br />

c. The stopping <strong>of</strong> the train may be started<br />

from that point in time on when the train<br />

receives the message. There<strong>for</strong>e, the<br />

<strong>safety</strong> requirement has to be assigned to<br />

the class validity from a certain point in<br />

time on.<br />

Based on this classification the following<br />

<strong>safety</strong> pattern with the appropriate explanation is<br />

identified:<br />

Safety pattern in norm language:<br />

b must be valid at least once together with or<br />

anytime after a is valid.<br />

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

AG (a → AF b)<br />

Specification <strong>of</strong> the <strong>safety</strong> requirement in<br />

norm language:<br />

(train.current_velocity=0 and<br />

train.current_position < levelcrossing.position_beginning)<br />

must be<br />

valid at least once together with or anytime after<br />

train.message_level_crossing_not_<br />

protected is valid.<br />

Specification <strong>of</strong> the <strong>safety</strong> requirement in<br />

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

AG (train.message_level_crossing_not_<br />

protected → AF (train.current_<br />

velocity=0 and train.current_position<br />

< level-crossing.position_beginning))<br />

The example shows clearly that the variables<br />

<strong>of</strong> a <strong>safety</strong> pattern predicates can be substituted<br />

<strong>by</strong> state, event, action, condition or configuration<br />

variables <strong>of</strong> the corresponding operational<br />

model, which has to fulfil the <strong>safety</strong> requirement.<br />

Furthermore predicates with boolean meaning<br />

can be inserted like comparisons with >,


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


is, the more it is difficult to control ambiguities<br />

<strong>of</strong> natural language terminology.<br />

A closer approach is <strong>of</strong> Heiner et al. 2001<br />

and Mertke et al. 2001. They do not use the term<br />

“pattern” but implicitly there are patterns which<br />

are designated as “requirement sentences” with<br />

corresponding “<strong>for</strong>mal <strong>for</strong>mulas”. A basic<br />

difference <strong>of</strong> their approach is that they focus on<br />

SFC controls (Sequential Function Charts)<br />

whereas the <strong>safety</strong> pattern approach is usable <strong>for</strong><br />

any kind <strong>of</strong> system or s<strong>of</strong>tware model notation.<br />

Second their core idea <strong>of</strong> applying the patterns is,<br />

that the user has to specify <strong>requirements</strong> <strong>by</strong> using<br />

defined sentence structures in natural language.<br />

Their <strong>requirements</strong> specific technical language is<br />

not oriented on the theoretical works <strong>of</strong> Ortner,<br />

1997 and Schienmann, 1997. Their pattern<br />

system only contains 18 patterns, which are<br />

classified <strong>by</strong> two categories <strong>of</strong> requirement<br />

contents. The <strong>safety</strong> pattern concept attaches<br />

much more importance to the identification <strong>of</strong><br />

the properties <strong>of</strong> the <strong>safety</strong> requirement to be<br />

specified. A similar approach and tool is not<br />

known <strong>for</strong> requirement’s properties selection.<br />

The approaches <strong>of</strong> Heiner et al. 2001,<br />

Mertke et al. 2001 and I-Logix Inc. and OFFIS<br />

Systems and Consulting GmbH, 2002 contain<br />

significantly less patterns. That means first <strong>of</strong> all<br />

that their approaches contain a bigger challenge<br />

to the abilities <strong>of</strong> the user. The user needs more<br />

control <strong>for</strong> composition and instantiation <strong>of</strong><br />

patterns. Second the <strong>safety</strong> pattern approach<br />

enables the <strong>specification</strong> <strong>of</strong> those <strong>requirements</strong>,<br />

which cannot be specified with the help <strong>of</strong> the<br />

other approaches. The reason is that their<br />

objectives are not to give a complete pattern<br />

system <strong>for</strong> <strong>safety</strong> <strong>requirements</strong> <strong>specification</strong>.<br />

Third the <strong>safety</strong> pattern concept supports the<br />

<strong>specification</strong> <strong>of</strong> <strong>safety</strong> <strong>requirements</strong> not<br />

containing temporal logic specific <strong>specification</strong><br />

problems only. One kind <strong>of</strong> these <strong>specification</strong><br />

problems is well described in prEN50129 and<br />

IEC61508: “Quantified time intervals and<br />

constraints are not handled explicitly in temporal<br />

logic. Absolute timing has to be handled <strong>by</strong><br />

creating additional time states as part <strong>of</strong> the state<br />

description.” So it is possible to specify some<br />

problems in temporal logic but it is not explicitly<br />

treated in the temporal logic languages. Such<br />

kinds <strong>of</strong> problems are also supported <strong>by</strong> the<br />

<strong>safety</strong> pattern approach in contrast to any other<br />

known approach. With the help <strong>of</strong> other<br />

approaches it is possible to specify those<br />

<strong>requirements</strong>, too, but it is more difficult <strong>for</strong> the<br />

user because he gets no support <strong>by</strong> special<br />

patterns like in the <strong>safety</strong> pattern approach.<br />

During the development <strong>of</strong> the <strong>safety</strong> pattern<br />

classification <strong>of</strong> our approach we set value on<br />

practical relevance <strong>of</strong> the <strong>safety</strong> patterns <strong>for</strong> any<br />

kind <strong>of</strong> industrial automation system. A result is<br />

e.g. that we consider <strong>requirements</strong> with explicit<br />

time, the frequency <strong>of</strong> validity in a time interval<br />

or <strong>safety</strong> <strong>requirements</strong> <strong>for</strong> time triggered systems<br />

in own classes. Another example is that we<br />

distinguish the exact succession <strong>of</strong> propositions<br />

in detail, such that there may be an overlap<br />

between the validity <strong>of</strong> the successor and the<br />

predecessor. This is e.g. important <strong>for</strong> bus<br />

systems. E.g. these cases are not considered in<br />

any other known approach. So we can take the<br />

note that in several respects the user has more<br />

responsibility and more risk in other approaches.<br />

Besides the extensive in<strong>for</strong>mation listing <strong>for</strong><br />

every <strong>safety</strong> pattern in the <strong>safety</strong> pattern<br />

approach is missing in the other approaches (e.g.<br />

natural language and partly graphical<br />

explanations). Finally only in the <strong>safety</strong> pattern<br />

approach patterns are specified in several <strong>for</strong>mal<br />

languages. In any case the agreement <strong>of</strong> both<br />

related approaches with the <strong>safety</strong> pattern<br />

approach is the conviction <strong>of</strong> the benefit <strong>of</strong><br />

<strong>for</strong>mal requirement <strong>specification</strong> patterns.<br />

7. SUMMARY AND OUTLOOK<br />

It has been shown how with the help <strong>of</strong> <strong>safety</strong><br />

patterns and the dialog system SAPIS the<br />

recommendations and demands <strong>of</strong> the standards<br />

IEC61508 and EN50128 <strong>for</strong> <strong>safety</strong> <strong>requirements</strong><br />

<strong>specification</strong> can be met. The <strong>for</strong>mal<br />

<strong>specification</strong> <strong>of</strong> <strong>safety</strong> <strong>requirements</strong> and the<br />

corresponding <strong>specification</strong> in a terminology <strong>of</strong><br />

natural language are supported. The explained<br />

approach also removes weaknesses <strong>of</strong> the<br />

standards in this <strong>way</strong> that the correct use <strong>of</strong><br />

<strong>for</strong>mal languages is supported <strong>for</strong> <strong>safety</strong><br />

<strong>requirements</strong> <strong>specification</strong>. Also the avoidance <strong>of</strong><br />

ambiguities is supported when using natural<br />

language <strong>specification</strong>s <strong>for</strong> describing the <strong>for</strong>mal<br />

<strong>specification</strong>s. This is achieved <strong>by</strong> using <strong>safety</strong><br />

patterns <strong>for</strong>mulated in the <strong>safety</strong> pattern norm<br />

language. So the equivalence between both<br />

<strong>specification</strong>s is guaranteed. The <strong>safety</strong> pattern<br />

catalogue also helps to interpret correctly a<br />

specified <strong>safety</strong> requirement in such a <strong>way</strong> that<br />

the <strong>specification</strong> meaning can be looked up in the<br />

<strong>safety</strong> pattern catalogue. In Figure 3 the principle<br />

<strong>of</strong> the approach is shown.


With the tool SAPIS the <strong>safety</strong> pattern<br />

concept moves from theory into practice. A web<br />

application is available (see Bitsch & Lovasi,<br />

2002) <strong>for</strong> identification <strong>of</strong> the appropriate <strong>safety</strong><br />

patterns <strong>for</strong> the <strong>safety</strong> <strong>requirements</strong> to be<br />

specified.<br />

We are still collecting more practical<br />

experience <strong>for</strong> the <strong>safety</strong> pattern concept with the<br />

help <strong>of</strong> case studies, especially <strong>by</strong> developing<br />

system models related to the rail<strong>way</strong> control<br />

area. It is planed to extend the tool SAPIS <strong>by</strong><br />

support functions <strong>for</strong> the application <strong>of</strong> the<br />

selected <strong>safety</strong> patterns <strong>for</strong> <strong>safety</strong> <strong>requirements</strong><br />

<strong>specification</strong>. The <strong>safety</strong> pattern norm language<br />

is still under development. The reference <strong>of</strong> the<br />

terms <strong>of</strong> the norm language is to be supported <strong>by</strong><br />

hyperlink technology. Also a graphical notation<br />

in speciality <strong>for</strong> <strong>safety</strong> pattern <strong>specification</strong> is<br />

currently being developed. So far graphical<br />

representations are only used <strong>for</strong> explanations <strong>of</strong><br />

examples, which fulfil the requirement <strong>of</strong> the<br />

respective <strong>safety</strong> pattern.<br />

conventional <strong>safety</strong> requirment <strong>specification</strong><br />

<strong>safety</strong> pattern<br />

dialogue system<br />

<strong>safety</strong> pattern<br />

identification catalogue<br />

<strong>of</strong> the suitable<br />

<strong>safety</strong> pattern<br />

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

• in <strong>for</strong>mal language<br />

• in norm language<br />

• <strong>for</strong>mal language<br />

• norm language<br />

• graphical explanations<br />

• explanation in natural language<br />

• example <strong>of</strong> use<br />

Fig. 3. Principle <strong>of</strong> the <strong>safety</strong> pattern approach.<br />

Furthermore an XML-based language is<br />

under development. Such an XML-based<br />

language will be the basis to generate the<br />

<strong>specification</strong> <strong>of</strong> the <strong>safety</strong> patterns in different<br />

<strong>for</strong>mal languages. In such a <strong>way</strong> it is not<br />

necessary to specify manually every <strong>safety</strong><br />

pattern in several <strong>for</strong>mal <strong>specification</strong> languages.<br />

Besides, an XML-based <strong>safety</strong> pattern language<br />

is also a suitable s<strong>of</strong>tware technology basis to<br />

explain the <strong>safety</strong> patterns <strong>by</strong> graphical<br />

illustrations or <strong>by</strong> simulations. A further benefit<br />

is that using XML a <strong>specification</strong> language could<br />

be developed, which is easily useable and<br />

interpretable and which is oriented according to<br />

the <strong>safety</strong> pattern classification. Such a language<br />

would not be as universal as temporal logic<br />

languages but fit the characteristics <strong>of</strong> <strong>safety</strong><br />

pattern properties.<br />

ACKNOWLEDGEMENT<br />

This work was sponsored <strong>by</strong> the German<br />

Research Council (DFG) within the scope <strong>of</strong> the<br />

focus area program (1064) on the “Integration <strong>of</strong><br />

Specification Techniques with Applications in<br />

Engineering” which is gratefully acknowledged.<br />

REFERENCES<br />

Arabestani, S. and J.-T. Gayen (2000).<br />

Objektorientierte Analyse zur Modellierung im<br />

Eisenbahnwesen. Signal & Draht<br />

92(2000)1+2, S. 20-27.<br />

Bitsch, F., E. Canver and A. Moik (2000).<br />

Strukturierte Erstellung von Sicherheitsspezifikationen<br />

in UML mit Hilfe der FMEA-<br />

Methode. In: FORMS '99 - Formale Techniken<br />

für die Eisenbahnsicherung (E. Schnieder,<br />

Ed.), Fortschritt-Berichte VDI, Reihe 12,<br />

Nr.436, VDI Verlag GmbH, Düsseldorf, S.<br />

225-245.<br />

Bitsch, F. and C. Lovasi (2002). Safety Pattern<br />

Instantiation System - SAPIS. http://<br />

www.ias.uni-stuttgart.de/<strong>safety</strong>_patterns/.<br />

Bitsch, F. (2002). Process Model <strong>for</strong> the<br />

Development <strong>of</strong> System Requirements<br />

Specifications <strong>for</strong> Rail<strong>way</strong> Systems. In:<br />

Workshop on S<strong>of</strong>tware <strong>specification</strong> <strong>of</strong> <strong>safety</strong><br />

relevant transportation control tasks (E.<br />

Schnieder, Ed.), Fortschritt-Berichte VDI, VDI<br />

Verlag GmbH, Düsseldorf.<br />

Bitsch, F. (2001). Safety Patterns - The Key to<br />

Formal Specification <strong>of</strong> Safety Requirements.<br />

In: Proceedings <strong>of</strong> 20th International<br />

Conference SAFECOMP 2001 - Computer


Safety Reliability and Security (U. Voges, Ed.),<br />

Berlin, Heidelberg: Springer-Verlag, LNCS<br />

2187, S. 176-189.<br />

Bitsch, F. and P. Göhner (2002). Spezifikation<br />

von Sicherheitsan<strong>for</strong>derungen mit Safety-<br />

Patterns. S<strong>of</strong>tware Engineering in der<br />

industriellen Praxis, VDI-Bericht-Nr. 1666,<br />

Düsseldorf, S. 29-40.<br />

Heitmeyer, C. and J. Kir<strong>by</strong>, Jr., B. Labaw, M.<br />

Archer and R. Bharadwaj (1998). Using<br />

Abstraction and Model Checking to Detect<br />

Safety Violations in Requirements Specifications.<br />

IEEE Transactions on s<strong>of</strong>tware<br />

engineering, vol. 24, no. 11, pp. 927-948,<br />

November 1998.<br />

Dill, D.L. and A.J. Drexler, A.J. Hu, and C.H.<br />

Yang (1992). Protocol Verification as a<br />

Hardware Design Aid. Proc. IEEE Int’l Conf.<br />

Computer Design: VLSI in Computers and<br />

Processors, pp. 522–525.<br />

Dwyer, M.B. et al. (1999). Patterns in Property<br />

Specification <strong>for</strong> Finite-state Verification. In<br />

Proceedings <strong>of</strong> the 21st International<br />

Conference on S<strong>of</strong>tware Engineering.<br />

Flake, S. and W. Mueller (2001). An OCL<br />

Extension <strong>for</strong> Real-Time Constraints. In:<br />

Advances in Object Modelling with the OCL<br />

(T. Clark and J. Warmer, Eds.). Heidelberg:<br />

Springer-Verlag.<br />

Gorski, J. (1986): Design <strong>for</strong> Safety Using<br />

Temporal Logic. In: Proceedings <strong>of</strong> Safecomp<br />

’86 (W.J. Quirk, Ed.), pergamon press,<br />

Ox<strong>for</strong>d.<br />

Huth, M. and M. Ryan (2000). Logic in<br />

Computer Science – Modelling and reasoning<br />

about systems. Cambridge: Cambridge<br />

University press.<br />

Kammel, K., K. Lennartz and K.-H. Suwe<br />

(2000). Die Anwendung von <strong>for</strong>malen<br />

Techniken aus Sicht des Eisenbahn-<br />

Bundesamtes. In: FORMS '99 - Formale<br />

Techniken für die Eisenbahnsicherung (E.<br />

Schnieder, Ed.), Fortschritt-Berichte VDI,<br />

Reihe 12, Nr.436, VDI Verlag GmbH,<br />

Düsseldorf, S. 55-69.<br />

CENELEC EN 50128 (2001). Rail<strong>way</strong><br />

Applications - Communications, signaling and<br />

processing systems - S<strong>of</strong>tware <strong>for</strong> rail<strong>way</strong><br />

control and protection systems.<br />

CENELEC prEN 50129 (2000). Rail<strong>way</strong><br />

Applications - Safety related electronic<br />

systems <strong>for</strong> signaling.<br />

Heiner, M., Th. Mertke and P. Deussen (2001).<br />

A Safety-oriented Technical Language <strong>for</strong> the<br />

Requirement Specification in Control<br />

Engineering. Computer Science Reports 09/01,<br />

Brandenburg University <strong>of</strong> Technology at<br />

Cottbus, May 2001.<br />

International Standard IEC 61508 (2000).<br />

Functional Safety <strong>of</strong> Electrical/Electronic/<br />

Programmable Electronic Safety Related<br />

Systems. International Electrotechnical<br />

Commission, Geneva, Switzerland.<br />

Mertke, Th., P. Deussen and M. Heiner (2001):<br />

Eine anwenderorientierte Sicherheitsfachsprache<br />

zur Verifikation von Steuerungsprogrammen.<br />

In: Engineering komplexer Automatisierungssysteme<br />

(EKA) (E. Schnieder,<br />

Ed.), S. 297-309.<br />

Moik, A. (2002). Ingenieurgerechte <strong>for</strong>male<br />

Methoden für die Entwicklung von sicheren<br />

Automatisierungssystemen. Dissertation, IAS,<br />

Universität Stuttgart.<br />

navicon GmbH (2002). Produktbroschüre<br />

“Navican Decision Suite”. Frankfurt.<br />

Ortner, E. (1997). Methodenneutraler Fachentwurf<br />

- Zu den Grundlagen einer anwendungsorientierten<br />

In<strong>for</strong>matik. Stuttgart, Leipzig: B.<br />

G. Teubner Verlagsgesellschaft, 1997.<br />

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

GmbH (2002). Statemate Magnum – Certifier<br />

– Pattern Library – User Guide. Andover.<br />

Schienmann, E. (1997). Objektorientierter<br />

Fachentwurf. Stuttgart, Leipzig: B. G. Teubner<br />

Verlagsgesellschaft.<br />

Villa, T., G. Swamy and T. Shiple. VIS User’s<br />

Manual. The VIS Group, University <strong>of</strong><br />

Cali<strong>for</strong>nia, Berkeley.<br />

Wille, R. (2000). Begriffliche Wissensverarbeitung:<br />

Theorie und Praxis. In<strong>for</strong>matik<br />

Spektrum, Organ der GI, Band 23, Heft 6, S.<br />

357-369, Dezember 2000.

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

Saved successfully!

Ooh no, something went wrong!