<!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>Towards a Generic Modeling Language for Contract-Based Design</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Johannes Iber</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrea H o¨ller</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tobias Rauter</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christian Kreiner</string-name>
          <email>christian.kreinerg@tugraz.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for Technical Informatics Graz University of Technology Inffeldgasse 16</institution>
          ,
          <addr-line>Graz</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Component-based and model-driven engineering are key paradigms for handling the ever-increasing complexity of technical systems. Surprisingly few component models consider extra-functional properties as first class entities. Contract-based design is a promising paradigm, which has the potential to fill this shortage of methods for dealing with extra-functional properties. By defining the concept of using assumptions in order to determine the environment, and by using the concept of guarantees to state what a component provides to the environment, it enables the analyzability of components and compositions in advance and during system execution. With this work, we aim to create the base for a pragmatic model-driven method that provides reusable modeling concepts for contracts targeting arbitrary extra-functional properties. Furthermore, we expand the current state-of-the-art of contractbased design by introducing the concept of a finite state machine, where single states consist of several valid contracts. It is also assumed that these modeling language features will ease the use of contract-based design. Additionally, we demonstrate the applicability of the presented modeling concepts on an exemplary use case from the automotive domain. Index Terms-Metamodeling, contract-based design, extrafunctional properties, component models</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Numerous industrial sectors are currently confronted with
