<!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>AutoFOCUS 3: Tooling Concepts for Seamless, Model-based Development of Embedded Systems</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Vincent Aravantinos, Sebastian Voss, Sabine Teufl, Florian Hölzl, Bernhard Schätz fortiss GmbH Guerickestr.</institution>
          <addr-line>25 80805 Munich</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-This paper presents tooling concepts in AUTOFOCUS 3 supporting the development of software-intensive embedded system design. AUTOFOCUS 3 is a highly integrated model-based tool covering the complete development process from requirements elicitation, deployment, the modelling of the hardware platform to code generation. This is achieved thanks to precise static and dynamic semantics based on the FOCUS theory [1]. Models are used for requirements, for the software architecture (SA), for the hardware platform and for relations between those different viewpoints: traces from requirements to the SA, refinements between SAs, and deployments of the SA to the platform. This holistic usage of models allows the provision of a wide range of analysis and synthesis techniques such as testing, model checking and deployment and scheduling generation. In this paper, we demonstrate how tooling concepts on different steps in the development process look like, based on these integrated models and implemented in AUTOFOCUS 3. Index Terms-AutoFOCUS3, Seamless MBD, Model-Based Development, Embedded Systems, Tooling Concept, Tool</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>Embedded systems are increasingly developed in a
modelbased fashion facilitating constructive and analytic quality
assurance via abstract component-models of the system under
development. A variety of different tools claim to support a
model-based approach; however, these tools mostly cover
certain parts of the development process. In this paper, we
demonstrate the advantage of integrated models and provide tooling
concepts for various design steps. Both together leverage the
benefits of a seamless model-based approach based on
welldefined semantics. The objective of this paper is to present
such tooling concepts in an entire tool (AUTOFOCUS 3)
in its current advanced feature state, which is open source
and freely available at http://af3.fortiss.org. The
main contribution of this paper is to demonstrate the seamless
integration of the integrated models.</p>
      <p>
        AUTOFOCUS 3 is built on a system model based on the
FOCUS theory [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] that allows to precisely describe a system, its
interface, behavior, and decomposition in component systems
on different levels of abstraction. To manage the complexity
of describing such a system, different views are used for these
aspects, providing dedicated description techniques for
different structural aspects (like the decomposition of a component
in a network of subcomponents, or the hardware platform the
system is implemented on) as well as behavioral aspects (like
an exemplary execution of a system, or its complete behavior).
Since all of these views are projections of the underlying
system model, these views are directly integrated. Furthermore,
linking views allow an additional integration (like the mapping
of a component behavior to a hardware element, or a required
partial execution to a completely defined behavior). Besides
allowing a manageable precise description of a system under
development, the system model also enables different analysis
and synthesis mechanisms (like the compatibility analysis of a
partial and complete behavior or the deployment synthesis of
components to a hardware platform). To support the different
tasks in a development process, the views are furthermore
organized in viewpoints. A viewpoint serves as a construct for
managing the artifacts related to the different stakeholders of
the development process [2, Chapter 3]. The AUTOFOCUS 3
viewpoints focus on the definition of the system requirements
in a requirements analysis, the design of the software as a
network of communicating components in form of a software
architecture, and the realization of the system as scheduled
tasks executed on networked processors in form of a hardware
architecture.
      </p>
      <p>
        The importance of integrated models, views and viewpoints
is widely recognized and influenced the definition of many
methods and frameworks in systems, software and enterprise
engineering [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and provides the basis for this paper.
      </p>
      <p>
        The objective of AUTOFOCUS 3 is to implement tooling
concepts which demonstrate that such an approach is indeed
feasible through a ready-to-use, open-source implementation
in a pre-series quality. The current AUTOFOCUS 3 is a
revised and improved version of earlier prototypes [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
(the oldest dating back to 1996). Previous papers either report
on particular aspects of the tool [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], or on its use
in the context of industrial case studies [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The
underlying ideas of the current AUTOFOCUS 3 incarnation
are presented in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>AUTOFOCUS 3 is not tied to a specific development
process, but most developments done with AUTOFOCUS 3
would typically follow the following process or variations
thereof:
1) Requirements Analysis. Requirements are elicited,
documented as structured text, organized, analyzed and
refined, and incrementally formalized. Test suites with
coverage criteria can be generated from high-level
specifications.
2) Software Architecture. The system is designed with
a component-based language specifying the application
software architecture and behavior of the system. The
design is validated using simulation, testing (which can
come as refinements from high-level generated tests) as
well as formal verification based on model-checking.
3) Hardware Architecture. The software components are
(possibly automatically) deployed on the platform, w.r.t.
certain system requirements. Schedules optimizing one
or more criteria are generated with the help of SMT
solvers.</p>
      <p>
        The code is completely generated out of the previous models,
