<!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>Modeling and Enactment Support For Early Detection of Inconsistencies In Engineering Processes</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>István Dávid</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Managing inconsistencies between models is a key challenge in engineering processes of complex systems. Early detection of inconsistencies results in more efficient processes, because it can reduce the amount of re-execution of costly engineering activities. In this paper, we propose an approach for early inconsistency detection in engineering processes. In our approach, the engineering process is explicitly modeled, along with the important characteristics and constraints of the system, imposed by the requirements and system specifications. This information is then used to enact the process and augment it with a run-time consistency monitoring service. Inconsistencies are expressed as a satisfiability problem of the constraints. Early detection of inconsistencies is achieved by monitoring the constraints, that is, checking their satisfiability at specific points of the process. Our approach is supported with a framework which includes a visual process modeling tool, a process enactment engine and a state-of-the-art symbolic solver for early inconsistency detection.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Index Terms—inconsistency management, process modeling,
multi-paradigm modeling, cyber-physical systems, mechatronics</p>
    </sec>
    <sec id="sec-2">
      <title>I. INTRODUCTION</title>
      <p>
        Engineering complex heterogeneous systems requires a
collaboration between stakeholders of various domains. These
stakeholders have different views [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] on the system and
reason only about the system characteristics relevant to their
respective views. Some characteristics of the system, however,
cannot be related to only one view or domain. Such cases
result in overlaps between specific views and give rise to
inconsistencies between those views. For example, selecting
a battery for an autonomous vehicle will have an impact to
the mechanical view of the system (which reasons about the
mass of the battery), and to the electrical view (which reasons
about the capacity of the battery).
      </p>
      <p>
        As proposed by Finkelstein et al [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], instead of simply just
