<!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>
      <journal-title-group>
        <journal-title>AvioSE</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Using Runtime Monitoring to Enhance Offline Analysis</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sebastian Schirmer</string-name>
          <email>sebastian.schirmer@dlr.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sebastian Benders</string-name>
          <email>sebastian.benders@dlr.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute of Flight Systems, dept. Unmanned Aircraft, German Aerospace Center (DLR)</institution>
          ,
          <addr-line>Braunschweig</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <volume>1</volume>
      <fpage>83</fpage>
      <lpage>86</lpage>
      <abstract>
        <p>-Offline log file analysis of unmanned aircraft systems is a challenging experts task. Due to more automation, the amount and complexity of logged data increases. Experts need support, for instance by automatically generating additional statistical information or by correlating data. Runtime Monitoring is a formal method for analyzing system executions. It allows users to express temporal properties in a formal language which then can be used for the generation of a corresponding monitor. In this paper, we propose to integrate Runtime Monitoring into our offline analysis process. We show how the results of the monitor can be used to enhance the log file analysis and, therefore, support the expert. Specifically, we use the stream-based specification language LOLA and apply it to the log files of an unmanned cargo aircraft. Index Terms-Aerospace, Runtime Monitoring, LOLA, Offline Analysis, Log File Analysis, Unmanned Aircraft Systems II. RELATED WORK</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>Safety is one of the biggest concerns in aviation. During
development and operation, the state of the aircraft needs to
be captured and degradation of the system has to be detected
to take suitable counter-measures, e.g. to replace damaged or
worn parts. Therefore, relevant data is stored and analyzed
subsequently. Offline analysis is a challenging task and even
more complicated due to the higher degree of automation
induced by unmanned aircraft. The amount and complexity of
relevant data has increased. One established way for analysis
is to generate plots from the log files for visual inspection
by an expert. There, the correlation of data is a challenging,
tedious, and repeating task. In short, it is error-prone.</p>
      <p>
        In this paper, we propose to integrate Runtime Monitoring
