<!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 />
    <article-meta>
      <title-group>
        <article-title>UML Pro le for MARTE: Time Model and CCSL</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Frederic Mallet</string-name>
          <email>Frederic.Mallet@unice.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universite Nice Sophia Antipolis</institution>
          ,
          <addr-line>Aoste team INRIA/I3S, Sophia Antipolis</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <fpage>289</fpage>
      <lpage>294</lpage>
      <abstract>
        <p>This 90 minutes tutorial gives a basic introduction to the UML Pro le for MARTE (Modeling and Analysis of Real-Time and Embedded systems) adopted by the Object Management Group. After a brief introduction to the UML pro ling mechanism, we give a broad overview of the MARTE Pro le. Then, the tutorial shall focus on the time model of MARTE and its companion language CCSL (Clock Constraint Speci cation Language).</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>UML Pro le</kwd>
        <kwd>Real-Time</kwd>
        <kwd>Embedded systems</kwd>
        <kwd>MARTE</kwd>
        <kwd>CCSL</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Audience and focus</title>
      <p>The targeted audience is academics or industrials interested in high-level
modeling with UML and its application to the analysis of real-time and embedded
systems.</p>
      <p>The tutorial does not require any preliminary background as it will give a
high-level and broad description of the UML Pro le as well as a closer focus on
its time model. To ensure that a large public can follow the presentation, we
should start by a brief overview of UML light-weight extension mechanism, the
so-called pro ling mechanism.</p>
      <sec id="sec-1-1">
        <title>General Introduction to MARTE</title>
        <p>The Hardware Resource Modeling (HRM) package, which specializes the
concepts of GCM into hardware devices such as processor, memory or buses, allows
the modeling of the execution platforms in MARTE. The Allocation (Alloc)
package allows the modeling of the space-time allocation of application
functionality on an execution platform. Both the HRM and Alloc packages can be
used with the RSM package for a compact modeling of repetitive hardware (e.g.,
grids of processing elements) and data and computation distributions of a
parallel application onto such a repetitive hardware.</p>
        <p>
          The models described with the previous packages can be re ned with
