<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Toulouse, France, September</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>V T S-based Specification and Verification of ⋆ Behavioral Properties of AADL Models</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>D. Monteverde</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Olivero</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S. Yovine</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>V. Braberman</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Inst. de Tecnolog´ıa</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Argentina.</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>damonteverde</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>aolivero}@uade.edu.ar</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>VERIMAG-CNRS</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>France. Sergio.Yovine@imag.fr</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Departamento de Computaci ́on</institution>
          ,
          <addr-line>FCEyN, UBA</addr-line>
          ,
          <country country="AR">Argentina</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2008</year>
      </pub-date>
      <volume>29</volume>
      <issue>2008</issue>
      <fpage>23</fpage>
      <lpage>37</lpage>
      <abstract>
        <p>AADL is an aerospace standard for model-driven design of complex real-time embedded systems. Currently, behavioral properties of AADL models can be specified inside the system description using AADL concepts or outside it using external textual languages, and verified using schedulability analysis or (Time Petri Net-based) model-checking tools. This paper (1) proposes Visual Timed Scenarios (V T S) as a graphical property specification language for AADL, and (2) devises an effective translation from V T S to Time Petri Nets (TPN) which enables modelchecking properties expressed in V T S over AADL models using TPNbased tools integrated into AADL-compliant IDEs (e.g., TOPCASED).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        paper we adopt Visual Timed Scenarios (V T S) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] as a language for specifying
behavioral properties of models of systems described in AADL. In order to make
possible the verification of these properties using available tools integrated into
AADL-complaint IDEs, we devise a translation from V T S to Time Petri Nets.
This allows to use existing model checking tools for verifying if operational
descriptions encompassed by AADL model satisfy the translated property. Fig. 1
exhibits the integration of the AADL models with V T S scenarios in a tool chain.
The part concerning V T S (enclosed in gray) will be explained in detail along
this work.
      </p>
      <p>AADL Model
Expected
Property of
AADL Model</p>
      <p>
        Ocarina
