07.01.2013 Views

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

186 Machiel van der Bijl and Fabien Peureux<br />

set: L ∗ . When we test the kick<strong>in</strong>g of the mach<strong>in</strong>e with ≤iot we get the follow<strong>in</strong>g<br />

result: out(i2 after kick) ={soup} �⊆ out(s after kick) =∅. This is the reason<br />

that with ≤iot we need a completely specified specification. Else we know up<br />

front that no implementation will conform to the specification. ioconf does not<br />

have this restriction, because it will only test behavior that is specified. S<strong>in</strong>ce<br />

kick /∈ traces(s), we will not test its behavior. Because all the other behavior of<br />

i2 is identical to i1 we have i2 ioconf s. In case one does not like this k<strong>in</strong>d of<br />

implementation freedom, the specification can be made complete and as a result<br />

the same test<strong>in</strong>g power as the ≤iot relation is obta<strong>in</strong>ed.<br />

q4<br />

s<br />

q1<br />

q2<br />

?button<br />

?button<br />

q3 ?button<br />

!coffee !tea<br />

q5<br />

?button ?button<br />

i1<br />

q1<br />

q2<br />

q3<br />

q4<br />

?button<br />

?button<br />

Fig. 7.6. Example of ioconf<br />

?kick<br />

?button !soup<br />

?button ?button<br />

!tea<br />

q5<br />

q6<br />

i2<br />

q1<br />

q2<br />

q3<br />

q4<br />

?button<br />

?button<br />

?button<br />

?button<br />

!tea<br />

Input-output refusal relation The next implementation relation, the <strong>in</strong>putoutput<br />

refusal relation, is the <strong>in</strong>put output version of the refusal preorder (Chapter<br />

5). What we saw with the ≤iot and ioconf implementation relations was that<br />

they both used traces that did not have δ’s <strong>in</strong> them (no <strong>in</strong>termediate quiescence).<br />

It was only possible to observe quiescence at the end of a trace. The <strong>in</strong>put-output<br />

refusal relation can do just that, it uses δ as an expected output <strong>in</strong> its set of<br />

traces to test with; so called repetitive quiescence. Quiescence can be seen as<br />

refusal to do an output action, hence the name of the implementation relation.<br />

We can see this as follows <strong>in</strong> the def<strong>in</strong>ition of the <strong>in</strong>put-output refusal relation<br />

≤ior. The set of traces over which we test is: L ∗ δ<br />

. Or, <strong>in</strong> other words, all possible<br />

comb<strong>in</strong>ations of actions from the label set with δ (quiescence). This means that<br />

it only makes sense to test with complete specifications as illustrated for ≤iot <strong>in</strong><br />

Figure 7.6. Aga<strong>in</strong> the correctness criterion is that an implementation does not<br />

show more behavior than is allowed by the specification.<br />

Def<strong>in</strong>ition 7.17 (Input output refusal). Let i ∈IOTS(I , U ), s ∈LTS(I , U )<br />

i ≤ior s =def ∀σ ∈ L ∗ δ<br />

: out(i after σ) ⊆ out(s after σ).<br />

We give an example of the ≤ior implementation relation together with ioco,<br />

because these two implementation relations are closely related.<br />

ioco relation The ioco test<strong>in</strong>g theory is named after its implementation relation<br />

ioco. The difference with the implementation relations that we have treated so

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

Saved successfully!

Ooh no, something went wrong!