<!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>A Scenario-based MDE Process for Developing Reactive Systems: A Cleaning Robot Example</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Joel Greenyer</string-name>
          <email>greenyer@inf.uni-hannover.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Gritzner</string-name>
          <email>daniel.gritzner@inf.uni-hannover.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jianwei Shi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Eric Wete Software Engineering Group</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Leibniz Universita ̈t Hannover</institution>
          ,
          <addr-line>Hannover</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-This paper presents the SCENARIOTOOLS solution for developing a cleaning robot system, an instance of the rover problem of the MDE Tools Challenge 2017. We present an MDE process that consists of (1) the modeling of the system behavior as a scenario-based assume-guarantee specification with SML (Scenario Modeling Language), (2) the formal realizabilitychecking and verification of the specification, (3) the generation of SBP (Scenario-Based Programming) Java code from the SML specification, and, finally, (4) adding platform-specific code to connect specification-level events with platform-level sensorand actuator-events. The resulting code can be executed on a RaspberryPi-based robot. The approach is suited for developing reactive systems with multiple cooperating components. Its strength is that the scenario-based modeling corresponds closely to how humans conceive and communicate behavioral requirements. SML in particular supports the modeling of environment assumptions and dynamic component structures. The formal checks ensure that the system satisfies its specification.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>Software-intensive systems often consist of multiple
cooperating reactive components. This is also the case for the
challenge problems of the MDE Tools Challenge 2017: the ’Rover’
and the ’Intelligent House’. Such systems provide increasingly
rich functionality in order to meet growing customer needs.
Therefore, developing correct software for these systems is
a difficult challenge, especially due to the distributed and
concurrent nature of the systems’ software.</p>
      <p>Model-Driven Engineering tools support engineers by
offering problem-specific and platform-independent modeling
languages, along with a systematic and automated process of
deriving platform-specific, executable code. If the modeling
languages have a precise semantics, formal analysis can help
analyze the system design and identify problems early and on
a problem-specific level.</p>
      <p>
        SCENARIOTOOLS offers such an MDE approach for the
development of distributed reactive systems. It supports the
scenario-based modeling via the Scenario Modeling Language
(SML), a textual variant of Live Sequence Charts (LSCs) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. SML and LSCs model the behavior of a system as a
set of separate scenarios that each describe how the system
components may, must, or must not react to external events.
The resulting specifications are executable via the play-out
algorithm [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], which enables early validation by simulation,
and even executing the scenarios as the actual implementation
of the system.
      </p>
      <p>
        SML in particular supports the modeling of environment
assumptions in the form of assumption scenarios. They
describe what will or will not happen in the environment or
how the environment, in turn, will react to system actions.
Modeling such assumptions is essential for systems that
control processes in the physical world, such as robot control
software. Also, SML supports the modeling of systems with
dynamic topologies, which are systems where the component
properties and relationships change at runtime and influence
on how the components interact. SML supports dynamic role
bindings and intergration with graph transformations for this
purpose [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] (the latter will not be the focus here).
      </p>
      <p>SCENARIOTOOLS supports an MDE process called SBDP
(Scenario-Based Development Process). It consists of the
following steps, also see Fig. 1:
1) Modeling the system structure and behavior: The
structure, i.e., the systen and environment components, their
properties and relationships, is modeled using a class
diagram; the behavior is specified by an SML
assume/guarantee specification that refers to that system structure
model.
2) Realizability-checking and verifying the specification:
SCENARIOTOOLS implements a formal synthesis
algorithm that checks whether a strategy exists for the system
to react to any sequence of environment events in such
a way that the specification will be satisfied. If this
is not the case, the specification is unrealizable and
the algorithm produces a counter-strategy (similar to
a counter-example in model checking) that helps the
engineer understand the specification flaw. The algorithm
can also verify whether implementation code, as created
in the next step, will satisfy the specification.
3) Code generation: SCENARIOTOOLS provides a
ScenarioBased Programming (SBP) framework that reflects the
SML concepts in Java; for example. scenarios are
programmed by extending special scenario classes. Their
execution results in a play-out of the scenarios. This
also works in a distributed setting, where components
communicate over a network. SCENARIOTOOLS can
automatically translate SML into SBP code. Notably, also
assumption scenarios are translated into SBP scenarios;
they monitor whether the environment satisfies the
as</p>
      <p>Assumpptitoionn