according to the deployment and chosen schedule.
Furthermore, Safety Cases [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], which are documented bodies of
evidence that provide a convincing and valid argument that a
system is adequately safe for a given application in a given
environment, can be modelled. A Safety Case may contain
complex arguments that can be decomposed, corresponding
to modular system artifacts which are generally dependent on
artifacts from different viewpoints.
      </p>
      <p>The paper is organized as follows: Section II presents
briefly the main modelling viewpoints that are offered by
AUTOFOCUS 3 (requirements, software architecture, and
hardware architecture). Section III presents the transversal
viewpoints which facilitate to make the connections between
the main viewpoints and thus yield a seamless integration. We
also present the benefits resulting of this integration: formal
analysis and verification, scheduling, hardware-specific code
generation. Section IV presents related work.</p>
    </sec>
    <sec id="sec-2">
      <title>II. MODEL-BASED TOOLING CONCEPTS IN THE</title>
      <p>DEVELOPMENT PROCESS</p>
      <p>In this section we present shortly the three modelling
viewpoints supporting the process mentioned in the previous
section.</p>
      <sec id="sec-2-1">
        <title>A. Requirements</title>
        <p>In AUTOFOCUS 3, requirements are specified
modelbased: requirements are not just documented as plain text;
the tool provides templates with named fields to define, for
instance, the title of a requirement, its author, a description, a
potential rationale or a review status (see Fig. 1).</p>
        <p>Furthermore, requirement sources and glossaries can be
defined. Whenever they are referenced in a textual description
of a requirement, the entries are automatically highlighted and
the definition can be read in a pop-up. Requirements can be
hierarchically grouped by packages and organized by trace
links. Templates for scenarios and interface behavior help to
detail requirements further.</p>
        <p>Requirements can not only be documented as text, but also
formalized and represented by machine-processable models.
Message sequence charts (MSC), see Fig. 2, can be used to
describe desired or unwanted interactions of actors.</p>
        <p>
          Temporal logic expressions can be used to express desired
and unwanted behavior of the system under development.
As shown in Fig. 3, AUTOFOCUS 3 provides user-friendly
templates (see also [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]) to specify temporal logic expressions.
        </p>
        <p>Once the requirements analysis is sufficiently advanced, it
is possible to express formalized behaviors, e.g., in the form
of state automata. A state automaton typically covers a set of
requirements rather than a single requirement.</p>
        <p>Tooling Support. AUTOFOCUS 3 supports the user in
analyzing the requirements, for example through reports on
the review status or statistics (Fig. 4). Simple queries on the
requirements identify for example empty fields, duplicates and
inconsistent status of requirements and their trace links. A
report can be generated from AUTOFOCUS 3 that can be
used for the validation of the requirements by the stakeholders
of the system under development. State automata can be
simulated; this is typically used in both the analysis and
validation of requirements.</p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Software Architecture</title>
        <p>
          The software architecture of a system under development
can be described using a classical component-based language
with a formal (execution) semantics based on the FOCUS
theory [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]: components execute in parallel according to a
global, synchronous, and discrete time clock.
        </p>
        <p>The behavior of atomic components can be defined by state
automata (Fig. 5), tables (Fig. 6) or simple imperative code
(Fig. 7). Components interact with each other through typed
input and output ports which are connected by fixed channels
(Fig. 8).</p>
        <p>Finally, components can be decomposed into
subcomponents to allow a hierarchically structured architecture.</p>
        <p>
          Tooling Support. Due to the executable formal semantics
