<!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>Controlling a virtual rover using AutoFOCUS3</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Levi Lu´ cio</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sudeep Kanav</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Bayha</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Johannes Eder</string-name>
          <email>ederg@fortiss.org</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>fortiss GmbH Guerickestraße 25 80805 Mu ̈nchen</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>AUTOFOCUS3 (AF3) is a mature model-driven engineering environment for developing software for embedded systems. For the past 20 years, several versions of AF3 have served as a platform for experimenting with cutting edge research ideas in Model-Driven Development. AF3 is a tool that fully encompasses the software lifecycle, from requirements, to architecture, simulation, deployment, code generation and verification. In this article we describe how we used an existing model of a complex controller for a real-life miniature vehicle and have downsized and adapted it to control a rover in a virtual environment. The model we present here automates the maneuvering of a rover to follow another leader rover in a virtual environment, while keeping a safe distance to it. The controller operates by adapting the rover's speed and steering according to the position and movements of the leader. The results we present in this article illustrate the whole development cycle of an embedded system using AF3, from the development of the model down to deployment to a specific platform as well as code generation and connecting to the hardware.</p>
      </abstract>
      <kwd-group>
        <kwd>Modelling Environment</kwd>
        <kwd>Embedded Systems</kwd>
        <kwd>Deployment</kwd>
        <kwd>Code Generation</kwd>
        <kwd>Controller</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        AUTOFOCUS3 is a model-based development (MBD) environment for embedded