AAssssuummption</p>
      <p>Scenario
SScceennario
ario
⇒</p>
      <p>GGGuuauarararanantneteteeee</p>
      <p>Scenaarrioio</p>
      <p>SScceennario</p>
      <p>SML-to-SBP
SBP Program
sumptions (run-time assumption validation).
4) Extension with platform-specific code: Code is added
to bridge problem-specific events in the specification to
platform-specific sensor and actuator events. Example: In
the specification it may be natural to describe an event
robot enters room. On the platform, this involves inferring
information from multiple sensors. Such a logic may itself
be a complex reactive subsystem; then it can also be
implemented in SBP or by applying the process here.</p>
      <p>In this paper, we describe SBDP by the example of a
cleaning robot system (our variant of the Rover challenge problem)
(Sect. III). We show parts of the SML specification, give a brief
explanation of play-out and the formal checks (Sect. IV), and
explain the generated SBP code (Sect. V). We also describe
some platform-specific functions required to execute on a
RaspberryPi-based robot (Pi2Go) (Sect. VI). Last, we overview
related work (Sect. VII) and conclude (Sect. VIII).</p>
      <p>
        The SBDP approach appears also in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], but with a different
example. The contribution of this paper is demonstrating
SBDP for the development of mobile robot system for
comparison in the MDE Tools Challenge 2017 workshop.
II. CHALLENGE PROBLEM: A VACUUM CLEANER ROBOT
      </p>
      <p>SYSTEM</p>
      <p>As an example, we consider a vacuum cleaning robot system
where robots move between rooms in a given layout. Figure 2
shows a simple layout with three rooms and one robot. Some
rooms are equipped with dirt sensors that notify a central robot
manager when a room gets dirty. The robot manager then
orders a robot to start moving and cleaning. When moving, the
robot’s battery discharges and it has to recharge at a charging
station before it runs out of charge.</p>
      <p>robot
manager
dirt sensor
room03</p>
      <p>room01 dirt sensor
robot
charging station
room02
dirty</p>
      <p>An SML specification defines how objects in an object
model must interact by sending messages. We consider
synchronous communication where the sending and receiving
of a message is a single message event. A message
has one sending and one receiving object and it refers
to an operation or property defined for the receiving
object. When referring to a property, a message event
has a side-effect on that property value for the receiving
object, such as adding/removing elements from a list (e.g.
rManager!rManager.dirtyRooms.add(dirtyableRoom))
or setting a property value
(robotCtrl!robotCtrl.setMoving(true)). A run of a system
is an infinite sequence of message events and object model
configurations that evolve from an initial object model due to
message events side-effects.</p>
      <p>The object model is partitioned into controllable (system)
objects and uncontrollable (environment) objects. A message
event is a (controllable) system event if sent by a system object
and an (uncontrollable) environment event otherwise.</p>
      <p>An SML specification defines the valid runs of a system
by a set of assumption- and guarantee scenarios. Guarantee
scenarios describe how system objects may, must, or must
not react to environment events; assumption scenarios describe
what may, will, or will not happen in the environment, or how
the environment may, will, or will not react to system events.
A run satisfies an SML specification if it satisfies all guarantee
scenarios or violates at least one assumption scenario.</p>
      <p>Listing 1 shows parts of the SML specification of the
cleaning robot system. An SML specification refers to a
domain class model (line 5) that describes a set of possible
object models for which the specification models the behavior.
In this example, the class model defines rooms, robots, their
software controller, and the robot manager. For execution and
analysis, an initial object model, for example one as shown in
Fig. 2, must be provided in an external configuration.</p>
      <p>In line 7, the specification defines controllable objects by
listing their classes in a corresponding section. All other
objects are environment objects.</p>
      <p>The non-spontaneous events section (line 9) lists events that
we assume cannot happen spontaneously, but only when an
assumption scenario specifies that they can happen. In this
example, rooms can become dirty spontaneously, but a robot’s
room only changes when the robot was ordered to move.</p>
      <p>The remaining specification consists of scenarios that can