of the component-based modeling language, AUTOFOCUS 3
facilitates the simulation of the software architecture at all
levels, of a single state automaton (Fig. 9) as well as of
composite components (Fig. 10) providing Model-in-the-Loop
simulations. Test cases can be created and simulated (Fig. 11).
Furthermore, formal analyses like reachability analysis (see
Fig. 12), non-determinism check, variable bounds checking
and the verification of temporal logic patterns (see Fig. 13)
are available: due to the formal semantics of FOCUS,
AUTOFOCUS 3 can embed a precise translation of the software
architecture into the language of the NuSMV/nuXmv [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]
model checker. Note that this is all done in a complete
transparent way: the translation and call to the model checker
are all done in the background to provide user-friendliness
workflow. The results of the model checker, namely their
counterexamples, are also translated back in the same way
e.g., a counter example to a temporal logic property can be
graphically simulated.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>C. Hardware Architecture</title>
        <p>
          AUTOFOCUS 3 allows to model the hardware: processors
(or, in the automotive domain, ECUs – Engine Control Units),
buses, actuators and sensors can explicitly be modeled as
well as their connections (Fig. 14). Multi-core platforms with
which encompasses execution environments from bare metal
hardware (e.g., chips and wires) over operating system
environments up to higher-level runtime environments (e.g., Java
virtual machine with remote method invocation mechanism).
For instance, the aforementioned hardware model for FIBEX
comes also with an implementation for the Flexray protocol
([
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]), a time-triggered communication protocol in the
automotive domain.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. SEAMLESS INTEGRATION</title>
      <p>An integration of all of the previously mentioned viewpoints
in an integrated model, resp. tooling environment is an
important asset for the user: it avoids the effort to integrate tools,
defining their interfaces and dealing with conflicting, missing,
or badly documented tool-interfaces, semantics and standards.
However, if these viewpoints remain completely independent
or if the dependency between them remains informal as it is
the case with most existing tools, then only very few benefits
result from its integration. Instead, AUTOFOCUS 3 allows for
model integration leading to a consistent, integrated system
design. In the following, we present these models as well as
analysis and synthesis techniques that demonstrate the benefits
of AUTOFOCUS 3 resulting from this strong integration.</p>
      <sec id="sec-3-1">
        <title>A. Tracing Requirements to the Software Architecture</title>
        <p>Traces. The integration of requirements (Section II-A) and
the software architecture (Section II-B) can be achieved in
various ways. A first simple integration is the use of informal
traces: for each requirement, traces to components of the
software architecture can be added (see Fig. 16). These traces
shared memory are available (Fig. 15), as well as specific
domain specific hardware e.g., a pacemaker platform was built
specifically for building and deploying models of a
pacemaker. Similarly, automotive-specific hardware is supported
via FIBEX import/export (an XML-based standardized format
used for representing TDMA-networks).</p>
        <p>Hardware architecture models actually deal with more than
just hardware: they typically include a platform architecture
indicate that the component(s) linked to the requirement shall
fulfill the requirement. Such traces are automatically visible
(and navigable) at the level of the component architecture (Fig.
17). These traces can be used to display information to the
user. For example, a global visualization of the traces, both
between requirements and between requirements and elements
of the software architecture, is available and allows the user
to have an overall picture of the intra- and inter-viewpoint
relations (Fig. 18).</p>
        <p>
          Refinements. Traces provide informal connections between
model elements, which is to be expected since most
requirements are (at least at first, or partly) informal. However, as
explained in Section II-A, requirements elicitation can go far
enough that a formalized behavior is obtained, e.g., that a
state automaton is given. In such cases, traces to the software
architecture can be enhanced into refinements describing not
only a mere connection, but even expressing a formal relation
between the requirements-level behavior description and a
software-level implementation of it. A refinement is simply
defined by expressing how values at the requirement level
shall be transformed into values at the software level and
vice versa (Fig. 19). Such refinements can then be used
to automatically derive implementation-level test suites from
requirements-level ones [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] (which can be automatically
generated according to some coverage criteria) or to verify
by model checking that a component indeed implements a
functionality.
        </p>
        <p>Connecting MSCs to the Software Architecture. MSCs
can be used in requirements in a semi-formal setting, i.e., the
MSC entities represent actors identified in the requirements.
Or they can be used in a completely formal setting: when
the requirement elicitation is advanced enough, MSC entities
can refer to components and the messages between entities
can denote signals exchanged through channels. This can be
expressed directly in the MSC editor, e.g., Fig. 20 shows
how the properties of an MSC entity named “Merge Entity”
refers to a component named “MergeComponent”. The same
holds for the messages which can be connected to ports of the
corresponding components.</p>
        <p>
          Once these connections are provided, AUTOFOCUS 3
