<!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>Debugging Models in the Context of Automotive Software Development</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Lars Stockmann Software Engineering Group Heinz Nixdorf Institute, University of Paderborn Paderborn</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Different models are involved in the automotive development process. In the integration phase, AUTOSAR is often the only model description available for a controller. The models that were used to generate the behavioral code (e.g., SIMULINK®) and sometimes even the source code itself are often not available due to IP protection. The controller software is verified using simulation-based testing, which may involve different kinds of environment models and legacy components. When a test fails, developers need to find the cause of the error. Even if the source code is available, source code debugging can be difficult, because the code has often been generated and thus may be confusing. Developers then use signal plotting for known variables, but plots can be ambiguous and lead to false conclusions. Therefore, exploiting the structural and semantic information of the involved models for debugging can be a valuable addition. However, the methods and tooling available are rather limited. Most of the existing approaches only consider live debugging. The intended PhD thesis aims at developing a methodology and tooling for debugging that makes better use of the models and the simulation data. It includes the application of techniques like slicing and the use of model hierarchies. A case study is planned in an industry context. Index Terms-AUTOSAR, automotive, debugging.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION TO AUTOMOTIVE SOFTWARE</title>
      <p>DEVELOPMENT</p>
      <p>
        Finding the cause for erroneous behavior in software is