be organized in collaborations. A collaboration defines roles,
which represent interacting objects. In this case, all scenarios
are grouped in one collaboration.</p>
      <p>A scenario specifies what are valid sequences of message
events and object model conditions. Message events are
modeled as scenario messages. A scenario message refers to a
sending and a receiving role, an operation or property defined
by the receiving role’s class, and possibly message parameter
expressions.</p>
      <p>When a message event occurs in the system that matches
the first message in a scenario, an active copy of the scenario
is created and the sending and receiving roles are bound
to the sending and receiving objects of the message event.
Further roles appearing in the scenario must be bound based
on binding expressions (e.g. line 36) or they are bound to
objects referenced as parameters by the message event (e.g.
line 26). The active copy of the scenario progresses as further
message events occur that match the subsequent messages in
the context of the previously determined role bindings.</p>
      <p>The messages can have different modalities such as strict,
urgent, or eventually. When the scenario progresses to these
messages—we say that they become enabled—the modalities
influence what may, must, and must not happen next. When a
scenario proceeds to a strict message, it means that no message
event must occur that corresponds to a message in the same
scenario that is not currently enabled. When an urgent system
message is enabled, it means that a corresponding message
event must occur before the next environment event occurs.
When an eventually message is enabled, a corresponding
message event must occur eventually. Violations of the eventually
modality are called liveness violations, violations of the strict
and urgent modalities are safety violations.</p>
      <p>A scenario can also specify wait, interrupt, and violation
conditions. When an active scenario progresses to an interrupt
condition that evaluates to true, the active scenario terminates;
otherwise it progresses immediately. When the active scenario
reaches a wait condition that evaluates to false, the active
scenario does not progress until the condition renders true;
when it evaluates to true, it immediately progresses beyond
it. Wait conditions can have the eventually modality, meaning
that the condition must become true eventually (otherwise, this
is again a liveness violation). If an active scenario progresses
to a violation condition that evaluates to true, this is a safety
violation.</p>
      <p>Example scenarios explained: The
RobotManagerAddsDirtyRoomToListAndSelectsRobot scenario specifies that
when a room is reported as being dirty, the robot manager
must add the room to a list of dirty rooms and select any of
its associated robots, resp. their controllers, for cleaning it. The
scenario RobotManagerOrdersRobotToCleanRoom
specifies that after selecting a robot controller, the robot manager
must signal that robot controller to start moving the robot.
The EventuallyCleanDirtyRoom scenario specifies that once
a robot manager registers a room in a list of dirty rooms, this
room must eventually be removed from that list. The scenario
MoveRobotWhenOrderedTo specifies that after a robot is
ordered to move, the robot must move to any of the adjacent
rooms. The any in the parameter expression means that one of
the adjacent rooms of the robot’s current room can be selected
non-deterministically. How the robot should select a route to
the next dirty room is not specified in this scenario—it is often
desirable during the early design to under-specify in such a
way, when a concrete solution has not yet been decided upon.
The behavior can be refined by adding further scenarios that,
for example, select a next rooms from a list of rooms that was
computed as the shortest path to a dirty room. (Details are
omitted for brevity.)
The assumption scenario RobotArrivesInRoom specifies
that when a robot is ordered to move to an adjacent room,
and only if the room is really adjacent to its current room,
it will eventually arrive in that room. The scenario
RobotDischargesOrRecharges specifies the assumption that the
robot’s battery will discharge when moving to a next room,
and it will be recharged if it moves to a room with a charging
station.</p>
      <p>IV. PLAY-OUT, REALIZABILITY CHECKING, VERIFICATION</p>
      <p>The play-out algorithm defines an execution semantics for
SML specifications. In brief, it works as follows: Initially, the
system waits for environment events to occur. When an
environment event occurs that activates or progresses guarantee
scenarios such a way that urgent or eventually system
messages are enabled, the system non-deterministically chooses
a corresponding system message for execution, as long as
it is not blocked by another active guarantee scenario, i.e.,
would lead to a safety-violation. The system can send further
messages until there are no more enabled system messages
marked as urgent or eventually. Then the system waits for
the next environment event and the process is repeated. We
assume that the system is fast enough to execute any finite
number of message events before the next environment event
occurs. SCENARIOTOOLS supports an interactive play-out of
the SML specification, which can be used for validation.</p>
      <p>
        Moreover, SCENARIOTOOLS is capable of building a graph