allows to verify, by translating the MSC into a temporal logic
formula and by using model checking (in the style of [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]),
that the given MSC is indeed feasible in the software
architecture with the referenced components and ports. When feasible,
the resulting run can be simulated in AUTOFOCUS 3.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Deployment of the Software Architecture on the Platform</title>
        <p>Deployment of Software to Hardware Components. The
integration of the software (Section II-B) and hardware
architecture (Section II-C) is done by using deployment models that
describe the integration between different viewpoints. Such
deployments map components from the software viewpoint to
the hardware viewpoint. Furthermore, the deployment model
not only contains the mapping of components but also the
allocation of logical ports of a software component to their
corresponding hardware “ports”, namely hardware sensors for
sensor values and hardware actuators for actuator outputs.
Fig. 21 illustrates this deployment. Note that the hierarchical
structure of components makes it impossible to have such a
simple GUI for deployments in AUTOFOCUS 3, making the
actual interface different than the one presented in this figure.</p>
        <p>
          Design Space Exploration for Model Synthesis. Once a
deployment is defined, Design Space Exploration methods can
be applied to define the scheduling of the software components
on their respective hardware components. AUTOFOCUS 3
provides support to achieve this step by automated synthesis.
Actually, even deployments can be automatically synthesized
as well as complete hardware architectures, according to
various system requirements, e.g. timing, safety, etc. To do so we
use Design Space Exploration (DSE) techniques. In [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], we
demonstrate how such a joint generation of deployments and
schedules can be efficiently done for shared-memory multicore
architectures. Each solution of such a synthesis process already
contains a possible deployment, which in turn already contains
a valid schedule (cf. Fig. ??). This reduces the effort and
complexity in a the workflow for the identification of valid
system designs.
        </p>
        <p>Our approach relies on a symbolic encoding scheme, which
enables to generate the desired models. The symbolic encoding
is done by defining a precedence graph of components based
on the software architecture as a set of tasks and messages
and their connections including further information concerning
predefined allocations to hardware architecture.</p>
        <p>
          The proposed approach has proven to perform in a scalable
fashion for practical sizes ([
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]), as it relies on a symbolic
formalization encoding the deployment synthesis as a
satisfiability problem over Boolean formulas and linear arithmetic
constraints. A state-of-the-art satisfiability modulo theories
(SMT) solver, namely Z3 [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], is used to compute these
solutions. Using Design Space Exploration techniques during
system development involves the software engineer/designer
itself. The system designer is often not just interested in an
automatically synthesized solution, but even more in various
solutions that can be compared. Therefore, visualization
techniques [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] are part of a Design Space Exploration approach
that leverages to guide the system designer through the
solution space.
        </p>
        <p>Furthermore, we propose a tooling concept that includes
a Design Space Exploration Workflow (Fig. 23) enabling to
use intermediate results for next optimization steps, e.g. a</p>
      </sec>
      <sec id="sec-3-3">
        <title>Generated Deployment or a Scheduling Synthesis.</title>
      </sec>
      <sec id="sec-3-4">
        <title>C. Holistic Code Synthesis for Deployed Systems</title>
        <p>Once the software architecture, the platform architecture,
and a (manually defined or automatically synthesized)
deployment model are defined, AUTOFOCUS 3 provides the
possibility to have holistic code generation.</p>
        <p>The input to the generation facility is the mapping of
software components to platform execution units. The result
of the code generator is a full implementation of the system
model including configuration files for the underlying
operating system as well as bus message catalogs and compile and
build environment configurations (see Fig. 24).</p>
        <p>The code generator consists of two parts: the software
architecture general purpose generator and the platform-specific
target generator. The former translates the different types of
software behavior specifications into an intermediate code
model. From this intermediate representation the final system
code (see Fig. 25) is generated by the ECU specific code
generator using the ECU target language (e.g. C, Java, VHDL).</p>
        <p>Note that these specific generators can ignore the