systems, based on the Focus theory [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Focus is a framework encompassing
computations supported by the notion of streams (“in particular untimed, timed and
timesynchronous streams” [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]). The current version of AF3 follows a string of earlier
prototypes [
        <xref ref-type="bibr" rid="ref16 ref4">4, 16</xref>
        ] started in 1996 [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Existing literature on AF3 reports on particular
aspects of the tool [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref20 ref24 ref25 ref5">5, 10–12, 20, 24, 25</xref>
        ], or on its application in the context of industrial
case studies [
        <xref ref-type="bibr" rid="ref13 ref14 ref15 ref4 ref6 ref7">4, 6, 7, 13–15</xref>
        ]. More information about current state of the AF3-related
research can be found in the official site of the tool1. AF3 can be freely downloaded
and is open-source.
      </p>
      <p>AF3’s goal is to demonstrate the feasibility and applicability of MBD tooling
approaches. The idea behind AF3 embraces seamless integration of all models throughout
the development process, encompassing requirements engineering on initial stage,
system modeling at a high level of abstraction, deployment and model simulation. AF3</p>
    </sec>
    <sec id="sec-2">
      <title>1 https://af3.fortiss.org/</title>
      <p>also comprises formal verification and testing. Being an open source tool with a 6
months release period, AF3 embodies a study tool for proving scientific concepts and
methods which have been tested via industrial case studies.</p>
      <p>
        In the context of domain-specific software development, there are several approaches
to system modeling. The first of those is characterized by starting from a general (non
platform-specific) model and proceed by transforming this model into specialized one.
In this approach, domain specific languages are built by restricting a universal language
(such as the UML) and incarnated as development tools. This is the “Model-Driven
Architecture” concept and is represented by such tools as Enterprise Architect [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] or
Papyrus [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. AF3 embodies a “bottom-up” approach, which aims at guiding the
modeler until full creation of a domain-specific model. In comparison with the former
approach, AF3 follows the domain-specific modeling philosophy, where only the strictly
required concepts are developed into tools while starting from a blank slate. The goal is
to minimize the possibility of error by enforcing, as much as possible,
correctness-byconstruction. Additionally, AF3 is built on top of an extensible kernel which constitutes
a base for further development. Examples of other tools that follow AF3’s “bottom-up”
approach are Sirius [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] or JetBrains’ MPS [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        Tools that resemble AF3 in purpose are Enterprise Architect [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], Papyrus [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
UML Designer [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], Sirius [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], JetBrains’ MPS [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], mbeddr [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] or Simulink [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
Although space does not allow elaborating on the differences between these tools and
AF3, our tool is, to the best of our knowledge, the only open-source model-driven tool
that supports the whole embedded-software development cycle in an out-of-the-box,
easily installable package. AF3 includes support for requirements engineering, formal
verification, deployment or domain space exploration cases natively (among other
features), which we have not found in combined in one unique package in other tools.
      </p>
      <p>
        In this paper we explain how we have developed an AF3 model to operate a rover in
a virtual environment in a way that it follows another leader rover that advances freely,
while always keeping a safe distance to it. “Sensor” data regarding the position of the
rover in front and the distance between the two rovers is provided by the environment.
The rover has access to its own position and angle of movement and should constantly
adjust its speed and angle by directing power to the wheels (turning implies
asymetrically providing power to the left and right wheels). The virtual environment the rover
functions on is part of the MDE tool challenge proposed by the MDE Tools workshop
at the MODELS 2018 conference [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>The paper is organized as follows. In section 2 we provide a high level description
of a controller built in AF3 for a physical car in the context of a lab course offered at
the Technical University of Munich. Section 3 then describes how we have adapted the
Adaptive Cruise Control component built during the lab courses to serve the purpose
of following the leader. In section 4 we explain how we have deployed the model and
generated C code for the controller. Section section 5 concludes.</p>
      <sec id="sec-2-1">
        <title>Controlling a physical vehicle with AUTOFOCUS3</title>
        <p>The model that we developed for the MDE tool challenge is based on a larger model,
that was originally created in the context of a lab course at Technical University
Munich. Two subsequent courses involving 10 students built not only the logical model for
the vehicle, but also the hardware platform of a car in a scale of 1:10. An important
requirement for this vehicle was a high level of realism. Accordingly, a professional
platform with a realistic Ackermann steering and electrical all wheel drive was chosen
and configured in such a way that the driving dynamics correspond to a realistic car. A
picture of the vehicle is shown in Figure 1.
The model that the students developed in the first lab course implemented basic
driving functionalities such as steering, braking, accelerating, gear shifting and
different drive modes, as well as two driver assistance functions for emergency braking and
adaptive cruise control. The second lab course extended this outcome with lane
keeping as well as vehicle2vehicle communication and platooning. Our main interest in the
development of such a vehicle was to show the applicability of model-based
development by using our tool AUTOFOCUS3 on the one hand, and on the other hand to come
up with a software architecture for future (semi-) autonomous cars. The general
question we addressed was how (semi-) autonomous functionality can be integrated into a
software architecture of a car, using a model-based approach. The current state of the
architecture is shown in Figure 2 and is given as a means to illustrate the complexity of
the model of the controller developed by the students.</p>
        <p>For the MDE tool challenge we used the Adaptive Cruise Control (ACC) part of
the model, highlighted in Figure 2. Because of the component based approach of AF3,
we were able to reuse the component which realized this function and adapt it to the
challenge by developing against the component’s interface. Although we kept that part
of the functionality that adapts the distance to the leader rover, we had to incorporate in
the model new capabilities to allow automatic steering in order to implement the “follow
the leader” requirement. Naturally, we also had to adapt the inputs and the outputs of
the component to the data provided and expected by the virtual environment.
3</p>
      </sec>
      <sec id="sec-2-2">
        <title>Controlling the virtual rover</title>
        <p>In Figure 3 we depict the top-level model of the controller for the follower vehicle. The
controller is meant to operate in a loop by reading the distance to the leader rover, the
GPS coordinates of the leader (LeaderPosition) and the rover’s own (RoverPosition)
GPS coordinates as well as its own orientation with respect to the north (RoverAngle).
Note that the inputs to the model appear in Figure 3 as small black circles, while the
outputs have the same shape but are white. The power provided to the wheels is constantly
updated to reflect the changes in the input values to the controller.</p>
        <p>The controller for the virtual rover is composed by three AF3 components, as
explained in the next sections.
3.1</p>
        <sec id="sec-2-2-1">
          <title>Component StraightPower</title>
          <p>The StraightPower component is responsible for calculating the required forward power
based on the distance to the leader.</p>
          <p>This component is composed of two components as shown in Figure 4. The
component CalculateDistanceError calculates the error with respect to the ideal distance
with the leader. For the proposed challenge, the follower was required to remain in the
distance range between 12 and 15 from the leader. We have thus taken the ideal distance
as the average of these two values, i.e. 13.5. This is a constant and can be easily changed
to allow for different ranges.</p>
          <p>We then use this error and feed it to a PID controller for calculating the power to be
directed forward. The general equation for a PID controller is:
u = KP e + KI I + KDD
(1)
, where KP ; KI and KD are the parameters of the controller, e is the error with the
desired value, I is the integral - summation of the previous errors, and D the differential
- difference with the last error.</p>
          <p>For calculating the forward power we have used the following constant values:
KP = 5, KI = 1:5, KD = 30.</p>
          <p>Fig. 2. The AF3 Model developed by the Students to Control a Physical Vehicle
The rover turns when the left and right wheels rotate at different speeds. The magnitude
of the difference is proportional to the turning angle.</p>
          <p>When the leader turns the follower also has to turn in order to follow the leader.
In order to achieve this the RotationalDifferential component calculates the required
difference between the power applied to the right and the left wheel to turn the rover to
provide the correct turning angle.</p>
          <p>The component bearingAngle calculates the bearing of the leader with respect to
north when seen from the follower. This calculation uses the GPS positions of the
follower and the leader. We then calculate the angleError i.e., the difference between the
orientation of the follower (with respect to north) and the bearing angle. This angleError
is then passed onto another PID controller in order to calculate the required difference
in power sent to the rover’s right and left wheels. The sign of this value decides the
direction of the turning.</p>
          <p>The constants used of the PID controller (equation 1) for calculating the rotational
differential are: KP = 2, KI = 0:75, KD = 10.
3.3</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>Component CalculateFinalPower</title>
          <p>The CalculateFinalPower component takes the forward power and rotational
differential, and outputs the final power to apply to the right and left wheels. In addition to
calculating the values for the right and left power, the component also normalizes the
amount of power provided in case the calculated value exceeds the maximum.</p>
          <p>
            The environment of the rover challenge proposed by the MDETools workshop
provides at the end of a run of the system, which lasts one minute, the percentage of time
during which the rover was within the expected distance limits. The system we
developed consistently stays within these limits over 70% of the runs we have attempted.
Although we have not tuned the values of the PID controller further, we believe even
better results could be achieved. The AF3 models we have used for the challenge can
be downloaded at [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]. For readers interested in further experimentation, instructions
accompanying the model provide the steps on how to install and deploy the software.
4
          </p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>Deployment and code generation</title>
        <p>After the model is built, it needs to be deployed on an architecture. For the real rover
mentioned in section 2 the architecture is a Raspberry Pi that can connect to the sensors
and actuators of the device.</p>
        <p>The virtual rover simulation environment used in the context of this article
communicates using TCP ports. Additionally, the signals flowing from the virtual environment
and back are different from the ones for the real rover. For instance, the real rover
accepts target speed as input and the hardware of the rover itself controls engine power
(using an embedded PID controller) in order to attain such a speed and maintain it. The
virtual rover expects that power to the wheels is provided as a means to attain a certain
speed.</p>
        <p>AF3 provides a generic, non-device specific architecture for deployment, as shown
in Figure 6. Additionally, the ports of the ECU need to be mapped to the logical ports
of the controller of the model we have defined in section 3, as depicted in figure 7.</p>
        <p>Deploying onto an architecture provides the skeleton of an interface that declares
the signatures of the methods used by the controller logic to communicate with the
device underneath. When the architecture is fully defined, the code with for gluing
with the device can also be automatically generated. For our work we have deployed
onto a generic architecture as a means to automatically generate the structure of our
controller’s communication infrastructure as C2 code. The logic corresponding to the
model we have presented in section 2 is also generated as C code and is meant to run in
a loop with the controlled device, in this case the virtual rover.</p>
        <p>The C code that is generated for the generic architecture only provides the interface
for the functions that read the sensors and send commands on the actuators of the virtual</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>2 Besides C, AF3 also allows the generating JAVA code.</title>
      <p>Fig. 6. A Generic ECU for the Virtual Rover Controller
environment. Because of that, a manual step of coding such methods and connecting the
controller with the virtual environment via TCP was additionally necessary to connect
the controller to the rover and to finalize the deployment of the model onto the hardware.
5</p>
      <sec id="sec-3-1">
        <title>Conclusion</title>
        <p>We have presented in this article the lifecycle of the development of a controller for
a virtual rover, based on a controller for a real vehicle developed at lab courses given
by us. Our experience points to the fact that AF3 is a sufficiently mature environment
for developing embedded systems, in particular controllers. The facilities for generating
code for a specific platform (in our case a generic one) make life for the developer of
embedded code simple, as the communication infrastructure with the underlying
hardware can be fully automated. We have observed this advantage when we, in the course
of the lab courses, deployed the code generated from models directly to Raspberry Pis,
without any need for further customization. Additionally, the modularity enforced by
AF3 makes it easy to reuse parts of projects. We found that the copy/paste facilities of
AF3 are very helpful in that respect.</p>
        <p>We have certainly encountered editing issues with AF3’s editor while building the
model for the challenge, but they were minor and the modelling experience was very
slighted affected by them. The calibration of controllers such as the one we present
in this paper also poses a problem, as it is mostly only possible once the hardware is
in the loop with the generated code. AF3 does not provide a basic infrastructure for
calibration (although a prototypical version of such an infrastructure does exist). In
practice, we have observed that a significant amount of time still needs to be devoted to
making sure the parameters of the controller are well configured.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <article-title>AF3 model used in the MDETools 2018 challenge</article-title>
          . http://download.fortiss. org/public/MDETools2018/model-and
          <article-title>-instructions_AF3</article-title>
          .zip.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. MDETools Workshop Website. https://mdetools.github.io/mdetools18/,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <article-title>Papyrus user guide</article-title>
          .
          <source>The Eclipse Foundation</source>
          . https://wiki.eclipse.org/ Papyrus_User_Guide,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>V.</given-names>
            <surname>Aravantinos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Voss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Teufl</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>Ho¨lzl, and</article-title>
          <string-name>
            <given-names>B.</given-names>
            <surname>Scha</surname>
          </string-name>
          <article-title>¨tz. AutoFOCUS 3: Tooling concepts for seamless, model-based development of embedded systems</article-title>
          .
          <source>In Proc. 8th Int. MODELS Workshop Model-based Archit. Cyber-physical Embed. Syst. (ACES-MB '15)</source>
          , pages
          <fpage>19</fpage>
          -
          <lpage>26</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>S.</given-names>
            <surname>Barner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Diewald</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Eizaguirre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vasilevskiy</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Chauvel</surname>
          </string-name>
          .
          <article-title>Building productlines of mixed-criticality systems</article-title>
          .
          <source>In Proc. Forum Specif. Des. Lang. (FDL</source>
          <year>2016</year>
          ), Bremen, Germany, Sept.
          <year>2016</year>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>S.</given-names>
            <surname>Barner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Diewald</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Migge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Syed</surname>
          </string-name>
          , G. Fohler, M. Fauge`re, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Gracia</surname>
          </string-name>
          <article-title>Pe´rez. DREAMS toolchain: Model-driven engineering of mixed-criticality systems</article-title>
          .
          <source>In Proc. ACM/IEEE 20th Int.Conf. Model Driven Eng. Lang. Syst. (MODELS '17)</source>
          , pages
          <fpage>259</fpage>
          -
          <lpage>269</lpage>
          . IEEE,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. W. Bo¨hm,
          <string-name>
            <given-names>M.</given-names>
            <surname>Junker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vogelsang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Teufl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pinger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Rahn</surname>
          </string-name>
          .
          <article-title>A formal systems engineering approach in practice: An experience report</article-title>
          .
          <source>In Proc. 1st Int. Workshop Software Engineering Research and Industrial Practices</source>
          , pages
          <fpage>34</fpage>
          -
          <lpage>41</lpage>
          , New York, NY, USA,
          <year>2014</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>S.</given-names>
            <surname>Bonnet</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Brun</surname>
          </string-name>
          . Sirius:
          <article-title>Your custom modeling environment made easy</article-title>
          , at last!.
          <source>EclipseCon</source>
          . http://www.eclipse.org/sirius/doc/,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>M.</given-names>
            <surname>Broy</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Stølen</surname>
          </string-name>
          .
          <source>Specification and Development of Interactive Systems: Focus on Streams, Interfaces, and Refinement</source>
          . Springer,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.</given-names>
            <surname>Campetelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>Ho¨lz, and</article-title>
          <string-name>
            <given-names>P.</given-names>
            <surname>Neubeck</surname>
          </string-name>
          .
          <article-title>User-friendly model checking integration in modelbased development</article-title>
          .
          <source>In Proc. 24th Int. Conf. Comput. Appl. Ind. Eng. (CAINE</source>
          <year>2011</year>
          ). ISCA,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>C. Caˆrlan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Barner</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Diewald</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Tsalidis</surname>
            , and
            <given-names>S. Voss.</given-names>
          </string-name>
          <article-title>ExplicitCase: Integrated modelbased development of system and safety cases</article-title>
          .
          <source>In Proc. SAFECOMP Workshops (ASSURE '17)</source>
          , pages
          <fpage>52</fpage>
          -
          <lpage>63</lpage>
          . Springer,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>A.</given-names>
            <surname>Diewald</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Voss</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Barner</surname>
          </string-name>
          .
          <article-title>A lightweight design space exploration and optimization language</article-title>
          .
          <source>In Proc. 19th Int. Workshop Softw. Compil. Embed. Syst. (SCOPES '16)</source>
          , pages
          <fpage>190</fpage>
          -
          <lpage>193</lpage>
          . ACM,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>J. Eder</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Zverlov</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Voss</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Khalil</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ipatiov</surname>
          </string-name>
          .
          <article-title>Bringing DSE to life: exploring the design space of an industrial automotive use case</article-title>
          .
          <source>In Proc. ACM/IEEE 20th Int.Conf. Model Driven Eng. Lang. Syst. (MODELS '17)</source>
          , pages
          <fpage>270</fpage>
          -
          <lpage>280</lpage>
          . IEEE, Sept.
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>M. Feilkas</surname>
            ,
            <given-names>F. a. P. F.</given-names>
          </string-name>
          <string-name>
            <surname>Ho</surname>
          </string-name>
          <article-title>¨lzl</article-title>
          , S. Rittmann, B. Scha¨tz, W. Schwitzer,
          <string-name>
            <given-names>W.</given-names>
            <surname>Sitou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Spichkova</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Trachtenherz</surname>
          </string-name>
          .
          <article-title>A refined top- down methodology for the development of automotive software systems: The keylessentry system case study</article-title>
          .
          <source>Technical Report TUM-I1103</source>
          , Technische Universita¨t Mu¨nchen,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>M. Feilkas</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Fleischmann</surname>
            , F. Ho¨lzl, C. Pfaller,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Scheidemann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Spichkova</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Trachtenherz</surname>
          </string-name>
          .
          <article-title>A top-down methodology for the development of automotive software</article-title>
          .
          <source>Technical Report TUM-I0902</source>
          , Technische Universita¨t Mu¨nchen,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>F.</given-names>
            <surname>Ho</surname>
          </string-name>
          <article-title>¨lzl and M. Feilkas. AutoFOCUS 3: A scientific tool prototype for model-based development of component-based, reactive, distributed systems</article-title>
          .
          <source>In Proc. 2007 Int. Dagstuhl Conf. Model-based Eng. Embed. Real-time Syst. (MBEERTS'07)</source>
          , pages
          <fpage>317</fpage>
          -
          <lpage>322</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>F.</given-names>
            <surname>Huber</surname>
          </string-name>
          , B. Scha¨tz,
          <string-name>
            <given-names>A.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Spies</surname>
          </string-name>
          .
          <article-title>Autofocus - a tool for distributed systems specification</article-title>
          .
          <source>In Proc. Formal Tech. Real-Time Fault-Tolerant Syst. (FTRTFT'96)</source>
          , pages
          <fpage>467</fpage>
          -
          <lpage>470</lpage>
          . Springer,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. itemis. mbeddr
          <year>2017</year>
          .
          <article-title>2.0</article-title>
          . http://mbeddr.com/,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. JetBrains.
          <source>Meta Programming Systems. MPS 2017</source>
          .
          <article-title>Tutorials Formatted by Space2Latex from the MPS wiki</article-title>
          <year>2017</year>
          -
          <volume>08</volume>
          -02. http://www.eclipse.org/sirius/doc/,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. L.
          <article-title>Lu´cio, S. bin</article-title>
          <string-name>
            <surname>Abid</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Rahman</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Aravantinos</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Kuestner</surname>
            , and
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Harwardt</surname>
          </string-name>
          .
          <article-title>Processaware model-driven development environments</article-title>
          .
          <source>In Proc. of FlexMDE</source>
          <year>2017</year>
          , co-located
          <source>with MODELS</source>
          <year>2017</year>
          , volume
          <year>2019</year>
          , pages
          <fpage>405</fpage>
          -
          <lpage>411</lpage>
          . CEUR-WS.org,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <source>MathWorks. Simulink 9</source>
          ,0. https://www.mathworks.com,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Obeo</surname>
          </string-name>
          . UML Designer.
          <article-title>Getting started</article-title>
          . http://www.umldesigner.org/ tutorials/tuto-getting-started.htm,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. SparxSystems.
          <source>Enterprise architect 13 Reviewer's Guide</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>S.</given-names>
            <surname>Teufl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Mou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Ratiu</surname>
          </string-name>
          . MIRA:
          <article-title>A tooling-framework to experiment with modelbased requirements engineering</article-title>
          .
          <source>In Proc. 21st Int. Conf. Requirements Engineering (RE '13)</source>
          . IEEE,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>S.</given-names>
            <surname>Voss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Eder</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ho</surname>
          </string-name>
          <article-title>¨lzl. Design space exploration and its visualization in AutoFOCUS 3</article-title>
          .
          <source>In Gemeinsamer Tagungsband der Workshops der Tagung Software Engineering</source>
          <year>2014</year>
          , pages
          <fpage>57</fpage>
          -
          <lpage>66</lpage>
          . RWTH,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>