<!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>Towards Using Formal Methods in Prototyping: Advantage or Impediment?</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="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tino Teige</string-name>
          <email>tino.teige@btc-es.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christoph Torens</string-name>
          <email>christoph.torens@dlr.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Udo Brockmeyer</string-name>
          <email>udo.brockmeyer@btc-es.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>BTC Embedded Systems AG</institution>
          ,
          <addr-line>Oldenburg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Unmanned Aircraft, German Aerospace Center (DLR)</institution>
          ,
          <addr-line>Brunswick</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-In aviation and other safety-critical domains, software faults are unacceptable. A means of detecting and avoiding these faults is to use formal methods. Although formal methods strongly contribute to the reliability and robustness of the system, some drawbacks prevent their general usage. A drawback is their reputation to be hard to apply for non-experts. Non-experts have to be familiarized with the tools to efficiently make use of them. But is this reputation still valid? Over the years, formal methods tools have evolved. They are capable to analyze more complex system properties. Further, their user experience was addressed by industrial companies to actually allow non-experts to profit from the advantages of formal methods. This paper represents the first step towards putting the mentioned assumption under test by trying to use formal methods for prototyping. We propose an approach for software prototyping which makes use of the formalization of requirements. We depict advantages and discuss first results of evaluating the commercial tool BTC EmbeddedPlatform R that we were able to use without cost in a project cooperation. We plan to continue the project cooperation to answer the headline in future. Index Terms-prototyping, formal specification, monitoring</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        In software development, validation is a difficult and
errorprone task. There are several different development models
that lead through the software life cycle and support the
development of the software product. Common to most of
these methods is a set of requirements from which code
and test cases are created. Complementary, when developing
safety-critical software, recommended software standards such
as DO-178C [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] also recommend traceability in both directions
from requirement to code and from code to test cases. Further,
it is known that the earlier in the development process a bug
is found the cheaper it can be fixed.
      </p>
      <p>
        Often a proof of concept is developed with reduced rigor in
form of a prototype before the final software product is created.
In aviation, ARP4754A [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] even proposes prototyping to
identify incorrect or missing requirements. One of the main reasons
for developing a prototype is improving the understanding of
the target product. Only with this knowledge it is possible
to define good software requirements. Otherwise, the values
used in requirements are unknown or too fuzzy. To derive
these values, we think that a structured way of prototyping
is desirable during the prototyping process, i.e. consistent and
documented adaptation of threshold values.
      </p>
      <p>
        At the department Unmanned Aircraft of German Aerospace