(RM) into our offline analysis process. We further show how
to use the monitor results to enhance the offline analysis
supporting the expert. RM allows to express temporal properties
in a formal and descriptive way which can be automatically
translated into a corresponding correct monitor. Another
benefit is the separation of the analysis code and the specified
log file properties which improves the understanding and the
maintenance. The work is motivated by the in-house DLR
(German Aerospace Center) project ALAADy (Automated
Low-Altitude Air Delivery). This prototype aircraft is based
on a manned ultralight gyrocopter which was converted to
an unmanned cargo aircraft with a payload of 200 kg. For
this purpose avionics such as flight control computers,
actuators [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], and sensors were installed [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. During operation of
the unmanned aircraft the subsystem which is responsible for
controlling the core avionics of the aircraft, e.g. the actuators
and the engine control, generates more than 370 logged system
states and sensor signals in 16 log files [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Additionally, flight
state sensors as well as the automatic flight control system are
generating log files. A pure manual inspection of the log files
is inefficient. The proposed approach automates simple checks
and supports the analysis by adding statistical information to
the visualization pointing towards potential errors identified by
the monitors. Therefore, the approach reduces the workload of
the operating crew and delivers quick evaluation results right
in the field during flight-testing.
      </p>
      <p>
        Work in the field of RM mostly focuses on the online
usecase, i.e. while operating the system. Among others, RM has
been used for unmanned aircraft systems [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], smart homes [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
cars [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and ground rovers [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], RM was used in an
offline fashion to support testing of spacecraft flight software
for the NASA 2011 Mars mission MSL (Mars Science
Labratory). Instead of a stream-based specification language, the
rule-based specification language of the tool LOGSCOPE
was applied. Here, we focus more on the integration of RM
into the current offline analysis workflow for a single log file,
i.e. how to enhance the analysis by RM. In [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], the problem
of synchronizing different log files is considered. There, the
system is distributed and concurrent and, therefore, the locally
observed, time stamped, and logged data might not be in order.
      </p>
      <p>
        One established way for data analysis is to use libraries like
the python data analysis library PANDAS [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. It is open-source,
easy-to-use, and expressive. Data queries can be easily stated,
e.g. data[data.a&gt;data.b] returns the data where a&gt;b.
However, since it is based on python, it is more imperative
and it does not natively allow temporal queries, whose
implementations are prone to errors.
      </p>
    </sec>
    <sec id="sec-2">
      <title>III. APPROACH</title>
      <p>In order to support the offline log file analysis, we propose
to integrate RM into the analysis workflow. RM is a formal
method for analyzing system executions. The correct behavior
and statistical measurements of the systems are declared in
a specification file. Based on the specification, a monitor is
generated which checks whether the specification is fulfilled
during system execution. Due to this profiling of the system,
the confidence in the system is improved. The events and
signal data are either received due to system instrumentation
during operation or read from log files afterwards. The former
is referred to as online monitoring and the latter is referred
to as offline monitoring. In both cases, the monitor outputs
a verdict as a result which represents the adherence of the
execution to the specification. Online and offline monitoring
are depicted in Figure 1. As specification language, we chose
LOLA which is presented in Section III-A</p>
      <p>Currently, log files are inspected manually to find
unexpected system behavior. The major analysis is done by
reviewing generated signal graphs. Based on these plots, an expert
has to decide whether the system did operate nominally or
not. The approach, described in Section III-B, allows experts to
explicitly state assumptions on the system behavior in a formal
and unambiguous way and to automatically incorporate the
analysis results into the normal workflow. We show examples
of the enhanced offline analysis using RM in Section III-C.</p>
      <sec id="sec-2-1">
        <title>A. Formal Specification Language LOLA</title>
        <p>
          LOLA is a stream-based formal specification language for
system online and offline monitoring. Originally, LOLA was
designed for synchronous systems including circuits and
embedded systems [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] and, lately, extended for network
monitoring [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. More recently, RTLOLA [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] was introduced,
which extends previous versions by sliding windows over
realtime intervals with aggregation functions. The corresponding
LOLA tool [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] is actively developed at Saarland University.
Here, we remain within the more basic LOLA fragment
described in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. In a previous work, LOLA was used in an
online monitoring setting [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] which indicates its applicability.
There, an observation was that the development of
specifications for the online usage can be significantly supported
by testing them offline based on column-oriented log files.
As a side-effect, the understanding of the system was greatly
improved which motivated this approach.
        </p>
        <p>Offline</p>
        <p>Online</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Log File</title>
    </sec>
    <sec id="sec-4">
      <title>Specification System</title>
    </sec>
    <sec id="sec-5">
      <title>Instrumentation</title>
    </sec>
    <sec id="sec-6">
      <title>Events</title>
    </sec>
    <sec id="sec-7">
      <title>Monitor</title>
      <p>Feedback</p>
    </sec>
    <sec id="sec-8">
      <title>Verdict</title>
      <p>Fig. 1: Based on a specification, a monitor is generated
which checks the adherence to a specified system behavior.
In offline monitoring, the system execution has finished and
the log file is completely available. In online monitoring, the
execution is still ongoing and therefore the sequence of events
is continuously extended.
const &lt;type&gt; &lt;name&gt; := &lt;value&gt; //constants
...
input &lt;type&gt; &lt;name&gt; //input streams
...
output &lt;type&gt; &lt;name&gt; := &lt;expression&gt; //output streams
...</p>
      <sec id="sec-8-1">
        <title>Listing 1: Basic LOLA specification structure</title>
        <p>
          A LOLA specification consists of a set of independent input
streams and a set of dependent output streams. The basic
structure of a LOLA specification is depicted in Listing 1.
Output streams can be used to represent an error,
diagnosis reports, or quantitative statistics. Input streams represent
signals of the system under scrutiny. All streams are
evaluated at the pace of a synchronous clock. For asynchronous
systems, synchronization techniques like sample and hold
can be applied. Note that since LOLA basically describes a
system of equations, the order of input and output declarations
is irrelevant for the underlying evaluation algorithm which
improves the usage and the maintainability. Values of output
streams are defined by their respective stream expression. A
stream expression can refer to previous, present, or possible
future values of streams (both, input and output streams).
Further, the streams are typed (e.g binary, integer, double)
and incrementally computable statistics can be specified. The
so called dependency graph [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] is used to capture the
dependencies between the streams, to identify whether a
given specification is efficiently monitorable. Intuitively, this
syntactic analysis states that the specification does not contain
unbounded future stream accesses, i.e. the time until the
output stream is evaluated is bounded. This allows to make
statements about the memory consumption, e.g. only constant
memory is required. The key features of LOLA, which lead
to its usage, compared to other temporal formal languages
(e.g. linear-time temporal logic), are: its descriptive nature,
its structurability, and the resemblance of expressions with
writing actual programs instead of abstract logical formulas.
Further, especially temporal properties expressed in LOLA are
easier to understand and to maintain compared to handwritten
code. Additionally, when operating several aircraft, such a
generic solution is highly desirable. Listing 2 shows a simple
LOLA specification to compute the average velocity. The
example uses one input stream vel for the current velocity
of a vehicle and two output streams. The output vel_sum
is an auxiliary stream which incrementally computes the sum
over the seen velocities by accessing the previous value of
vel_sum and the current velocity. The offset operator s[x,y]
handles the access to previous (i.e. x &lt; 0), present (i.e. x = 0),
or future (i.e. x &gt; 0) stream values of the stream s. The
input double vel
output double vel_sum := vel_sum[-1, 0.0] + vel
output double vel_avg := vel_sum / double(position+1)
        </p>
      </sec>
      <sec id="sec-8-2">
        <title>Listing 2: Computation of the average velocity.</title>
        <p>ace_basic -&gt; actuator_left, actuator_nose_wheel,
actuator_right, actuator_rudder
ace_left_specific -&gt; actuator_left
Listing 3: Specification-to-logfile mapping. The LOLA
specification ace_basic is applied to all four actuators whereas
ace_left_specific is only used for the left actuator.
default value y is used for accesses past the end or before the
beginning of a stream. In Listing 2, -1 indicates the access
to the previous value and 0.0 is used as a default value
at the first position. Finally, using the keyword position,
representing the current step of the evaluation (starting from
zero), the average velocity is computed in vel_avg.</p>
      </sec>
      <sec id="sec-8-3">
        <title>B. Enhancing Offline Analysis</title>
        <p>The presented approach supports the analysis of log files,
see Figure 2. During system tests, log files are generated
which need to be reviewed. To support the manual inspection
of each log file, we want to capture common erroneous
and desired behaviors within a formal LOLA specification.
Based on these specifications monitors will be generated which
analyze the files. Specifications can be named and mapped to
specific log files. An example mapping is shown in Listing 3.</p>
        <p>This is especially interesting for recurring specifications
which can be declared in separate specification files and
reused, e.g. timing properties. An example LOLA specification
concerning timing is shown in Listing 4. Typically, time
is captured via timestamps in log files. Interesting timing
properties are the average, minimal, and maximal time jumps
(t_jmp). Maximal and minimal values indicate frozen and
rapid system states, respectively. Also, time jumps larger than
the given threshold t_safe can be detected and reported.
Note that a LOLA specification can be easily extended by
an user due to the irrelevance of the stream declaration
ordering. For instance, by adding an additional output stream,
the number of violations can be counted. The properties are
Fig. 2: Illustration of the proposed offline analysis approach
using RM. Meta-information is inferred to enhance log files.</p>
      </sec>
      <sec id="sec-8-4">
        <title>The extended log file is visualized and the meta-information is used to point out erroneous regions to the user.</title>
        <p>then automatically checked on the mapped log files by the
generated monitors. After the analysis due to the monitors,
the verdicts, e.g. the mentioned maximal values or raised
notification, can be used to enhance the used visualization.</p>
        <p>Colors indicate whether the values for the respective plots
were involved in a notified violation, i.e. a violation of an
explicitly stated assumption. In Figure 2, the first two plots
are healthy but some notifications where raised for plot p. In
both cases, the users preferred visualization tool-chain can be
enhanced by statistical information. For the erroneous case,
the monitor result can guide the expert’s attention towards
interesting regions.</p>
        <p>Considering the visualization of plot p shown in Figure 2,
assuming the actuator position over time is depicted and timing
notifications (see Listing 4) were evaluated, an expert can
see that each time a time jump occurred, the position of the
actuator changed.</p>
        <p>
          Listing 4: Given the current timestamp (time_s,time_us),
the elapsed time t_jmp is computed. Based on the
comparison with the constant t_safe a trigger notification is
raised representing a too large time jump. Further, t_sum
aggregates t_jmp which can be used to compute the average
time jumps t_avg. The output streams t_max and t_min
compute the maximal and the minimal time jump, respectively.
input double time_s, time_us
output double time := time_s + time_us / 1000000.0
output double t_jmp := time - time[-1,0.0]
//User notification if t_jmp &gt; t_safe
const double t_safe := 0.05
/t/rSitgagetristti_cjamlp i&gt;nfto_rsmaafteiownith "VIOLATION: time jump!" C. Example Properties
output double t_sum := t_sum[-1, 0.0] + t_jmp Actually, the presented identification of time jumps, i.e.
temoutput double t_avg := t_sum / (double(position+1))
output double t_max := max(t_jmp,t_max[-1,double_min]) poral system loss, was motivated by a real problem. Experts
output double t_min := min(t_jmp,t_min[-1,double_max]) rely on different types of visualization to identify errors.
Detecting time jumps using line plots is error-prone compared
to using scatter plots. Also, humans tend to extend their
tolerance limit over time, e.g. due to optimism, self-serving
bias, or anchoring [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. Hard thresholds explicitly stated in a
specification do not only allow to reduce the reliance on
gutfeeling but also allow to identify anomalies across different
log files. Using this approach, we cannot only automatically
check whether jumps exist in the current log files, we can also
make new assumptions, e.g. decrease t_safe, and re-evaluate
the specification on the current and the historical log files. In
the following, we show other simple but helpful properties of
ace_basic and ace_left_specific (see Listing 3):
        </p>
        <p>Each actuator implements a state machine. State changes
are logged as device status. In the end, the sequence of
device states represent a valid execution.</p>
        <p>Bounds on the demanded actuator position differ for each
actuator and should never be exceeded to avoid defects.</p>
        <p>The mechanical loads of the actuators and therefore their
consumption of current differ.</p>
        <p>Statistical information on the average, maximal, and
minimal values for current consumption, timing, velocity, and
voltage are useful to get more insights into the system.</p>
      </sec>
      <sec id="sec-8-5">
        <title>The relation between consumption of current and position</title>
        <p>demands can be analyzed to differentiate between internal
and external errors.</p>
        <p>Estimation of the time difference between the position
demand and the time when the target position was
reached.</p>
        <p>Note that these are just examples for a single actuator log
file. Figure 3 shows a visualization example utilizing the
monitoring results. The orange and the green line indicate
the specified upper and lower bound on the consumption
of current, respectively. The red regions show where trigger
notifications were raised by a monitor. Here, red regions
indicate an increased current consumption despite no actuator
position demand was commanded previously. In fact,
considering the first red region, the increased current consumption
is related to the initialization procedure of the actuator. With
the specification violations in mind, i.e. the second red region
around 400 s and the upper bound violation around 850 s, the
expert can now examine the log files in detail to determine
the root cause.</p>
        <p>15
10
5
10
15</p>
        <p>Monitor notification
0</p>
        <p>Current
200
400</p>
        <p>600
time [s]</p>
        <p>Current upper bound
Current lower bound
800
1000</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>IV. CONCLUSION</title>
      <p>We have presented RM and the specification language
LOLA. Further, we motivated why and showed how RM can
be used for offline log file analysis. Specifically, we illustrated
how manual inspection due to visualization can be enhanced
due to the outputs of the formally specified monitors. We plan
to fully implement the integration of runtime monitors into our
offline analysis tool-chain. Also, the reasoning across different
log files is very helpful and will be central since future
systems tend to be highly distributed. Currently, LOLA is able
to read column-oriented .csv and .dat files. Accepting other
data formats, e.g. CDF, NetCDF, HDF, would improve the
general applicability. In future, we will investigate how offline
monitoring enhances online monitoring of future sessions and,
vice versa, how online monitoring helps to provide targets to
detailed offline monitoring of the same session. Further, the
benefits of the proposed approach in regards of cost savings,
usability, and quality improvements compared to a manual
inspection will be investigated.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bierig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rahm</surname>
          </string-name>
          , P. Gallun, “
          <article-title>Design considerations and test of the flight control actuators for a demonstrator for an unmanned freight transportation aircraft”</article-title>
          ,
          <source>Recent Advances in Aerospace Actuation Systems and Components</source>
          , 2018
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Benders</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Goormann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.C.</given-names>
            <surname>Dauer</surname>
          </string-name>
          , “
          <article-title>Softwarearchitektur fu¨r einen unbemannten Luftfrachttransportdemonstrator”</article-title>
          , Deutscher Luft- und
          <string-name>
            <surname>Raumfahrtkongress</surname>
          </string-name>
          ,
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>T.</given-names>
            <surname>Reinbacher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.Y.</given-names>
            <surname>Rozier</surname>
          </string-name>
          , J. Schumann, “
          <article-title>Temporal-Logic Based Runtime Observer Pairs for System Health Management of Real-Time Systems”, Tools and Algorithms for the Construction and Analysis of Systems (TACAS</article-title>
          ),
          <year>2014</year>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>El-Hokayem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Falcone</surname>
          </string-name>
          , “Bringing Runtime Verification Home”,
          <source>Runtime Verification - 18th International Conference (RV)</source>
          ,
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.V.</given-names>
            <surname>Deshmukh</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Donze´,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gosh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Jin</surname>
          </string-name>
          , G. Juniwal,
          <string-name>
            <given-names>S.A.</given-names>
            <surname>Seshia</surname>
          </string-name>
          , “
          <article-title>Robust Online Monitoring of Signal Temporal Logic”</article-title>
          ,
          <source>Runtime Verification - 15th International Conference (RV)</source>
          ,
          <year>2015</year>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Phan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Grosu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schierman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Smolka</surname>
          </string-name>
          , S. Stoller, “
          <article-title>A Component-Based Simplex Architecture for High-Assurance Cyber-Physical Systems”</article-title>
          , 17th International conference
          <article-title>on application of concurrency to system design (ACSD</article-title>
          ),
          <year>2017</year>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>H.</given-names>
            <surname>Barringer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Havelund</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rydeheard</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Groce, “
          <article-title>Rule Systems for Runtime Verification: A Short Tutorial”</article-title>
          ,
          <source>Runtime Verification Lecture Notes in Computer Science</source>
          , 2009
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Basin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Harvan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Klaedtke</surname>
          </string-name>
          , E. Zalinescu, “
          <article-title>Monitoring Data Usage in Distributed Systems”</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <year>2013</year>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Python</given-names>
            <surname>Data Analysis</surname>
          </string-name>
          Library - pandas, https://pandas.pydata.org/, last visited:
          <volume>05</volume>
          .
          <fpage>01</fpage>
          .2019
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>B. D'Angelo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Sankaranarayanan</surname>
            , C. Sa´nchez, W. Robinson,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Finkbeiner</surname>
            ,
            <given-names>H. B.</given-names>
          </string-name>
          <string-name>
            <surname>Sipma</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Mehrotra</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Manna</surname>
          </string-name>
          , “
          <source>Lola: Runtime Monitoring of Synchronous Systems”, 12th International Symposium on Temporal Representation and Reasoning (TIME'05)</source>
          ,
          <year>2005</year>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>Faymonville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Finkbeiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Schirmer</surname>
          </string-name>
          , H. Torfah, “
          <article-title>A Stream-Based Specification Language for Network Monitoring”</article-title>
          ,
          <source>Runtime Verification - 16th International Conference (RV)</source>
          ,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Faymonville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Finkbeiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schwenger</surname>
          </string-name>
          , H. Torfah, “
          <article-title>Real-time Stream-based Monitoring”</article-title>
          , Available on https://arxiv.org/abs/1711.03829
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Lola -</surname>
          </string-name>
          Stream
          <source>-based Runtime Monitoring</source>
          , https://www.react.unisaarland.de/tools/lola/, last visited:
          <volume>07</volume>
          .
          <fpage>01</fpage>
          .2019
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Schirmer</surname>
          </string-name>
          , “
          <article-title>Runtime Monitoring with Lola”</article-title>
          ,
          <source>Master's Thesis</source>
          ,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>F-M. Adolf</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Faymonville</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Finkbeiner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Schirmer</surname>
          </string-name>
          , C. Torens, “Stream Runtime Monitoring on UAS”,
          <source>Runtime Verification - 17th International Conference (RV)</source>
          ,
          <year>2017</year>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Collins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Leathley</surname>
          </string-name>
          , “
          <article-title>The Psychology of Errors in the Engineering Process”</article-title>
          ,
          <source>Safety and Reliability</source>
          , 1995 Fig.
          <article-title>3: Current consumption of an actuator with specified lower and upper bounds. Red regions indicate a notification due to a comparison between current consumption and actuator position demand</article-title>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>