temporal properties speci ed within the Time package [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Such properties are typically
clock constraints denoting some activation rate constraints about considered
components. The concepts of the Time package are often used with the Clock
Constraint Speci cation Language (CCSL) [
          <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
          ], which was initially introduced
as a non-normative annex of MARTE.
2.2
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>MARTE Time Model</title>
        <p>In MARTE, a clock c is a totally ordered set of instants, Ic. In the following, i
and j are instants. A time structure is a set of clocks C and a set of relations on
instants I = Sc2C Ic. ccsl considers two kinds of relations: causal and temporal
ones. The basic causal relation is causality/dependency, a binary relation on I:
4 I I. i 4 j means i causes j or j depends on i. 4 is a pre-order on I, i.e.,
it is re exive and transitive. The basic temporal relations are precedence ( ),
coincidence ( ), and exclusion (#), three binary relations on I. For any pair of
instants (i; j) 2 I I in a time structure, i j means that the only acceptable
execution traces are those where i occurs strictly before j (i precedes j). is
transitive and asymmetric (re exive and antisymmetric). i j imposes instants
i and j to be coincident, i.e., they must occur at the same execution step, both of
them or none of them. is an equivalence relation, i.e., it is re exive, symmetric
and transitive. i # j forbids the coincidence of the two instants, i.e., they cannot
occur at the same execution step. # is irre exive and symmetric. A consistency
rule is enforced between causal and temporal relations. i 4 j can be re ned
either as i j or i j, but j can never precede i.</p>
        <p>In this paper, we consider discrete sets of instants only, so that the instants
of a clock can be indexed by natural numbers. For a clock c 2 C, and for any
k 2 N?, c[k] denotes the kth instant of c.</p>
        <p>
          Specifying a full time structure using only instant relations is not realistic
since clocks are usually in nite sets of instants. Thus, an enumerative
speci cation of instant relations is forbidden. The Clock Constraint Speci cation
Language (ccsl) de nes a set of time patterns between clocks that apply to
in nitely many instant relations [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          The uml Pro le for marte proposes several speci c stereotypes in the Time
chapter to capture ccsl speci cations. Figure 2 brie y describes the three main
stereotypes. Boxes with the annotation metaclass denote the uml concepts
on which our pro le relies, so-called metaclasses. Boxes with stereotype are the
concepts introduced by marte, i.e., the stereotypes. Arrows with a lled head
represent extensions, whereas normal arrows indicate properties of the
introduced stereotypes. Clock extends uml Events to spot those events that can be
used as time bases to express temporal or logical properties. ClockConstraint
extends uml Constraints to make an explicit reference to the constrained clocks.
TimedProcessing extends Action to make explicit their start and nishing
events. When those events are clocks, then a ClockConstraint can constrain
the underlying action to start or nish its execution as de ned in a ccsl
specication.
On top of marte clocks, the Clock Constraint Speci cation Language de nes
a set of operators (relations and expressions) [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. As an example, consider the
clock relation precedence (denoted ), a transitive asymmetric binary relation
on C: C C. If lef t and right are two clocks, lef t right, read `lef t
precedes right', speci es that the kth instant of clock lef t precedes the kth
instant of clock right, for all k. More formally: For a pair of clocks (lef t; right) 2
C C; lef t right means 8k 2 N?; lef t[k] right[k]. Similarly, let us consider
the transitive and re exive binary relation on C called isSubclockOf and denoted
. lef t right (read lef t is a sub clock of right) means that for all k, the
instant lef t[k] of lef t coincides with exactly one instant of right. More formally:
lef t right means 8k 2 N?; 9n 2 N?jlef t[k] right[n]. The relation is
order-preserving. All the coincidence-based relations are based on isSubclockOf.
When both lef t right and right lef t then we say that lef t and right
are synchronous: lef t = right.
        </p>
        <p>A ccsl speci cation consists of clock declarations and conjunctions of clock
relations between clock expressions. A clock expression de nes a set of new clocks
from existing ones, most expressions deterministically de ne one single clock. An
example of clock expression is delay (denoted $: C N? ! C). c $ n speci es
that a new clock is created and is the exact image of c delayed for n instants:
o = c $ n de nes a clock o 2 C such that 8k 2 N?; o[k] c[k + n].</p>
        <p>By combining primitive relations and expressions, we derive a very useful
clock relation that denotes a bounded precedence. lef t n right is equivalent
to the conjunction of lef t right and right (lef t $ n). The special case,
when n is equal to 1 is called alternation and is denoted lef t right (reads
lef t alternates with right).
3</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Conclusion</title>
      <p>
        The uml Pro le for marte is dedicated to the modeling and analysis of
realtime and embedded systems. Its time model relies on a notion of clock borrowed
from the synchronous languages [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and their polychronous extensions [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Those
clocks can be logical or physical. The time model also provides a support to build
causal and temporal constraints to force the clocks to tick according to prede ned
patterns. Thus, the evolution of the clocks imposes an execution semantics on
the underlying uml marte model. Whereas the marte time model provides the
notions of clocks and constraints, its companion language, the Clock Constraint
Speci cation Language provides a syntax to de ne the constraints themselves.
This brief tutorial introduces the main concepts of marte time model and gives
an overview of ccsl.
      </p>
    </sec>
    <sec id="sec-3">
      <title>Acknowledgments</title>
      <p>This work has been partially funded by the PRESTO Project
(ARTEMIS-20101-269362).</p>
    </sec>
    <sec id="sec-4">
      <title>Biography</title>
      <p>
        Frederic Mallet is an associate professor at Universite Nice Sophia Antipolis. He
is a permanent member of the Aoste team-project, a joint team between INRIA
and I3S laboratory. He received a PhD in Computer Science in 2000 and his
habilitation degree [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] in 2010. Since 2007, he has been heavily involved in the
de nition, nalization and revision of the UML Pro le for MARTE1 and has
been a voting member of the successive nalization and revision task forces for
MARTE at the OMG. His main research interests include the de nition of models
for the speci cation of functional and non-functional properties of real-time and
embedded systems. He also develops tools and techniques for the validation and
veri cation of such models.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. OMG:
          <article-title>UML Pro le for MARTE</article-title>
          ,
          <year>v1</year>
          .
          <fpage>1</fpage>
          . Object Management Group. (
          <year>June 2011</year>
          ) formal/2011-06-02.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. OMG: UML Superstructure,
          <year>v2</year>
          .
          <fpage>4</fpage>
          .1. Object Management Group. (
          <year>August 2011</year>
          ) formal/2011-08-06.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Andre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mallet</surname>
          </string-name>
          , F.,
          <string-name>
            <surname>de</surname>
            <given-names>Simone</given-names>
          </string-name>
          , R.:
          <article-title>Modeling time(s)</article-title>
          .
          <source>In: 10th Int. Conf. on Model Driven Engineering Languages and Systems (MODELS '07)</source>
          . Number 4735 in LNCS, Nashville,
          <string-name>
            <surname>TN</surname>
          </string-name>
          , USA, ACM-IEEE, Springer (
          <year>September 2007</year>
          )
          <volume>559</volume>
          {
          <fpage>573</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Andre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Syntax and semantics of the Clock Constraint Speci cation Language (CCSL)</article-title>
          .
          <source>Research Report 6925</source>
          ,
          <string-name>
            <surname>INRIA</surname>
          </string-name>
          (May
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Mallet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de</surname>
            <given-names>Simone</given-names>
          </string-name>
          , R.:
          <article-title>CCSL: specifying clock constraints with UML/Marte</article-title>
          . Innovations
          <source>in Systems and Software Engineering</source>
          <volume>4</volume>
          (
          <issue>3</issue>
          ) (
          <year>2008</year>
          )
          <volume>309</volume>
          {
          <fpage>314</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Benveniste</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Caspi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Edwards</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Halbwachs</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Le</surname>
            <given-names>Guernic</given-names>
          </string-name>
          , P., de Simone, R.:
          <article-title>The synchronous languages 12 years later</article-title>
          .
          <source>Proc. of the IEEE 91(1)</source>
          (
          <year>2003</year>
          )
          <volume>64</volume>
          {
          <fpage>83</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Le</given-names>
            <surname>Guernic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Talpin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.P.</given-names>
            ,
            <surname>Le</surname>
          </string-name>
          <string-name>
            <surname>Lann</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.C.</surname>
          </string-name>
          :
          <article-title>Polychrony for system design</article-title>
          .
          <source>Journal of Circuits, Systems, and Computers</source>
          <volume>12</volume>
          (
          <issue>3</issue>
          ) (
          <year>2003</year>
          )
          <volume>261</volume>
          {
          <fpage>304</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Mallet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Logical Time in Model Driven Engineering</article-title>
          .
          <article-title>Habilitation a diriger des recherches</article-title>
          ,
          <source>Universite Nice Sophia-Antipolis (November</source>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>