Center (DLR), prototypes are built to foster autonomy of
unmanned aircraft system. This also incorporates to consider
AI methods and their validation. One problem in AI is that the
function is not written as transparent and human-readable code
which can be manually checked and traced. Instead, the
function is learned and tested based on data and, therefore, often
considered as black-box. Currently, there is a trend towards
simulation validation of AI due to the lack of other means. To
check black-box systems, e.g. during simulation, one approach
is runtime monitoring [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], depicted in Fig. 1. There, the inputs
and outputs of the black-box are send to a monitor. The
monitor is generated based on a formal specification of desired
system properties and evaluates whether the requirements
are met by the black-box [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Further, in case of an AI
component, a monitor feedback loop, as additional qualitative
or quantitative features, can also enhance the AI learning
phase [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. For runtime assurance purposes, monitoring plays
an essential role. Regulatory agencies are investigating the
means to ensure comparable safety of AI components, which
are in line with common practices. One promising means
seems to be some version of the simplex architecture [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] to
sandbox the untrusted AI function. There, a decision module
decides whether to switch from an untrusted function to a
trusted function. Similar to the fuzzy values mentioned above,
the decision module requires accurate threshold values to
switch safely and efficiently. An extension to the simplex
architecture [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] was recently presented which incorporates
neural aspects of AI.
      </p>
      <p>Fig. 1. Using runtime monitoring to check black-box systems.</p>
      <p>In summary, an approach which allows to early identify
requirement violations and to safely (documented, consistent)
adapt requirement threshold values to capture or even bound
the behavior of the target (AI) application is highly desirable
for both developing an end-product as well as prototyping. In
this paper, we propose an approach based on the formalization
of requirements and depict its possible advantages. Further,
we point out first insights whether the commercial tool BTC
EmbeddedPlatform R can be used for the proposed approach.</p>
    </sec>
    <sec id="sec-2">
      <title>II. RELATED WORK</title>
      <p>
        Imprecise or incorrect requirements is one of the root
causes of software errors and the associated costs to fix
a software error in late stages of development is highest
for errors introduced during requirements elicitation [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ][
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
A requirements-based testing process that was supported by
formal methods has been shown to significantly reduce the
number of issues before the implementation phase [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ][
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
Previous work targeted this by formalizing requirements first
in a semi-formal natural language template and finally in
a temporal logic [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The formal requirements were then
model-checked against a manually developed model of the
software. Although this approach was extremely helpful to
understand the system, it required a lot of manual development
effort and the approach did not include support for code and
test development. With this work, we continue these efforts
and include additional aspects.
      </p>
    </sec>
    <sec id="sec-3">
      <title>III. APPROACH</title>
      <p>Often during prototyping, assumptions and requirements on
the system are implicitly given. Still, we think they should
be explicitly stated during the prototyping process. Especially
functional requirements are interesting for prototyping: every
100Hz the controller has to output a value; control-flow
properties like if the pilot requests ascending of the drone
then the drone shall increase height within 0.2 to 0.5 seconds;
or if an obstacle is detected above then the drone shall stop
to increase height within 0.1 seconds; or even high-level
assumptions like during daytime tracking of an object works.
They can actually help developers to avoid false, e.g. outdated
due to system changes, assumptions on the current software
state. Of course, writing and checking requirements on the
prototype level imply an additional workload. However, it can
guide towards the source of error. Also, after prototyping,
written requirements offer a good starting point for creating
the full set of requirements. In general, prototyping should not
turn into an end-product development, therefore a lightweight
approach is desirable.</p>
      <p>The approach focuses on the formalization of such
functional requirements. As a result, the requirements could be
depicted as an automaton or formula. This is an additional
step which needs to be light and efficient. But the main
advantages of formalized requirements are: First, they offer
an unambiguous documentation. Second, at an early stage
consistency can be automatically checked and, therefore, later
code iterations potentially avoided. Third, basic test cases can
be automatically generated. Forth, monitors can be generated
for each property and attached to the code, checking the
adherence to the property online. In the next subsection, we
describe one way how the formalization can be achieved. The
approach is shown in Fig. 2 and explained in more detail in
Subsection III-B.</p>
      <sec id="sec-3-1">
        <title>A. Tool Support</title>
        <p>BTC EmbeddedPlatform R (EP) is a tool suite for
specification, testing, and verification of requirements for Simulink R
and TargetLink R models and production code, currently
mainly used in the automotive domain. EP has been
successfully certified by German T U¨V Su¨d as fit for purpose for the
usage in safety-critical software development projects
according to IEC 61508-3:2010, ISO 26262, EN 50128, IEC 62304
as well as ISO 25119. However, there is no dedicated tool
qualification support for the aerospace domain, as of yet.</p>
        <p>The workflow for the use case of this paper is shown in
Fig. 3. Textual requirements are first imported into EP. Then
the BTC specification method guides the user during the
complex conversion phases from an informal textual requirement to
a uniquely defined and correctly formalized requirement. One
particularity of the method is that the underlying formalism
called Simplified Universal Pattern (SUP) inherently reflects
the intrinsic nature of an informal requirement by describing
a temporal trigger-action relationship, namely in an intuitive
and graphical way.</p>
        <p>Fig. 3. Workflow using BTC EmbeddedPlatform R .</p>
        <p>
          We briefly introduce the idea behind SUP by means of an
example. For more details about the syntax and semantics
of SUP the reader is referred to [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ][
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Fig. 4 gives two
examples of formal requirements using the temporal
triggeraction relation of the graphical SUP language. The SUPs FR-1
and FR-2 formalize the textual requirements from Section III
“If the pilot requests ascending of the drone then the drone
shall increase height within 0.2 to 0.5 seconds.” and “If
an obstacle is detected above then the drone shall stop to
increase height within 0.1 seconds.”, respectively. An example
execution of FR-1 is shown in the upper part of Fig. 5: in step 1
the pilot requests ascending of the drone and thus the trigger
of the SUP is activated. This in turn means that the action is
expected to occur two to five steps later (where the step size
is defined to be 0:1 seconds). In fact, the height is increased
in step 5 meaning that the action part of the SUP fires which
leads to a fulfillment of the SUP in the same step.
        </p>
        <p>
          Based on formalized specifications, fully automated formal
checks can be executed in order to find and fix problems
in the requirements set at a very early design stage, which
leads to greater product quality with less cost compared to
traditional processes. As indicated by Fig. 3, we consider the
consistency check of requirements within this paper, i.e. we
aim at finding any contradiction within the requirements fully
automatically [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. When applying consistency analysis on the
two SUPs of Fig. 4, EP reveals an inconsistency witnessed
by a violating execution shown in the lower part of Fig. 5:
the pilot requests ascending of the drone in step 0. Due
to FR-1, this enforces to increase height at least in step 2
and at most in step 5. In the concrete inconsistency witness,
height is not increased in steps 2, 3, and 4, i.e. the only
chance to fulfill FR-1 is to increase height in step 5. However,
in step 5 an obstacle occurs which triggers FR-2. A valid
behavior by FR-2 is to stop to increase height in the same
step which in turn contradicts with finishing the action of
FR1. This establishes an inconsistency between FR-1 and
FR2. Though the detection of inconsistencies is fully automatic,
their resolution is a manual task but with the support of a
concrete counterexample. In the example above, it was most
likely forgotten to consider detected obstacles for the pilot
request in FR-1. One potential solution would be to define an
exit (cf. [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ][
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]) in FR-1 whenever an obstacle is detected,
with the effect that observation of FR-1 is restarted (without
violating or fulfilling the SUP) whenever an obstacle occurs.
        </p>
        <p>
          Finding requirement-specific test cases, i.e. test cases that
(FR-1)
(FR-2)
actually test the requirements, most often is a manual and thus
very time-consuming task. As shown in Fig. 3, EP facilitates
the automatic generation of test cases by taking into account
the intended behavior described by the requirements, leading
to high-quality test cases, cf. [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. For the SUPs FR-1 and
FR2, a generated test case is shown in the upper part of Fig. 5.
        </p>
        <p>
          Another capability is to export executable monitors, also
called observers, from formal requirements as depicted in
Fig. 3. These observers implement the behavior of the formal
requirements and establish a very flexible way of monitoring
the correctness of the behavior of the actual system under
test in external simulation environments. Technically, these
observers are exported as a functional mock-up unit (FMU)
in the tool independent FMI standard1, cf. [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Prototyping Using Formal Requirements</title>
        <p>We propose an iterative prototyping approach (cf. Fig. 2):
1 Informal requirements on the application are collected.
2 We formalize the requirements using EP. Note that EP
focuses on functional requirements. Requirements on the
system design, e.g. structural redundancies, cannot be
expressed in general.
3 Then, formal requirements are checked for consistency.</p>
        <p>An automatic check is highly desirable since the software
is build iteratively and variables can change at any point
in the prototype development. Also, especially, wrong
timing assumptions are hard to find during later iteration.
Imagine the requirement on component c when input
a is set, output b should be set within 50ms. At a
later development phase, component c is divided into
consecutive subcomponents c1 and c2 with requirements
if input a is set then a1 is set after 25ms and when input
a1 is set then b is set within 25ms, respectively. Due to
the automated check of the formal requirements, we can
automatically detect an inconsistency by finding a trace
falsifying the initial requirement on c. The required time
for the second property is unbounded, after 25ms and
could lead to a violation, i.e. b could be set after 50ms.
4 Based on formal requirements Test Cases and FMU</p>
        <p>Observers are generated by EP.
5 We instrument the system code to send required data
to the generated monitors. The monitors evaluate the
1Details about FMU and FMI can be found at https://fmi-standard.org/.
specified properties and return an early verdict whether
the system adheres to the system requirements. Note
that it is preferable to monitor the system outline on a
dedicated hardware to avoid impacts on the system.
Next, we run our system. First, we use the generated Test
Cases. Then, simulations are used.</p>
        <p>After each step, the artifacts are checked for violations,
e.g. during execution the outcome of the FMU Observers are
checked whether any requirements are violated.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>IV. DISCUSSION</title>
      <p>
        Currently, EP is able to realize the required functions. But
its scalability on real-world example from aviation domain is
unclear and needs to be addressed in future. First tests indicate
that the formalization of textual requirements is easy to use.
However, currently, one is limited to SUP which represent
temporal trigger-action relationships. Still, based on
experience, most of the functional requirements do actually fit in this
pattern. For others, other languages exist like the stream-based
specification language Lola [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] which was already used to
monitor the status of unmanned aircraft systems during flight.
      </p>
      <p>In future work, we have to investigate the trade-off of the
approach in order to estimate the cost-benefit ratio between
writing and formalizing requirements and the added value of
better code at early stages, e.g. test cases and monitors. Clear
metrics have to be found to estimate the benefit. Formalization
overhead also incorporates mistakes during formalization. To
which degree these kinds of mistakes are automatically
detected by the consistency checks is also important.</p>
      <p>During simulation, the use of generated monitors offer
clear benefits like early feedback and avoidance of inline
assertions. There, the main concern is the integration into
the system setup, especially the system instrumentation. The
monitors need to be able to run along the system while having
a low impact on its execution. Figure 6 exemplary shows
our current system instrumentation. We are not limited on
passively reading databuses. We also instrumented the code to
send information about the internal software status via UDP.</p>
    </sec>
    <sec id="sec-5">
      <title>V. CONCLUSION</title>
      <p>We motivated a structured approach for prototyping. The
approach is centered around the formalization of
requirements. It allows to automatically check their consistency and
to generate test cases and monitors. The approach can be
implemented using open-source tools. As formal specification
language, linear temporal logic (LTL) could be a candidate
for which tools for model checking, runtime monitoring, and
test generation do exist. We decided to use a commercial
tool that combines all of these approaches. We showed how
the integration into development could be done. Then, we
discussed the barriers for an actual integration. In future, we
plan to actually apply the approach and to report findings to
come closer to answering the question whether formal methods
pay off for prototyping.
# M o n i t o r s i d e 1
fmu = FMU( p a t h ) 2
fmu . i n s t a n t i a t e ( . . . ) 3
mapping = f V a r i a b l e &gt; ( ID , Type ) g 4
s o c k e t = o p e n S o c k e t ( i p , p o r t , mapping ) 5
w h i l e ( t r u e ) : 6
ID , d a t a , e v a l u a t e = s o c k e t . r c v ( ) 7
fmu . s e t V a l u e ( ID , d a t a ) 8
i f e v a l u a t e : 9
fmu . d o S t e p ( . . . ) 10
f o r key i n mapping : 11
p r i n t ( key , fmu . g e t B o o l e a n V a l u e ( key ) ) 12
. . . Teardown 13
# System s i d e 14
. . . s t a r t up . . . i n i t i a l i s e s o c k e t 15
w h i l e ( t r u e ) : 16
hgt cmd , c u r h g t =getHgtCmd ( ) , g e t C u r H e i g h t ( ) 17
o b s = c h e c k O b s t a c l e A b o v e ( ) 18
cmd hgt = c a l c u l a t i o n ( hgt cmd , c u r h g t , o b s ) 19
s e t C m d H e i g h t ( cmd hgt ) 20
s e n d D a t a ( 21
[ ’request_ascending’ , ’increase_hgt’ , ’obstacle’ ] 22
[ hgt cmd &gt; 0 , cmd hgt &gt; 0 , o b s t a c l e a b o v e ] ) 23
. . . Teardown 24</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] RTCA, “DO-178C/ED-12C
          <source>Software Considerations in Airborne Systems and Equipment Certification,” Radio Technical Commission for Aeronautics</source>
          ,
          <year>2011</year>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>SAE</given-names>
            <surname>International</surname>
          </string-name>
          , “
          <article-title>ARP 4754A Guidelines for Development of Civil Aircraft and Systems</article-title>
          ,” SAE International,
          <year>2010</year>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Falcone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Havelund</surname>
          </string-name>
          , and G. Reger, “
          <article-title>A tutorial on runtime verification,”</article-title>
          <source>In Engineering Dependable Software Systems</source>
          ,
          <year>2013</year>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>K. Y.</given-names>
            <surname>Rozier</surname>
          </string-name>
          , “From Siumlation to Runtime Verification and Back: Connecting
          <string-name>
            <surname>Single-Run Verification</surname>
            <given-names>Techniques</given-names>
          </string-name>
          ,” In SpringSim,
          <year>2019</year>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>D.</given-names>
            <surname>Phan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Paoletti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Grosu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Jansen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Smolka</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Stoller</surname>
          </string-name>
          , “Neural Simplex Architecture,” arXiv
          <year>1908</year>
          .
          <volume>00528</volume>
          . 2019
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Seto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Krogh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Sha</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Chutinan</surname>
          </string-name>
          , “
          <article-title>The Simplex Architecture for Safe Online Control System Upgrades,”</article-title>
          <source>In Proc. 1998</source>
          American Control Conference Vol.
          <volume>6</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>R. R.</given-names>
            <surname>Lutz</surname>
          </string-name>
          , “
          <article-title>Analyzing software requirements errors in safety-critical, embedded systems</article-title>
          ,
          <source>” Proceedings of the IEEE International Symposium on Requirements Engineering</source>
          ,
          <year>1993</year>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Davis</surname>
          </string-name>
          , Alan. “
          <article-title>Just enough requirements management: where software development meets marketing</article-title>
          .”
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Whalen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Cofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Krogh</surname>
          </string-name>
          , and W. Storm, '
          <article-title>Integration of formal analysis into model-based software development process,” Formal Methods for Industrial Critical Systems, 2008</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Skokovic</surname>
          </string-name>
          , “
          <article-title>Requirements-Based Testing Process in Practice,”</article-title>
          <source>International Journal of Industrial Engineering and Management (IJIEM)</source>
          , Vol.
          <volume>1</volume>
          <issue>No 4</issue>
          ,
          <year>2010</year>
          , pp.
          <fpage>155</fpage>
          -
          <lpage>161</lpage>
          , ISSN:
          <fpage>2217</fpage>
          -
          <lpage>2661</lpage>
          ,
          <year>2010</year>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Torens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.-M.</given-names>
            <surname>Adolf</surname>
          </string-name>
          , “
          <article-title>Fail-Safe Systems from a UAS Guidance Perspective,” In: Encyclopedia of Aerospace Engineering UAS</article-title>
          .
          <source>Wiley. ISBN 9780470686652</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>T.</given-names>
            <surname>Teige</surname>
          </string-name>
          ,
          <string-name>
            <surname>T.</surname>
          </string-name>
          <article-title>Bienmu¨ller, and</article-title>
          <string-name>
            <given-names>H.J.</given-names>
            <surname>Holberg</surname>
          </string-name>
          , “Universal Pattern: Formalization, Testing, Coverage, Verification, and
          <article-title>Test Case Generation for Safety-Critical Requirements</article-title>
          ,
          <source>” MBMV</source>
          <year>2016</year>
          :
          <fpage>6</fpage>
          -
          <lpage>9</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.S.</given-names>
            <surname>Becker</surname>
          </string-name>
          , “Analyzing Consistency of Formal Requirements,
          <source>” ECEASST 76</source>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Bienmu</surname>
          </string-name>
          ¨ller, T. Teige,
          <string-name>
            <given-names>A.</given-names>
            <surname>Eggers</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Stasch</surname>
          </string-name>
          , “
          <article-title>Modeling Requirements for Quantitative Consistency Analysis and Automatic Test Case Generation,” FM&amp;MDD 2016</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>H.</given-names>
            <surname>Esen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kneissl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Molin</surname>
          </string-name>
          , S. vom
          <string-name>
            <surname>Dorff</surname>
            , B. Bo¨ddeker, E. Mo¨hlmann, U. Brockmeyer,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Teige</surname>
            ,
            <given-names>G.G.</given-names>
          </string-name>
          <string-name>
            <surname>Padilla</surname>
          </string-name>
          , S. Kalisvaart, “
          <source>Validation of Automated Valet Parking,” Validation and Verification of Automated Systems</source>
          , Springer,
          <year>2019</year>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <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>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Torens</surname>
          </string-name>
          , “Stream Runtime Monitoring on UAS,” In Runtime Verification,
          <year>2017</year>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>