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

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

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

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

automata [LT89]. An automaton’s actions are classified as either ‘<strong>in</strong>put’, ‘output’<br />

or ‘<strong>in</strong>ternal’. Communication of an IOA with its environment is performed<br />

by synchronization of output actions of the environment with <strong>in</strong>put actions of<br />

the IOA and vice versa. Because locally controlled actions are performed autonomously,<br />

it requires that <strong>in</strong>put actions can never be blocked. Therefore an<br />

IOA is <strong>in</strong>put enabled (it can process all <strong>in</strong>puts <strong>in</strong> every state).<br />

Def<strong>in</strong>ition 7.3 (I/O automaton).<br />

An <strong>in</strong>put-output automaton p = 〈sig(p), states(p),start(p),steps(p),part(p)〉<br />

is a five-tuple, where<br />

• sig(p) is the action signature. Formally an action signature sig(p) isapartition<br />

of a set acts(p) of actions <strong>in</strong>to three disjo<strong>in</strong>t sets: <strong>in</strong>(p) <strong>in</strong>put actions,<br />

out(p) output actions and <strong>in</strong>t(p) <strong>in</strong>ternal actions.<br />

• states(p) is a countable, non-empty set of states.<br />

• start(p) ⊆ states(p) is a non-empty set of start states.<br />

• steps(p) ⊆ states(p) × acts(p) × states(p) is the transition relation with<br />

the property: ∀a ∈ <strong>in</strong>(A), q ∈ states(p) :q a<br />

−→ . This means that for every<br />

state q, there exists a state q ′ , such that for every <strong>in</strong>put action a, thereisa<br />

transition (q, a, q ′ ) ∈ steps(p) (<strong>in</strong>put enabledness).<br />

• part(p) is an equivalence relation that partitions the set local(p) =<strong>in</strong>t(p) ∪<br />

out(p) of locally controlled actions <strong>in</strong>to at most a countable number of equivalence<br />

classes.<br />

The signature partitions the set of actions <strong>in</strong>to <strong>in</strong>put, output and <strong>in</strong>ternal<br />

actions. The <strong>in</strong>put actions are actions from the environment, the output actions<br />

are actions to the environment and <strong>in</strong>ternal actions are actions that are not observable<br />

by the environment. The transition relation relates the actions to the<br />

states; by perform<strong>in</strong>g an action the automaton goes from one state to another.<br />

A possible problem with the <strong>in</strong>put-output automata model is that an automaton<br />

cannot give an output action, because it has to handle a never end<strong>in</strong>g stream<br />

of <strong>in</strong>put actions. S<strong>in</strong>ce it is <strong>in</strong>put-enabled it will synchronize on an <strong>in</strong>put from<br />

the environment. Lynch and Tuttle therefore <strong>in</strong>troduce the notion of fairness for<br />

IOA. In short this means that a locally controlled action cannot be blocked by<br />

<strong>in</strong>put actions forever. This is the reason that the set local(p) is <strong>in</strong>troduced. The<br />

partition<strong>in</strong>g part(p) of the locally controlled actions is used <strong>in</strong> the operationalization<br />

of fair test<strong>in</strong>g. We will treat fairness <strong>in</strong> more detail <strong>in</strong> Section 7.4.1. Note<br />

that the problem of fair test<strong>in</strong>g exists for all models that implement the notion<br />

of <strong>in</strong>put enabledness. IOA implement strong <strong>in</strong>put enabledness. This is formally<br />

def<strong>in</strong>ed by ∀a ∈ <strong>in</strong>(p), q ∈ states(p) :q a<br />

−→ . For weak <strong>in</strong>put enabl<strong>in</strong>g it is also<br />

allowed to perform a number of <strong>in</strong>ternal actions before the <strong>in</strong>put action can be<br />

performed: ∀a ∈ <strong>in</strong>(p), q ∈ states(p) :q a<br />

=⇒ .<br />

Example. In Figure 7.1 we show three transition systems: an IOA (left), an<br />

IOSM (middle) and an IOTS (right). We will discuss the IOSM and the IOTS<br />

later on, now we focus on the IOA. The IOA represents a coffee mach<strong>in</strong>e. We<br />

can push two buttons: button1 and button2. After push<strong>in</strong>g button1 the mach<strong>in</strong>e

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

Saved successfully!

Ooh no, something went wrong!