time-consuming. In 1990, Boris Beizer stated that developers
typically spend half of their time testing and debugging [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
Discussions at Programmers Stack Exchange1 suggest that it
still holds today. Although, there are no evident numbers in the
automotive domain, I held interviews with developers working
for vehicle manufacturers (Original Equipment Manufacturer,
short OEM) and suppliers, which reveal that the effort even
increases. This is because in recent years, more and more
functionality has been introduced into cars. These functionalities
range from engine controllers to decrease fuel consumption,
over safety and advanced driver assistance systems (ADAS)
to convenience and comfort features.
      </p>
      <p>
        Traditionally, the OEM has bought these functionalities
from suppliers as entire sub systems. However, the traditional
one functionality per ECU paradigm is becoming obsolete.
Many functionalities (i.e., software) are already distributed
on multiple ECUs [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. This can only be achieved through
a separation of concerns. In the automotive software domain
this has led to the development of AUTOSAR2, which is a
global standard [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        The AUTOSAR methodology supports model-based
development. This means that developers can use tools like
dSPACE SystemDesk®3, to model system architectures. Here,
developers use diagrams and configuration dialogs. The tool
then uses the supplied information to generate code. This
is convenient and avoids coding errors, but also has the
consequence that the developer is no longer familiar with the
code involved. Furthermore, AUTOSAR has become huge,
with about 20,000 pages of documentation. Its complexity has
most recently been found to be the most mentioned drawback
among developers [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>II. MOTIVATION AND PROBLEM STATEMENT</title>
      <p>The OEM has to ensure the correct and safe operation of
the ECUs. Therefore, a plethora of tests is conducted. In a
model-based development context, many of these are based on
closed-loop simulation where the controller is connected to a
simulation environment. It receives the controller’s output and
calculates the respective input forming a feedback loop. When
a test fails, developers have to find out what went wrong.</p>
      <sec id="sec-2-1">
        <title>A. Dealing with Errors Today</title>
        <p>
          The typical process starts with a documentation of the
apparent undesired behavior. This is called a problem/bug/defect
or test incident report [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. The first task of a developer
is to reproduce the problem in a controlled environment.
Afterwards, she starts tracking down the issue to its root
cause, before it finally can be corrected. A common systematic
approach is to observe the behavior of the system, induce a
hypothesis about a possible cause and finally refute or verify
it by testing predictions of the behavior. Zeller names this the
scientific method [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. The actual fix for a problem may range
from a compilation with different settings to an additional
requirement for a component that is provided by a supplier.
2AUTOSAR website: www.autosar.org
3dSPACE SystemDesk® Product Information: www.dspace.com/en/pub/
home/products/sw/system_architecture_software/systemdesk.cfm
        </p>
        <p>While at implementation level (unit level), where the
behavioral code is devised, developers use their
domainspecific language (DSL) tools (e.g., SIMULINK®4 and dSPACE
TargetLink®5) directly to test their hypothesis, in the
integration phase, developers usually do not use the modeling
environments (e.g., dSPACE SystemDesk®). Instead, they rely
on independent tools for signal plotting and (source) code
debugging. The former is an adaption of the traditional way to
find electrical defects, i.e., measure analog signals. Developers
also use it in tools like SIMULINK® and in the context of
hardware-in-the-loop (HIL) tests.</p>
        <p>Plotting allows the developer to reason from a whole range
of signals. A weakness of this representation is that it can be
ambiguous for periodically executing systems. For example, a
continuous zero (“flat-line”) could mean that something writes
the actual value “0” one time and then never changes it, or
it may write the value “0” multiple times, or it never writes
anything, in which case the plot shows a default value “0”.</p>
        <p>The other method, which involves analyzing the runtime
behavior of the code, is a well studied field and different
techniques to track down the actual problem have been presented
in the past decades. Probably the most used is the
step-bystep execution and variable inspection, also called “live” or
“interactive” debugging. One major drawback of this technique
is that it relies on pausing the execution. As many tests are
conducted in real-time and the erroneous behavior may be
timing related, this may not help to reproduce the problem or
it may simply not be possible. Furthermore, it requires a great
knowledge of the code base to decide where to start. As stated
above, developers in the integration phase might not have this
knowledge, as a large portion of the code has been generated
by tools out of models. Some code from a supplier might even
not be available due to the protection of intellectual property.</p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Heterogeneous Simulation Systems</title>
        <p>
          This brings us to another problem: Due to the distributed
development process, software artifacts may come in different
forms and flavors. This means that one cannot assume that
all information required for debugging is available. Figure 1
shows an overview of relevant artifacts in a simulation. The
controller software that forms the system under test (SUT) is
depicted on the left. Note that it may actually be a composite of
several software components and modules. It can be available
4SIMULINK® Product Information: mathworks.com/products/simulink/
5dSPACE TargetLink® Product Information: www.dspace.com/en/pub/
home/products/sw/pcgs/targetli.cfm
as C code or – e.g., to protect intellectual property – as a
platform dependent binary. It is accompanied by an AUTOSAR
description, which contains the application software
architecture together with the configuration of the ECU
(communication behavior, scheduling . . . ). The behavioral SIMULINK®
or dSPACE TargetLink® models that were used to generate
the code are often not accessible in the integration phase.
AUTOSAR itself does not provide means to model component
behavior. Note that in the field of ADAS, there may not even
be a model, but instead a lot of hand-written code involved.
In the future, a language like MECHATRONICUML [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] could
be a valuable alternative here and also for describing the
interaction of the components on integration level. It follows
the principle by Frank et al. that a “reflective operator” is
needed, which monitors and governs the actual controller [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
MECHATRONICUML also features compositional and timed
model checking, which enables finding errors at design time.
        </p>
        <p>
          The right side in Figure 1 shows the test environment. It is
one major source for unexpected/undesired behavior. Artifacts
here may originate from different models as well. They
are either directly compiled and executed by the simulation
technology or wrapped in an Functional Mock-up Interface
(FMI) container (see [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]).
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>C. Problem Summary</title>
        <p>To summarize the major problems, we may conclude that
1) the common methods to find the cause for errors, which
are stepping through the source code and signal plotting,
have shortcomings that cannot easily be addressed
2) automotive simulation systems are very heterogeneous
and may not supply all behavioral information.</p>
        <p>To tackle these problems, the proposed thesis aims at
enhancing the debugging process by providing a methodology
and tooling to isolate faults in simulation systems involving
AUTOSAR software. This means that developers shall be able
to get faster to the actual problem. The solution shall exploit
the structural and semantic information of the participating
models, which today is predominantly used solely for code
generation and static analysis. Yet, it shall be based on the vast
experience with source code debugging that has been gained
over the last 40 years.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. RELATED WORK</title>
      <p>
        The idea to use models in the debugging process is not new.
In 1997 Balzer concluded that there is a need to “recreate
instrumentation, debugging, and monitoring capabilities we
have long enjoyed at the program level” [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. But concrete
descriptions on how this can be achieved are scarce. Advanced
techniques, such as algorithmic debugging and slicing are
often not considered (see Zellers’ excellent compendium on
why programs fail [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]). Many approaches are based on live
debugging.
      </p>
      <p>One example is the tool suite by LieberLieber. In a recent
development, they coupled6 the AUTOSAR Engineer with
6Announcement of cooperation between LieberLieber and Lauterbach: http:
//www.lieberlieber.com/en/lieberlieber-cooperation-with-lauterbach/
the TRACE32®-In-Circuit-Debugger. It allows the user to set
hardware break points in the model. I definitely share ideas
with their approach. One is to use the AUTOSAR architecture
diagram to present runtime data of the controller, which is
retrieved using a debugger. However, as mentioned earlier, they
do not consider other debugging techniques. Also, they only
consider the debugging of one artifact. The developer still has
to keep the whole system in mind and has to comprehend the
relationship between different artifacts.</p>
      <p>
        An earlier solution for live debugging is the UML Target
Debugger by Willert Software [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. It is comparable to the
approach by LieberLieber in that the runtime information is
also retrieved directly from the embedded hardware. It is then
presented in their UML state and activity diagrams.
      </p>
      <p>
        Another AUTOSAR related solution has been given by
Elektrobit in 2009. Their tooling provides tracing functionality
for AUTOSAR basic software [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. They use a visualization
based on plotting (e.g., for task active times). However, they
do not offer a debugging solution for the application layer.
      </p>
      <p>
        There are also solutions in the scientific literature. Haberl
et al. show a promising approach that addresses some of the
aforementioned problems. They map runtime data for inputs
and outputs of real-time tasks, as well as internal states back to
the corresponding data-flow model [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. However, they require
the system (including the units) to be modeled using their own
component language (COLA), which supplies different layers
of abstraction and instruments the generated code with
metainformation. In our case, the model of the units may not be
accessible.
      </p>
      <p>
        Another interesting approach is AToMPM [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] that supplies
a domain-specific modeling and debugging environment. It
shows how step-by-step execution of arbitrary models can
be realized. Here, the user specifies the runtime behavior
of the models using a set of rules. An integrated simulator
executes the model and the current state is visualized. Earlier
approaches are based on UML, such as the UML simulator
by Kirshin et al. that allows live debugging using a “Generic
Model Execution Engine” [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Their environment features
an animated diagram that reflects the current runtime state.
The approach by Mayerhofer (“fUML model execution
engine”) [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] builds on top of that. In contrast to what we require,
these approaches execute (i.e., interpret) the model directly.
The full behavioral specification is available (as model). No
code generation is involved. However, especially the work of
Mannadiar et al. [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] tackles the foundations that I need in
my work.
      </p>
    </sec>
    <sec id="sec-4">
      <title>IV. PROPOSED SOLUTION</title>
      <p>As stated before, the goal is to make better use of
AUTOSAR and the other different models in the debugging
process. We do not have the full behavioral specification of
every artifact. However, AUTOSAR compliance guarantees
certain symbols to be exported/known to the integrator even
if no source code is available. Thus, we have at least some
structural and behavior related information, like component
communication interface and runnable/task triggering.
Furthermore, we assume to have the interface description of
environment models, extensive simulation data and may be
even some (possibly rough) knowledge about a components’
behavior.</p>
      <sec id="sec-4-1">
        <title>A. General Methodology</title>
        <p>To use source code debugging techniques in our context,
we require the following:
(1) a model runtime state mapping
(2) a value to model entity mapping
(3) opt.: a user interface providing a graphical representation
of the runtime state, which suits the DSL
The model runtime state mapping (1) is the bridge between
model runtime states and events to their respective code
sequences. It provides entry points for break points or complex
break conditions. It is somewhat similar to what is required to
generate the code for a certain model entity. A break condition
(e.g., a target value for a model entity) must be formulated
using a proper constraint language. Referring to such values
requires (2) a value to model entity mapping. It defines how
the content of variables and runtime states of the program
manifest in the model. As an example consider an AUTOSAR
architecture and an event that is described by a condition like
“The state of port P is changed”. It maps to all functions in the
AUTOSAR Run-Time Environment (RTE), which write a data
element on port P (assuming sender/receiver communication).
If data element D on port P is written, the respective RTE
function is called. After the event has taken place, the actual
value that has been handed over to the call is associated with
respective data element D.</p>
        <p>
          A suitable graphical user interface (3) that visualizes the
value to model entity mapping can improve usability, though
technically a pure textual representation is sufficient. Note that
special care must be taken for very big models. Further note
that a properly profiled/extended UML model like the A
RealTime State Chart (RTSC) already supplies a suitable graphical
syntax that could be used as a basis for the visualization. For
RTSCs like those presented by Dziwok in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] no solutions have
been shown yet, but inspired by the approaches presented in
the last section, it could look like Figure 2. Here, one can see
that the state ‘requested’ is active (being highlighted) and the
invariant ‘c1 &lt;= 7s’ holds. The green highlighted transition
to state ‘init’ is ready to fire, because the clock ‘c1’ is now
greater than 6s.
        </p>
        <p>
          But what can we do with components for which no model
exists? To be able to include them in the process of
modellevel debugging, we need at least to model their interfaces.
There is a scheme described by Giese et al. to embed black
box components into MECHATRONICUML. They use a testing
based learning strategy for reverse engineering [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. This
approach is probably not feasible for all participants in a
simulation. However, instead of a learning mechanism, the
developer herself (as oracle) could specify constraints or states
as a result of what she expects from that component. Even if
this does not make a complete specification, it may be enough
to reason about an error.
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>B. Advanced Techniques</title>
        <p>The basis for our methodology is that the developer should
start debugging at the most abstract level available and then
subsequently “zoom in”, when the origin for an error on this
level is identified. For example, one would start analyzing
the runtime regarding the components’ interaction (e.g., using
MECHATRONICUML to see if no protocols are violated). Note
that this is only possible if the respective debug symbols and
descriptions are available. After that, one would advance to the
AUTOSAR level, given that a mapping between those levels
exists. AUTOSAR itself supplies a hierarchy (depicted in
Figure 3). Unfortunately, each level requires its own mappings
as described in the general methodology (sect. IV-A).</p>
        <p>
          Using hierarchies in a live debugging context would enable
a ‘divide and conquer’ like approach, which is one of Agans
“golden” debugging rules [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. They could also be useful for
techniques other than the step-by-step method, even when
those have been found impractical at the code level (e.g.,
algorithmic debugging [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]).
        </p>
        <p>
          Another technique is to analyze the program and data flow
w.r.t. dependencies and then use this information to synthesize
a dependency graph. Thus, only the relevant parts of a program
need to be analyzed. This technique is called program slicing
and dates back to a PhD thesis by Weiser [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. It complements
the scientific method as an experienced developer will always
reason about the relevant parts of the program, ignoring those
that have no influence. Static program slicing can be enhanced
with runtime information (i.e., execution history) that reduces
the nodes of a dependency graph to those that really have been
reached (dynamic program slicing as in [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]). This seems like
a promising approach in our context. The execution history
can be derived from the simulation data. Given a suitable
query language, this would allow reasoning about event chains
that happened in this simulation. In a way, this is comparable
to formal verification, only that there is no state explosion
problem, because all states are already known.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>V. PRELIMINARY WORK</title>
      <p>
        In the past I have analyzed automotive simulation systems
regarding the involved artifacts. This has been done through
interviews with developers of different OEMs and past projects.
In these project we developed an AUTOSAR controller from
the ground up [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Furthermore, I conducted an extensive
literature study of the different debugging techniques that have
been used during the last decades. This study was focused,
but not limited to what is currently used in the automotive
domain. An overview of the findings have been presented in
the previous sections.
      </p>
      <p>We also implemented a first prototype for debugging an
AUTOSAR architecture. This prototype is able to present
runtime data (e.g., values of data elements) and allows stepping.
The data is retrieved using a source code debugger.</p>
    </sec>
    <sec id="sec-6">
      <title>VI. EXPECTED CONTRIBUTIONS</title>
      <p>
        This PhD thesis aims at delivering a methodology and
tooling for model level debugging of automotive simulation
systems. The focus lies on AUTOSAR, but also the other
artifacts involved in a test will be considered. Therefore, the
following questions shall be answered:
(1) How can we acquire the required simulation data with
the least possible impact on the SUT?
(2) How can we effectively formulate conditions to describe
the runtime state of a model, specifically AUTOSAR?
(3) How can we apply advanced techniques (e.g., program
slicing, hierarchies)?
(4) How can we integrate knowledge/assumptions about
component behavior (e.g., black box components)?
Regarding (1), note that until now, we assumed for simplicity
that the required simulation data is somehow available.
However, it is not trivial to get the whole history, which is required
for slicing techniques and further analysis. In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] it is stated
that recording the programs input and output as well as the
complete sequence of intermediate states is not feasible. It can
be argued that this depends on the model. The more abstract
a model is, the less data has to be recorded.
      </p>
      <p>Regarding question (2) and (4), note further that a
component behavior can be regarded as the sum of all its defined
runtime states. Thus, those two questions are related to each
other, in that a language that can describe a condition in a
simulation system may also be suitable to describe (incomplete)
component behavior.</p>
    </sec>
    <sec id="sec-7">
      <title>VII. PLAN FOR EVALUATION AND VALIDATION</title>
      <p>
        I plan to prototypically implement the different debugging
techniques on the model level. With the help of an industrial
partner, I would like to evaluate the methodology and tooling
in the industry on real problems. Interviews or a query would
then yield qualitative feedback from industry partners. An
alternative (or addition) is a case study following the guidelines
of Kitchenham et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. For this study, a working simulation
system is artificially infected. Ideally, one would then have two
groups finding the infection. One group would rely solely on
source code debugging and signal plotting, while the other
could additionally use our new approach. However, it is hard
to find developers of the same skill level. Thus, such evaluation
would be difficult.
      </p>
    </sec>
    <sec id="sec-8">
      <title>VIII. CURRENT STATUS</title>
      <p>One current problem is the acquisition of relevant simulation
data (1st question in the last section). It is required for
full replay and slicing. The goal is minimal impact on the
system under test. The usual methods involve instrumentation,
which may modify the code in such a way that tests become
meaningless. Here, several approaches are evaluated, one is the
integration of a debugger, others involve bypassing strategies
and instruction set simulation.</p>
      <p>Another aspect is the formal specification of (incomplete)
black box component behavior and (break) conditions (2nd and
5th question in the last section). Constraint languages (e.g.,
OCL, [T]CTL), but also the mentioned RTSCs and
commercially available solutions are evaluated.</p>
      <p>Furthermore, we have just started to transform
MECHATRONICUML models to AUTOSAR, which has
benefits beyond the scope of this PhD thesis. For my thesis it
will be interesting to see if debugging beyond (AUTOSAR)
model boundaries is feasible.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D. J.</given-names>
            <surname>Agans</surname>
          </string-name>
          .
          <article-title>Debugging: the 9 indispensable rules for finding even the most elusive software and hardware problems</article-title>
          . American Management Assoc., Inc., New York, NY, USA,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Balzer</surname>
          </string-name>
          .
          <article-title>Instrumenting, monitoring, debugging software architectures</article-title>
          .
          <source>Information Sciences Institute 4676 Admiralty Way Marina Del Rey, CA 90292 USA</source>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Becker</surname>
          </string-name>
          et al.
          <article-title>The mechatronicuml method: modeldriven software engineering of self-adaptive mechatronic systems</article-title>
          .
          <source>In Companion proceeding of the 36th ICSE. Hyderabad, India</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>B.</given-names>
            <surname>Beizer</surname>
          </string-name>
          .
          <article-title>Software testing techniques</article-title>
          . Van Nostrand Reinhold Co., New York, NY, USA, 2nd ed.,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>T.</given-names>
            <surname>Blochwitz</surname>
          </string-name>
          et al.
          <article-title>The functional mockup interface for tool independent exchange of simulation models</article-title>
          .
          <source>In In proceedings of the 8th international modelica conference</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Dziwok</surname>
          </string-name>
          et al.
          <article-title>A tool suite for the model-driven software engineering of cyber-physical systems</article-title>
          .
          <source>In Proc. of the FSE 2014. Hong Kong</source>
          , China,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>E.</given-names>
            <surname>Farshizadeh</surname>
          </string-name>
          et al.
          <article-title>Design and Analysis of a Controller from System Design Idea to AUTOSAR Architecture with Basic Software Modules. In 6. tagung simulation und test für die automobilelektronik</article-title>
          . Stuttgart, Germany, May
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>U.</given-names>
            <surname>Frank</surname>
          </string-name>
          et al.
          <article-title>Selbstoptimierende Systeme des Maschinenbaus - Definitionen und Konzepte</article-title>
          . J. Gausemeier, editor.
          <source>Heinz Nixdorf Institut</source>
          , Universität Paderborn,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          et al.
          <article-title>Architecture-driven platform independent deterministic replay for distributed hard real-time systems</article-title>
          .
          <source>In Proc. of the issta 2006</source>
          workshop
          <article-title>on role of software architecture for testing and analysis</article-title>
          .
          <source>Portland, Maine</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          et al.
          <article-title>Combining Formal Verification and Testing for Correct Legacy Component Integration in Mechatronic UML</article-title>
          . In. Architecting dependable systems v. Springer Verlag,
          <year>2008</year>
          , pp.
          <fpage>248</fpage>
          -
          <lpage>272</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>W.</given-names>
            <surname>Haberl</surname>
          </string-name>
          et al.
          <article-title>Model-level debugging of embedded real-time systems</article-title>
          .
          <source>In Computer and information technology (cit)</source>
          ,
          <year>2010</year>
          ieee 10th international conference on,
          <year>June 2010</year>
          , pp.
          <fpage>1887</fpage>
          -
          <lpage>1894</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <article-title>Ieee standard for software test documentation</article-title>
          .
          <source>Ieee std 829-1998</source>
          :
          <fpage>1</fpage>
          -
          <lpage>64</lpage>
          , Dec.
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>F.</given-names>
            <surname>Kirschke-Biller</surname>
          </string-name>
          et al. AUTOSAR
          <article-title>- a worldwide standard current developments, roll-out and outlook. In 5th vdi congress baden-baden spezial 2012</article-title>
          . BadenBaden, Oct.
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kirshin</surname>
          </string-name>
          et al.
          <article-title>A uml simulator based on a generic model execution engine</article-title>
          .
          <source>In Proceedings of the MoDELS</source>
          <year>2006</year>
          . Genoa, Italy,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Kitchenham</surname>
          </string-name>
          et al.
          <article-title>Case studies for method and tool evaluation</article-title>
          . Ieee software,
          <volume>12</volume>
          (
          <issue>4</issue>
          ):
          <fpage>52</fpage>
          -
          <lpage>62</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>B.</given-names>
            <surname>Korel</surname>
          </string-name>
          et al.
          <article-title>Dynamic slicing of computer programs</article-title>
          .
          <source>Journal of systems and software</source>
          ,
          <volume>13</volume>
          (
          <issue>3</issue>
          ):
          <fpage>187</fpage>
          -
          <lpage>195</lpage>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>R.</given-names>
            <surname>Mannadiar</surname>
          </string-name>
          et al.
          <article-title>Debugging in domain-specific modelling</article-title>
          .
          <source>English</source>
          . In B. Malloy et al., editors,
          <source>Software language engineering</source>
          . Vol.
          <volume>6563</volume>
          , in Lecture Notes in Computer Science, pp.
          <fpage>276</fpage>
          -
          <lpage>285</lpage>
          . Springer Berlin Heidelberg,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Martínez-Fernández</surname>
          </string-name>
          et al.
          <article-title>A survey on the benefits and drawbacks of AUTOSAR</article-title>
          .
          <source>In Proc. of the first international workshop on automotive software architecture. Montréal</source>
          ,
          <string-name>
            <surname>QC</surname>
          </string-name>
          , Canada,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          .
          <article-title>Testing and debugging uml models based on fuml</article-title>
          .
          <source>In Proceedings of the ICSE</source>
          <year>2012</year>
          . Zurich, Switzerland,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J.</given-names>
            <surname>Olig</surname>
          </string-name>
          .
          <article-title>Standardized debugging in AUTOSAR</article-title>
          . In 6° automotive spin italia workshop,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>E.</given-names>
            <surname>Römer</surname>
          </string-name>
          et al.
          <article-title>Datenblatt - embedded uml target debugger™</article-title>
          . W. S. T. GmbH, editor.
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>O.</given-names>
            <surname>Scheickl</surname>
          </string-name>
          et al.
          <article-title>Distributed development of automotive real-time systems based on function-triggered timing constraints</article-title>
          .
          <source>In Proc. of the ERTS²</source>
          , May
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>E. Y.</given-names>
            <surname>Shapiro</surname>
          </string-name>
          .
          <article-title>Algorithmic program debugging</article-title>
          .
          <source>PhD thesis</source>
          . Yale University,
          <year>1982</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>M. D.</given-names>
            <surname>Weiser</surname>
          </string-name>
          .
          <article-title>Program slices: formal, psychological, and practical investigations of an automatic program abstraction method</article-title>
          .
          <source>AAI8007856</source>
          .
          <source>PhD thesis</source>
          . Ann Arbor, MI, USA,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A.</given-names>
            <surname>Zeller</surname>
          </string-name>
          .
          <article-title>Why programs fail, second edition: a guide to systematic debugging</article-title>
          . Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2nd ed.,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>