removing inconsistencies from the design, we need to think
about “managing consistency”. One of the core activities of
inconsistency management is the detection of inconsistencies.
It is preferred that detection is achieved as early as possible,
because the earlier the inconsistencies are detected, the lower
the costs of resolving them are. Early detection of
inconsistencies also provides more freedom in choosing the appropriate
resolution and tolerance techniques [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        To support the understanding of the origins and root causes
of inconsistencies, we reuse one of the main guidelines of
multi-paradigm modeling (MPM) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and we place the process
manipulating the models of the system into the center of our
work. Inconsistencies are defined, detected and analyzed with
respect to the process.
      </p>
      <sec id="sec-2-1">
        <title>Inconsistencies</title>
        <p>
          The presence of a process enables richer semantics to reason
about the various types of inconsistencies. The traditional
interpretation of inconsistencies comes from the area of
multiview modeling, where the notion of the process is not
necessarily present, e.g. in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. In such settings, inconsistencies are
caused by multiple stakeholders modifying the system design
in a parallel fashion and introducing discrepancies between the
views of the system, in specific attributes, values, properties.
The strong notion of a process, however, allows to reason
about more “stateful” types of inconsistencies, i.e. the ones
that are caused by a sequence of modifications. Discrepancies
are not necessarily introduced between various views, but
typically in constraints regarding the system, as the design
decisions shape the system more and more specific.
        </p>
        <p>
          In our previous work [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], we proposed the foundations of
a formalism to reason about inconsistencies in the presence
of a strongly typed process model, based on the FTG+PM
formalism [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. The formalism enables modeling system
characteristics as (ontological and linguistic) properties in
conjunction with the engineering process. The process is analyzed and
various management patterns are applied to prevent potential
inconsistencies to occur. That is, the process is transformed
in a way that no inconsistency remain unnoticed when the
process is enacted. (Referred as Specification-time
inconsistency management in Figure 1.) In these cases, one typically
addresses inconsistencies due to the parallel activities.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Scope of the paper</title>
        <p>In this paper, we focus on early detection of inconsistencies
during the enactment phase of the engineering processes, i.e.
at run-time (Figure 1). Such scenarios necessitate more precise
modeling of the properties of the system with respect to the
engineering process. To this end, we revise our original process
modeling formalism and introduce the notion of attributes
(in models) and capabilities (in formalisms) in the FTG+PM.
Additionally, we provide a state-of-the-art symbolic solver for
detecting inconsistencies in actual, real modeling artifacts.
The contributions are presented through an industry level
example of a complex mechatronic system, an automated
guided vehicle (AGV), coming from one of our partners.</p>
        <p>The core contribution of this paper is a methodology for
explicit modeling of the characteristic attributes of the system
and allow defining constraints upon them to express
inconsistency rules in order to monitor the process for inconsistencies
at runtime. The process is augmented with consistency checks
during the enactment, which can be viewed as special activities
of the process. These activities are not explicitly modeled and
do not carry relevant information from the engineering point
of view and therefore, they remain hidden.</p>
        <p>The explicit modeling of attributes and constraints means
that the information relevant to inconsistency management is
being conceptually “lifted” from the models containing those
attributes and constraints. (Although, they are still present in
the models themselves.) This modeling step may be expensive
for larger processes, but it has to be done only once for a
process. Attributes and constraints operate on multiple
metalevels, which enables reasoning about capabilities of certain
modeling formalisms. This, due to the strongly typed
process model, provides additional vital information regarding
potential inconsistencies along the process. This combination
of modeling paradigms (i.e. multi-level, multi-abstraction,
process-oriented) is novel in the state-of-the-art.</p>
        <p>To support our ideas, we provide a prototype tool1, which
1Available from: http://istvandavid.com/icm.
supports (i) specification of the above mentioned aspects of the
engineering process, and (ii) execution of the modeled process
in a managed way, i.e. by monitoring the (in)consistency of
the modeling artifacts.</p>
        <p>The rest of the document is structured as follows. In
Section II, we present a motivating example of the engineering
of a complex heterogeneous system. Using the example,
we propose a modeling formalism in Section III to capture
various system characteristics and constraints, which serve
as (in)consistency rules for the process. In Section IV, we
present the enactment aspects of the previously specified
process, including (i) the execution of the process additionally
supported with tool interoperability, and (ii) the monitoring
and detection of inconsistencies. Finally, we conclude our
work by giving an overview on the state of the art in Section V
and by wrapping up the paper in Section VI.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>II. MOTIVATING EXAMPLE</title>
      <p>To motivate our work, we use a case study of the design
of an AGV. The goal of the AGV is to carry out a mission
of transporting a payload on a specific trajectory between
two locations. Being a complex mechatronic system, the
requirements of the AGV are refined into specifications by
stakeholders of the different involved domains, such as (i)
mechanical specifications: sufficient room on the vehicle to
place payload; (ii) control specifications: following the defined
trajectory with a given maximal tracking error; (iii) electrical
specifications: autonomous behavior, defined as the number of
times that it needs to be able to perform the movement before
needing to recharge; (iv) product quality specifications: the
previous specifications should be achieved at a minimal cost.
The design process needs to determine the sizing of the
different components (motors, battery, platform) and tune
the controller. The process requires a collaboration between
different stakeholders and their domain-specific engineering
tools, such as CAD tools for platform design, Simulink and
Virtual.Lab Motion for multi-body simulations, AMESim for
multi-physical simulations during drivetrain design. The motor
and battery selection activities use databases maintained in
Excel files. Since these tools work with different modeling
formalisms, reasoning over the consistency of the system as a
whole properties poses a complex problem. By explicitly
modeling attributes and constraints of the system and associating
them with the engineering activities, the engineering process
can be augmented with automated consistency monitoring.</p>
      <sec id="sec-3-1">
        <title>Running example</title>
        <p>The total mass of the AGV (mT ) is a sum of the mass of
the battery (mB), the mass of the motor (mM ) and the mass
of the platform (mP ):</p>
        <p>mT = mP + mM + mB:
During the engineering process, and specifically: during the
requirements analysis, constraints are applied on the attributes:
mT
mP
mM
mB
mass &gt; 0 [kg]:
These constraints must be respected throughout the whole
process, otherwise the model of the system becomes inconsistent.</p>
        <p>Additionally, all the masses must be positive numbers, as
constrained by the laws of physics.</p>
        <p>Obviously, the notion of masses specific to the system, i.e. mT ,
mB, mM and mP , are of a different nature than the general
mass concept, as mass is not related to a specific part of the
system, but is more abstract. The concept of mass, in fact,
can be viewed as type to the system-specific masses: mT ,
mB, mM and mP are all masses and therefore, a constraint
on mass imposes a constraint on each system-specific mass.
This means the constraint in Equation 3 must hold for each
system-specific mass.</p>
        <p>Inconsistencies. An inconsistency can occur, for example, in
the following scenario.</p>
        <p>Step 1: A platform is selected with a mass of 100 kg.</p>
        <p>(mP = 100 [kg])
Step 2: A motor is selected with a mass of 50 kg. (mM =
50 [kg])
Step 3: A battery is selected with a mass of 10 kg. (mB =
10 [kg])</p>
        <p>At this point, an inconsistency can be detected. Even though
the selected components satisfy their respective constraints
imposed in Equation 2, the total mass now becomes 160
kgs (due to Equation 1), which leads to a violation of a
constraint in Equation 2 and therefore: the design is considered
inconsistent.</p>
        <p>Factoring in Equation 3, however, allows an earlier detection
of inconsistencies. Already in Step 2, Equation 1 can be
rewritten as follows:
mT = 150 + mB:
(1)
(2)
(3)</p>
        <p>Since Equation 3 holds for any mass, and consequently for
mB as well, it can be inferred that after selecting a battery
(and thus filling in mB in this equation), the total mass will be
greater than 150, thus violating the constraint in Equation 2.</p>
        <p>Such an early detection of inconsistencies may save
significant costs in the specific engineering process, because it
reduces the amount of iterations over complex engineering
activities if the design is detected to be inconsistent. Early
detection of inconsistencies requires (i) reasoning over
constraints on different meta-levels; and (ii) efficient constraint
solving algorithms. In Section III, we provide a formalism for
the former requirement, and in Section IV we discuss the latter
requirement.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>III. MODELING SYSTEM CHARACTERISTICS</title>
      <p>
        In this section, we present a formalism (i.e. a language
with semantics) to model the engineering process and its
consistency constraints discussed in Section II. The formalism
builds on the FTG+PM formalism [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and its foundations have
been presented in our previous work [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <sec id="sec-4-1">
        <title>A. FTG+PM: A brief overview</title>
        <p>The FTG+PM formalism enables the usage of process
models (PM) in conjunction with the model of formalisms and the
transformations between those (the formalism-transformation
graph - FTG). As shown in Figure 2, Formalisms and
Transformations serve as a type system to the Objects (models) and
the Activities of the process, respectively.</p>
        <p>The strong type system of the formalism fits well with the
problem sketched in Section II as it supports reasoning on
different meta-levels. To enable modeling the problem at hand,
we introduce new elements to the formalism. In the following,
we elaborate on these new elements in greater details.</p>
        <p>As shown in Figure 2, the original FTG+PM metamodel is
extended by a third typing relationship: between Capabilities
and Attributes. Furthermore, Constraints can be defined for
both of these elements to capture consistent states of the
models in the process. These added elements are the foundations to
the inconsistency monitoring approach we are about to present.</p>
      </sec>
      <sec id="sec-4-2">
        <title>B. Attributes and capabilities</title>
        <p>Attributes represent characteristic values of the system.
These values can be persisted in an object (of a model) and
queried directly; or can be derived by a complex query.</p>
        <p>Definition 1 (Attribute): An attribute is defined as a result of
a query over a model, which query is composed of (potentially
multiple instances of) projection and aggregation operations.
In the example in Section II, the mass of the platform (mP ),
the mass of the battery (mB) and the mass of the motor (mM ),
are attributes that are directly persisted in a mechanical model,
thus are directly queried from the mechanical model (each
by a respective projection); while the total mass (mT ) is an
aggregation of the previous three masses and is not necessarily
persisted in the model. (We assume the time required for
executing the query being negligible compared to the length of
a real life engineering process.) After obtaining mB , mM and
mP , mT is obtained as the sum aggregation of the former
three attributes, as shown in Equation 1. Consequently, as
shown in Figure 2, attributes are situated on the PM side of
the FTG+PM, i.e. on the instance level.</p>
        <p>As discussed in Section II, the concept of mass is
different from the concept of the masses specific to the system:
mT ; mB ; mM and mP are related to the notion of mass by
a typing relationship. In our framework, we call these
metaattributes capabilities.</p>
        <p>Definition 2 (Capability): A capability of a formalism
expresses the ability of a model, corresponding to the formalism,
to reason about attributes a set of system characteristics.
In the running example, Matlab is used for defining the
(simplified) mechanical model of the AGV. The Matlab language,
in this sense, is able to reason about masses. (Although,
masslike attributes are just ordinary data structures from Matlab’s
point of view.)</p>
      </sec>
      <sec id="sec-4-3">
        <title>C. Constraints</title>
        <p>To make use of attributes and capabilities for consistency
management purposes, constraints are imposed on these to
define consistent states of the engineering process.</p>
        <p>Definition 3 (Constraint): A constraint defines the desired
characteristics of the system, i.e. it is a selection of an interval
over the domain of the previously obtained attribute.
In a typical engineering process, algebraic (Equation 1),
arithmetical (Equations 2 and 3) and logical formulas are used as
constraints. As shown in Figure 2, constraints can be applied
on both the PM and the FTG side.</p>
      </sec>
      <sec id="sec-4-4">
        <title>Definition 4 (Consistent design): The design of the system</title>
        <p>is considered to be consistent at a given point of the process
iff there are no violated constraints.</p>
        <p>The detection of the violated constraints is discussed in
Section IV.</p>
      </sec>
      <sec id="sec-4-5">
        <title>D. Modeling the example</title>
        <p>
          After defining the core concepts, we use our prototype tool
to model the attributes, capabilities and constraints of the
engineering process. The tool provides a visual interface for
modeling. It was built on top of the Eclipse platform,
implemented using the Sirius framework [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], and it is available as
an open-source software.
        </p>
      </sec>
      <sec id="sec-4-6">
        <title>Attributes and their constraints</title>
        <p>Figure 3 shows an excerpt from the full model of the
example, with the attributes of the running example and their
constraints modeled.</p>
        <p>Attributes are denoted by light red rectangles, and
constraints by darker red rectangles. There are four attributes in
the figure, one for each of the masses in Section II. Apart
from the totalMass, the three other masses are persisted in the
mechanicalModel, as shown by the prefix in the names of the
attributes. The total mass is not persisted in the mechanical
model, but it is a result of an aggregation of the other three
masses (Equation 1). This equation is captured in the rightmost
constraint, as shown by the formula. The other four constraints
correspond to the four sub-equations of Equation 2.</p>
        <p>
          The header of the constraint contains its level of precision.
In this example, all of the constraints are of level L3. As
defined in our previous work [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], the level of precision
reflects what information a constraints carries:
        </p>
        <p>
          L1: the fact of influence is known, its extent is not;
L2: sensitivity information between two values is
expressed, e.g. by Forrester system dynamics [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ];
L3: the constraint can be expressed using an exact
mathematical relationship.
        </p>
        <p>In this work, we assume L3 relationships, but our technique
can adapted to deal with lower levels of precision as well.</p>
      </sec>
      <sec id="sec-4-7">
        <title>Capabilities and their constraints</title>
        <p>Figure 4 shows an excerpt from the full model of the
example, with the mass capability, its constraint, alongside
the related part of the FTG. Matlab is used as a formalism
for defining the mechanical model of the system and has a
capability of expressing mass. (That is, models being conform
to the Matlab formalism, can have attributes of type mass.)
Figure 4 shows how this aspect of the running example is
modeled, with Equation 3 captured in a similar fashion as the
other constraints were in Figure 3.
The evaluation of such constraints, however, differs from
the ones shown in Figure 3, as the constraints on mass are
stemming from the universal laws of physics, while mT , mP ,
mB, mM are specific to the system. To evaluate constraints
of capabilities, we use the following rule.</p>
      </sec>
      <sec id="sec-4-8">
        <title>Definition 5 (Evaluation of capability constraints): Any</title>
        <p>constraint applied on a capability imposes a constraint on every
attribute typed by that capability.</p>
        <p>This means, that based on the typing relationship between the
mass capability and the system-specific masses mT , mP , mB,
mM , Equation 2 can be unfolded as follows:
150 [kg];</p>
        <p>
          As presented in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] and [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], ontologies can be efficient
enablers for inconsistency management in heterogeneous
settings. During the translation of requirements to view-specific
properties, each stakeholder keeps in mind certain domain
properties, i.e. ontological properties. For example, an
electrical engineer implicitly thinks about the capacity of the battery,
a mechanical engineer reasons about how a battery would fit
the frame of the AGV. Due to overlap in requirements, some
ontological properties will be shared and/or will influence each
other such that the related view-specific properties will be
shared or influenced as well. Our framework allows defining
property satisfaction relationships in terms of attributes. The
satisfaction of a property can be inferred by checking the
single constraints imposed on the specific attributes.
Figure 6 shows the property validMass. The satisfaction of
the property is evaluated from the totalMass attribute, using
the same constraint as the one shown in Figure 3 (i.e. the
constraint on attribute mT in Equation 4), while the bottom
right element, labeled with the name of the property, holds the
boolean value of the satisfaction relationship.
        </p>
        <p>
          This notion of properties allows various scenarios aiding
inconsistency management, such as reusing domain
knowledge from existing domain ontologies [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], using ontological
reasoning [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] in conjunction with our techniques, and using
contract-based design [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] to aim co-design scenarios, i.e.
parallel branches of the engineering process.
        </p>
      </sec>
      <sec id="sec-4-9">
        <title>F. Putting it all together: the process</title>
        <p>
          Figure 5 shows the final model of the running example.
In the middle, the yellow rectangles denote the activities of
the PM with control flows in between them denoting the
precedence relationship between the activities. On the right
side, the attributes and constraints are shown. Activities and
attributes are linked by intents, which express the purpose of
the activity accessing a given attribute. The first three activities
access attributes in order to modify them, while the last activity
attempts to resolve a constraint wrt totalMass. Other types of
intents include: reading the value of an attribute, imposing a
constraint, locking/releasing an attribute in a parallel process
branch, etc. This latter step is built into the process as an
actual engineering step, but as shown in Section IV, in case
of an inconsistency, the consistency monitoring service can
stop the process before this point. In our previous work [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]
we used read-modify pairs of intents to identify potential
inconsistencies at the optimization phase. In this work, however,
we leverage the notion of intents at run-time to narrow the
scope of the consistency checking algorithm, i.e. to consider
only the attributes which have been explicitly linked with an
activity using a modify intent.
        </p>
        <p>On the left side, the FTG and the only associated capability
is shown. The typing relationships correspond to Figure 2:
the mechanical model in the PM is an Object and it is
typed by the Formalism Matlab in the FTG;
the Activities are typed by the transformation
assign</p>
      </sec>
      <sec id="sec-4-10">
        <title>Mass;</title>
        <p>finally, the mass capability types all the masses on the
right side, but this relationship is not visualized in the
graphical view. (It is shown in a property view of the
tool, however.)
Masses are assigned to the design when the respective
activities are executed. Conceptually, this assignment can be viewed
as a transformation of the model, and as such, the actual
transformation logic is captured in the transformation typing
the activities. In this case, assignMass holds the specification
of the transformation. The activities operate on models. To
check the consistency of the attributes, the attribute values
are obtained by querying the appropriate models, i.e. the ones
the specific attributes are persisted in. As Figure 5 shows,
the name of the attribute is prefixed with the name of the
model persisting the attribute. The first three attributes are all
persisted in the mechanicalModel, which is a Matlab type of a
model. Using this information, the querying is executed in the
background by our tool via the Matlab API, without requiring
the user to submit any extra information for this.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>IV. MANAGING INCONSISTENCIES</title>
      <p>In this section, we briefly present how the enactment of
the previously modeled process (Section III) is carried out
while enforcing a consistent state across the models. Our
custom process enactment engine with fully modeled
execution semantics is presented, as well the algorithm used for
detecting inconsistencies during the enactment of the process.
To facilitate the interplay in real engineering settings, we
provide integration with multiple tools and frameworks, which
will be discussed briefly as well.</p>
      <sec id="sec-5-1">
        <title>A. Architecture</title>
        <p>
          Figure 7 shows the architecture of the process enactment
engine. The engine is initialized by the Process model, defined
previously in Section III. An explicit Enactment model
augments the Process model with the notion of tokens and activity
states (Figure 8), to be able to define the execution semantics.
Execution semantics are defined by explicitly modeled
Transformation rules.
The architecture has been implemented on top of the Eclipse
platform. The Eclipse Modeling Framework (EMF) [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] is used
for modeling purposes, while the model transformations have
been realized using the VIATRA framework [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>Activities of the process, especially the automated ones,
often execute simulations and calculations over models on
external storages by using external tools. For that,
interoperability with a representative set of services is provided
(External service integration). Our framework currently
provides scripting support for Matlab/Simulink, and Amesim of
Siemens/LMS through its native API. Executable pieces of
Java code or Python scripts are supported and executed during
the appropriate phases of the enactment.</p>
        <p>
          A vital contribution of the stack is the Consistency manager,
which features a symbolic solver for detecting inconsistencies.
For this purpose, the SymPy [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] framework for symbolic
mathematics is used. In Section IV-C, the algorithm of the
solver is discussed in greater detail.
        </p>
      </sec>
      <sec id="sec-5-2">
        <title>B. Execution semantics</title>
        <p>
          The execution semantics of the FTG+PM have been
discussed previously in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. Here, we give a brief overview and
focus on the main specificities in our current framework.
        </p>
        <p>Since the core of enactment engine is fully modeled, the
execution semantics are given by reactive live model
transformations. Figure 8 shows the metamodel of the enactment
engine. A ProcessModel (i.e. a full FTG+PM) is given to the
compiler which creates an instance of the elements shown
in green. During the enactment, a set of Tokens define the
marking of the process, i.e. the active Nodes at a given
moment.</p>
        <p>A Token also equips Activities of the process with additional
semantics regarding the state of their execution, modeled
by ActivityState. This is required because the execution of
Activities is not instantaneous.</p>
        <p>When a Token is moved to a new Activity, the Activity
becomes Ready. The stakeholders and tools required to
execute the Activity can be notified, the required models
can be loaded into the tools.</p>
        <p>When the actual work in the Activity begins, the Activity
becomes Running. This state can last for longer periods,
especially in resource-intensive simulations or manual
modeling activities, which may take days or weeks.
When the actual work in the Activity is finished, the
Activity becomes Done and the process can move on.</p>
      </sec>
      <sec id="sec-5-3">
        <title>Transformation rules of the execution semantics</title>
      </sec>
      <sec id="sec-5-4">
        <title>Definition 6 (Marking of the process): By marking M of the</title>
        <p>process we mean the function M : N ! Z, where N denotes
the set of the Nodes of the process with an integer number
Z of Tokens in it. A process is considered to be unmarked if
there are no tokens present in it.</p>
        <p>Initialization is a transformation which takes an unmarked
process and transforms it into a process with an initial
marking, i.e. with one token in its initial node.</p>
        <p>Finishing is a transformation which takes a process with a
final marking (i.e. every token in the final node) and transforms
it into an unmarked process.</p>
        <p>Fork is a transformation which takes exactly one token and
produces a token for each parallel branch starting from that
fork node. The input token is marked abstract (see Figure 8)
and kept (hidden) in the model, while the newly created tokens
are defined as subtokens of the input token, so that they can
be identified once they have to be joined at the end of the
parallel branches.</p>
        <p>Join is a transformation which takes a token from each of its
incoming parallel branches and joins those tokens. In a valid
process model, the tokens to be joined must be the subtokens
of the same (now abstract) parent token. The join is achieved
by locating the parent token, placing it into the join node,
marking it as not abstract, and removing the subtokens.</p>
        <p>Step is a transformation which moves a token from a node
to a consecutive node, while respecting the previous rules of
forking and joining.</p>
      </sec>
      <sec id="sec-5-5">
        <title>C. Algorithm for early inconsistency detection</title>
        <p>Early detection of inconsistencies requires computing the
satisfiability of the system of constraints at certain points of
the process. These computations are carried out on each Step
in the process, based on Algorithm 1.</p>
        <p>Algorithm 1 Handling attribute modifications.
1: procedure STEP(token, nextActivity)
2: token:currentActivity nextActivity . Move the token to the next
activity
3: for all i:Intent, a:Attribute: i(token:currentActivity, modify, a, v) do
4: UPDATEATTRIBUTEVALUE(a, v) . Assign value v to attribute a
5: end for
6: end procedure
On each Step in the process, the token is moved to the next
activity (Line 2). As discussed in Section III-F, intents between
activities and attributes help identifying the cases when an
activity modifies the value of a property. For each of such
intents (Lines 3-5), the attribute is updated and the change
is propagated through the whole system of constraints. This
latter step is being taken care of by Algorithm 2.</p>
      </sec>
      <sec id="sec-5-6">
        <title>Symbolic computation of constraints</title>
        <p>The updates to the system of constraints require introducing
the new values of attributes and computing whether the
constraints can be still satisfied later on in the process or not. Such
a computation requires factoring in the potential impacts of the
future attribute changes (explicitly modeled in the process). To
execute these computations, we opted for the techniques of
symbolic computation. Our main concern is the maintenance
of a system of constraints by gradually simplifying them
as attributes get updated, to the point, where contradictions
appear in the equations, i.e. the set of potential solutions is
empty, thus denoting an inconsistency in the system design.
Alternative approaches include simulation of the process and
abstract interpretation.</p>
        <p>Algorithm 2 shows the steps taken in our symbolic
computation approach. The algorithm is invoked by Algorithm 1
with the name and the new value of the attribute to be updated
passed along as parameters. In Phase 1 of the algorithm,
the attribute-value assignment is translated to an equality
constraint and added to the system of constraints (Line 2). In
Phase 2, the algorithm propagates this change and attempts to
simplify every constraint. This is achieved by iterating through
the system of constraints (Lines 3-4) and factoring equation
constraints (Line 5-6) into the rest of the constraints by trying
to solve (simplify) the constraint (Line 7).</p>
        <p>
          We use the SymPy [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] symbolic mathematics library to
solve/simplify the constraints, thus the semantics is provided
by the library. Constraints imposed by capabilities are
calculated based on Definition 5 and applied on attributes.
        </p>
        <p>Finally, in case an empty set is produced as a set of potential
solutions for a constraint, we interpret it as an inconsistency
and notify the user about this fact.</p>
        <p>Algorithm 2 Maintenance of the system of constraints.
1: procedure UPDATEATTRIBUTEVALUE(attribute, value)</p>
        <p>Phase 1 – Impose a new constraint with equality
2: model:constraints Eq(attribute; value)</p>
        <p>Phase 2 – Propagation and simplification: substitute equality constraints into the
rest of the constraints
3: for all constraint1 in model:constraints do
4: for all constraint2 in model:constraints do
5: if constraint2 is Eq then
6: constraint1 constraint2
7: solution = solve(constraint1) . Try to solve the constraint
8: if solution = ; then
9: notify inconsistency
10: end if
11: end if
12: end for
13: end for
14: end procedure
When an inconsistency is detected, the process is halted and
cannot proceed until the inconsistency is not fixed. Resolving
inconsistencies is outside the scope of the paper. A simple
undo/redo functionality is provided by the framework, but
more detailed research have been carried out by other authors,
briefly discussed in Section V.</p>
      </sec>
      <sec id="sec-5-7">
        <title>Execution of the example</title>
        <p>We follow the process in Figure 5. During the execution,
Equations 1 and 2 are maintained: whenever a value is
assigned to an attribute present in one of the equations, the
equations are simplified with that attribute. This means
substituting the newly assigned value of the attribute to
every occurrence of the attribute in every equation; and
removing constraints without free attributes.</p>
        <p>Step 1: The platform mass is set to 100 kgs. Activity
DesignPlatform is executed and the mass of the
platform is set in the mechanical model. Since the
attribute is persisted in a Matlab model, the model
is queried via the Matlab API for the value of the
platformMass variable. The consistency manager
uses this information to update the constraints with.
The related constraint of Equation 2 (0 [kg] &lt;
mP 100 [kg]) is satisfied, and therefore the
system can be simplified with it:
mT = 100 + mM + mB [kg]</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Solving the constraints for mT results in a non</title>
      <p>empty set of solutions:
100 [kg] &lt; mT
150 [kg]</p>
    </sec>
    <sec id="sec-7">
      <title>No inconsistency is detected, the process proceeds.</title>
      <p>Step 2: The motor mass is set to 50 kgs. The SelectMotor
activity is executed which sets the mass of the
motor to 50 kgs.</p>
      <p>mT = 150 + mB [kg]</p>
    </sec>
    <sec id="sec-8">
      <title>At this point, Algorithm 2 detects the inconsistency</title>
      <p>sketched in Section II. Solving the constraints for
mT results in an empty set of solutions:
150 [kg] &lt; mT
150 [kg]</p>
    </sec>
    <sec id="sec-9">
      <title>Since 0 &lt; mB , it can be inferred, that after exe</title>
      <p>cuting the next activity of the process, mT &gt; 150
will hold, which violates the constraint on the total
mass. The process is halted and a notification is
raised to the user to resolve the inconsistency.</p>
    </sec>
    <sec id="sec-10">
      <title>V. RELATED WORK</title>
      <p>
        Model inconsistency is one of the main challenges in
any engineering setting where more than one stakeholder is
present. Di Ruscio et al [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] identify the research directions,
challenges, and opportunities of collaborative MDSE and
conclude, that inconsistency management is one of the main
enablers of efficient collaboration. This challenge is exacerbated
in scenarios of engineering systems of a heterogeneous nature,
i.e. when the stakeholders come from different domains, work
with different views on the system with their domain-specific
formalisms and tools.
      </p>
      <p>
        Multiple authors point out, managing inconsistencies should
be carried out with processes in mind as well. Persson et
al [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] argue that consistency between the various views of
cyber-physical system design as one of the main challenges
in design of such complex systems. This is due to relations
between views, with respect to their semantic relations, process
and operations which often overlap. Multi-paradigm modeling
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] advocates using the most appropriate formalisms, on the
most appropriate level of abstraction, while also factoring
in the processes manipulating the models. The framework
presented in this paper, aims at the problem of inconsistencies
with the processes in the focus.
      </p>
      <p>
        In our work, we opted for the FTG+PM formalism
for modeling processes. As compared to the widely used
BPMN2.0 [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] or BPEL [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] based process modeling
frameworks (e.g. jBPM [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]), our formalism allows modeling details
more relevant to engineering scenarios in MDE settings.
Models and transformations are first-class citizens in the FTG+PM,
which enables deeper understanding of inconsistencies and
more control over the enacted process.
      </p>
      <p>
        Our methodology advocates making crucial attributes and
constraints of the system explicitly modeled. Qamar et al [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]
use a similar approach for inconsistency management by
making model dependencies explicit. As opposed to our
approach, the authors do not go as far as providing constraints
for inconsistency management purposes, but use dependency
links to notify stakeholders about possible inconsistencies
when dependent properties/attributes change. It is a task of
a stakeholder to verify the consistency of the models. In our
approach, this is carried out in an automated way.
      </p>
      <p>
        In the current paper, we do not focus on resolving
inconsistencies of the models, but we provide undo/redo actions
to revert to the latest consistent state. Eramo et al [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]
present an approach where each of the consistent alternatives
are maintained throughout the process and pruned when a
decision is made and an alternative becomes infeasible. Such
an approach can be viewed as a natural extension of our work,
especially of the solver presented in Section IV-C. Mens et
al [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] propose expressing the steps of inconsistency detection
and resolution as graph transformation rules. Critical pair
analysis is used to analyse potential dependencies between the
detection and resolution of inconsistencies. The approach is
efficiently handles cyclic inconsistencies, which is paramount
in real system engineering scenarios and complements our
work presented here. Almeida da Silva et al [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] investigate the
possibilities of managing deviations of enacted processes from
their respective specifications. It is not the scope of our work,
but indeed, deviations from the specified process are big threat
to the validity of any process-oriented engineering approach.
The efforts put into analyzing and optimizing a process model
can be easily demolished by deviating from (and sometimes
even completely abandoning) the specification of the process.
Egyed et al [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] investigate the impact of single inconsistency
instances to the whole system by introducing the notion of
change impact based scopes. Scopes are used to carry out
resolution steps on the required regions of the models and
thus enhancing the efficiency of the inconsistency management
framework. Our formalism also supports the implementation
of such scoping mechanisms, with the added potential of
enriching the definitions of scopes with semantic information.
      </p>
      <p>To implement our solver, we opted for the Python-based
library SymPy. We briefly considered and researched two other
libraries as well. SymJava2 is a Java-porting of SymPy, but
with a limited set of capabilities, which would have prevented
us from implementing the second algorithm shown in
Section IV-C. exp4j3 is a library for evaluating expressions and
functions in the real domain. Its main limitation is the inability
of solving partial equations and inferring the (in)consistency
based on that.</p>
    </sec>
    <sec id="sec-11">
      <title>VI. CONCLUSIONS</title>
      <p>
        In this paper, we presented an approach for early detection
of inconsistencies in complex engineering processes. The
approach fits into a bigger inconsistency management
framework, partially presented in our previous works [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ][
        <xref ref-type="bibr" rid="ref4">4</xref>
        ][
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>The approach relies on modeling the characteristics of the
system being developed, and using this information during
the engineering phase to detect inconsistencies across the
various engineering models of the system. The approach is
process-oriented in a sense that attributes and capabilities of
the system’s models are modeled in conjunction with the
actual engineering process, which then gets enacted. The
enacted process is augmented with smart consistency checking
algorithms, enforcing the consistent state of the design.</p>
      <p>As presented, factoring ontological knowledge into the
requirements of the system may shed light to additional
constraints viable for early detection of potential inconsistent
states of the system design. The main advantage of our
approach is the support for such scenarios by uniformly handling
instance- and meta-level constraints. As highlighted in the
example, the advantages of such an early detection approach
are visible already in very simplistic cases as the one above.
The gain realized in real engineering processes can obviously
be much higher, when the execution of resource and cost
demanding activities can be prevented by the early detection
of inconsistencies.</p>
      <p>
        The proposed the modeling formalism enables lifting
information relevant to inconsistency management purposes
regarding the given process. Explicit modeling of such information
is an enabler of improving the quality and efficiency of
the process once enacted. Although the thorough modeling
requires significant efforts from the stakeholders, it is needed
2https://github.com/yuemingl/SymJava
3http://www.objecthunter.net/exp4j/
to be done only once, before the actual design of the system
commences. Such a front-loaded approach can be typically
expected from companies on CMMI levels 3 and above [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ].
As a consequence, our approach suits best the domain of
complex heterogeneous systems, where the costs of dealing
with inconsistencies is often in a different order of magnitude
than the costs of modeling and optimizing the process.
      </p>
      <p>A limitation of the framework may be its scalability, both
from the user experience point of view (i.e. how efficient is
it to model larger processes), and from the tooling point of
view (i.e. how efficient is it to execute the optimization and
monitoring of the enacted process). These concerns will be
addressed in future work.</p>
      <p>
        As a future work, we plan to combine the approach
presented in this paper with our previous work [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. This will
enable explicit reasoning about the trade-off between managing
inconsistencies in the process optimization phase and during
the enactment. Another direction in our research is to support
our approach with inconsistency resolution techniques. We
aim for developing a semi-automated selection of resolution
methods, which will require detailed cost models of the
process and all of its aspects. Finally, the current framework
serves as an enabler for our future research on inconsistency
tolerance [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
    </sec>
    <sec id="sec-12">
      <title>ACKNOWLEDGEMENTS</title>
      <p>This work has been partially carried out within the
framework of the Flanders Make project MBSE4Mechatronics (grant
nr. 130013) of the agency for Innovation by Science and
Technology in Flanders (IWT-Vlaanderen). This work was
partly funded with a PhD fellowship grant from the Research
Foundation - Flanders (FWO).</p>
      <p>The authors would like to thank the valuable insights and
advices of Joachim Denil and Vera Farkas.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>International</given-names>
            <surname>Organization</surname>
          </string-name>
          for Standardization, “ISO/IEC/IEEE 42010:
          <year>2011</year>
          ,
          <article-title>Systems and software engineering - Architecture description</article-title>
          .” https://www.iso.org/standard/50508.html. Acc.:
          <fpage>2017</fpage>
          -07- 07.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Finkelstein</surname>
          </string-name>
          , “
          <article-title>A foolish consistency: Technical challenges in consistency management,” in Database and Expert Systems Applications</article-title>
          , vol.
          <source>1873 of LNCS</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          , Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R.</given-names>
            <surname>Van Der Straeten</surname>
          </string-name>
          , “
          <article-title>Inconsistency management in model-driven engineering,” An Approach Using Description Logics (</article-title>
          <source>Ph. D. thesis)</source>
          ,
          <source>Vrije Universiteit Brussel</source>
          , Brussels, Belgium,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>I.</given-names>
            <surname>Dávid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Syriani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Verbrugge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Buchs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Blouin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Vanherpen</surname>
          </string-name>
          , “
          <article-title>Towards Inconsistency Tolerance by Quantification of Semantic Inconsistencies</article-title>
          ,” in COMMitMDE@ MoDELS, pp.
          <fpage>35</fpage>
          -
          <lpage>44</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. De Lara</surname>
            , and
            <given-names>P. J.</given-names>
          </string-name>
          <string-name>
            <surname>Mosterman</surname>
          </string-name>
          , “
          <article-title>An introduction to multi-paradigm modelling and simulation,” in Proc. of the AIS'2002 conf. (AI, Simulation and Planning in High Autonomy Systems)</article-title>
          , Lisboa, Portugal, pp.
          <fpage>9</fpage>
          -
          <lpage>20</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Corley</surname>
          </string-name>
          , E. Syriani,
          <string-name>
            <given-names>H.</given-names>
            <surname>Ergin</surname>
          </string-name>
          , and
          <string-name>
            <surname>S. Van Mierlo</surname>
          </string-name>
          , “
          <article-title>Cloud-based Multi-View Modeling Environments,” in Modern Software Engineering Methodologies for Mobile and Cloud Environments</article-title>
          , IGI Global,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>I.</given-names>
            <surname>Dávid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Denil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Gadeyne</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “Engineering Process Transformation to Manage (In)consistency,”
          <source>in Proceedings of the 1st International Workshop on Collaborative Modelling in MDE (COMMitMDE</source>
          <year>2016</year>
          ), pp.
          <fpage>7</fpage>
          -
          <lpage>16</lpage>
          , http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1717</volume>
          /,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>L.</given-names>
            <surname>Lúcio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mustafiz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Denil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Jukss</surname>
          </string-name>
          , “
          <article-title>FTG+PM: An Integrated Framework for Investigating Model Transformation Chains,” in SDL 2013: Model-Driven Dependability Engineering</article-title>
          , vol.
          <volume>7916</volume>
          of LNCS, pp.
          <fpage>182</fpage>
          -
          <lpage>202</lpage>
          , Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Foundation</surname>
          </string-name>
          , “
          <article-title>Eclipse Modeling Framework (EMF) Website</article-title>
          .” https://eclipse.org/modeling/emf/. Acc:
          <fpage>2017</fpage>
          -08-17.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Eclipse</surname>
            <given-names>Foundation</given-names>
          </string-name>
          , “Sirius Website.” https://eclipse.org/sirius/. Acc:
          <fpage>2017</fpage>
          -07-07.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>G.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Dávid</surname>
          </string-name>
          , Á. Hegedüs, Á. Horváth,
          <string-name>
            <given-names>I.</given-names>
            <surname>Ráth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Ujhelyi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Varró</surname>
          </string-name>
          , “VIATRA 3:
          <string-name>
            <given-names>A</given-names>
            <surname>Reactive Model Transformation Platform</surname>
          </string-name>
          ,”
          <source>in Theory and Practice of Model Transformations</source>
          , pp.
          <fpage>101</fpage>
          -
          <lpage>110</lpage>
          , Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>SymPy</given-names>
            <surname>Development Team</surname>
          </string-name>
          , “SymPy Website.” http://www.sympy.org/. Acc:
          <fpage>2017</fpage>
          -08-17.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>I.</given-names>
            <surname>Dávid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Denil</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <article-title>Towards Inconsistency Management by Process-Oriented Dependency Modeling,”</article-title>
          <source>in Proc. of 9th Int. Workshop on Multi-Paradigm Modeling</source>
          , pp.
          <fpage>32</fpage>
          -
          <lpage>41</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J. W.</given-names>
            <surname>Forrester</surname>
          </string-name>
          , Principles of Systems. Productivity Press,
          <year>1968</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>K.</given-names>
            <surname>Vanherpen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Denil</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Dávid</surname>
          </string-name>
          , P. De Meulenaere,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mosterman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Törngren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Qamar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <article-title>Ontological Reasoning for Consistency in the Design of Cyber-Physical Systems</article-title>
          ,” in CPSWeek workshop proceedings,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>O.</given-names>
            <surname>Kovalenko</surname>
          </string-name>
          , E. Serral,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sabou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. J.</given-names>
            <surname>Ekaputra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Winkler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Biffl</surname>
          </string-name>
          , “
          <article-title>Automating Cross-Disciplinary Defect Detection in MultiDisciplinary Engineering Environments,” in Knowledge Engineering and Knowledge Management</article-title>
          , pp.
          <fpage>238</fpage>
          -
          <lpage>249</lpage>
          , Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S.</given-names>
            <surname>Feldmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kernschmidt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Vogel-Heuser</surname>
          </string-name>
          , “
          <article-title>Combining a SysML-based Modeling Approach and Semantic Technologies for Analyzing Change Influences in Manufacturing Plant Models,” Procedia {CIRP}</article-title>
          , vol.
          <volume>17</volume>
          , pp.
          <fpage>451</fpage>
          -
          <lpage>456</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>A.</given-names>
            <surname>Sangiovanni-Vincentelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Damm</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Passerone</surname>
          </string-name>
          , “Taming Dr. Frankenstein:
          <article-title>Contract-Based Design for Cyber-Physical Systems,”</article-title>
          <source>European Journal of Control</source>
          , vol.
          <volume>18</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>217</fpage>
          -
          <lpage>238</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>K.</given-names>
            <surname>Vanherpen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Denil</surname>
          </string-name>
          , P. De Meulenaere, and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <article-title>Ontological Reasoning as an Enabler of Contract-Based Co-design</article-title>
          ,” in International Workshop on Design,
          <source>Modeling, and Evaluation of Cyber Physical Systems</source>
          , pp.
          <fpage>101</fpage>
          -
          <lpage>115</lpage>
          , Springer, Cham,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Denil</surname>
          </string-name>
          , Joachim, “
          <article-title>Design, verification and deployment of softwareintensive systems: a multi-paradigm modelling approach</article-title>
          ,” University Antwerp,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>D.</given-names>
            <surname>Di Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Franzago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Muccini</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Malavolta</surname>
          </string-name>
          , “
          <article-title>Envisioning the future of collaborative model-driven software engineering</article-title>
          ,”
          <source>in Proceedings of the 39th International Conference on Software Engineering Companion</source>
          , pp.
          <fpage>219</fpage>
          -
          <lpage>221</lpage>
          , IEEE Press,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Persson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Törngren</surname>
          </string-name>
          ,
          <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 Multi-View Modeling in the Context of Embedded</article-title>
          and
          <string-name>
            <surname>Cyber-Physical</surname>
            <given-names>Systems</given-names>
          </string-name>
          ,” in EMSOFT, pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          , IEEE,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Object</surname>
            <given-names>Management Group</given-names>
          </string-name>
          (OMG),
          <source>“BPMN 2</source>
          .0 Specification.” http: //www.bpmn.org/. Acc:
          <fpage>2017</fpage>
          -08-17.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24] OASIS,
          <string-name>
            <surname>“</surname>
            <given-names>WS</given-names>
          </string-name>
          <source>-BPEL 2</source>
          .0 Specification.” http://docs.oasis-open.
          <source>org/ wsbpel/2</source>
          .0/OS/wsbpel-v2.
          <fpage>0</fpage>
          -OS.html. Acc:
          <fpage>2017</fpage>
          -08-17.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25] RedHat, “jBPM Website.” https://www.jbpm.org. Acc:
          <fpage>2017</fpage>
          -08-17.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>A.</given-names>
            <surname>Qamar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. J.</given-names>
            <surname>Paredis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wikander</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>During</surname>
          </string-name>
          , “
          <article-title>Dependency modeling and model management in mechatronic design</article-title>
          ,
          <source>” Journal of Computing and Inf</source>
          . Science in Engineering, vol.
          <volume>12</volume>
          , no.
          <issue>4</issue>
          , p.
          <fpage>041009</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>R.</given-names>
            <surname>Eramo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , and G. Rosa, “
          <article-title>Approaching Collaborative Modeling as an Uncertainty Reduction Process</article-title>
          ,” in COMMitMDE@ MoDELS, pp.
          <fpage>27</fpage>
          -
          <lpage>34</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. Van Der</given-names>
            <surname>Straeten</surname>
          </string-name>
          , and
          <string-name>
            <surname>M. D'Hondt</surname>
          </string-name>
          , “
          <article-title>Detecting and resolving model inconsistencies using transformation dependency analysis</article-title>
          ,
          <source>” in International Conference on Model Driven Engineering Languages and Systems</source>
          , pp.
          <fpage>200</fpage>
          -
          <lpage>214</lpage>
          , Springer Berlin Heidelberg,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>M. A. Almeida da Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bendraou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Blanc</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.-P.</given-names>
            <surname>Gervais</surname>
          </string-name>
          ,
          <source>Early Deviation Detection in Modeling Activities of MDE Processes</source>
          , pp.
          <fpage>303</fpage>
          -
          <lpage>317</lpage>
          . Berlin, Heidelberg: Springer Berlin Heidelberg,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <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 Trans. on Sw. Engineering</source>
          , vol.
          <volume>37</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>188</fpage>
          -
          <lpage>204</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>CMMI</given-names>
            <surname>Product</surname>
          </string-name>
          <article-title>Team, “CMMI for Development, Version 1</article-title>
          .3,
          <string-name>
            <surname>Tech</surname>
          </string-name>
          . Rep. CMU/SEI-2010
          <string-name>
            <surname>-</surname>
          </string-name>
          TR-
          <volume>033</volume>
          ,”
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>