intermediate implementation in cases the original behavior specification
can be implemented more efficiently when applying a
transformation to the target language and/or hardware directly (e.g.,
a state-less computation component might be implemented
efficiently on a FPGA sub-unit available to the ECU).</p>
        <p>
          Every platform integrated in AUTOFOCUS 3 must provide
its extension to the target generator as well as a justification
that it upholds the semantics of the model of computation
of the software architecture. Likewise, the software code
parts must also be behaviorally equivalent to these formal
semantics. Proving such semantic equivalences can be
cumbersome [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ], but is absolutely necessary in order to avoid
breaking functional properties established by earlier validation
and verification methods.
        </p>
      </sec>
      <sec id="sec-3-5">
        <title>D. Safety Cases</title>
        <p>To argue about the safety of systems, Safety Cases are
a proven technique that allows a systematic argumentation.
Safety Cases may contain complex arguments that can be
decomposed corresponding to modular system artifacts which
are generally dependent on artifacts from different viewpoints:
e.g., requiring redundancy for safety has an impact both on
software and on hardware architectures. Such assurance cases</p>
        <p>
          Fig. 26. GSN-based Safety Cases
are generally not well integrated with the different system
models, resp. viewpoints. To provide a comprehensible and
reproducible argumentation and evidence for argument
correctness, we make use of the integrated system model. Since
AUTOFOCUS 3 provides such integrated models at its core, it
leverages the possibility to tightly connect these system models
with safety case artefacts in order to form a comprehensive
safety argumentation. In AUTOFOCUS 3 we provide safety
case modelling based on Goal Structuring Notation (GSN)
[
          <xref ref-type="bibr" rid="ref25">25</xref>
          ], as illustrated Fig. 26. Different safety case artifacts can be