of all possible play-out executions. In that graph, edges are
labeled with environment and system message events; the
structure can be viewed as an infinite two-player game, played
by the system against the environment. The system wins the
game if, no matter what environment events the environment
chooses, the system can chose system events in such a way
that the resulting path corresponds to a run that satisfies
the specification. If this is not the case, the specification is
unrealizable and must be fixed. The game is a GR(1) game that
SCENARIOTOOLS solves by an implementation of the GR(1)
game algorithm by Chatterjee et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. If the specification
is realizable, the algorithm produces a strategy of how the
system can satisfy the specification; if the specification is
unrealizable, the algorithm produces a counter-strategy of how
the environment can always force a violation. The
counterstrategy helps understand the specification flaw.
      </p>
      <p>If the specification is realizable, but the strategy identifies
that not all system moves in the play-out graph are winning, it
means that during play-out, the system may make choices that
do not lead to a valid run. For example, when the cleaning
robot is in room 01, and room 02 gets dirty, but the robot
only moves between room 01 and room 03, the dirty room
may never be cleaned. In such a case, the specification can be
refined, for example as explained before, in order to constrain
the system choices, so that each play-out choice is winning.</p>
      <p>When this property is satisfied, we can generate SBP code
from the SML specification, which will then perform a
playout of the specification that is guaranteed to satisfy the
specification.</p>
      <p>
        SCENARIOTOOLS provides the SBP framework in which