(no flows)
VTS CS [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
      </p>
      <p>
        VTS ES [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
      </p>
      <p>TPN Model</p>
      <p>TPN Property</p>
      <p>TPN</p>
      <p>
        Modelchecker
CS2ES [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
      </p>
      <p>ES2TPN</p>
      <p>The paper is structured as follows. Sec. 2 recalls V T S by means of an
example. Sec. 3 briefly reviews Time Petri Nets (TPN). Sec. 4 presents the translation
of V T S into TPN. Sec. 5 proposes a procedure to model-check whether a TPN
satisfies a property expressed in V T S. Sec. 6 illustrates the application of these
results for verifying different behavioral properties of AADL models: (1)
modechange behaviors, and (2) flow specifications.
2
2.1</p>
      <sec id="sec-1-1">
        <title>Visual Timed Scenarios (V T S)</title>
        <sec id="sec-1-1-1">
          <title>Informal presentation</title>
          <p>
            Visual Timed Scenarios [
            <xref ref-type="bibr" rid="ref1 ref7">1, 7</xref>
            ] language is used to describe event patterns, which
can be regarded as simple, graphical depictions of predicates over traces
(timestamped executions), constraining expected behavior. It basically features
annotated partial order of relevant events, denoting a (possibly infinite) set of
matching traces. Violation of verification goals for models such as freshness, bounded
response or event correlation can naturally be expressed using the notation.
          </p>
          <p>
            The basic elements of V T S graphical notation are points connected by lines
and arrows. Points are labeled by sets of events, meaning that the point stands
for an occurrence of one of the events in an execution. V T S can represent
precedence relations and temporal distances between points; and sets of events which
are forbidden between them. The detailed formalization of V T S and its
thorough comparison with other visual languages is given in [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]. Here, we informally
introduce V T S through a simple, yet illustrative, example.
          </p>
          <p>
            Consider a system composed of two jobs J ob1 and J ob2 (Fig. 2, based on [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]).
The behavior of the system is as follows: (1) J ob1 if started, always terminates;
(2) J ob2 if started, always terminates; (3) J ob2 can not start while J ob1 is in
execution; (4) J ob1 must terminate in at most 12; (5) J ob2 must wait at least
14 to start; (6) The temporal distance between both jobs’ ends is at most 10.
          </p>
          <p>LAUNCH START1</p>
          <p>END1</p>
          <p>START2</p>
          <p>END2
Job1
Points are labeled with events. Triangles below points are used to display
optional point names, needed for the formal notation. An arrow between two
points specifies a precedence relationship. Arrow labels specify forbidden events
between points: for instance, there is no START2 event between START1 and
END1. A double forward arrow means “the next” occurrence of the event of the
destination point (i.e., shorthand for labeling the arrow with the destination’s
label). A double backward arrow meas “the previous” occurrence of the event of
the source point (i.e., shorthand for labeling the arrow with the source’s label).
A dashed line linking two points expresses a temporal distance between them.
Dashed lines can also be labeled with forbidden events. Fig. 4 shows the graphical
notation of V T S elements used in this work6.</p>
          <p>
            Verifying conditional scenarios is done by building (using the CS2ES tool
showed in Fig. 1) a set of existential scenarios that stand for all possible
counterexamples of the conditional scenarios [
            <xref ref-type="bibr" rid="ref11 ref7">7, 11</xref>
            ]. These scenarios, a.k.a.
antiscenarios, model all the ways in which a conditional scenario may be violated
by the system. This work only relies on how to model-check existential
scenarios, and therefore, hereinafter, existential scenarios are referred as “scenarios”.
Fig. 5 illustrates all the V T S anti-scenarios of the conditional scenario of Fig. 3.
6 V T S has more primitives, that increase its expressive power, which are omitted here
for the sake of simplicity. The interested reader is referred to [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ].
A big full circle stands for the begin of the execution, and two concentric circles
correspond to its end.
          </p>
          <p>LAUNCH START1 ¬ END1</p>
          <p>LAUNCH START2 ¬ END2
from C. Given a sequence s, |s| is its length (|s| d=ef ∞ when s is infinite) and
Π(s) d=ef {i ∈ N / 0 ≤ i &lt; |s|} is the set of positions of s. Given i, j ∈ Π(s),
si is the ith element of s; si] is the prefix ending at position i; s[i is the suffix
starting at position i and s[i,j] is the sub-sequence from position i to position j (if
def
i &gt; j, s[i,j] = s[j,i]). Using ‘(’ or ‘)’ instead of ‘[’ or ‘]’ means the corresponding
sub-sequence does not include its border(s). We call f irst(s) the first element of
s. If s is finite, last(s) is its last element. For X ⊆ C, s ∩ X denotes the set of
elements of X appearing in s, i.e., {x ∈ X | ∃i. si = x}.</p>
          <p>A temporal sequence is a weakly increasing sequence of timestamps (i.e., non
negative real numbers). Given a finite temporal sequence τ we define Δ(τ ) as
the time elapsed during τ : Δ(τ ) = last(τ ) − f irst(τ ) or 0 if |τ | = 0. A temporal
sequence τ can be shifted by a real number ǫ producing a temporal sequence
called τ + ǫ, such that ∀i ∈ Π(τ ); (τ + ǫ)i = τi + ǫ.</p>
          <p>A trace over a set C is a pair hs, τ i where s is a sequence over C and τ is
a temporal sequence of the same length. Given a trace σ = hs, τ i , we define
|σ| d=ef |s| and Π(σ) d=ef Π(s). A trace is time-divergent iff for any real number T
there exists a position k such that Δ(τk]) &gt; T .</p>
          <p>The semantics of V T S assigns to each scenario a set of traces satisfying
it. Labeled points represent events in the traces, they can match a particular
position in a trace if the event in that position is among the allowed events
associated to the point by the labeling function ℓ.</p>
          <p>Intuitively, a matching is a mapping between points in a scenario and
positions in a trace, exhibiting how the trace satisfies the scenario. Formally:
Definition 2 (V T S semantics). Given a scenario S = hΣS , P, ℓ, 6≡, &lt;, γ, δi ,
a trace σ = hs, τ i over Σ′ where ΣS ⊆ Σ′, and a mapping ˆ· : P → Π(σ); we say
that ˆ· is a matching between S and σ iff for all points p, q ∈ P :
M1 sˆp ∈ ℓ(p); the mapping for a point is a position of the trace with an event that
labels this point.</p>
          <p>M2 if p 6≡ q then pˆ 6= qˆ; two different points cannot map to the same position.
M3 if p &lt; q then pˆ &lt; qˆ; the position of the source point must be smaller than the
destination’s.</p>
          <p>M4 s(ˆp, ˆq) ∩ γ(p, q) = ∅; no forbidden event can appear in the sub-trace defined by
corresponding occurrences of the points.</p>
          <p>M5 sˆp) ∩ γ(0, p) = s(ˆp ∩ γ(p, ∞) = ∅; no forbidden event specified between begin (resp.,
a point) and a point (resp., end) can appear before (resp., after) the corresponding
occurrence of the point.</p>
          <p>M6 Δ(τ[ˆp, ˆq]) ² δ(p, q); the time elapsed between the occurrences of the corresponding
points must satisfy the specified time restriction.</p>
          <p>M7 Δ(τˆp]) ² δ(0, p); the time elapsed since begin until the occurrence of a point must
satisfy the specified time restriction.</p>
          <p>Rules M4-5 and M6-7 must be considered only when the domains of the functions
γ and δ are defined, respectively.</p>
        </sec>
        <sec id="sec-1-1-2">
          <title>Definition 3 (Existential V T S Semantics). We say that a trace σ satisfies</title>
          <p>a scenario S (noted σ ² S) iff there exists at least one matching between them.
3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Time Petri Nets (TPNs )</title>
      <p>
        Time Petri Nets [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] are a widely used formalism for timed systems. They are
supported by several tools (e.g. TINA [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], Romeo [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]). TPNs extend Petri nets
with temporal intervals associated with transitions: assuming transition t, with
an interval [α, β], became last enabled at time τ , then t cannot fire earlier than
time τ + α and must fire no later than τ + β, unless disabled by firing some other
transition. Firing a transition takes no time.
3.1
      </p>
      <sec id="sec-2-1">
        <title>TPNs Formal Syntax</title>
        <p>Definition 4 (Time Petri Net). A Time Petri Net7 is a tuple N = hS, T,
Pre, Post, ΣN , L, Inh, ≻, m0, Isi, where:
– S is a finite set of places.
– T is a finite set of transitions.
– Pre ⊆ T × S is a relation between transitions and input places.
– Post ⊆ T × S is a relation between transitions and output places.
– ΣN is a finite set of events.
– L : T → ΣN ∪ {λ} is a function that labels each transition with an event or
with λ 6∈ ΣN . We assume that ∀ e ∈ ΣN , ∃ t ∈ T, s.t. L(t) = e.
– Inh ⊆ T × S is a relation that defines inhibitor places for transitions.
– ≻ ⊆ T × T is a priority (irreflexive, asymmetric, and transitive) relation
between transitions.
– m0 ⊆ S is a set of places with initial marking.</p>
        <p>– Is : T → I is a function called static interval function.
7 For simplicity, we consider here ordinary (i.e. all arcs have weight 1) TPNs, but the
results can be extended to non-ordinary ones.
3.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>TPNs Semantics</title>
        <p>Given a TPN N , a state of N is a pair ω = hm, Ii, where m : S → N is a marking
and I : T → I is the interval function that associates a temporal interval with
every transition enabled at m. The initial state is denoted ω0.</p>
        <p>
          The semantics of TPNs defines the evolution of a TPN state resulting from
the firing of transitions and passage of time. The reader is referred to [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] for the
detailed semantics.
        </p>
        <p>We write ω L−(t→)@θ ω′ to denote that from state ω, transition t is fired after
a time θ, resulting in state ω′; and ω −λ@→θ ω′ to denote that from state ω, time
can elapse to state ω′. An execution is a time-divergent sequence ρ : ω0 a−0@→θ0
ω1 a−1@→θ1 . . . We write mρi to denote the marking of the i-th state of ρ. The
time-divergent trace of ρ is σ = hs, τ i with s = a0, a1 . . . , and τ = ϑ0, ϑ1 . . . ,
where ϑ0 = θ0 and ϑi = ϑi−1 + θi, for i ≥ 1.
4</p>
        <sec id="sec-2-2-1">
          <title>Translating V T S into TPN</title>
          <p>
            The translation algorithm proceeds as follows: for each part of the V T S scenario
that must be matched, it builds a TPN component. So, each point, forbidden
event, time restriction, precedence between points, etc., in the V T S scenario,
generates a TPN. The translation of the whole scenario is obtained by the fusion
(a special composition, see below) of all components. The rules that formally
define this translation can be found in [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ]. The ES2TPN tool (Fig. 1) performs
this whole process.
4.1
          </p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>Construction of TPN components</title>
        <p>Construction of TPN components for matching points. In order to
recognize occurrences of events as matchings of points, we construct a TPN as
follows. For every point p of the V T S scenario, we add two places to the TPN:
notYetp and matchp. The place notYetp has an initial marking and represents that
no event labeling point p has occurred yet. The place matchp, if marked, models
that a matching event for this point has occurred. Between these places, we add
the possible matching transitions: one transition for each event e labeling point
p. Each of these is labeled with e, and has a pre-arc from notYetp and a post-arc
to matchp. Also, we must consider the case where two (or more) points match
the same event. Therefore, we add transitions for all possible combinations of
multiple matching points for each event.</p>
        <p>To take into account precedence relations among points, for every matching
transition into place matchp we add a read-arc from any place matchq, whenever
there is a precedence arrow from q to p (this is because place matchq must be
marked before marking place matchp).</p>
        <p>Finally, this component has special transitions which will be used in the
construction of forthcoming components. Transition trape is set with higher
priority than any matching transition labeled with event e. Transition trapAll has
higher priority than all transitions labeled trape, and therefore higher than all
matching transitions (by transitivity). For every point p and event e labeling p,
a transition trape¬p is added, with higher priority than any transition matching
event e but not matching point p. The purpose of these transitions is to define a
priority schema, not to be fired, as they are always disabled by adding a pre-arc
from a place called empty which is never marked. Fig. 7 gives an example of the
construction of TPN component for matching points.</p>
        <p>a
q
b
p</p>
      </sec>
      <sec id="sec-2-4">
        <title>Construction of TPN components for events not matched by any</title>
        <p>point. To recognize occurrences of events not associated to point matchings, we
add a unique place loop, with an initial marking, and loop transitions for each
event e of the scenario.</p>
        <p>Fig. 8 shows the resulting TPN for a simple example.
a
q
b
p</p>
        <p>a
loop a
loop</p>
        <p>b
loopb</p>
      </sec>
      <sec id="sec-2-5">
        <title>Construction of components for forbidden events on precedence rela</title>
        <p>tions. Suppose there is precedence relation from point q to p, and let matchq
and matchp be the corresponding matching places of the points. For each
forbidden event e on the precedence relation, a forbidden transition, labeled with e, is
added with a pre-arc from matchq and an inhibitor-arc from matchp.</p>
        <p>In order for this transition to capture all possible occurrences of the forbidden
event e, if e is labeling p, a priority relation is added to transition trape, otherwise
is added to transition trape¬p. As we have seen, trape has higher priority than
any matching transition for event e, and trape¬p, has higher priority than any
matching transition for event e not related with p.</p>
        <p>Also, the corresponding loop transition for event e is disallowed whenever
the forbidden transition is enabled, by setting a priority relation. Therefore, the
loop transition is enabled only when point q has occurred but not yet point p,
avoiding any occurrence of event e not corresponding to the matching point p.</p>
        <p>At last, a post-arc with an inhibitor-arc is added to place invalidMatch. This
place, as we will show later, if not empty, avoids reaching the acceptance
condition for matching the whole V T S scenario. The purpose of this inhibitor-arc is
to ensure the boundedness of the TPN.</p>
        <p>Fig. 9 illustrates the construction of TPN components for forbidden events
on precedence relations.</p>
        <p>b</p>
      </sec>
      <sec id="sec-2-6">
        <title>Construction of TPN components for temporal restrictions on prece</title>
        <p>dence relations. In V T S, temporal restrictions over a precedence relation can
involve two cases: (1) when the time elapsed between the source and destination
points has a maximum allowed value, and (2) when it has a minimum allowed
value. Note that V T S time restrictions allow both cases to be combined in an
interval constraint.</p>
        <p>In case of an upper limit β, we add a transition tooLateq·p with a lower
bound of β. This transition has a read-arc from place matchq, an inhibitor-arc
from place matchp, and a post-arc with an inhibitor-arc to place invalidMatch.
We add a priority relation from this transition to trapAll to avoid matching
points when it is enabled. Therefore, this transition will avoid point p to match
after a time β since point q has occurred. Fig. 10(a) and 10(b) illustrates this
construction.</p>
        <p>In case of a lower limit α, we use two transitions. One transition, called
onT imeq·p, will delay at least α after point q matches, leaving a token at a
new place notEarlyq·p. The other transition, called tooEarlyq·p, has a pre-arc
from place matchp, an inhibitor-arc from place notEarlyq·p, and a post-arc with
an inhibitor-arc to place invalidMatch. Therefore, this transition will prevent a
scenario matching if point p occurs, but not transition onT imeq·p which only
becomes enabled after a time α since point q’s occurrence. Fig. 10(c) and 10(d)
illustrates this construction.</p>
      </sec>
      <sec id="sec-2-7">
        <title>Construction of TPN components for restrictions over inequality rela</title>
        <p>tions. Consider two points q and p, such that p 6≡ q. By definition these points
have different matching, then necessarily, either q occurs before p, or p occurs
before q. Therefore, both cases must be considered. For this, we apply the rules
explained above for taking care of precedence relations.
(a) V T S scenario 1
a
q
a
q
&lt;10
&gt;=2
a
q
b
p
b
p
b
p
matchq</p>
      </sec>
      <sec id="sec-2-8">
        <title>Construction of the TPN for the whole scenario</title>
        <p>Scenario matching We add a place, namely, validMatch, and two transitions,
namely, accept and reject. Transition accept, immediately fires if all points
have been matched, and only if place invalidMatch is empty, putting a token
in validMatch. Transition reject, fires as soon as invalidMatch is reached,
removing all tokens (if any) from validMatch. This transition is needed to wait for
occurrences of forbidden events in the future. Fig. 11 illustrates this
construction.</p>
        <p>Fusion of TPNs. Now, we introduce the fusion operation, to obtain a TPN
by combining two or more TPNs. This operation is based on set union; so if two
combined TPNs share places and transitions, these will appear once in the final
construction. The fusion operation between two TPNs, N1 and N2, is denoted as
N1 ⊕ N2. Fig. 12 illustrate fusion operation. Resulting fusion of TPNs Fig. 12(a)
and Fig. 12(b) is presented in Fig. 12(c).
matchp1
notYetp4
p4START2
Definition 5. Given a scenario S, we define the TPN of S, denoted TS , as the
fusion of the component TPNs constructed as explained above.</p>
        <p>Example. Fig. 13 shows the resulting TPN for the V T S scenario initially
presented at Fig. 5(e)8. For this scenario, the TPN results from the fusion of the
following components:
– Matching points: for points p4 (Fig. 12(a)) and p1.
– Unmatched event: for events ST ART 2 and LAU N CH.
– Forbidden events: for the forbidden event of ST ART 2 labeling the precedence
relation from point p1 to p4.
– Temporal restrictions: for time restriction of &lt; 14 labeling the precedence
relation from point p1 to p4 (Fig. 12(b)).
– Scenario Matching.
&lt;
1
4
LAUNCH
p1
START2</p>
        <p>p4
(a) V T S
empty
notYetp1
8 In Fig. 13(b) transition names have been omitted in order to keep the figure small
and readable.
5</p>
        <sec id="sec-2-8-1">
          <title>Model Checking V T S</title>
          <p>The problem of checking whether a system under analysis (SUA) modeled as
a TPN N satisfies a V T S scenario S is solved in the following way. The
algorithm presented in Sec. 4 translates S into a TPN (observer) TS which recognizes
matching traces. TS is composed with the SUA N to check whether a matching
execution exists, by using available model checking tools for TPNs. Specifically,
the model-checking problem consists in verifying whether there exists an
execution that reaches a state where place validMatch of TS is marked, and remains
marked thereafter.</p>
          <p>Property 6. Given N and S then: N kTS is bounded iff N is bounded.
Property 7. Given N , S with ΣS ⊆ ΣN , and a trace σ over ΣN ∪ {λ} then:
σ is a trace of N kTS iff σ is trace of N .</p>
          <p>Therefore, we are sure that the composition of N with the TPN TS of the
scenario preserves the traces of the SUA.</p>
        </sec>
      </sec>
      <sec id="sec-2-9">
        <title>Theorem 8 (Model checking V T S). Given N and S with ΣS ⊆ ΣN , then:</title>
        <p>N ² S iff there exists a time-divergent execution sequence ρ of N kTS such that,
∃k ∈ N. ∀k′ ≥ k. mρk′ (validMatch) = 1.
6</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Case studies</title>
      <p>
        To carry out our tests, we resort to a tool chain that allows us to link the
V T S scenarios with AADL models. Based on a property expressed as a V T S
conditional scenario, we use the tool presented in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] to generate the related
V T S existential scenarios, that are then translated into TPNs. For this last step,
we have developed a tool that implements the translation algorithm described in
Sec. 4. On the other hand, the TPN representing the AADL models have been
constructed manually9. Finally we use the composition of both resulting TPNs
as input to the tool Tina, which generates the reachability graph preserving
LTL. To check whether the model satisfies the property, we encode Thm. 8
as an LTL model-checking problem and use the selt application of the Tina
tool-box. For the case studies we analyzed, because selt is unable to determine
whether an execution is time-divergent, we either relied on the strongly
nonZeno [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] hypothesis of the SUA or performed semi-automatic verification. We
discuss in the conclusions an approach for automatizing the procedure derived
from Thm. 8.
6.1
      </p>
      <sec id="sec-3-1">
        <title>AADL Mode Change Protocol</title>
        <p>
          In AADL systems, components can operate in different modes, where each of
