<!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>Considerations About Consistency Management for Industrial Model-Based Development</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Robbert Jongeling robbert.jongeling@mdh.se</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Malardalen University Vasteras</institution>
          ,
          <country country="SE">Sweden</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Model-based development of complex embedded systems commonly leverages multiple models to describe systems at di erent levels of abstraction and from di erent viewpoints. Inconsistencies between these models may cause delays or late changes throughout system design, development and maintenance. Therefore, an e cient model-based development practice requires support for managing consistency between di erent models. This is complicated in practice because these models are possibly created in several di erent modelling languages and modelling tools. Furthermore, in order to be suitable for industrial adoption, consistency checking support must t within current development processes and environments. This extended abstract describes a model-based development scenario from which a need for consistency checking emerges, followed by a discussion of requirements for consistency checking from a development process point of view. We also include a brief summary of early work on a prototype tool addressing these requirements.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In model-based development (MBD), models are used
as primary development artifacts in the speci cation,
design, and implementation of systems [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. For sound
development, multiple models representing the same
system should not contradict each other, i.e., they
should be consistent. We refer to these models as
heterogeneous since they may be expressed in di
erent modelling languages and created in di erent tools.
Keeping consistency between heterogeneous models is
one of the challenges towards more industrial adoption
of modelling practices, as commonly agreed on in the
literature [
        <xref ref-type="bibr" rid="ref10 ref11 ref12">10, 11, 12</xref>
        ].
      </p>
      <p>
        Complete consistency throughout development is
not possible and not desired, since that would only
hinder development [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Therefore, rather than
ensuring consistency, the focus of a consistency checking
approach should be to detect inconsistencies and notify
developers of them. A plethora of consistency
checking approaches have been proposed, mostly presenting
technical frameworks that allow automatic detection
of inconsistencies and sometimes also their automatic
resolution.
      </p>
      <p>
        Many of these approaches are demanding because
the user needs to de ne and maintain many complex
consistency de nitions. Furthermore, they may
require heavy changes to the development process and
thereby discourage industrial adoption. To promote
industry usage of a proposed consistency checking
approach it is imperative that its design considers this
process view [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. In particular, usability of the
approach for the target industry users. This extends
to other factors such as the time and place of de
ning, maintaining, executing and resolving consistency
checks in the development process.
      </p>
      <p>In this extended abstract, we focus on what
creating a consistency checking approach suitable for
adoption in our target industrial contexts entails. We
consider several aspects of the process view of consistency
checking approaches and then summarize earlier
results presenting a lightweight consistency checking
approach in a speci c MBD scenario. Creating such an
approach requires us to nd answers to the following
research questions:
1. What are the types of inconsistencies users should
be noti ed about?
2. What lightweight mechanism can detect the
required inconsistencies?
3. How can this mechanism be made to t in with
existing development processes and environments?
2</p>
    </sec>
    <sec id="sec-2">
      <title>Model inconsistencies in industry</title>
      <p>In this section, we describe a model-based development
scenario and the accompanying challenge of keeping
heterogeneous models consistent. Using a running
example, we then discuss the di erent aspects of a
consistency checking approach designed to overcome this
challenge.
2.1</p>
      <sec id="sec-2-1">
        <title>Model-Based Development Scenario</title>
        <p>
          In this scenario, we consider the model-based
development of software for complex embedded systems.
Models are used in the design and speci cation of the
system and can be roughly divided into categories of
high-level and low-level models. High-level models,
e.g., SysML, AUTOSAR, or AADL models, describe
the system design or architecture. Low-level models
describe the software implementation, e.g., models in
Simulink or executable UML. In some cases,
development of the software implementation is done directly
in code. Therefore, we also consider the scenario of the
low-level models being code, e.g., C/C++. In general,
we can describe the high-level and low-level models
as pertaining to the system view and software view of
the system respectively. In this scenario, the high-level
model does not contain detailed enough information to
enable automatic generation of code or low-level
models. Models of both levels describe the same system
but do so at di erent levels of abstraction. It is said
that the low-level models are a re nement of the
highlevel models [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>Adopting modern development practices, the
models are developed in parallel and in short iterations.
Work on high-level and low-level models thus happens
in parallel and small increments. Typically, di erent
engineers are responsible for the creation of the di
erent models and they are possibly located in di erent
teams and at di erent locations.</p>
        <p>To illustrate the di erent aspects of the problem
and to sketch the proposed approach towards a
solution, we use a running example of a speci c MBD
scenario throughout the remainder of this paper.
Consider the development of the braking system of a car.
As part of the system model, there will be a SysML
description of the anti-lock braking system (ABS),
expressed in structure diagrams. This part of the system
is then further re ned and implemented in a Simulink
model, which contains a detailed model for
simulation and code generation. Now, consider the situation
in which a design change to the ABS is made. In
particular, we consider a change that makes the
highlevel system model and the low-level (Simulink) model
inconsistent, for example, because of a di erence in
the assumed values for the car's total weight, or the
amount of grip of the wheels.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Consistency Checking</title>
        <p>We now describe the scope of the consistency checking
challenge in the aforementioned MBD scenario.
Multiple aspects of the challenge are considered. First, why
inconsistency detection is needed and what
inconsistencies an approach should be able to detect. Then,
how inconsistencies can be detected. The method or
mechanism by which inconsistencies are discovered is
only a rst part of a complete approach towards
managing inter-model consistency. An often-overlooked
aspect of proposed consistency checking approaches in
the literature is its place in the engineering process.
When, by whom and where the consistency checks
should be created, maintained, executed, and resolved
in the development process are also important aspects
to consider for an approach to be suitable for industrial
adoption. Any consistency checking approach should
be designed with also these aspects in mind. They are
also each discussed in this section.
2.2.1</p>
      </sec>
      <sec id="sec-2-3">
        <title>Why do we need consistency checking?</title>
        <p>Consider a single high-level model and several low-level
models re ning it. Let the models be consistent after
iteration ih of the high-level model and iteration il
of the low-level models. When the high-level model
undergoes iteration ih + 1, it is likely that the
lowlevel models, in il, are no longer consistent with it.
For example, new functionality is added that is not yet
implemented in low-level models, or existing function
de nitions are changed, requiring updates to the
lowlevel models. In our running example, the high-level
model is the system model expressed in SysML.</p>
        <p>
          Each of these inconsistencies should to some extent
be allowed, since disallowing inconsistency completely
is detrimental to development [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. On the other hand,
if an inconsistency goes unnoticed for too long, it may
cause severe problems. In general, in engineering, the
earlier problems are detected, the cheaper they are to
resolve. This is no less true for inter-model
inconsistencies. When discovered late they can incur late
changes and delays to development. When they are
not discovered at all, they can result in incorrect
implementation.
        </p>
        <p>For example, consider a change in the high-level
model requiring a number of changes and additions
in low-level models. In our running example, this
indeed happens, the system model is changed, requiring
some changes in the Simulink model. The
inconsistency is introduced immediately after the changes to
the high-level model and should be tolerated, at least
temporarily. This is important since the system design
can be created ahead of the software design. They
do not need to be created simultaneously, so
forbidding them would hamper development. But at some
point the inconsistency should be resolved in order to
prevent propagation of inconsistencies through
multiple models used to describe the system. For example,
when required changes to one of the low-level models
are not yet made and other low-level models start
relying on this, now inconsistent, low-level model. In the
running example, not updating the Simulink model of
the ABS might result in its incorrect implementation.
A consistency check would have shown the
inconsistency between the models after the change to the
highlevel model and in general, throughout development.
It would also have given the developers a chance to
resolve it before depending on the inconsistent low-level
model and thus introducing more inconsistency.
2.2.2</p>
      </sec>
      <sec id="sec-2-4">
        <title>What types of inconsistencies should be checked for?</title>
        <p>In the described scenario, high-level models do not
include low-level (software design) information such as
algorithm descriptions. Rather, the similarities
between the models at the di erent levels are structural.
For example, part of the high-level model may de ne
the structure of the required software, but with its
most detailed elements being \black boxes",
representing some particular functionality that is described in
more detail in re ning low-level models. Thus, the
models are related, since they describe the same
system but at di erent levels of abstraction.</p>
        <p>
          In this scenario, a type of inconsistency helpful to
know about is between model structures, i.e., the
lowlevel models should indeed contain representations of
what is described in the high-level models, even if that
description is just a black-box. For example, consider
a high-level model containing a de nition for several
software interfaces. Then, inconsistencies can exist
when the low-level model implements more than, less
than required, or di erent from the speci ed interface.
Note that a di erence can be seen as a combination of
implementing less than required (the correct thing is
missing) and more than required (the incorrect thing
is done in place of the correct thing). The type of
consistency checking in this setup is commonly referred to
as vertical inter-model consistency checking [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>Another type of inconsistency regards shared
values between models. In the running example, if the
system model and Simulink model assume a di erent
total mass of the car, this inconsistency could result
in an incorrect ABS. Several other types of
inconsistencies exist and could be relevant to detect, we plan
an industrial empirical study to derive a set of most
relevant consistency types and scenarios.
2.2.3</p>
      </sec>
      <sec id="sec-2-5">
        <title>How can inconsistencies be detected and resolved?</title>
        <p>In the running example, a consistency check between
the SysML model and the Simulink model could have
detected the introduced inconsistency. Such a check
should have been de ned earlier in the development
process and be automatically evaluated upon changes
to either model.</p>
        <p>
          There are numerous published approaches that
allow for automatically detecting inconsistencies and
sometimes also automatically resolving them. A
considerable portion of work on consistency checking has
focused speci cally on UML models [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. In our MBD
scenario, we are not limited to UML but consider
checking consistency between models in di erent
modelling languages and tools.
        </p>
        <p>
          Essentially, detecting inconsistencies between two
di erent models requires two pieces of information.
The rst piece indicates the speci c model elements
that should be compared to each other and the second
piece de nes when those compared elements should be
considered consistent. When de ned in enough detail,
for example, by using Triple Graph Grammars [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] or
Link Models [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], the second part can be used to
automatically resolve inconsistencies. This has the
downside of needing a mapping between any two metamodel
elements that need to be compared. To alleviate this,
other approaches convert models to a common
notation and detect inconsistencies in this common format,
for example, through graph comparisons [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Another
type of approach to detecting inconsistencies evaluates
rules over multiple models. These rules can be
expressed in, e.g., EVL [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], but possibly in any language
that allows that can be automatically evaluated [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
When considering applications in industrial contexts
though, an important factor is the maintenance
effort that consistency checks themselves introduce. If a
consistency checking mechanism is heavy and
labourintensive to set-up and maintain, it is not likely to be
used in industrial practice.
        </p>
        <p>
          Several approaches have aimed at automatically
resolving detected inconsistencies, e.g., in the context of
inconsistencies between UML diagrams [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. In our
development scenario, automatic resolution of
inconsistencies is improbable. Firstly, because
inconsistencies might indicate missing information which has to
be newly created through manual implementation (a
black-box can of course not be implemented
automatically). Secondly, because it cannot always be
determined which of the models should be changed if two
are inconsistent. Sometimes functionality should be
added in the one model and other times it should be
removed from the other.
2.2.4
        </p>
      </sec>
      <sec id="sec-2-6">
        <title>When to de ne and execute consistency checks?</title>
        <p>Enabling the automatic detection of inconsistencies
requires some initial de nition of what elements to check
and what to consider consistent. Depending on the
approach parts of the initial de nition could be made
prior to development, or be implicit. For example, a
logical rule could be de ned stating that each class
in a UML class diagram must be represented in at
least one UML sequence diagram in the same model.
This rule implicitly contains the speci c mapping
between model elements as each pair of class diagrams
and sequence diagrams. When creating rules
pertaining to speci c model elements, they can typically not
be created completely in advance. The de nition of
new consistency checks should therefore be possible
throughout development.</p>
        <p>During the system development, the design and
implementation undergo numerous iterations, in each of
which inconsistencies can be introduced and resolved.
Furthermore, newly created model elements may
incur the need for new or changed consistency checks.
Therefore, the initial de nitions should be able to be
maintained, i.e., changed, added to, or removed from.
The purpose of this maintenance is then to sharpen
consistency check de nitions and make their results
more relevant.</p>
        <p>
          Another aspect then concerns when in time to
execute the consistency checks. Although several
authors have argued for executing consistency checks
continuously (e.g. [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]), this might not be suitable for
a development scenario in which inconsistencies are
unavoidable, since it would generate a large amount
of trivial false positives, e.g., notifying the engineer
of an inconsistent re nement immediately after
creating the model element in the high-level model. The
other extreme is naturally bad as well: when
consistency checks are executed too infrequently, they
cannot notify developers of inconsistencies early. An
example middle ground is providing checks that are able
to be executed on-demand by developers. Such
ondemand checks might lead to missed inconsistencies,
for instance, when they are not integrated well in the
development process and therefore not executed
frequently enough. A check at regular intervals in the
process safeguards this problem while keeping the
balance between being executed too frequently and not
frequent enough. An example time to execute
consistency checks is after each completed development
iteration, in a continuous integration (CI) process. In
our running example, this would detect the
inconsistency between the models when the changes to the
system models are integrated, avoiding many trivial
noti cations of inconsistency during the making of those
changes.
        </p>
        <p>Finally, we must consider when to resolve identi ed
inconsistencies. This is very much related to the time
of detecting the inconsistencies, and the person
responsible for resolving them. Furthermore, acceptable
resolving times depend on the speci c project and the
further development plans. In general, inconsistencies
should be resolved as soon as possible, but depending
on the exact situation, it may be acceptable to leave
some inconsistencies exist for a longer time. In
either case, this is up to the developers and an approach
should appropriately support either choice.</p>
        <p>In our running example, the de nition of
consistency checks should have been done prior to this
occurrence of the inconsistency (or it would not be
detected). The execution should be done some time after
the introduced change to the model. As argued above,
there is a ne balance between too frequent and too
infrequent checks. The resolution of the inconsistency
is then up to the developer, that can now decide a best
time to resolve the problem before it spreads to other
components.
2.2.5</p>
      </sec>
      <sec id="sec-2-7">
        <title>Who de nes and maintains consistency checks and who acts on detected inconsistencies?</title>
        <p>Apart from the time of de nition, maintenance and
execution of consistency checks, of course an approach
should consider which developers, in which roles, will
create the checks. De ning sensible consistency checks
requires knowledge of models at both abstraction
levels. This implies the need for an approach providing
these checks to be accessible to any involved developer
in the project.</p>
        <p>An important additional aspect concerns the
responsibility of resolving detected inconsistencies. It is
likely that an inconsistency caused by changes in the
high-level should be resolved by changes in the
lowlevel models. But this is not necessarily true. Changes
in the high-level model might trail changes in the
low-level models and therefore need updating. In the
running example, consider instead that the Simulink
model was updated rst to re ect a redesign of the
system. Now it is inconsistent with the system model,
but we would not want to revert the changes just made
to the Simulink model in order for them to be again
consistent. In either case, it is likely that the
inconsistencies found by making changes at one level should
be resolved at the other level and therefore by another
engineer or group of engineers. In order not to raise
more need for communication than it helps remove, a
consistency checking approach should allow developers
from both abstraction levels to view and understand
results of consistency checks.
2.2.6</p>
      </sec>
      <sec id="sec-2-8">
        <title>Where should consistency checks be dened and executed?</title>
        <p>Similar to the when and who, an important aspect to
consider is where in the development environment to
de ne, maintain, and view results of executed
consistency checks. To promote industrial adoption, a
consistency checking approach should be accessible to all
developers at all times throughout development. At
the same time, it needs to t in with existing
development processes and tooling environments.</p>
        <p>Indeed, including a consistency checking approach
within an existing complex tooling environment is
not straightforward. Integrating a new separate tool,
apart from the technical challenges of interacting with
the other existing tools, risks never being looked at
since it is not part of any existing development
workow. Another placement of a consistency checking
approach could be as a plug-in or extension to an existing
modelling tool. While integrating an approach in one
of the modelling tools has the advantage of
developers using it without leaving their development
environment, access to consistency checks is limited to users of
that tool. This downside can be resolved by
integrating consistency checks in a tool that is already part of
the development process and accessible to all potential
users, e.g., a version control system, an issue tracker,
or a continuous integration (CI) server.
2.3</p>
      </sec>
      <sec id="sec-2-9">
        <title>Requirements</title>
        <p>We aim for a pragmatic approach to consistency
checking that is applicable in industrial practice. The
essence of any approach is to notify developers of
detected inconsistencies. Furthermore, an approach
suitable in practice requires considering the process
aspects of MBD in industry. Given the described
MBD scenario in Section 2.1, a consistency checking
approach is required that is generic, i.e. applicable
to models conforming to various di erent modelling
languages. Additionally, the consistency aspects
discussed in Section 2.2 show the need for an approach
to consistency management to be lightweight, i.e., easy
to use and minimally interfering with existing
development processes and environments.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Proposed Approach</title>
      <p>
        In this section we describe previously published early
research results [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], as well as planned continuation
and evaluation of that work. The early results present
a lightweight consistency checking approach suitable
for a scenario similar to what is described in Section 2,
focusing on the structures of the high-level and
lowlevel models.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Overview</title>
        <p>
          Our early results focus on checking vertical inter-model
consistency between heterogeneous models [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. In
particular, the approach allows checking for structural
equivalence, i.e., checking that two model elements
have the same structure, and structural re nement,
i.e., one model element contains at least elements
corresponding to similar ones as represented in the other
model. It thus focuses only on the structural type of
inconsistencies and not yet on other possible types. To
this end, a common tree structure is created through
model transformations. This tree represents the
structures of the involved models. The approach focuses on
being lightweight in use through a separation of
concerns in the de nition of consistency checks. Speci
cally, the two parts of our consistency checks are: 1) a
global mapping between meta-model elements of
different modelling languages, and 2) a user-de ned
mapping between model elements of di erent models. The
\lightweight-ness" of the approach is ensured by
having the user only being concerned with part 2:
indicating which model elements across heterogeneous models
should be consistent. Given this indication, checks are
generated that detect inconsistencies throughout
evolution of the involved models.
        </p>
        <p>The two mappings are called a language consistency
mapping (LCmap), and a model consistency mapping
(M Cmap). A LCmap describes how meta-model
elements of di erent modelling languages are mapped to
a tree structure and what elements are not mapped to
it. For example, subsystems in Simulink models are
mapped to nodes in the tree but more detailed blocks,
for example describing mathematical operations, are
not. In this way, the LCmap is global. It is de ned
once and reused for all consistency checks. A
consistency check compares the trees created from models
conforming to a particular language by invoking the
corresponding LCmap. Note that the representation of
models in the common format in comparison between
common formats reduces the number of required
mappings between metamodels. In a scenario where direct
transformations exist between any two metamodels,
for a total of n metamodels, n(n 1) (bi-directional)
2
transformations are required, whereas in this case, n
su ce.</p>
        <p>A M Cmap de nes the speci c model elements in
speci c models between which consistency should be
checked. Consider a SysML model, and a set of
Simulink models re ning di erent parts of it. To
create a consistency check for this case, the user selects a
block in the SysML model and a Simulink model and
indicates what type of consistency should be checked
between them (re nement in this case). This
constitutes the M Cmap.</p>
        <p>A complete run of a consistency check then consists
of the following steps:
1. A M Cmap between element e1 of model M1 in
language L1 and a model element e2 of model M2
in language L2 is evaluated.
(a) The LCmap between L1 and L2 consists of
two de ned transformations, building tree
representations T1 from M1 and T2 from M2.
(b) Now, T1 and T2 contain e1 and e2
respectively. Let Te1 and Te2 be the subtrees
starting at e1 and e2 respectively.
2. Now, a comparison algorithm is executed
(depending on the choice between re nement and
equivalence in M Cmap)
(a) The algorithm compares Te1 and Te2.
(b) The result is pass or fail. In case of fail
a detailed description of the di erence
between Te1 and Te2 causing the comparison
algorithm to report a failure.
3. The user sees the result of all evaluated M Cmaps
and can modify their de nitions, including
options to mute the check (do not show unless the
result changes) and skip the check (do not show
until re-enabled). Of course, M Cmaps can also be
deleted and new ones can be added.</p>
        <p>The approach is implemented as a plug-in for
Jenkins1, an automation server often used for CI pipelines.
This is a design choice partly motivated by the
requirements as outlined in Section 2. The placement
in the CI pipeline allows for frequently de ning and
maintaining of multiple M Cmaps. Furthermore,
consistency checks are automatically executed after each
integration, when models are typically internally
consistent, thus avoiding very temporary and other
uninteresting inconsistencies from being reported.
Running checks at each integration seems like a reasonable
frequency, not too frequent and therefore tedious but
frequent enough to detect meaningful inconsistencies
early. When already in place in a project, adding the
plug-in to the CI pipeline entails minimal overhead.
It is also a place independent of modelling tools and
centrally accessible for viewing results and
maintaining checks. Since our approach does not aim to
automatically resolve detected inconsistencies but rather
at making developers aware of them, it is important
that results of checks are easily visible.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Planned generalizations</title>
        <p>
          The approach presented in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] is focused on nding
structural di erences between high-level and low-level
models. Its prototype implementation focuses in
particular on SysML and Simulink models. Note that the
approach does not depend on the chosen modelling
languages. It also does not depend on the chosen
intermediate tree structure as a representation for the
models. To allow for a greater set of detectable
inconsistencies, a more generic data structure can be
chosen to represent the models. For example,
models could be expressed as graphs, allowing checking of
relationships between model elements other than
hierarchical ones. In more general terms, we aim to design
a metamodel allowing for expressing elements of many
heterogeneous models, such that they can be compared
and consistency can be checked between them. Thus,
di erent formalisms can be envisioned as de ning the
LCmaps, the core idea of the approach is separating
the consistency check de nition in LCmap and M Cmap
and requiring the end-user only to de ne a very simple
M Cmap.
        </p>
        <p>To make the approach even more lightweight, we
envision using higher-order transformations (HoT) to
derive the LCmap transformations from similar user
actions as used to de ne the M Cmap. In that case,
the user-input to LCmap de nitions would be limited
to pointing to di erent modelling language concepts
that can be compared to each other. The HoTs would
then generate the model transformations required to
represent the models in a tree, or other intermediate
data structure.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Limitations</title>
        <p>As said, the main limitation of the proposed approach
is that it aims at comparing the structures of
models. When we consider the generalized case, in which
we have found a comparison metamodel, a remaining
limitation is the local view on consistency checking.
In essence, our approach is rule-based and comparing
speci c model elements.</p>
        <p>Another fundamental limitation to our approach is
that we limit ourselves to detecting inconsistencies,
rather than attempting automatic resolution. We also
do not yet automatically propose ways to x detected
inconsistencies. Currently the limit of our approach is
that it can provide a reason why the consistency check
fails.</p>
        <p>In terms of execution of the consistency checks, our
approach assumes executing batches of checks at e.g.
every integration. To limit the execution time, we aim
to limit the amount of checks that are executed by
running only those checks for which one of the involved
models has changed since the last execution. Still, the
approach is not checking for inconsistency in real-time,
which is a design decision as explained in Section 2.</p>
        <p>The strength of our approach with respect to
existing approaches is mainly aimed to be that it is
lightweight in usage. Where other approaches require
complex rule de nitions, for example in rst-order
logic or by means of bidirectional transformations, our
approach requires of users only a model consistency
mapping and a globally reusable language consistency
mapping. Since the mainly considered scenario of
applying this approach is in development and
maintenance of complex systems, having a simple way of
de ning consistency checks is imperative.
3.4</p>
      </sec>
      <sec id="sec-3-4">
        <title>Planned evaluation</title>
        <p>In addition to the three research questions posed in
Section 1, the required evaluation can be summarized
in the following questions.</p>
        <p>1. Can the proposed consistency checking approach
detect the required inconsistencies?
2. Is the proposed consistency checking approach
suitable for industrial practice?</p>
        <p>
          The rst question is commonly considered in
related work. Almost all approaches, including our own
as presented in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], show an evaluation based on an
example to showcase what inconsistencies can be
detected. In their further evaluation, most publications
focus on performance aspects such as computation
time required and the scalability of their approach on
larger models. These evaluations much less frequently
include the usage of proposed consistency checking
mechanism.
        </p>
        <p>
          Some evaluations of approaches consider part of this
process view. For example, Feldmann et al. [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] perform
a small controlled user experiment to evaluate the ease
of de nition of consistency checks in their approach
versus EVL. Egyed presents an approach that is
userfriendly by being agnostic of the format of consistency
rules, i.e., capable of handling consistency rules in any
formalism [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. In our proposed approach, the user does
not de ne the semantics of consistency rules, but
instead only points at model elements across
heterogeneous models that should be checked for inconsistency.
        </p>
        <p>An industrial evaluation of our approach requires
a more mature tool and an implementation of the
planned generalizations. The planned evaluation of
our consistency checking approach then has two parts,
corresponding to the two evaluation questions. First,
we evaluate its suitability to detect the types of
inconsistencies that should be detected. This evaluation is
envisioned to be performed as a case study on a set of
industrial models. The case study should show that
the approach indeed detects the required
inconsistencies and can do so in a reasonable amount of time, also
when applied to models of scales commonly seen in
industry. Second, an evaluation of the suitability of the
approach in industrial practice is foreseen. Currently,
we envision this evaluation as performing structured
interviews with developers after they have been able
to use our tool for some time.</p>
        <p>As a rst step towards performing this evaluation,
we plan to work closely together with our industrial
partners to get an answer to the question posed in
Section 2: \What types of consistency should be
checked?" So what types of inconsistencies occur in
practice between what types of artifacts. The second
step is then to investigate di erent ways of de ning
consistency checks and compare them with respect to
the criteria we have speci ed here. An evaluation of
the rst question can then be done by using the tool
on realistic industrial models. The evaluation of the
second question can be done either by means of user
experiments, or by evaluating the features of the
approach with respect to requirements as de ned by
industrial practitioners, e.g. the requirement that the
tool should be able to detect inconsistency between
heterogeneous models.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Summary</title>
      <p>Many published approaches consider the technical
challenge of creating consistency checks with a focus
on a speci c set of requirements, but largely ignore the
practical aspects of de ning, maintaining, and
executing them. In general, consistency checking work
assumes the importance of checking consistency (why),
explains the scope of the inconsistencies checked by
their approach (what), and explains the mechanism
devised to satisfy the approach (how). We have argued
in this work the importance of additionally
considering the engineers de ning and maintaining the checks
as well as responding to their results (who), the
placement of de nitions of the checks and execution in the
development process (when), and the suitable place for
tool support for de ning and creating them (where).</p>
      <p>In particular, we have considered three research
questions towards a consistency checking approach
suitable for industrial adoption. These questions have
been discussed in the context of a speci c MBD
scenario. Further, early work was presented towards
lightweight consistency checking. The approach
requires only the selection of model elements between
which to check consistency and then uses a global
consistency mapping between the modelling languages to
generate and execute checks. For now, the approach
is targeted to a limited scenario in which consistency
between the structure of models is checked. In order
for our consistency checking approach to be
applicable in practice, we need a more de nitive answer to
the rst two research questions, generalize our
proposed approach to answer the third, and evaluate that
approach to verify that it is indeed bene cial to the
development process.</p>
      <sec id="sec-4-1">
        <title>Acknowledgement</title>
        <p>This work is supported by Software Center.2</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          .
          <article-title>Automatically detecting and tracking inconsistencies in software design models</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>37</volume>
          (
          <issue>2</issue>
          ):
          <volume>188</volume>
          {
          <fpage>204</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>H.</given-names>
            <surname>Ehrig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ehrig</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Hermann</surname>
          </string-name>
          .
          <article-title>From model transformation to model integration based on the algebraic approach to triple graph grammars</article-title>
          .
          <source>Electronic Communications of the EASST</source>
          ,
          <volume>10</volume>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Feldmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kernschmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Vogel-Heuser. Managing</surname>
          </string-name>
          Inter-Model
          <source>Inconsistencies in Model-based Systems Engineering: Application in Automated Production Systems Engineering. Journal of Systems and Software</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Finkelstein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Gabbay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hunter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kramer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Nuseibeh</surname>
          </string-name>
          .
          <article-title>Inconsistency handling in multiperspective speci cations</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>20</volume>
          (
          <issue>8</issue>
          ):
          <volume>569</volume>
          {
          <fpage>578</fpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Herzig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Qamar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Paredis</surname>
          </string-name>
          .
          <article-title>An approach to identifying inconsistencies in modelbased systems engineering</article-title>
          . Procedia Computer Science,
          <volume>28</volume>
          :
          <fpage>354</fpage>
          {
          <fpage>362</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Huzar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Kuzniarz</surname>
          </string-name>
          , G. Reggio, and
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Sourrouille</surname>
          </string-name>
          .
          <article-title>Consistency problems in UML-based software development</article-title>
          .
          <source>In International Conference on the Uni ed Modeling Language</source>
          , pages
          <fpage>1</fpage>
          <lpage>{</lpage>
          12. Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>R.</given-names>
            <surname>Jongeling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ciccozzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Carlson</surname>
          </string-name>
          .
          <article-title>Lightweight Consistency Checking for Agile Model-Based Development in Practice</article-title>
          .
          <source>In 15th European Conference on Modelling Foundations and Applications (ECMFA)</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Polack</surname>
          </string-name>
          .
          <article-title>Detecting and repairing inconsistencies across heterogeneous models</article-title>
          .
          <source>In 2008 1st International Conference on Software Testing, Veri cation, and Validation</source>
          , pages
          <volume>356</volume>
          {
          <fpage>364</fpage>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>F. J.</given-names>
            <surname>Lucas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Molina</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Toval</surname>
          </string-name>
          .
          <article-title>A systematic review of UML model consistency management</article-title>
          .
          <source>Information and Software Technology</source>
          ,
          <volume>51</volume>
          (
          <issue>12</issue>
          ):
          <volume>1631</volume>
          {
          <fpage>1645</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Madni</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Sievers</surname>
          </string-name>
          .
          <article-title>Model-based systems engineering: motivation, current status, and needed advances</article-title>
          .
          <source>In Disciplinary Convergence in Systems Engineering Research</source>
          , pages
          <volume>311</volume>
          {
          <fpage>325</fpage>
          . Springer,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>G.</given-names>
            <surname>Mussbacher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Amyot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Breu</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.-M. Bruel</surname>
            ,
            <given-names>B. H.</given-names>
          </string-name>
          <string-name>
            <surname>Cheng</surname>
            , P. Collet,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Combemale</surname>
            ,
            <given-names>R.</given-names>
            B. France, R.
          </string-name>
          <string-name>
            <surname>Heldal</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Hill</surname>
          </string-name>
          , et al.
          <article-title>The relevance of model-driven engineering thirty years from now</article-title>
          .
          <source>In International Conference on Model Driven Engineering Languages and Systems</source>
          , pages
          <fpage>183</fpage>
          {
          <fpage>200</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Persson</surname>
          </string-name>
          , M. Torngren,
          <string-name>
            <given-names>A.</given-names>
            <surname>Qamar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Westman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Biehl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tripakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Denil</surname>
          </string-name>
          .
          <article-title>A characterization of integrated multiview modeling in the context of embedded and cyber-physical systems</article-title>
          .
          <source>In 2013 Proceedings of the International Conference on Embedded Software (EMSOFT)</source>
          , pages
          <fpage>1</fpage>
          <lpage>{</lpage>
          10. IEEE,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Model-driven engineering</article-title>
          . IEEE Computer,
          <volume>39</volume>
          (
          <issue>2</issue>
          ):
          <fpage>25</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>G.</given-names>
            <surname>Spanoudakis</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Zisman</surname>
          </string-name>
          .
          <article-title>Inconsistency management in software engineering: Survey and open research issues</article-title>
          .
          <source>In Handbook of Software Engineering and Knowledge Engineering: Volume I: Fundamentals</source>
          , pages
          <volume>329</volume>
          {
          <fpage>380</fpage>
          . World Scienti c,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xiong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Takeichi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Mei</surname>
          </string-name>
          .
          <article-title>Supporting automatic model inconsistency xing</article-title>
          .
          <source>In Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering</source>
          , pages
          <volume>315</volume>
          {
          <fpage>324</fpage>
          . ACM,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>