scenarios specifications can be programmed in a way that is
very similar to SML. SBP builds on the Behavioral
Programming for Java framework, BPJ [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. A BPJ program consists
of a collection of collaborating BThreads. Scenarios can be
programmed in SBP by extending a special scenario BThread
class, and SBP adds certain BThreads so that the scenario
BThreads are executed according to the play-out algorithm.
      </p>
      <p>
        SBP is suitable for programming scenarios manually, but
it is also a convenient target for code generation from SML.
Listing 2 shows the SBP scenario generated from the
RobotManagerOrdersRobotToCleanRoom scenario. The class
overrides different methods from a scenario superclass: the
registerAlphabet method registers all messages appearing in
the scenario. The initialisation method registers the messages
upon which an instance of the scenario BThread will be
started. The body method implements the scenario behavior
after the occurrence of the first message. Here, a role binding
must be performed based on a parameter that was carried by
the initializing message event. A call of the request method
makes the BThread yield and hand over different message
events to the play-out event selection mechanism. For more
details, see [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>VI. PLATFORM-SPECIFIC EXTENSION</title>
      <p>The SBP code from the example can be executed in
a distributed setting, where the robot controller runs on a
RaspberryPi-based robot (Pi2Go) that mimics a cleaning robot,
and the robot manager runs on a different computer, both
communicating via MQTT. The Pi2Go moves on a grid that
represents the room layou, see Fig. 3. The dirtDetected events
can be injected via a GUI. moveToAdjacentRoom events
are translated into commands that make the robot turn and
follow a line to the next ’room’. When the robot arrives at the
next ’room’, another platform-specific component translates
the sensor inputs into arrivedInRoom and setCharge events.</p>
      <p>See the demo video here: https://youtu.be/VsSbueeIVYk.</p>
    </sec>
    <sec id="sec-3">
      <title>VII. RELATED WORK</title>
      <p>
        Harel and Maoz describe a mapping from LSCs to AspectJ
(S2A) for play-out [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. It is similar to SBP, but SBP scenario
threads resemble the SML scenarios more closely than the
AspectJ code. Also, no extension exists for the distributed
execution of S2A code.
      </p>
      <p>
        Other MDE tools for designing reactive systems exist,
but most use component- and state-based models, such as
MechatronicUML [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], UML-RT resp. Papyrus-RT [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ],
Matlab Simulink Stateflow, or the P language [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
    </sec>
    <sec id="sec-4">
      <title>VIII. CONCLUSION</title>
      <p>a) Strengths:: The main strength of the approach is the
requirements-aligned nature of the modeling: engineers can
formally model the behavior similar to use case scenarios.
Scenarios can be added to add behavior as well as restrict
previous behavior. Moreover, the scenarios specify the
interaction of components rather than describing the behavior of
each of the components. Further strengths are:</p>
      <p>The formal realizability checking and verification that it
supports.</p>
      <p>The assumption validation at run-time (assumption
scenario monitoring).</p>
    </sec>
    <sec id="sec-5">
      <title>The distributed execution capabilities.</title>
      <p>Support for systems with dynamic topology
b) Weaknesses:: The flexible modeling with overlapping
behavior aspects spread across many scenarios has the problem
that detecting and understanding specification flaws can be
difficult. However, the same problem arises also when using
informal use-cases and scenarios—then the problem is only
worse, because no automated checks can help find them early.</p>
    </sec>
    <sec id="sec-6">
      <title>Further weaknesses are: Currently, only the generation of SBP Java code is supported. The concepts, however, can also be mapped to C++ code.</title>
      <p>
        The SBP code relies on the play-out algorithm where
active scenarios are run as separate threads that
coordinate for event-selection. This creates memory and time
overhead, which may be critical for applications where
hardware resources are sparse. We propose alternative
approaches in this case [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        Currently, SCENARIOTOOLS supports no real-time
constraint in SML, but a previous tool version shows how
real-time constraints can be integrated [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>Acknowledgments:: This work is funded by the German
Israeli Foundation for Scientific Research and Development
(GIF), grant No. 1258.</p>
    </sec>
    <sec id="sec-7">
      <title>APPENDIX</title>
      <p>See a demo video here: https://youtu.be/VsSbueeIVYk.</p>
      <p>SCENARIOTOOLS can be installed following the setup
in</p>
      <p>The example project is located in https://bitbucket.org/
runtime workspace mentioned in the above setup instructions.)</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>W.</given-names>
            <surname>Damm</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Harel</surname>
          </string-name>
          , “
          <article-title>LSCs: Breathing life into message sequence charts,” in Formal Methods in System Design</article-title>
          , vol.
          <volume>19</volume>
          ,
          <year>2001</year>
          , pp.
          <fpage>45</fpage>
          -
          <lpage>80</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Harel</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Marelly</surname>
          </string-name>
          , Come,
          <article-title>Let's Play: Scenario-Based Programming Using LSCs and the Play-Engine</article-title>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Greenyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Gritzner</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Katz, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Marron</surname>
          </string-name>
          , “
          <article-title>Scenario-based modeling and synthesis for reactive systems with dynamic system structure in ScenarioTools,” in Proceedings of the MoDELS 2016 Demo and Poster Sessions, co-located with</article-title>
          <source>ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems (MoDELS</source>
          <year>2016</year>
          ), J. de Lara,
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Clarke</surname>
          </string-name>
          , and M. Sabetzadeh, Eds., vol.
          <volume>1725</volume>
          .
          <string-name>
            <surname>CEUR</surname>
          </string-name>
          ,
          <year>2016</year>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Greenyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Gritzner</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>Ko¨nig</article-title>
          , J. Dahlke,
          <string-name>
            <given-names>J.</given-names>
            <surname>Shi</surname>
          </string-name>
          , and E. Wete, “
          <article-title>From scenario modeling to scenario programming for reactive systems with dynamic topology,”</article-title>
          <source>in Proceedings of ESEC/FSE'17</source>
          , Paderborn, Germany, September 4-
          <issue>8</issue>
          ,
          <year>2017</year>
          (to appear).
          <source>ACM</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>K.</given-names>
            <surname>Chatterjee</surname>
          </string-name>
          , W. Dvora´k, M. Henzinger, and
          <string-name>
            <given-names>V.</given-names>
            <surname>Loitzenbauer</surname>
          </string-name>
          , “
          <article-title>Conditionally Optimal Algorithms for Generalized Bu¨chi Games,”</article-title>
          <source>in 41st International Symposium on Mathematical Foundations of Computer Science (MFCS</source>
          <year>2016</year>
          )
          <article-title>, ser</article-title>
          . Leibniz International Proceedings in Informatics (LIPIcs),
          <string-name>
            <given-names>P.</given-names>
            <surname>Faliszewski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Muscholl</surname>
          </string-name>
          , and R. Niedermeier, Eds., vol.
          <volume>58</volume>
          . Dagstuhl, Germany: Schloss
          <string-name>
            <surname>Dagstuhl-Leibniz-Zentrum fuer Informatik</surname>
          </string-name>
          ,
          <year>2016</year>
          , pp.
          <volume>25</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          :
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Harel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marron</surname>
          </string-name>
          , and G. Weiss, “Behavioral programming,
          <source>” Comm. ACM</source>
          , vol.
          <volume>55</volume>
          , no.
          <issue>7</issue>
          , pp.
          <fpage>90</fpage>
          -
          <lpage>100</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>F. W. H.</given-names>
            <surname>Ko</surname>
          </string-name>
          <article-title>¨nig, “Szenariobasierte Programmierung und verteilte Ausfu¨hrung in Java,”</article-title>
          <source>Master's Thesis</source>
          , Leibniz Universita¨t Hannover, Software Engineering Group,
          <year>2017</year>
          . [Online]. Available: http://jgreen. de/wp-content/documents/msc-theses/
          <year>2017</year>
          /Koenig2017.pdf
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Maoz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Harel</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Kleinbort</surname>
          </string-name>
          , “
          <article-title>A compiler for multimodal scenarios: Transforming lscs into aspectj</article-title>
          ,
          <source>” ACM Trans. Softw. Eng. Methodol.</source>
          , vol.
          <volume>20</volume>
          , no.
          <issue>4</issue>
          , pp.
          <volume>18</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
          :
          <fpage>41</fpage>
          ,
          <string-name>
            <surname>Sep</surname>
          </string-name>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>D.</given-names>
            <surname>Schubert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Heinzemann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Gerking</surname>
          </string-name>
          , “
          <article-title>Towards safe execution of reconfigurations in cyber-physical systems</article-title>
          ,
          <source>” in 2016 19th International ACM SIGSOFT Symposium on Component-Based Software Engineering (CBSE)</source>
          ,
          <year>April 2016</year>
          , pp.
          <fpage>33</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kahani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Hili</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Cordy</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Dingel</surname>
          </string-name>
          , “
          <article-title>Evaluation of uml-rt and papyrus-rt for modelling self-adaptive systems</article-title>
          ,”
          <source>in Proceedings of the 9th International Workshop on Modelling in Software Engineering</source>
          , ser.
          <source>MISE '17</source>
          .
          <string-name>
            <surname>Piscataway</surname>
          </string-name>
          , NJ, USA: IEEE Press,
          <year>2017</year>
          , pp.
          <fpage>12</fpage>
          -
          <lpage>18</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Desai</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Saha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Qadeer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Seshia</surname>
          </string-name>
          , “
          <article-title>Drona: A framework for safe distributed mobile robotics</article-title>
          ,”
          <source>in Proceedings of the 8th International Conference on Cyber-Physical Systems, ser. ICCPS '17</source>
          . New York, NY, USA: ACM,
          <year>2017</year>
          , pp.
          <fpage>239</fpage>
          -
          <lpage>248</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>C.</given-names>
            <surname>Brenner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Greenyer</surname>
          </string-name>
          , and W. Scha¨fer, “
          <article-title>On-the-fly synthesis of scarcely synchronizing distributed controllers from scenario-based specifications,” in Fundamental Approaches to Software Engineering (FASE 2015), ser</article-title>
          . Lecture Notes in Computer Science,
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          and I. Schaefer, Eds. Springer,
          <year>2015</year>
          , vol.
          <volume>9033</volume>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>65</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>D.</given-names>
            <surname>Gritzner</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Greenyer</surname>
          </string-name>
          , “
          <article-title>Controller synthesis and PCL code generation from scenario-based GR(1) robot specifications</article-title>
          ,”
          <source>in Proceedings of the The 4th International Workshop on Model-driven Robot Software Engineering, STAF</source>
          <year>2017</year>
          , Marburg, Germany (to appear),
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>