them is associated with a configuration of the component. Changes between
modes are triggered by events. A more detailed description can be found in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
9 In the future we plan to use OCARINA [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] or TOPCASED (through FIACRE [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ])
to generate them automatically.
        </p>
        <p>SOM1</p>
        <p>p1
eventTr_a t1 [0,0]</p>
        <p>
          LeavingSOM1 p2
hyperLeavingSOM1 t2 [0,0]
SOM1to2Transition p3
hyperEnterSOM2 t3 [
          <xref ref-type="bibr" rid="ref5 ref5">5,5</xref>
          ]
6.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>AADL Flows Specification</title>
        <p>
          1
T2_disp1atch
AADL flow specifications are used to describe externally observable sequences
of connections through component ports. Flow specifications can be annotated
with properties, such as latency, whose verification depend on the properties of
the involved components, ports, etc., such as execution times, periods, deadlines,
communication delays, etc. Quantitative analysis of flow properties is addressed
in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] and implemented in OSATE. The proposed technique, is based on
caseby-case analysis according to the architecture of the sub-components. Here, we
propose using V T S scenarios for checking flow latency. We believe the advantages
of our approach are twofold. First, it is independent of the architecture of the
SUA. Second, it allows specifying non-linear flows, currently not available in
AADL. As a case study, we use the example provided in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. The TPN of the
3-task system with a periodic sensor and aperiodic tasks and actuator is shown
in Fig. 16(a). The V T S scenario for the flow specification is shown in Fig. 16(b).
This scenario asserts two properties at once: whenever the sensor produces an
output, then (1) the flow is realized, and (2) its latency is less than or equal to
48. Notice that our approach gives a tighter latency than the one in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>Ds_period
[50,50]
[0,0]
T2_dispatch
[0,0]
T3_conn
T1_run
1 1</p>
        <p>
          T11_ou1tput T11_co1nn
