09.08.2013 Views

A Refinement Checking Technique for Contract-Based Architecture ...

A Refinement Checking Technique for Contract-Based Architecture ...

A Refinement Checking Technique for Contract-Based Architecture ...

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.

MoDELS 2011 ACES-MB Workshop Proceedings<br />

enters a bad state. Then we derive an automaton TA out of A which serves as<br />

a trigger <strong>for</strong> O. The transitions of TA are annotated with sending events and<br />

timing constraints, such that TA produces all traces that are element of A.<br />

At least we need the automaton Gl realizing the mapping function α which<br />

receives events from TA and translates corresponding events to the observer.<br />

This automaton is assumed to be given by the system architect.<br />

From all automata we build the automaton network TA Gl O. If the<br />

trigger automaton now produces a sequence which is not element of A ′ — and<br />

there<strong>for</strong>e the subset inclusion property will be violated — the corresponding<br />

observer will enter a bad state. So we need to check TA Gl O against the<br />

following Uppaal query: A not O.bad.<br />

<strong>Checking</strong> Set Inclusion of <strong>Contract</strong>s The second part consists of checking<br />

α([[C ′ ]]) ⊆ [[C]]. This is done by deriving an automaton network TC ′ out of C′ or<br />

more precisely one automaton <strong>for</strong> the assumption part and one <strong>for</strong> the guarantee<br />

part. Both automata serve as trigger <strong>for</strong> the observer network derived out of C.<br />

Analogously to the first part it holds that whenever one of the trigger automata<br />

does a step which is not defined in the contract of the abstract component, the<br />

corresponding observer will enter a bad state.<br />

Fig. 1. Automaton network <strong>for</strong> Observer: OG is the automaton <strong>for</strong> the guarantee, OA<br />

<strong>for</strong> the assumption and OC <strong>for</strong> the overall state of the contract.<br />

The observer consists of three automata: one automaton <strong>for</strong> each assumption<br />

and guarantee and a third automaton tracing the state of the overall contract.<br />

This is illustrated in Figure 1: The observer obtained from the guarantee (OG)<br />

and the assumption (OA) send an event to the automaton OC when entering their<br />

bad state. The automaton OC states whether the contract is fulfilled. According<br />

to Equation 1 this is the case when either both the assumption and guarantee<br />

are fulfilled or the assumption does not hold. If the assumption does not hold,<br />

OA sends an event O A toBad such that OC directly switches to state good. Ifthe<br />

guarantee was not fulfilled previously, then OC switches to its good state in the<br />

case that the assumption is finally violated.<br />

The automaton network TC ′ OG OA OC is again checked against the<br />

Uppaal query: A not OC.bad. IfOC enters its bad state as the corresponding<br />

guarantee is not fulfilled, we need to check whether finally its assumption automaton<br />

also enters its bad state, such that OC switches to its state good. This<br />

is realized by checking the query OC.bad OC.good. The arrow is the leads-to<br />

Wellington, New Zealand, October 18, 2011 60

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

Saved successfully!

Ooh no, something went wrong!