connected to their corresponding system artifacts (e.g., a safety
goal to a requirement from the requirement viewpoint). This –
for instance – enables to automatically guide the construction
of the system architecture w.r.t. the safety claims, as we
demonstrated in [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>IV. RELATED WORK</title>
      <p>There are many model-based tools which target the
development/architecting of embedded systems, but none of them,
to our knowledge, presents all the features of AUTOFOCUS 3.</p>
      <p>
        Papyrus [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] with Moka1 allows the execution of models
based on the fUML [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] Semantics. Code generation is, as far
as we know, only partly implemented, but considering the fast
growth of Papyrus and Moka, this is should only be a question
of time. A more significant difference to AUTOFOCUS 3
is that AUTOFOCUS 3 integrates all the modules into a
unified software instead of being made of separate modules
for diagram editing (Papyrus) and execution semantics (Moka).
This has a significant impact on the verification (either testing
or formal verification): in AUTOFOCUS 3, the semantics for
execution and verification are intrinsically identical; in Papyrus
additional work is required to synchronize the semantics of
Moka and the verification tool, for example Diversity2 – a
verification tool typically used together with Papyrus.
      </p>
      <p>
        The widespread commercial tool IBM Rational Rhapsody3
has been offering for a long time a complete tool chain until
code generation. Rhapsody has a precisely defined semantics
[
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. It has even been used as a basis to provide integrated
formal verification [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]. However, it is not as tightly integrated
as AUTOFOCUS 3, not open source and is essentially used for
commercial use and not as a platform for research experiments
as AUTOFOCUS 3. The design space exploration viewpoint
of AUTOFOCUS 3 is a research tooling concept which is
a good example of such an experiment which
differentiates AUTOFOCUS 3 from Rhapsody. Similar considerations
hold for Bridgepoint (or xtUML)4, LieberLieber Embedded
Engineer5 and the Enterprise Architect (EA)6 that supports
many modeling languages such as UML or SysML. ADORA
(Analysis and Description of Requirements and Architecture)7
is a research tool that supports an object-oriented method
and a modeling language also called ADORA [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]. ADORA
targets requirements and the software architecture of a system.
Hardware is not included.
      </p>
      <p>
        Ptolemy II [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] is similar to AUTOFOCUS 3 in the sense
that it is based on formal semantics and provides code
generation. Like AUTOFOCUS 3, it is an open source and academic
tool which is used for research. However, Ptolemy targets
only the software architecture: neither requirements nor the
hardware are integrated. This arises from the fact that the
1https://wiki.eclipse.org/Papyrus/UserGuide/ModelExecution
2http://projects.eclipse.org/proposals/diversity
3www-01.ibm.com/software/awdtools/rhapsody/
4https://xtuml.org/
5http://www.lieberlieber.com/en/embedded-engineer-for-enterprisearchitect/
6http://www.sparxsystems.com/products/ea/index.html
7http://www.ifi.uzh.ch/rerg/research/adora.html
development of embedded systems is not the main focus of
Ptolemy.
      </p>
      <p>The SCADE Suite8 is a commercial tool well-known in
the development of control software, for example in avionics.
While the SCADE Suite9 offers a lot of functionality with
respect of simulation, verification and code generation, at the
moment it does not provide any support for requirements.</p>
    </sec>
    <sec id="sec-5">
      <title>V. CONCLUSION</title>
      <p>In this paper, we presented AUTOFOCUS 3 and the tooling
concepts that it supports at different steps in the development
process. AUTOFOCUS 3 is based on a completely integrated
model-based development approach from requirements
elicitation to deployment on the platform of code which allows to
generate code completely (i.e., without further human
modification) from the models. Based on well-defined semantics,
AUTOFOCUS 3 demonstrates how integrated models are
enablers for a wide range of analysis and synthesis
techniques such as testing, model checking and deployment and
scheduling synthesis. Tooling concepts in AUTOFOCUS 3
demonstrate how to make use of these techniques in a
modelbased development process.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Broy</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Stølen</surname>
          </string-name>
          ,
          <source>Specification and Development of Interactive Systems: Focus on Streams, Interfaces, and Refinement</source>
          . Springer,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Hönninger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Achatz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Broy</surname>
          </string-name>
          ,
          <source>Model-Based Engineering of Embedded Systems: The SPES 2020 Methodology</source>
          . Springer Publishing Company, Incorporated,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>U.S.</surname>
          </string-name>
          <article-title>Office of Management and Budget and U.S. Office of EGovernment and IT, “A Common Approach to Federal Enterprise Architecture</article-title>
          .”
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>F.</given-names>
            <surname>Huber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schätz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Spies</surname>
          </string-name>
          , “
          <article-title>AutoFocus - A Tool for Distributed Systems Specification,” in Formal Techniques in Real-Time and Fault-Tolerant Systems (FTRTFT), ser</article-title>
          .
          <source>LNCS</source>
          , vol.
          <volume>1135</volume>
          . Springer Verlag,
          <year>1996</year>
          , pp.
          <fpage>467</fpage>
          -
          <lpage>470</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>F.</given-names>
            <surname>Hölzl</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Feilkas</surname>
          </string-name>
          , “
          <article-title>Autofocus 3: A scientific tool prototype for model-based development of component-based, reactive, distributed systems,” in Proceedings of the 2007 International Dagstuhl Conference on Model-based Engineering of Embedded Real-time Systems, ser</article-title>
          .
          <source>MBEERTS'07</source>
          . Berlin, Heidelberg: Springer-Verlag,
          <year>2010</year>
          , pp.
          <fpage>317</fpage>
          -
          <lpage>322</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Teufl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Mou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Ratiu</surname>
          </string-name>
          , “
          <article-title>MIRA: A tooling-framework to experiment with model-based requirements engineering</article-title>
          ,” in 21st IEEE International Requirements Engineering Conference, RE, Rio de JaneiroRJ, Brazil,
          <year>2013</year>
          , pp.
          <fpage>330</fpage>
          -
          <lpage>331</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Campetelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Hölzl</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Neubeck</surname>
          </string-name>
          , “
          <article-title>User-friendly model checking integration in model-based development</article-title>
          ,” in 24th International Conference on Computer Applications in Industry and Engineering (CAINE),
          <year>November 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Voss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Eder</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Hölzl</surname>
          </string-name>
          , “
          <article-title>Design space exploration and its visualization in AUTOFOCUS3,” in Gemeinsamer Tagungsband der Workshops der Tagung Software Engineering</article-title>
          , Kiel, Deutschland,
          <volume>25</volume>
          .-
          <fpage>26</fpage>
          .
          <source>Februar</source>
          <year>2014</year>
          , pp.
          <fpage>57</fpage>
          -
          <lpage>66</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kelly</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Carlan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Voss</surname>
          </string-name>
          , “
          <article-title>Model-based safety cases in autofocus3,”</article-title>
          <source>in 1st International Workshop on Assurance Cases for Softwareintensive Systems (ASSURE)</source>
          ,
          <year>2013</year>
          , tool demonstration.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Feilkas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fleischmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Hölzl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Pfaller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Scheidemann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Spichkova</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Trachtenherz</surname>
          </string-name>
          , “
          <article-title>A top-down methodology for the development of automotive software,” Technische Universität München</article-title>
          ,
          <source>Tech. Rep. TUM-I0902</source>
          ,
          <year>January 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Feilkas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Hölzl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Pfaller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rittmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schätz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schwitzer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Sitou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Spichkova</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Trachtenherz</surname>
          </string-name>
          , “
          <article-title>A Refined TopDown Methodology for the Development of Automotive Software Systems: The KeylessEntry System Case Study,” Technische Universität München</article-title>
          ,
          <source>Tech. Rep. TUM-I1103</source>
          ,
          <year>Februar 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>W.</given-names>
            <surname>Böhm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Junker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vogelsang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Teufl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pinger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Rahn</surname>
          </string-name>
          , “
          <article-title>A formal systems engineering approach in practice: an experience report</article-title>
          ,” in 1st International Workshop on Software Engineering Research and Industrial Practices,
          <string-name>
            <surname>SER</surname>
          </string-name>
          &amp;IPs, Hyderabad, India,
          <year>June 2014</year>
          , pp.
          <fpage>34</fpage>
          -
          <lpage>41</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>B.</given-names>
            <surname>Bernhard Schätz</surname>
          </string-name>
          , “
          <article-title>Model-based development of software systems: From models to tools</article-title>
          .”
          <source>Habilitation Thesis</source>
          , Technische Universität München,
          <year>2009</year>
          . [Online]. Available: http://www4.in.tum.de/ schaetz/papers/Habiliationsschrift.pdf
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bishop</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Bloomfield</surname>
          </string-name>
          , “
          <article-title>A methodology for safety case development,” in Safety-Critical Systems Symposium</article-title>
          . Birmingham, UK: Springer-Verlag,
          <source>ISBN 3-540-76189-6</source>
          ,
          <year>Feb 1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Dwyer</surname>
          </string-name>
          , G. Avrunin, and
          <string-name>
            <given-names>J.</given-names>
            <surname>Corbett</surname>
          </string-name>
          , “
          <article-title>Patterns in property specifications for finite-state verification</article-title>
          ,” in ICSE,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Cavada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dorigatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Griggio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mariotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Micheli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mover</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roveri</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Tonetta</surname>
          </string-name>
          , “
          <article-title>The nuxmv symbolic model checker</article-title>
          ,” in Computer Aided Verification. Springer International Publishing,
          <year>2014</year>
          , pp.
          <fpage>334</fpage>
          -
          <lpage>342</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>F.</given-names>
            <surname>Consortium</surname>
          </string-name>
          , “
          <article-title>Flexray communications system protocol specification</article-title>
          ,
          <source>version 2</source>
          .1,
          <string-name>
            <surname>revision</surname>
            <given-names>A</given-names>
          </string-name>
          ,” URL http://www.flexray.com,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>D.</given-names>
            <surname>Mou</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Ratiu</surname>
          </string-name>
          , “
          <article-title>Binding requirements and component architecture by using model-based test-driven development,” in Twin Peaks of Requirements and Architecture (Twin Peaks</article-title>
          ),
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Blech</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Mou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Ratiu</surname>
          </string-name>
          , “
          <article-title>Reusing test-cases on different levels of abstraction in a model based development tool</article-title>
          ,” in MBT,
          <year>2012</year>
          , pp.
          <fpage>13</fpage>
          -
          <lpage>27</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Balaguer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>David</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Larsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Nielsen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Pusinskas</surname>
          </string-name>
          , “
          <article-title>Scenario-based verification of real-time systems using uppaal,” Formal Methods in System Design</article-title>
          , vol.
          <volume>37</volume>
          , no.
          <issue>2-3</issue>
          , pp.
          <fpage>200</fpage>
          -
          <lpage>264</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>S.</given-names>
            <surname>Voss</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Schätz</surname>
          </string-name>
          , “
          <article-title>Scheduling shared memory multicore architectures in AF3 using Satisfiability Modulo Theories</article-title>
          ,” in MBEES,
          <year>2012</year>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>56</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>L. De Moura</surname>
            and
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Bjørner</surname>
          </string-name>
          , “
          <article-title>Z3: An efficient SMT solver,” Tools and Algorithms for the Construction and Analysis of Systems</article-title>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>340</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>S.</given-names>
            <surname>Voss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Eder</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Hölzl</surname>
          </string-name>
          , “
          <article-title>Design space exploration and its visualization in AUTOFOCUS3,” in Gemeinsamer Tagungsband der Workshops der Tagung Software Engineering</article-title>
          , Kiel, Deutschland,
          <volume>25</volume>
          .-
          <fpage>26</fpage>
          .
          <year>Februar 2014</year>
          2014, pp.
          <fpage>57</fpage>
          -
          <lpage>66</lpage>
          . [Online]. Available: http://ceurws.org/Vol-
          <volume>1129</volume>
          /paper33.pdf
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>F.</given-names>
            <surname>Hölzl</surname>
          </string-name>
          , “
          <article-title>The AutoFocus 3</article-title>
          C0
          <string-name>
            <given-names>Code</given-names>
            <surname>Generator</surname>
          </string-name>
          ,” Technische Universität München,
          <source>Tech. Rep. TUM-I0918</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kelly</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Weaver</surname>
          </string-name>
          , “
          <article-title>The goal structuring notation - a safety argument notation,”</article-title>
          <source>in Proc. of Dependable Systems and Networks 2004 Workshop on Assurance Cases</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>S.</given-names>
            <surname>Voss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Cârlan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schätz</surname>
          </string-name>
          , and T. Kelly, “
          <article-title>Safety case driven modelbased systems construction</article-title>
          ,” in EITEC,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>S.</given-names>
            <surname>Gérard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dumoulin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Tessier</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          , “
          <article-title>Papyrus: A UML2 tool for domain-specific language modeling,” in Model-Based Engineering of Embedded Real-Time Systems</article-title>
          - International Dagstuhl Workshop, Dagstuhl Castle, Germany, November 4-9
          <year>2007</year>
          , pp.
          <fpage>361</fpage>
          -
          <lpage>368</lpage>
          , revised Selected Papers.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>T. O. M. Group</surname>
          </string-name>
          ,
          <article-title>Semantics of a Foundational Subset for Executable UML Models (FUML)</article-title>
          .
          <source>Pearson Higher Education</source>
          ,
          <year>2013</year>
          . [Online]. Available: http://www.omg.org/spec/FUML/1.1
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>D.</given-names>
            <surname>Harel</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Kugler</surname>
          </string-name>
          , “
          <article-title>The rhapsody semantics of statecharts (or, on the executable core of the uml),” in Integration of Software Specification Techniques for Applications in Engineering, ser</article-title>
          .
          <source>Lecture Notes in Computer Science</source>
          . Springer Berlin Heidelberg,
          <year>2004</year>
          , vol.
          <volume>3147</volume>
          , pp.
          <fpage>325</fpage>
          -
          <lpage>354</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>I.</given-names>
            <surname>Schinz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Toben</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Mrugalla</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Westphal</surname>
          </string-name>
          , “
          <article-title>The rhapsody uml verification environment,” in Proceedings of the Software Engineering</article-title>
          and Formal Methods, Second International Conference, ser. SEFM. Washington, DC, USA: IEEE Computer Society,
          <year>2004</year>
          , pp.
          <fpage>174</fpage>
          -
          <lpage>183</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>M.</given-names>
            <surname>Glinz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Berner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Joos</surname>
          </string-name>
          , “
          <article-title>Object-oriented modeling with adora,” Inf</article-title>
          . Syst., vol.
          <volume>27</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>425</fpage>
          -
          <lpage>444</lpage>
          , Sep.
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>J.</given-names>
            <surname>Eker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. W.</given-names>
            <surname>Janneck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. A.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ludvig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Neuendorffer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Sachs</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xiong</surname>
          </string-name>
          , “
          <article-title>Taming heterogeneity - the ptolemy approach</article-title>
          ,
          <source>” Proceedings of the IEEE</source>
          , vol.
          <volume>91</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>127</fpage>
          -
          <lpage>144</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>