Ds_output
[
          <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
          ]
T1_run
[0,0]
T2_run
[0,0]
        </p>
        <p>
          [0,0]
T2_output
[
          <xref ref-type="bibr" rid="ref15">15,23</xref>
          ]
        </p>
        <p>Ds_output</p>
        <p>D1s_co1nn
&lt;=48
This paper proposes an approach for checking complex properties on AADL
specifications by relying on the visual language V T S for expressing them. To make
it practical, we devised a procedure for generating TPNs from V T S to enable its
connection with available IDEs for AADL, such as OSATE and TOPCASED,
which integrate TPN-based verification tools.</p>
        <p>
          V T S scenarios proved to be adequate to intuitively express complex
properties of AADL models. We also incorporate the idea of using them to describe
flows in a more general and independent way. Besides its concrete practical
application to AADL-centric system design, the translation presented in this work
provides an alternative way to verifying V T S requirements in addition to the
one based upon timed automata reachability analysis [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
        </p>
        <p>
          Several future research directions are envisaged. First, we plan to generate
TOPCASED tool-independent intermediate modeling language FIACRE [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]
instead of TPN directly. This will allow model-checking V T S with a larger number
of tools integrated by the TOPCASED consortium. Second, we will explore more
deeply the connection between V T S and AADL flows. The purpose of this is to
investigate whether AADL flow specifications could be extended to cope with
non-linear flows. Last but not least, to fully automatize the approach resulting
from Thm. 8, a verification procedure which takes into account time-divergence
should be implemented for TPNs, adapting, for instance, the algorithms
proposed in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] for timed Bu¨chi automata.
        </p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A.</given-names>
            <surname>Alfonso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Braberman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Kicillof</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Olivero</surname>
          </string-name>
          .
          <article-title>Visual Timed Event Scenarios</article-title>
          .
          <source>In Proc. of the 26th ACM/IEEE ICSE '04</source>
          . ACM Press,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>K.</given-names>
            <surname>Altisen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gossler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pnueli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sifakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tripakis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Yovine</surname>
          </string-name>
          .
          <article-title>A framework for scheduler synthesis</article-title>
          .
          <source>In Proc. RTSS '99. IEEE Comp. Soc. Press</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>B.</given-names>
            <surname>Berthomieu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Bodeveix</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Farail</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Filali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Garavel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Gaufillet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Lang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Vernadat</surname>
          </string-name>
          . Fiacre:
          <article-title>An intermediate language for model verification in the topcased environment</article-title>
          .
          <source>In 4th European Conf. ERTS</source>
          ,
          <year>January 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>B.</given-names>
            <surname>Berthomieu</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Vernadat</surname>
          </string-name>
          .
          <article-title>Time Petri Nets Analysis with TINA</article-title>
          .
          <source>In 3rd Int. Conf. on the Quantitative Evaluation of Systems - (QEST'06)</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>B.</given-names>
            <surname>Berthomieu</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Vernadat</surname>
          </string-name>
          .
          <article-title>State Space Abstractions for Time Petri Nets</article-title>
          .
          <source>In Handbook of Real-Time and Embedded Systems</source>
          , Crc Computer &amp; Information Science Series. Chapman &amp; Hall,
          <string-name>
            <surname>July</surname>
          </string-name>
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>D.</given-names>
            <surname>Bertrand</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.-M. D´</surname>
            eplanche, S. Faucou, and
            <given-names>O. H.</given-names>
          </string-name>
          <string-name>
            <surname>Roux</surname>
          </string-name>
          .
          <article-title>A Study of the AADL Mode Change Protocol</article-title>
          .
          <source>In 13th IEEE International Conference on Engineering of Complex Computer Systems</source>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>V.</given-names>
            <surname>Braberman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Kicillof</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Olivero</surname>
          </string-name>
          .
          <article-title>A Scenario-Matching Approach to the Description and Model Checking of Real-Time Properties</article-title>
          .
          <source>IEEE Transactions on software Engineering</source>
          ,
          <volume>31</volume>
          (
          <issue>12</issue>
          ),
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>P.</given-names>
            <surname>Feiler</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Hansson</surname>
          </string-name>
          .
          <article-title>Flow Latency Analysis with the Architecture Analysis and Design Language (AADL)</article-title>
          . Technical Note CMU/SEI-2007
          <source>-TN-010</source>
          , Carnegie Mellon University,
          <year>June 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>G.</given-names>
            <surname>Gardey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lime</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Magnin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O. H.</given-names>
            <surname>Roux</surname>
          </string-name>
          .
          <article-title>Romeo: A Tool for Analyzing Time Petri Nets</article-title>
          . In Computer Aided Verification, pages
          <fpage>418</fpage>
          -
          <lpage>423</lpage>
          . Lecture Notes in Computer Science,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>J. Hugues</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Zalila</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Pautet</surname>
            , and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Kordon</surname>
          </string-name>
          .
          <article-title>From the Prototype to the Final Embedded System Using the Ocarina AADL Tool Suite</article-title>
          .
          <source>ACM Transactions in Embedded Computing Systems</source>
          , Oct.
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>D.</given-names>
            <surname>Monteverde</surname>
          </string-name>
          . Verificaci´on Autom´atica de Escenarios Condicionales.
          <source>Master's thesis</source>
          , FCEyN. Univ. de Buenos Aires,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>D.</given-names>
            <surname>Monteverde</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Olivero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Yovine</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Braberman</surname>
          </string-name>
          .
          <article-title>VTS-based specification and verification of behavioral properties of AADL models</article-title>
          .
          <source>Technical report</source>
          , DC. FCEN. UBA. http://www.dc.uba.ar/people/exclusivos/vbraber,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>SAE</surname>
          </string-name>
          .
          <article-title>Architecture Analysis and Design Language</article-title>
          .
          <source>SAE Standard AS5506</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>F.</given-names>
            <surname>Singhoff</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Plantec</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Dissaux</surname>
          </string-name>
          .
          <article-title>Can We Increase the Usability of Real Time Scheduling Theory? The Cheddar Project</article-title>
          .
          <source>In Ada-Europe</source>
          <year>2008</year>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>S.</given-names>
            <surname>Tripakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Yovine</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Bouajjani</surname>
          </string-name>
          .
          <article-title>Checking timed buchi automata emptiness efficiently</article-title>
          .
          <source>Formal Methods in System Design</source>
          ,
          <volume>26</volume>
          (
          <issue>3</issue>
          ), May
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>