massive difficulties originating from managing the increasing
complexity of systems. The automotive industry, for instance,
has an annual increase rate of software-implemented functions
of about 30% [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This rate is even higher for avionics
systems [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Additionally, this development of systems is not
restricted to software, as we are facing a so-called Internet of
Things, where the number of physical devices is expected to
expansively explode [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. New challenges regarding complexity
of systems emerge caused by this dramatic increase of diverse
hardware/software, possible interactions and distributed
intelligences [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Component-based engineering is today a widely recognized
and well-established paradigm for tackling complexity of
systems [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Together with model-driven engineering, it forms
a potentially powerful union to construct, analyze, and deploy
systems.
      </p>
      <p>
        But still, modern component models are flawed. As shown
by Crnkovic´ et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], astonishingly few (software)
component models are addressing extra-functional properties (e.g.
timing, safety, memory consumption, etc.) as first class
entities. However, these properties are essential for composing a
component-based system predictable and safe. Management
of extra-functional properties is thus still one of the core
challenges faced by component-based design [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Contract-based design is a promising paradigm for filling or
narrowing this gap, [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. It captures the behavior of a specific
functional or extra-functional property in relationship with
the environment of a component. Despite the existence of a
mathematical groundwork [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and exemplary applications,
a standard and generic metamodel for contract-based design
does not yet exist.
      </p>
      <p>With this work, we provide pragmatic modeling concepts
that pave the way for integrating contract-based design into
component models of systems. We present a metamodel
fragment for contracts which target arbitrary single
extrafunctional properties. Furthermore, we introduce the concept
of a finite state machine, where single states constitute valid
contracts. This concept extends the current state-of-the-art
regarding contract-based design. We show the applicability
of these modeling concepts by using an example from the
automotive domain. The target component of the use case
is a simplified electronic steering column lock, which we
examine with respect to the extra-functional properties safety
and timing.</p>
      <p>The remainder of this paper is structured as follows: the
next Section provides a brief overview of the background
to this work. In Section III the proposed modeling concepts
are introduced. Subsequently, a use case demonstrating the
applicability of these concepts is described in Section IV.
Finally, concluding remarks and future research opportunities
are given in Section V.</p>
    </sec>
    <sec id="sec-2">
      <title>II. BACKGROUND AND RELATED WORK</title>
      <p>Here, we give an overview of system abstractions and
properties. After this, we briefly explain contract-based design.
Finally, we summarize the related work concerning
contractbased design, which is also the motivation setting for this
work.</p>
      <sec id="sec-2-1">
        <title>A. System Abstractions and Properties</title>
        <p>
          According to Jantsch [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], there are four main different
abstraction models or views concerning embedded system
engineering. First is the computational model, which describes
the observable behavior of a system or of its single parts
(hardware, software components), i.e. the relationship between
inputs and outputs [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Second, a data model exists that
provides notations for information (e.g. integer, boolean).
Third, a time model is needed to constitute the causality
of events. Fourth, a communication model is established to
specify how components interact. This model forms the
toplevel system behavior.
        </p>
        <p>
          In the context of the properties of systems the literature
distinguishes between functional and extra-functional (also
known as non-functional) properties. Functional properties
describe the function of a system or component, i.e.
behavior, input or output data types. Extra-functional properties
provide additional information and give a better insight into
the behavior and capability of a system or component [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
A wide range of such properties exists, e.g. safety, security,
portability, performance. Since these issue from humans, there
is no method to determine a priori which extra-functional
properties exist in a system [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Contract-based Design</title>
        <p>
          Contract-based design usually sees a component as an
abstraction, a hierarchical entity that represents a single unit
of design [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. Therefore in the context of contract-based
design a component can represent, for instance a module, a
composition, a complex system or even a physical device.
        </p>
        <p>
          The essence of this paradigm is to decompose a component
into different independent views referred to as contracts, which
capture the behavior of a target functional or extra-functional
property under certain conditions [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. This approach
significantly reduces the complexity of design and verification,
because the single properties become manageable.
        </p>
        <p>Informally, a contract is a set of assumptions and guarantees.</p>
        <p>An assumption asserts what a contract expects from the
component environment (this can include interactions with
other components). Additionally, an assumption provides a
certain context for the guarantees. The condition contained
in an assumption can reference for instance input data, events
or system properties. In general, the available variables are set
or inferred by the analysis environment.</p>
        <p>A guarantee describes what a component provides to the
environment if the corresponding assumptions become valid.
In the simplest case a guarantee states that a component just
works under the constrained context. More complex contracts
define limits for instance for output data, environment
characteristics or extra-functional properties such as timing.</p>
        <p>
          Historically, contract-based design is influenced by Meyer’s
design-by-contract principle [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] for object-oriented software
[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. The main difference is that contract-based design goes
much further and provides means to integrate components in
the design hierarchy [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. This is achieved through capturing
the context by assumptions (which may include platforms,
other components, etc.), under which a component behaves
as specified by the guarantees. Furthermore, a system can be
viewed by selecting only appropriate contracts of interest.
        </p>
        <p>Fig.1 illustrates that contract-based design not only allows
the analyzing of components on a horizontal design level (e.g.
Design level n-1
Design level n
Design level n+1</p>
        <p>From/by higher design levels</p>
        <p>Assumed
from neighbours</p>
        <p>Component</p>
        <p>
          Guaranteed
From/by lower design levels
interaction between software modules, hardware devices, etc.).
It also enables analyzing to take place on a vertical level
between different kinds of abstraction [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
        </p>
        <p>
          A solid mathematical groundwork already exists for this as
provided by several authors, including Benveniste et al. [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ],
and Sangiovanni-Vincentelli et al. [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>
          Promising applications of contract-based design have been
shown for several domains. For instance, this paradigm has
been demonstrated for smart integrated energy management
systems [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], aircraft electric power systems [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ],
mixedsignal integrated circuits [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], and automotive [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. Despite
these examples, contract-based design is still at its infancy
[
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
        </p>
        <p>
          Little work has been done towards establishing a generic
standard metamodel for contract-based design. Warg et al. [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
presents a prototype modeling tool for contracts, but their work
solely focuses on safety integrity levels.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>C. Summary of Contract-Based Design</title>
        <p>
          There exist a few approaches for realizing contract-based
design, for instance the contract-based model developed in the
framework of the SPEEDS project [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. The problem is that
state-of-the-art approaches either tackle single extra-functional
properties, or take a relatively theoretical approach without
concrete modeling examples or tool implementations. A
survey concerning the certification of safety-relevant systems,
carried out by the SafeCer consortium [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], shows that only
a few companies are actually using contracts for components.
And where this is the case they are relying on Meyer’s
designby-contract principle on a programming language level.
        </p>
        <p>III. PROPOSED MODELING LANGUAGE CONCEPTS
In this section, we explain concepts which are necessary
for a pragmatic modeling language that targets contract-based
design.</p>
      </sec>
      <sec id="sec-2-4">
        <title>A. Target System Abstractions and Properties</title>
        <p>With the following concepts, we aim at enriching the
computational, time, and communication models of a system.
Furthermore, the data model plays an important role, as it
provides data types and notations, which could be used by
contracts.</p>
        <p>In the context of properties, our intention is to capture
extrafunctional properties and not necessarily functional behavior.
We take the view that functional behavior is better described
by other well-established methods than by the use of many
different contracts.</p>
        <p>
          The issue of what extra-functional properties we are aiming
at, is dependents on the specific use case or context under
which the following language features are used. These
concepts may be applied for a wide range of different
extrafunctional properties (e.g. security, safety, timing, expected
hardware/platform, memory consumption, many-core
environment, etc.). But certainly not for all of them, since no silver
bullet exists for dealing with every extra-functional property
[
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-5">
        <title>B. Pragmatic Modeling Langugage Features</title>
        <p>In the following, we present a modeling concept for
contracts. Additionally, we introduce the concept of a finite state
machine for contracts.</p>
        <p>1) Contract: Fig.2 illustrates our proposed metamodel for
contracts. We separate a contract into two parts. A Contract</p>
      </sec>
      <sec id="sec-2-6">
        <title>Declaration represents a type for Contract Definitions. It</title>
        <p>states the available parameters, assumptions and guarantees.
Furthermore, it represents the target extra-functional property.
A Contract Definition captures the unique behavior concerning
the target extra-functional property of a component in
relationship to its environment.</p>
        <p>Parameters can represent properties of the execution
environment, data ports or events. They can be used by Constraint
Definitions in order to set the specific assumption or guarantee.
Parameter Declarations are used to specify that a variable of
a specific data type may exist, but the concrete value has to be
defined by the realizing Contract Definition. This can be useful
for data arrays where the data points contained are individual
for each component.</p>
        <p>In the context of assumptions and guarantees, it is possible
for a Constraint Declaration to set expected data types. The
associated Constraint Definition must provide an expression
where the resulting data type equals one of the expected types.</p>
        <p>As we can see in Fig.2, we use the placeholders Variable
for parameters, DataType for data types, and Expression for
constraint expressions. These elements should be provided by
a suitable constraint language or referable by the language that
is used for the Constraint Definition expressions.</p>
      </sec>
      <sec id="sec-2-7">
        <title>2) Finite State Machine for Contracts: Single contracts are</title>
        <p>sometimes not adequate for representing extra-functional
properties. As we explain with our presentation in the following
Section IV, cases exist where the behavior of a component
including extra-functional properties - changes over time or
as a result of specific events. We thus expand the theory of
contract-based design and capture such differences concerning
contracts by applying the concept of a finite state machine.
The idea is to have a finite state machine, where the single
states may contain several currently valid contracts. The state
machine itself operates on parameters provided by the
environment or the internal states of a component.</p>
        <p>Fig.3 illustrates our proposed metamodel for such a state
machine. We again use the concept of declaration and
definition in order to separate the specification and actual instance
of a so-called contract state machine.</p>
      </sec>
      <sec id="sec-2-8">
        <title>A Contract State Machine Declaration constitutes allowed</title>
        <p>Contract Declarations, concrete parameters and declarations
of parameters which need to be defined by corresponding</p>
      </sec>
      <sec id="sec-2-9">
        <title>Contract State Machine Definitions.</title>
        <p>Parameters are supposed to be used by Contract State
Machine Events within constraint expressions, which trigger
transitions to other Contract State Machine States. Such a state
contains zero to infinite Contract Definitions.</p>
        <p>Again, the metamodel elements Variable, DataType and
Expression, refer to an arbitrary constraint language.</p>
        <p>The actual semantics of a contract state machine depends
on the target extra-functional properties and is determined by
convention. It may be that entering a state implies that only
those Contract Definitions it contains are valid. An alternative
convention would be, that all visited Contract Definitions are
valid except that a current Contract Definition overrides a
former visited one by using the same Contract Declaration.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>IV. USE CASE</title>
      <p>In this Section we show the application of our modeling
concepts as presented on an exemplary use case from the
automotive domain. First we give an overview of the target
component and system. After that, we apply contracts together
with a contract state machine. Finally, we discuss the use case
presented.</p>
      <sec id="sec-3-1">
        <title>A. Example - Electronic Steering Column Lock</title>
        <p>Fig.4 illustrates a simplified electronic steering column lock
(ESCL). Such locks are mandatory for cars in many countries.
The Electronic Control Unit (ECU) decides whether to lock
the steering column based on the input signals Key State and
Velocity. These signals may be transmitted by a CAN bus or
separate connections. If the ECU decides to lock the steering
column, an actuator is activated which inserts the bolt into the
steering column. Otherwise, the ECU decides to hold or eject
the bolt.</p>
        <p>There are several extra-functional properties which are
worth considering in a system of this kind. In the following, we
apply the modeling concepts presented for the extra-functional
properties safety and timing. In the safety context we capture
the data on whether the component ESCL is performing
normally, is in a failure state, or recovering from a failure
state. A failure state can be induced for instance by faulty
transmitted data or other misbehaving components. Further to
this we capture the data on how long it takes to execute the
lock or unlock mechanism in two separate contract definitions.</p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Declarations</title>
        <p>According to our metamodel concepts, the first step is to
specify general declarations for components. Such
declarations are known to contract checkers, interpreters or model
transformers in advance. Fig.5 illustrates declarations for a
component’s safety status and timing. Additionally, we specify
a contract state machine declaration that is used to capture the
behavior of a component in order to set valid contracts.</p>
        <p>The contract declaration Component Safety Status assumes
whether the component of interest is enabled and guarantees
a certain safety state to the environment. The available types
for this guarantee are restricted by the data type
SafetyStateEnum, which contains the literals NORMAL, FAILURE, and
RECOVER (not shown in Figure 5).</p>
        <p>The contract declaration Component Timing is used to
guarantee a specific execution time for certain assumed
environments. The parameters key state and velocity are provided
by the analysis environment. The boolean parameter key state
indicates whether the ignition system is activated (boolean
value true), while the parameter velocity states the current
speed of the car. A comprehensive contract declaration would
provide several other parameters, which may be obtained
for instance by a CAN bus or observed from the condition
of a system. The issue of which of these parameters are
actually used by the assumption Environment depends on the
component. When this assumption results in a boolean true,
the guarantee Execution Time becomes valid.</p>
        <p>Furthermore, contract definitions of these declarations can
be used by the single states of the contract state machine
Component Contract Behavior. Here again the parameters
contained are obtained by the analysis environment or transmitted
by the available connections. For instance, the parameter
component restart must be set by the analysis environment
or by the described component. These parameters are used
by a contract state machine definition in order to specify the
events for state transitions.</p>
      </sec>
      <sec id="sec-3-3">
        <title>C. Definitions</title>
        <p>We now present how the declarations from above are used.
Contract State Machine "Component ESCL Contract Behavior" : "Component Contract Behavior"
Parameter key_state = false
Parameter velocity = 0.0</p>
        <p>Normal
Contract "ESCL Normal"
Contract "ESCL Lock"</p>
        <p>Contract "ESCL Unlock"
Event: (key_state &amp;&amp; velocity &gt;= 0.0) ||
(not key_state &amp;&amp; velocity == 0.0)</p>
        <p>The initial state of this example is state Normal. Within this
state, we can guarantee the execution time in respect to the
locking and releasing mechanism. Furthermore, the contract
ESCL Normal determines the safety state NORMAL to the
environment. Whenever an abnormal event occurs such as
there is no key but the car is moving, the contract state machine
changes to the state Failure. In this state we cannot constitute
the execution time of the ECSL and the contract ESCL Safe
State becomes valid. After the component ESCL restarts, the
state machine changes to the state Repair, which is reflected
by the contract ESCL Recover. When the recover procedure
was successful, the state machine changes to the state Normal,
where the contained contracts become valid again, otherwise
the state machine switches back to state Failure.</p>
      </sec>
      <sec id="sec-3-4">
        <title>D. Discussion of the Use Case</title>
        <p>We have shown how our contract modeling features can be
used as presented on a simplified use case. It is imaginable
that this example can be further advanced to capture the target
and other extra-functional properties in more detail.</p>
        <p>Note that we do not capture the actual functional behavior
of the component ESCL. We rather use the functional behavior
of the environment in order to determine how the target
extrafunctional properties timing and safety status of the component
are changing and what guarantees are valid in that state. The
semantics of the contract state machine we present is such
that a new state invalidates the former visited contracts. The
assumptions and guarantees of the Contract Definitions must
be either automatically gathered by a measurement software
or issued by humans.</p>
        <p>Such a contract state machine can be used for two purposes.</p>
        <p>One purpose is that a system becomes analyzable in
advance, also with respect to composability. A model checker
could simulate such a system and calculate the different
expected safety states. Another model checker would be able
to estimate the overall timing of a system.</p>
        <p>The second purpose would be that a detection mechanism
observes and constitutes the single states during runtime of a
system and takes appropriate action based on predetermined
contracts.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>V. CONCLUSION AND FUTURE WORK</title>
      <p>In this paper, we presented concepts for modeling contracts
and showed in a use case how these concepts can be applied.</p>
      <p>The vision is to have a generic modeling language for
specifying contract types and contract instances. By using the
term generic we mean contracts that are suitable for at least a
substantial number of extra-functional properties.</p>
      <p>We introduced the concept of splitting a contract into a
declaration and a definition. For analysis purposes a specific
contract declaration would be known by a model checker or
code generator beforehand. It declares the available
parameters, assumptions and guarantees, while a contract definition
uses such a declaration to define the actual behavior of a target
extra-functional property.</p>
      <p>Event: not key_state &amp;&amp; velocity &gt; 0.0</p>
      <p>Contract "ESCL Safe State"
Event: not key_state &amp;&amp; velocity &gt; 0.0</p>
      <p>Repair
Contract "ESCL Recover"</p>
      <p>Failure
Event: component_restart
Contract "ESCL Normal" :
"Component Safety Status"
Assumption Enabled = true
Guarantee State = NORMAL</p>
      <p>Contract "ESCL Safe State" :
"Component Safety Status"
Assumption Enabled = true
Guarantee State = FAILURE</p>
      <p>Contract "ESCL Recover" :
"Component Safety Status"
Assumption Enabled = true
Guarantee State = RECOVER
Contract "ESCL Lock" : "Component Timing" TCiomnitnrga"ct "ESCL Unlock" : "Component
Assumption Environment = not key_state &amp;&amp; velocity == 0.0 Assumption Environment = key_state
Guarantee Execution Time = 100 ms Guarantee Execution Time = 80 ms</p>
      <p>Fig.6 illustrates a contract state machine definition which
sets the valid contract definitions according to the current state.
The parameters are realizations of the parameter declarations
declared by the contract state machine declaration Component
Contract Behavior and are initialized to default values.</p>
      <p>Furthermore, we introduced the concept of a contract state
machine which is basically a finite state machine where the
single states represent different contract definitions. This
concept is necessary, because a component may behave in
different ways depending on the input data, environment properties
or specific events. For instance, the timing of a component
may be different depending on its previous processed data. It
may also be different if the environment has changed. Such
changes may require different valid contracts.</p>
      <p>
        Concerning our future work, we are currently working
on a configurable constraint modeling language, inspired by
OCL [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], which we want to use for setting assumptions and
guarantees. The idea is to have a constraint language where
language elements, such as an if expression or a boolean
operation, can be disabled and is afterwards not usable by
an assumption or guarantee. This is useful, in our opinion, to
simplify the construction of contract checkers or interpreters,
because not all concepts of an expression language need to be
considered and handled properly. It would also provide a user
with direct feedback concerning what language elements are
allowed for use.
      </p>
      <p>
        Additionally, the presented modeling features for contracts
do not consider composition, refinement, and conjunction of
contracts as described theoretical by Benveniste et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. We
are still working on finding pragmatic and usable metamodel
solutions for these concepts.
      </p>
      <p>
        After building this in a form suited to our use case
metamodel for contract-based design, we are planning to develop a
thin generic UML profile [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] for contracts and contract state
machines.
      </p>
      <p>
        This profile will be aligned with the existing OMG
specifications MARTE [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] and SysML [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. As mentioned by Selic´
and Ge´rard [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], a natural complementarity exists between
these two profiles. We are of the view that a UML profile for
contract-based design would benefit from concepts such as the
physical types of MARTE or the constraint blocks of SysML.
Not using such existing and standardized modeling concepts
would be like reinventing the wheel.
      </p>
      <p>The advantages of such a UML profile for contracts could
be manifold. The most important one is, that it would allow
the rise of specialized analyzing tools of different vendors
which target single extra-functional properties. The input of
such tools would depend, in such an ideal ecosystem, on the
same UML profile for contract-based design.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>C.</given-names>
            <surname>Ebert</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Jones</surname>
          </string-name>
          , “Embedded Software: Facts, Figures, and Future,” Computer, vol.
          <volume>42</volume>
          , no.
          <issue>4</issue>
          ,
          <string-name>
            <surname>Apr</surname>
          </string-name>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>P.</given-names>
            <surname>Feiler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hansson</surname>
          </string-name>
          , D. de Niz, and L. Wrage, “
          <source>System Architecture Virtual Integration: An Industrial Case Study,” Software Engineering Institute</source>
          , Carnegie Mellon University, Pittsburgh, Pennsylvania, CMU/SEI2009-TR-
          <volume>017</volume>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <article-title>The Internet of Things: How Smart TVs</article-title>
          , Smart Cars,
          <source>Smart Homes, and Smart Cities Are Changing the World. Pearson Education</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Miorandi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sicari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>De Pellegrini</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Chlamtac</surname>
          </string-name>
          , “
          <article-title>Internet of things: Vision, applications</article-title>
          and research challenges,”
          <article-title>Ad Hoc Networks</article-title>
          , vol.
          <volume>10</volume>
          , no.
          <issue>7</issue>
          ,
          <string-name>
            <surname>Sep</surname>
          </string-name>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>I.</given-names>
            <surname>Crnkovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sentilles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Aneta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Chaudron</surname>
          </string-name>
          , “
          <article-title>A Classification Framework for Software Component Models,”</article-title>
          <source>IEEE Transactions on Software Engineering</source>
          , vol.
          <volume>37</volume>
          , no.
          <issue>5</issue>
          ,
          <string-name>
            <surname>Sep</surname>
          </string-name>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Sentilles</surname>
          </string-name>
          , P. Sˇteˇpa´n,
          <string-name>
            <given-names>J.</given-names>
            <surname>Carlson</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Crnkovic´</surname>
          </string-name>
          , “Integration of ExtraFunctional Properties in Component Models,” in
          <source>Component-Based Software Engineering</source>
          . Springer Berlin Heidelberg,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Benveniste</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Caillaud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Nickovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Passerone</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.-B. Raclet</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Reinkemeier</surname>
            ,
            <given-names>A. L.</given-names>
          </string-name>
          <string-name>
            <surname>Sangiovanni-Vincentelli</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Damm</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Henzinger</surname>
            , and
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Larsen</surname>
          </string-name>
          , “
          <article-title>Contracts for Systems Design</article-title>
          ,” INRIA, Rennes, France,
          <source>Tech. Rep.</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Sangiovanni-Vincentelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Damm</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Passerone</surname>
          </string-name>
          , “Taming Dr. Frankenstein:
          <article-title>Contract-Based Design for Cyber-Physical Systems,”</article-title>
          <source>European Journal of Control</source>
          , vol.
          <volume>18</volume>
          , no.
          <issue>3</issue>
          ,
          <string-name>
            <surname>Jan</surname>
          </string-name>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Jantsch</surname>
          </string-name>
          ,
          <source>Modeling Embedded Systems and SoCs: Concurrency and Time in Models of Computation</source>
          . San Francisco, Amsterdam: Morgan Kaufmann,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kajtazovic</surname>
          </string-name>
          , “
          <article-title>A Component-based Approach for Managing Changes in the Engineering of Safety-critical Embedded Systems,”</article-title>
          <source>Ph.D. dissertation</source>
          , Graz University of Technology,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>I.</given-names>
            <surname>Crnkovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Larsson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Preiss</surname>
          </string-name>
          , “
          <article-title>Concerning Predictability in Dependable Component-Based Systems: Classification of Quality Attributes,” in Architecting Dependable Systems III</article-title>
          . Springer Berlin Heidelberg,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Nuzzo</surname>
          </string-name>
          , Huan Xu,
          <string-name>
            <given-names>N.</given-names>
            <surname>Ozay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. B.</given-names>
            <surname>Finn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Sangiovanni-Vincentelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. M.</given-names>
            <surname>Murray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Donze</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Seshia</surname>
          </string-name>
          , “
          <article-title>A Contract-Based Methodology for Aircraft Electric Power System Design,” IEEE Access</article-title>
          , vol.
          <volume>2</volume>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Benveniste</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Caillaud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferrari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Mangeruca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Passerone</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Sofronis</surname>
          </string-name>
          , “
          <article-title>Multiple Viewpoint Contract-Based Specification</article-title>
          and Design,”
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>B.</given-names>
            <surname>Meyer</surname>
          </string-name>
          , “Applying 'design by contract',” Computer, vol.
          <volume>25</volume>
          , no.
          <issue>10</issue>
          ,
          <string-name>
            <surname>Oct</surname>
          </string-name>
          .
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Rajan</surname>
          </string-name>
          and T. Wahl, Eds., CESAR -
          <article-title>Cost-efficient Methods and Processes for Safety-relevant Embedded Systems</article-title>
          . Vienna: Springer Vienna,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Maasoumy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Nuzzo</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Sangiovanni-Vincentelli</surname>
          </string-name>
          , “
          <article-title>Smart Buildings in the Smart Grid: Contract-Based Design of an Integrated Energy Management System</article-title>
          ,”
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>P.</given-names>
            <surname>Nuzzo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sangiovanni-Vincentelli</surname>
          </string-name>
          ,
          <article-title>Xuening Sun, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Puggelli</surname>
          </string-name>
          , “
          <article-title>Methodology for the Design of Analog Integrated Interfaces Using Contracts,” IEEE Sensors Journal</article-title>
          , vol.
          <volume>12</volume>
          , no.
          <issue>12</issue>
          ,
          <string-name>
            <surname>Dec</surname>
          </string-name>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kajtazovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Preschern</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Ho¨ller, and C. Kreiner, “
          <article-title>ConstraintBased Verification of Compositions in Safety-Critical Component-Based Systems</article-title>
          ,” in Software Engineering, Artificial Intelligence,
          <article-title>Networking and Parallel/Distributed Computing, ser</article-title>
          .
          <source>Studies in Computational Intelligence</source>
          . Springer International Publishing,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>P.</given-names>
            <surname>Nuzzo</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Sangiovanni-Vincentelli</surname>
          </string-name>
          , “Lets Get Physical: Computer Science Meets Systems,” in From Programs to Systems.
          <source>The Systems perspective in Computing</source>
          . Springer Berlin Heidelberg,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>F.</given-names>
            <surname>Warg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Vedder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Skoglund</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Soderberg</surname>
          </string-name>
          , “
          <string-name>
            <surname>Safety</surname>
            <given-names>ADD</given-names>
          </string-name>
          :
          <article-title>A Tool for Safety-Contract Based Design</article-title>
          ,” in
          <source>2014 IEEE International Symposium on Software Reliability Engineering Workshops</source>
          , Nov.
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>O.</given-names>
            <surname>Bridal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Mader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Geven</surname>
          </string-name>
          , E. Schoitsch,
          <string-name>
            <given-names>H.</given-names>
            <surname>Martin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Larramendi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Aristimuno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fritsch</surname>
          </string-name>
          , E. Vaumorin,
          <string-name>
            <given-names>M.</given-names>
            <surname>Bordin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Solinas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Martelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Korago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Levcenkovs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Joakim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Land</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . So¨derberg, P. Conmy, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Illarramendi</surname>
          </string-name>
          , “
          <article-title>State-of-practice and state-of-the-art agreed over workgroup</article-title>
          ,
          <source>” Tech. Rep.</source>
          ,
          <year>2011</year>
          . [Online]. Available: http://www.safecer.eu/images/pdf/pSafeCern D1.
          <article-title>0</article-title>
          . 1StateOfThePracticeAndTheArt.pdf
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>Object</given-names>
            <surname>Management</surname>
          </string-name>
          <article-title>Group (OMG), “Object Constraint Language Version 2</article-title>
          .4,”
          <year>2014</year>
          . [Online]. Available: http://www.omg.org/spec/OCL/ 2.4/
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23] --, “Unified Modeling Language (UML),”
          <year>2015</year>
          . [Online]. Available: http://www.omg.org/spec/UML/Current
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24] --,
          <source>“UML Profile for MARTE: Modeling and Analysis of RealTime Embedded Systems Version</source>
          <volume>1</volume>
          .1,”
          <year>2011</year>
          . [Online]. Available: http://www.omg.org/spec/MARTE/
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25] --,
          <source>“OMG Systems Modeling Language (OMG SysML) Version</source>
          <volume>1</volume>
          .3,”
          <year>2012</year>
          . [Online]. Available: http://www.omg.org/spec/SysML/1.3/
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          ´ and
          <string-name>
            <surname>S.</surname>
          </string-name>
          <article-title>Ge´rard, Modeling and Analysis of Real-Time and Embedded Systems with UML and</article-title>
          MARTE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>