=Paper=
{{Paper
|id=Vol-2019/mdetools_4
|storemode=property
|title=A Scenario-based MDE Process for Developing Reactive Systems: A Cleaning Robot Example
|pdfUrl=https://ceur-ws.org/Vol-2019/mdetools_4.pdf
|volume=Vol-2019
|authors=Joel Greenyer,Daniel Gritzner,Jianwei Shi,Eric Wete
|dblpUrl=https://dblp.org/rec/conf/models/GreenyerGSW17
}}
==A Scenario-based MDE Process for Developing Reactive Systems: A Cleaning Robot Example==
A Scenario-based MDE Process for Developing
Reactive Systems: A Cleaning Robot Example
Joel Greenyer, Daniel Gritzner, Jianwei Shi, Eric Wete
Software Engineering Group,
Leibniz Universität Hannover, Hannover, Germany
greenyer@inf.uni-hannover.de, daniel.gritzner@inf.uni-hannover.de
Abstract—This paper presents the S CENARIO T OOLS solution SML in particular supports the modeling of environment
for developing a cleaning robot system, an instance of the rover assumptions in the form of assumption scenarios. They de-
problem of the MDE Tools Challenge 2017. We present an scribe what will or will not happen in the environment or
MDE process that consists of (1) the modeling of the system
behavior as a scenario-based assume-guarantee specification with how the environment, in turn, will react to system actions.
SML (Scenario Modeling Language), (2) the formal realizability- Modeling such assumptions is essential for systems that con-
checking and verification of the specification, (3) the generation trol processes in the physical world, such as robot control
of SBP (Scenario-Based Programming) Java code from the software. Also, SML supports the modeling of systems with
SML specification, and, finally, (4) adding platform-specific code dynamic topologies, which are systems where the component
to connect specification-level events with platform-level sensor-
and actuator-events. The resulting code can be executed on properties and relationships change at runtime and influence
a RaspberryPi-based robot. The approach is suited for devel- on how the components interact. SML supports dynamic role
oping reactive systems with multiple cooperating components. bindings and intergration with graph transformations for this
Its strength is that the scenario-based modeling corresponds purpose [3] (the latter will not be the focus here).
closely to how humans conceive and communicate behavioral
requirements. SML in particular supports the modeling of S CENARIO T OOLS supports an MDE process called SBDP
environment assumptions and dynamic component structures. (Scenario-Based Development Process). It consists of the
The formal checks ensure that the system satisfies its specification. following steps, also see Fig. 1:
I. I NTRODUCTION 1) Modeling the system structure and behavior: The struc-
Software-intensive systems often consist of multiple coop- ture, i.e., the systen and environment components, their
erating reactive components. This is also the case for the chal- properties and relationships, is modeled using a class di-
lenge problems of the MDE Tools Challenge 2017: the ’Rover’ agram; the behavior is specified by an SML assume/guar-
and the ’Intelligent House’. Such systems provide increasingly antee specification that refers to that system structure
rich functionality in order to meet growing customer needs. model.
Therefore, developing correct software for these systems is 2) Realizability-checking and verifying the specification:
a difficult challenge, especially due to the distributed and S CENARIO T OOLS implements a formal synthesis algo-
concurrent nature of the systems’ software. rithm that checks whether a strategy exists for the system
Model-Driven Engineering tools support engineers by of- to react to any sequence of environment events in such
fering problem-specific and platform-independent modeling a way that the specification will be satisfied. If this
languages, along with a systematic and automated process of is not the case, the specification is unrealizable and
deriving platform-specific, executable code. If the modeling the algorithm produces a counter-strategy (similar to
languages have a precise semantics, formal analysis can help a counter-example in model checking) that helps the
analyze the system design and identify problems early and on engineer understand the specification flaw. The algorithm
a problem-specific level. can also verify whether implementation code, as created
S CENARIO T OOLS offers such an MDE approach for the in the next step, will satisfy the specification.
development of distributed reactive systems. It supports the 3) Code generation: S CENARIO T OOLS provides a Scenario-
scenario-based modeling via the Scenario Modeling Language Based Programming (SBP) framework that reflects the
(SML), a textual variant of Live Sequence Charts (LSCs) [1], SML concepts in Java; for example. scenarios are pro-
[2]. SML and LSCs model the behavior of a system as a grammed by extending special scenario classes. Their
set of separate scenarios that each describe how the system execution results in a play-out of the scenarios. This
components may, must, or must not react to external events. also works in a distributed setting, where components
The resulting specifications are executable via the play-out communicate over a network. S CENARIO T OOLS can au-
algorithm [2], which enables early validation by simulation, tomatically translate SML into SBP code. Notably, also
and even executing the scenarios as the actual implementation assumption scenarios are translated into SBP scenarios;
of the system. they monitor whether the environment satisfies the as-
specification III. S CENARIO -BASED S PECIFICATION
SML Specification 1 analysis: 2
Assumption
Assumption Guarantee
Guarantee (a) Check An SML specification defines how objects in an object
Assumption Guarantee
Scenario
Scenario
Scenario
⇒ Scenario
Scenario
Scenario
realizability
(b) Verify play-out
model must interact by sending messages. We consider
executability synchronous communication where the sending and receiving
SML-to-SBP 3 4 of a message is a single message event. A message
SBP Program Platform-
Sensors/Actuators/UI
has one sending and one receiving object and it refers
specific
Platform
monitoring execution to an operation or property defined for the receiving
functions
Assumption
Assumption Guarantee
Guarantee object. When referring to a property, a message event
Assumption Guarantee Platform-
Scenario
Scenario Scenario
Scenario has a side-effect on that property value for the receiving
Scenario Scenario specific
functions object, such as adding/removing elements from a list (e.g.
rManager→rManager.dirtyRooms.add(dirtyableRoom))
Fig. 1. Scenario-based Design Process (SBDP) illustration or setting a property value
(robotCtrl→robotCtrl.setMoving(true)). A run of a system
is an infinite sequence of message events and object model
sumptions (run-time assumption validation).
configurations that evolve from an initial object model due to
4) Extension with platform-specific code: Code is added
message events side-effects.
to bridge problem-specific events in the specification to
The object model is partitioned into controllable (system)
platform-specific sensor and actuator events. Example: In
objects and uncontrollable (environment) objects. A message
the specification it may be natural to describe an event
event is a (controllable) system event if sent by a system object
robot enters room. On the platform, this involves inferring
and an (uncontrollable) environment event otherwise.
information from multiple sensors. Such a logic may itself
An SML specification defines the valid runs of a system
be a complex reactive subsystem; then it can also be
by a set of assumption- and guarantee scenarios. Guarantee
implemented in SBP or by applying the process here.
scenarios describe how system objects may, must, or must
In this paper, we describe SBDP by the example of a clean- not react to environment events; assumption scenarios describe
ing robot system (our variant of the Rover challenge problem) what may, will, or will not happen in the environment, or how
(Sect. III). We show parts of the SML specification, give a brief the environment may, will, or will not react to system events.
explanation of play-out and the formal checks (Sect. IV), and A run satisfies an SML specification if it satisfies all guarantee
explain the generated SBP code (Sect. V). We also describe scenarios or violates at least one assumption scenario.
some platform-specific functions required to execute on a Listing 1 shows parts of the SML specification of the
RaspberryPi-based robot (Pi2Go) (Sect. VI). Last, we overview cleaning robot system. An SML specification refers to a
related work (Sect. VII) and conclude (Sect. VIII). domain class model (line 5) that describes a set of possible
The SBDP approach appears also in [4], but with a different object models for which the specification models the behavior.
example. The contribution of this paper is demonstrating In this example, the class model defines rooms, robots, their
SBDP for the development of mobile robot system for com- software controller, and the robot manager. For execution and
parison in the MDE Tools Challenge 2017 workshop. analysis, an initial object model, for example one as shown in
Fig. 2, must be provided in an external configuration.
II. C HALLENGE P ROBLEM : A VACUUM C LEANER ROBOT In line 7, the specification defines controllable objects by
S YSTEM listing their classes in a corresponding section. All other
As an example, we consider a vacuum cleaning robot system objects are environment objects.
where robots move between rooms in a given layout. Figure 2 The non-spontaneous events section (line 9) lists events that
shows a simple layout with three rooms and one robot. Some we assume cannot happen spontaneously, but only when an
rooms are equipped with dirt sensors that notify a central robot assumption scenario specifies that they can happen. In this
manager when a room gets dirty. The robot manager then example, rooms can become dirty spontaneously, but a robot’s
orders a robot to start moving and cleaning. When moving, the room only changes when the robot was ordered to move.
robot’s battery discharges and it has to recharge at a charging The remaining specification consists of scenarios that can
station before it runs out of charge. be organized in collaborations. A collaboration defines roles,
which represent interacting objects. In this case, all scenarios
robot are grouped in one collaboration.
manager A scenario specifies what are valid sequences of message
dirt sensor room03 room01 dirt sensor room02
events and object model conditions. Message events are mod-
eled as scenario messages. A scenario message refers to a
robot charging station dirty
sending and a receiving role, an operation or property defined
by the receiving role’s class, and possibly message parameter
expressions.
Fig. 2. Vacuum cleaner robot system sketch, simple 3-room topology 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.
1 import "vacuumrobot.ecore"
line 26). The active copy of the scenario progresses as further 2
message events occur that match the subsequent messages in 3 specification VacuumrobotSpecification {
4
the context of the previously determined role bindings. 5 domain vacuumrobotmodel // class model
6
The messages can have different modalities such as strict, 7 controllable { VacuumRobotManager VacuumRobotController }
urgent, or eventually. When the scenario progresses to these 8
9 non-spontaneous events { VacuumRobotController.setRoom
messages—we say that they become enabled—the modalities VacuumRobotController.setCharge}
10
influence what may, must, and must not happen next. When a 11 collaboration VacuumrobotCollaboration {
12
scenario proceeds to a strict message, it means that no message 13 static role VacuumRobotManager rManager
event must occur that corresponds to a message in the same 14 dynamic role DirtyableRoom dirtyableRoom
15 dynamic role Room room
scenario that is not currently enabled. When an urgent system 16 dynamic role VacuumRobot robot
17 dynamic multi role VacuumRobotController robotCtrl
message is enabled, it means that a corresponding message 18
event must occur before the next environment event occurs. 19 guarantee scenario
RobotManagerAddsDirtyRoomToListAndSelectsRobot{
When an eventually message is enabled, a corresponding mes- 20 dirtyableRoom->rManager.dirtDetected
21 strict urgent rManager->rManager.dirtyRooms.add(dirtyableRoom)
sage event must occur eventually. Violations of the eventually 22 strict urgent rManager->rManager.orderRobotToCleanRoom(
rManager.vacuumRobotControllers.any())
modality are called liveness violations, violations of the strict 23 }
and urgent modalities are safety violations. 24
25 guarantee scenario EventuallyCleanDirtyRoom{
A scenario can also specify wait, interrupt, and violation 26 rManager->rManager.dirtyRooms.add(bind dirtyableRoom)
27 wait eventually [!rManager.dirtyRooms.contains(dirtyableRoom)]
conditions. When an active scenario progresses to an interrupt 28 }
condition that evaluates to true, the active scenario terminates; 29
30 guarantee scenario RobotManagerOrdersRobotToCleanRoom{
otherwise it progresses immediately. When the active scenario 31 rManager->rManager.orderRobotToCleanRoom(bind robotCtrl)
32 strict urgent rManager->robotCtrl.startMoving()
reaches a wait condition that evaluates to false, the active 33 }
34
scenario does not progress until the condition renders true; 35 guarantee scenario MoveRobotWhenOrderedTo
when it evaluates to true, it immediately progresses beyond 36 bindings [ robot = robotCtrl.robot ]{
37 rManager->robotCtrl.startMoving()
it. Wait conditions can have the eventually modality, meaning 38 interrupt [robotCtrl.moving]
39 var Room currentRoom = robotCtrl.room
that the condition must become true eventually (otherwise, this 40 strict urgent robotCtrl->robot.moveToAdjacentRoom(currentRoom.
is again a liveness violation). If an active scenario progresses 41
adjacentRooms.any())
strict urgent robotCtrl->robotCtrl.setMoving(true)
to a violation condition that evaluates to true, this is a safety 42 }
43
violation. 44 guarantee scenario RobotMustEventuallyRecharge{
45 robot->robotCtrl.setCharge(*)
Example scenarios explained: The RobotManagerAdds- 46 wait eventually [robotCtrl.charge == robot.maxCharge]
DirtyRoomToListAndSelectsRobot scenario specifies that 47 }
48
when a room is reported as being dirty, the robot manager 49 guarantee scenario RobotMustNotRunOutOfCharge{
50 robot->robotCtrl.setCharge(*)
must add the room to a list of dirty rooms and select any of 51 violation [robotCtrl.charge <= 0]
its associated robots, resp. their controllers, for cleaning it. The 52
53
}
// further guarantee scenarios ...
scenario RobotManagerOrdersRobotToCleanRoom speci- 54
55 assumption scenario RobotArrivesInRoom {
fies that after selecting a robot controller, the robot manager 56 robotCtrl->robot.moveToAdjacentRoom(bind room)
57 var Room currentRoom = robotCtrl.room
must signal that robot controller to start moving the robot. 58 interrupt [!currentRoom.adjacentRooms.contains(room)]
The EventuallyCleanDirtyRoom scenario specifies that once 59 eventually robot->robotCtrl.arrivedInRoom(room)
60 }
a robot manager registers a room in a list of dirty rooms, this 61
62 assumption scenario RobotDischargesOrRecharges {
room must eventually be removed from that list. The scenario 63 robot->robotCtrl.arrivedInRoom(bind room)
MoveRobotWhenOrderedTo specifies that after a robot is 64
65
alternative [room.hasChargingStation]{
strict committed robot->robotCtrl.setCharge(robot.maxCharge)
ordered to move, the robot must move to any of the adjacent 66 } or [!room.hasChargingStation]{
67 strict committed robot->robotCtrl.setCharge(
rooms. The any in the parameter expression means that one of 68 robotCtrl.charge-1)
69 }
the adjacent rooms of the robot’s current room can be selected 70 }
non-deterministically. How the robot should select a route to 71 // further assumption scenarios ...
72 }
the next dirty room is not specified in this scenario—it is often
desirable during the early design to under-specify in such a Listing 1. Part of the vacuum robot system SML specification
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 1 public class RobotManagerOrdersRobotToCleanRoomScenario extends
that when a robot is ordered to move to an adjacent room, 2
VacuumrobotCollaboration {
and only if the room is really adjacent to its current room, 3 @Override
4 protected void registerAlphabet() {
it will eventually arrive in that room. The scenario Robot- 5 setBlocked(rManager, rManager, "orderRobotToCleanRoom",
6 RANDOM);
DischargesOrRecharges specifies the assumption that the 7 setBlocked(rManager, robotCtrl, "startMoving");
robot’s battery will discharge when moving to a next room, 8 }
9
and it will be recharged if it moves to a room with a charging 10 @Override
11 protected void initialisation() {
station. 12 addInitializingMessage(new Message(rManager, rManager,
13 "orderRobotToCleanRoom", RANDOM));
14 }
IV. P LAY- OUT, R EALIZABILITY C HECKING , V ERIFICATION 15
16 @Override
The play-out algorithm defines an execution semantics for 17 protected void body() throws Violation {
18 robotCtrl.setBinding((VacuumRobotController) getLastMessage().
SML specifications. In brief, it works as follows: Initially, the getParameters().get(0));
system waits for environment events to occur. When an en- 19 request(STRICT, rManager, robotCtrl, "startMoving");
20 }
vironment event occurs that activates or progresses guarantee 21 }
scenarios such a way that urgent or eventually system mes- Listing 2. SBP code for the RobotManagerOrdersRobotToClean-
sages are enabled, the system non-deterministically chooses Room scenario
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 V. S CENARIO -BASED P ROGRAMMING (SBP)
messages until there are no more enabled system messages S CENARIO T OOLS provides the SBP framework in which
marked as urgent or eventually. Then the system waits for scenarios specifications can be programmed in a way that is
the next environment event and the process is repeated. We very similar to SML. SBP builds on the Behavioral Program-
assume that the system is fast enough to execute any finite ming for Java framework, BPJ [6]. A BPJ program consists
number of message events before the next environment event of a collection of collaborating BThreads. Scenarios can be
occurs. S CENARIO T OOLS supports an interactive play-out of programmed in SBP by extending a special scenario BThread
the SML specification, which can be used for validation. class, and SBP adds certain BThreads so that the scenario
Moreover, S CENARIO T OOLS is capable of building a graph BThreads are executed according to the play-out algorithm.
of all possible play-out executions. In that graph, edges are SBP is suitable for programming scenarios manually, but
labeled with environment and system message events; the it is also a convenient target for code generation from SML.
structure can be viewed as an infinite two-player game, played Listing 2 shows the SBP scenario generated from the Robot-
by the system against the environment. The system wins the ManagerOrdersRobotToCleanRoom scenario. The class
game if, no matter what environment events the environment overrides different methods from a scenario superclass: the
chooses, the system can chose system events in such a way registerAlphabet method registers all messages appearing in
that the resulting path corresponds to a run that satisfies the scenario. The initialisation method registers the messages
the specification. If this is not the case, the specification is upon which an instance of the scenario BThread will be
unrealizable and must be fixed. The game is a GR(1) game that started. The body method implements the scenario behavior
S CENARIO T OOLS solves by an implementation of the GR(1) after the occurrence of the first message. Here, a role binding
game algorithm by Chatterjee et al. [5]. If the specification must be performed based on a parameter that was carried by
is realizable, the algorithm produces a strategy of how the the initializing message event. A call of the request method
system can satisfy the specification; if the specification is makes the BThread yield and hand over different message
unrealizable, the algorithm produces a counter-strategy of how events to the play-out event selection mechanism. For more
the environment can always force a violation. The counter- details, see [4], [7].
strategy helps understand the specification flaw.
If the specification is realizable, but the strategy identifies VI. P LATFORM -S PECIFIC E XTENSION
that not all system moves in the play-out graph are winning, it The SBP code from the example can be executed in
means that during play-out, the system may make choices that a distributed setting, where the robot controller runs on a
do not lead to a valid run. For example, when the cleaning RaspberryPi-based robot (Pi2Go) that mimics a cleaning robot,
robot is in room 01, and room 02 gets dirty, but the robot and the robot manager runs on a different computer, both
only moves between room 01 and room 03, the dirty room communicating via MQTT. The Pi2Go moves on a grid that
may never be cleaned. In such a case, the specification can be represents the room layou, see Fig. 3. The dirtDetected events
refined, for example as explained before, in order to constrain can be injected via a GUI. moveToAdjacentRoom events
the system choices, so that each play-out choice is winning. are translated into commands that make the robot turn and
When this property is satisfied, we can generate SBP code follow a line to the next ’room’. When the robot arrives at the
from the SML specification, which will then perform a play- next ’room’, another platform-specific component translates
out of the specification that is guaranteed to satisfy the the sensor inputs into arrivedInRoom and setCharge events.
specification. See the demo video here: https://youtu.be/VsSbueeIVYk.
R EFERENCES
[1] W. Damm and D. Harel, “LSCs: Breathing life into message sequence
charts,” in Formal Methods in System Design, vol. 19, 2001, pp. 45–80.
[2] D. Harel and R. Marelly, Come, Let’s Play: Scenario-Based Program-
ming Using LSCs and the Play-Engine. Springer, 2003.
[3] J. Greenyer, D. Gritzner, G. Katz, and A. Marron, “Scenario-based mod-
eling and synthesis for reactive systems with dynamic system structure in
ScenarioTools,” in Proceedings of the MoDELS 2016 Demo and Poster
Fig. 3. The RaspberryPi robot in action Sessions, co-located with ACM/IEEE 19th International Conference on
Model Driven Engineering Languages and Systems (MoDELS 2016),
J. de Lara, P. J. Clarke, and M. Sabetzadeh, Eds., vol. 1725. CEUR,
VII. R ELATED W ORK 2016, pp. 16–32.
[4] J. Greenyer, D. Gritzner, F. König, J. Dahlke, J. Shi, and E. Wete,
Harel and Maoz describe a mapping from LSCs to AspectJ “From scenario modeling to scenario programming for reactive systems
(S2A) for play-out [8]. It is similar to SBP, but SBP scenario with dynamic topology,” in Proceedings of ESEC/FSE’17, Paderborn,
threads resemble the SML scenarios more closely than the Germany, September 4-8, 2017 (to appear). ACM, 2017.
[5] K. Chatterjee, W. Dvorák, M. Henzinger, and V. Loitzenbauer, “Con-
AspectJ code. Also, no extension exists for the distributed ditionally Optimal Algorithms for Generalized Büchi Games,” in 41st
execution of S2A code. International Symposium on Mathematical Foundations of Computer
Other MDE tools for designing reactive systems exist, Science (MFCS 2016), ser. Leibniz International Proceedings in Infor-
matics (LIPIcs), P. Faliszewski, A. Muscholl, and R. Niedermeier, Eds.,
but most use component- and state-based models, such as vol. 58. Dagstuhl, Germany: Schloss Dagstuhl–Leibniz-Zentrum fuer
MechatronicUML [9], UML-RT resp. Papyrus-RT [10], Mat- Informatik, 2016, pp. 25:1–25:15.
lab Simulink Stateflow, or the P language [11]. [6] D. Harel, A. Marron, and G. Weiss, “Behavioral programming,” Comm.
ACM, vol. 55, no. 7, pp. 90–100, 2012.
VIII. C ONCLUSION [7] F. W. H. König, “Szenariobasierte Programmierung und verteilte
Ausführung in Java,” Master’s Thesis, Leibniz Universität Hannover,
a) Strengths:: The main strength of the approach is the Software Engineering Group, 2017. [Online]. Available: http://jgreen.
requirements-aligned nature of the modeling: engineers can de/wp-content/documents/msc-theses/2017/Koenig2017.pdf
[8] S. Maoz, D. Harel, and A. Kleinbort, “A compiler for multimodal
formally model the behavior similar to use case scenarios. scenarios: Transforming lscs into aspectj,” ACM Trans. Softw. Eng.
Scenarios can be added to add behavior as well as restrict Methodol., vol. 20, no. 4, pp. 18:1–18:41, Sep. 2011.
previous behavior. Moreover, the scenarios specify the inter- [9] D. Schubert, C. Heinzemann, and C. Gerking, “Towards safe exe-
cution of reconfigurations in cyber-physical systems,” in 2016 19th
action of components rather than describing the behavior of International ACM SIGSOFT Symposium on Component-Based Software
each of the components. Further strengths are: Engineering (CBSE), April 2016, pp. 33–38.
• The formal realizability checking and verification that it [10] N. Kahani, N. Hili, J. R. Cordy, and J. Dingel, “Evaluation of uml-rt
and papyrus-rt for modelling self-adaptive systems,” in Proceedings of
supports. the 9th International Workshop on Modelling in Software Engineering,
• The assumption validation at run-time (assumption sce- ser. MISE ’17. Piscataway, NJ, USA: IEEE Press, 2017, pp. 12–18.
nario monitoring). [11] A. Desai, I. Saha, J. Yang, S. Qadeer, and S. A. Seshia, “Drona: A
framework for safe distributed mobile robotics,” in Proceedings of the
• The distributed execution capabilities. 8th International Conference on Cyber-Physical Systems, ser. ICCPS
• Support for systems with dynamic topology ’17. New York, NY, USA: ACM, 2017, pp. 239–248.
[12] C. Brenner, J. Greenyer, and W. Schäfer, “On-the-fly synthesis of
b) Weaknesses:: The flexible modeling with overlapping scarcely synchronizing distributed controllers from scenario-based spec-
behavior aspects spread across many scenarios has the problem ifications,” in Fundamental Approaches to Software Engineering (FASE
that detecting and understanding specification flaws can be 2015), ser. Lecture Notes in Computer Science, A. Egyed and I. Schae-
fer, Eds. Springer, 2015, vol. 9033, pp. 51–65.
difficult. However, the same problem arises also when using [13] D. Gritzner and J. Greenyer, “Controller synthesis and PCL code gen-
informal use-cases and scenarios—then the problem is only eration from scenario-based GR(1) robot specifications,” in Proceedings
worse, because no automated checks can help find them early. of the The 4th International Workshop on Model-driven Robot Software
Engineering, STAF 2017, Marburg, Germany (to appear), 2017.
Further weaknesses are:
• Currently, only the generation of SBP Java code is A PPENDIX
supported. The concepts, however, can also be mapped See a demo video here: https://youtu.be/VsSbueeIVYk.
to C++ code. S CENARIO T OOLS can be installed following the setup in-
• The SBP code relies on the play-out algorithm where
structions: http://scenariotools.org/downloads/download/.
active scenarios are run as separate threads that coordi- The example project is located in https://bitbucket.org/
nate for event-selection. This creates memory and time jgreenyer/scenariotools-sml-examples/src//org.scenariotools.
overhead, which may be critical for applications where examples.sbp.vacuumrobotv2/?at=master (Import to Eclipse
hardware resources are sparse. We propose alternative runtime workspace mentioned in the above setup instructions.)
approaches in this case [12], [13].
• Currently, S CENARIO T OOLS supports no real-time con-
straint in SML, but a previous tool version shows how
real-time constraints can be integrated [12].
Acknowledgments:: This work is funded by the German
Israeli Foundation for Scientific Research and Development
(GIF), grant No. 1258.