<!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>Model-driven Con guration of Function Net Families in Automotive Software Engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Cem Mengi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>O nder Babur</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Holger Rendel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christian Berger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Software Engineering RWTH Aachen University</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>49</fpage>
      <lpage>60</lpage>
      <abstract>
        <p>Recent e orts in the automotive domain to initiate a paradigm-shift from a traditional hardware-driven to a function-driven development process create new challenges to tackle. A hardware-driven variant handling mechanism will get more and more inappropriate. Instead, new concepts and methods are necessary to model and con gure concrete systems. A software document which is used in the early phase of development is the so called function net model. Variability in function nets is captured implicitly and is strongly dependent on the hardware infrastructure, constraints are collected with informal annotations, and variants are generated manually. This results in a situation where function nets get too complex, time consuming and unsuitable for future standards. In this paper, we will present a model-driven approach for function nets to capture variability explicitly, to express formal constraints, and to generate concrete variants with the support of an automated con guration process. By this, it is possible to use the generated variants as skeletons for virtual prototyping, so that requirement speci cations can be veri ed e ciently.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Variability in automotive software engineering has achieved a degree of
complexity which can no longer be handled with traditional hardware-driven
methodologies [1{3]. Function net models are software documents which are used in an
early phase of such a development process to describe the rst virtual
realization of the system structure [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Typically, it consists of functional modules that
interact via signals.
      </p>
      <p>Variation points and their variants are captured implicitly by modeling a
so called maximal function net model. The idea behind that is to capture every
functional module, e.g., a sensor, an actuator, a control algorithm etc. In this
way, a function net corresponds to an Electronic Control Unit (ECU) together
with all its physical connections to bus systems, sensors, and actuators. Figure 1
illustrates two forms of a maximal function net model. Figure 1(a) represents a
function net model speci ed in an Excel sheet, while Figure 1(b) is a visualization
of this Excel sheet as graph. In both forms, it is very di cult or nearly impossible
to extract useful information manually out of it.
(a) Function net
model as Excel
sheet (cutout).</p>
      <p>(b) Function net model as graph.</p>
      <p>Communication dependencies between function nets, i.e., communication
dependencies between ECUs, which have an in uence on variability are handled
by using informal annotations. Variants are then generated manually by
removing speci c parts of the function net with the help of these annotations. In a
hardware-driven process, this can be regarded equally to removing hardware
components such as ECUs, sensors, or actuators and the appropriate software
portions. Any implications to other hardware and software components have to
be solved manually.</p>
      <p>
        Regarding the current trend in automotive software engineering, we can
observe a paradigm-shift from a hardware-driven process to a function-driven
process [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Therefore, a hardware-driven variant handling mechanism will get more
and more inappropriate, because it gets too complex and is not suitable for
future standards: it completely depends on the underlying hardware infrastructure,
consistency has to be ensured manually, i.e., there is no formalization to express
dependencies, and there is also no automated support to con gure and validate
concrete variants.
      </p>
      <p>In a research project at our department, we are providing new concepts,
methods, and tools for handling complexity and variability in software
documents for automotive software engineering [6{9]. We have developed a formal
language to model function nets, and a formal language to model variation points
and variants. Furthermore, we have integrated these two modeling languages in
order to reduce synchronization overhead. Modeling guidelines, some of which
can be checked on syntactical level and others which completely rely on behalf
of the function net architect, are also provided. Moreover, methodology rules for
the usage of such an integrated modeling language are also speci ed. What is
still missing is the possibility to express constraints between functional
modules or its signals inside one or many function net models. Furthermore, there
is also a need to have an automated support to con gure concrete variants out
of the family which also ensures the consistency. Because we are not only
dealing with function net models but with several software documents, we need a
con guration engine which is independent from the input language.</p>
      <p>Including the missing concepts will enhance the development process in a
way, that out of the family of function net models, we can generate skeleton
variants for virtual prototypes (i.e., behavioral simulation on a PC). This allows
an early and e cient veri cation of requirement speci cations.</p>
      <p>In this paper, we will introduce an approach to express constraints in and
between function net models. Furthermore, a con guration process is integrated
which is coupled with an independent back-end inference engine. The output of
the con guration process is a concrete variant of a function net.</p>
      <p>The paper is structured as follows: Section 2 describes and motivates the
problems in more detail. Here, we also illustrate an example which is used
continuously in the whole paper. Section 3 and 4 include the main contribution of
this paper. Here, we explain the language to express constraints and the whole
con guration process. Section 5 describes related work and nally Section 6
concludes this paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Problem Description by Example</title>
      <p>This section describes the initial situation of our approach that is relevant to
explain the problems we are going to tackle and the contribution of this paper.
Nevertheless, we will not describe the conceptual background but illustrate an
example and refer to them appropriately.</p>
      <p>
        Figure 2 shows an example of a function net model integrated with a
variability model [
        <xref ref-type="bibr" rid="ref6 ref8">6, 8</xref>
        ]. It illustrates a part of a Central Locking System (CLS),
with a Vehicle Access Controller (VAC), a Data Transceiver (DT), and a
Central Locking Master (CLM). A VAC can lock (l) or unlock (ul) the
vehicle. For this, it has to authorize itself with some authentication data (ad).
To communicate between functional modules we use ports. Thereby, we
distinguish between data ports, i.e., signals with a data storage characteristic, and
control ports, i.e., signals initiating a functionality. In Figure 2 data ports are
visualized with a rectangular shape, while control ports are visualized with a
circle shape. Furthermore, these two types of ports are distinguished between
provided and required ports. In Figure 2 provided ports are marked black, while
required ports are marked white.
      </p>
      <p>
        Variation points and their variants are captured in the variability model
[
        <xref ref-type="bibr" rid="ref6 ref8">6, 8</xref>
        ]. For example, a VAC is a variation point, which has two variants, i.e., a
Remote Control (RC) and an Identification Transmitter (IDT) for a more
comfortable access. In the same way, a DT is also a point of variation which has
for example Antennas (At) as variants. A further variant could be a key slot
(not shown in Figure 2). Variation points have group cardinalities and variants
have variant cardinalities in the same way as Czarnecki et al. have introduced
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. For example, in Figure 2 the group cardinality [1..2] of VAC expresses that
out of the captured variants at least one but at most two variants are needed for
      </p>
      <p>VAC
ad
l
ul</p>
      <sec id="sec-2-1">
        <title>Function Net Model</title>
        <p>a valid CLS. The variant cardinality [1..4] of At expresses that a valid CLS can
have at least one but at most four instances of the variant. By using group and
variant cardinalities it is possible to restrict valid systems. In the subsequent
sections, we will see that this is not enough to express constraints.</p>
        <p>Finally, variants can be speci ed more ne-grained (depicted with the dots in
Figure 2). For example, ports and their connections can di er depending on the
variant. For our explanations in this paper, we will not need them and therefore,
they are neglected here.</p>
        <p>As explained before, currently we cannot express more complex constraints
between functional modules or its signals inside one or many function nets.
Furthermore, an automated support to con gure concrete variants is also not
possible. The next two subsections will describe the mentioned problems in more
detail.
2.1</p>
        <sec id="sec-2-1-1">
          <title>Expressing Constraints</title>
          <p>In Figure 2, we have denoted two constraints for IDT (solid black line with arrow),
i.e., the exclusion of RC if it is selected and the necessity of exactly four Ats.
Please note that the exclusion can also be modeled with the expression of group
cardinalities. This kind of constraints and obviously more complex constraints
are often needed when modeling a family of function nets. As mentioned before,
in our current prototype it is not possible to express more complex constraints
which is a strong limitation of our integrated concept. Therefore, there is a need
for an appropriate constraint language in order to express dependencies between
variants.</p>
          <p>An important requirement is that the language has su cient
expressiveness. It should be possible to combine multiple variants and to formulate nested
statements. It should also be possible to de ne constraints between di erent
variability models. Another important requirement is that constraints should be
reusable. Having gained experience in often used constraints, it should be
possible to prede ne standard constraints and reuse them. Furthermore, the
constraint language should not cause that much time-consuming training e ort for
the con guration process. This minimizes error-proneness and enhance usability.
2.2</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Con guration of Concrete Variants</title>
          <p>
            Consider again Figure 2. We have depicted check boxes for the variability model
to illustrate the con guration process. In the example, IDT is selected which
requires exactly 4 Ats. Obviously, this is a valid con guration from which a
concrete variant can be derived. The variant can then be used as skeleton for
virtual prototypes to verify the requirements speci cation. Such a virtual
prototype can for example be modeled with tools such as Matlab R Simulink R and
State ow R [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ]. In our current implementation such a con guration process is
not supported.
          </p>
          <p>There is a need for back-end con guration engine which infers valid variants.
The con guration engine should be independent from the input language. This
means, that it should be possible to handle di erent kind of models, such as
function net models, Simulink models, and even source code. Furthermore, it
should be possible to combine di erent models and process them as input. For
this, the con guration process should be easily extendable and highly performant.
3</p>
          <p>
            Design of Function Net Families with Constraints
Because we do not plan to design a new constraint language, we have investigated
literature to nd a suitable one that ful lls our requirements and is adaptable to
our prototype. As one important requirement, we have identi ed that the
constraint language should not cause additional expenses. Therefore, the selection
of our language depends on the input language of the underlying con guration
engine. As we will see in Section 4, we will use smodels as con guration engine
which requires Weight Constraint Rule Language (WCRL) as input language
[
            <xref ref-type="bibr" rid="ref12">12</xref>
            ]. Soininen et. al. have shown that WCRL has su cient expressiveness. It is
also possible to reuse rules. Therefore, WCRL is a language that is suitable for
our purposes. In this paper, we do not show the complete de nition of WCRL
but limit it to a portion that is enough for the variability and function net model.
For the complete de nition, please refer to the authors of WCRL [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ].
          </p>
          <p>A weight constraint rule is of the form
(1)
(2)
C0</p>
          <p>C1; : : : ; Cn;
where Ci is a weight constraint which in turn is of the form</p>
          <p>Ci = L
fa1 = w1; : : : ; an = wng</p>
          <p>U;
where L; U 2 Z are lower and upper bounds, ai is a literal (atomic formula or
predicate), and wi 2 N0 is a weight.
where
and
A weight constraint Ci is satis ed for a set S i</p>
          <p>L</p>
          <p>X wi
ai2S</p>
          <p>U;
(3)
where S is a set of literals.</p>
          <p>To illustrate WCRL consider again Figure 2. To express the exclusion of RC
if IDT is selected, we can de ne a weight constraint rule as follows:
ExcludeRC</p>
          <p>IsSelectedIDT;
ExcludeRC =
1
fInstOfType(X, RC) : InstDomain(X)g
0;
IsSelectedIDT = 1
fInstOfType(X, IDT) : InstDomain(X)g
1:</p>
          <p>The expression InstOfType(X, RC) : InstDomain(X) returns, out of the
whole set of instances, i.e., the selected variants, a subset of a literals X which
are of type RC (and a have default weight of 1). The same holds for IDT.</p>
          <p>To express that exactly 4 Ats are needed if IDT is selected, we can de ne
another weight constraint rule:</p>
          <p>Exactly4Ats</p>
          <p>IsSelectedIDT;
where IsSelectedIDT is de ned as above, and</p>
          <p>Exactly4Ats = 4
fInstOfType(Y, At) : InstDomain(Y)g
4:</p>
          <p>In this way, it is possible to express formal constraints which are also
processable by the con guration process which is presented next.
4</p>
          <p>Con guration of Function Net Families
A constraint language allows the restriction or precision of the con guration
domain. We are now able to model a family of function nets and to express
constraints across variants. What is still missing is a methodology and appropriate
concepts to con gure a concrete variant out of the family. In this section, we will
provide such a con guration process and explain the steps relevant for it.</p>
          <p>
            Figure 3 gives an overview of the whole con guration process. The input
document will be a function net family as shown in Figure 2 and the output
document after con guration will be a comletely con gured function net. The
con guration steps are (1) the selection of the variants in the variability model.
This is done with the help of the integrated prototype [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]. The result of this step
will be a function net family plus selected variants. Because WCRL is the input
.fnf
          </p>
          <p>Function Net Family</p>
          <p>variant selection
.fnf Function Net Family + selected variants</p>
          <p>transformation
n
o
it
ifraug ssce.wcrl Function Net Family in WCRL
con lrpo inference
a
n
r
te.wcrl configured Function Net in WCRL
n
i
.fn</p>
          <p>transformation
configured Function Net
Function Net Family Editor
openArchitecureWare</p>
          <p>
            smodels
openArchitecureWare
language for the back-end inference engine, we need (2) a transformation from
the language of function net families to an equivalent model in WCRL which
is the result of this step. The transformation rules are de ned with support
of openArchitectureWare (oAW) [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ]. The function net model in WCRL is the
input for the inference engine smodels which (3) infers a con gured function
net in WCRL. In order to visualize the result we (4) transform it back to the
function net model. Note that steps (2)-(4) are internally processed so that a
user does not notice them.
          </p>
          <p>In the following subsections, we will explain the above outlined steps in more
detail by illustrating them with the example of Section 2. We will start with step
(2), i.e., a function net family plus selected variants which are transformed to a
model in WCRL.
Consider Figure 4. We have a family of function nets where WCRL constraints
can be expressed (see Section 3) and in addition variants can be selected. In the
example, we want to con gure an IDT and four Ats. As explained above, we rst
have to transform the function net family to a model in WCRL.</p>
          <p>The bottom part of the gure shows the result after transformation, i.e.,
a model in WCRL. For example, the functional module VAC is transformed to
Function(VAC) &lt;-. This is a short notation for a weight constraint rule where
the right part is always true (and therefore empty). Such a rule is also called
a fact. The information that VAC is also a variation point is captured in the
next line. Furthermore, we need the association information between VAC as a</p>
          <p>VAC
ad
l
ul
.wcrl</p>
          <p>Function(VAC)
&lt;FunctionVP(VP.VAC)
&lt;FunctionIsVP(VAC, VP.VAC)
&lt;Variant(IDT)
&lt;FunctionVPHasVariant(VP.VAC, IDT)
&lt;-∞ ≤ {InstOfType(Y, RC): InstDomain(Y)} ≤ 0 &lt;- 1 ≤ {InstOfType(X, IDT): InstDomain(X)} ≤ ∞
4 ≤ {InstOfType(Y, At): InstDomain(Y)} ≤ 4 &lt;- 1 ≤ {InstOfType(X, IDT): InstDomain(X)} ≤ ∞
0 ≤ {InstOfType(X, IDT): InstDomain(X)} ≤ 1
&lt;1 ≤ {InstOfType(X, IDT): InstDomain(X)} ≤ 1
&lt;…
Variant(At)
&lt;0 ≤ {InstOfType(X, At): InstDomain(X)} ≤ 4
&lt;4 ≤ {InstOfType(X, At): InstDomain(X)} ≤ 4
&lt;functional module and variation point. This is expressed in the third line. In the
same way, variants of variation points, constraints, cardinalities, and selections
are all transformed to WCRL.</p>
          <p>
            To implement transformation rules, we have used the oAW framework, more
precisely the component Xpand. Xpand is a template-based language to generate
code based on EMF (Eclipse Modeling Framework) models [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ]. Figure 5
illustrates an Xpand template that processes all variation points and variants of our
integrated models (which are also based on EMF) and generates the appropriate
WCRL code. Having now the model in WCRL, we can use the inference engine
smodels to generate a valid con guration.
          </p>
        </sec>
        <sec id="sec-2-1-3">
          <title>4.2 The Inference Engine: smodels</title>
          <p>
            We have decided to use an independent inference engine, which is able to process
combined models and has a reasonable performance. We will not present in this
paper our classi cation and evaluation method for our decision, because it is still
work in progress. But among all evaluated possibilities, smodels seems to be a
good candidate [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ]. In Section 5 we will give some arguments for our decision.
1. «DEFINE processVariationPoint FOR FunctionVariationPoint»
2.
3.
4.
5.
6. «FOREACH vcard.variants AS vars»
7.
8.
9.
10.
          </p>
          <p>Variant(«vars.getId()»)
&lt;FunctionVPHasVariant(«this.getId()», «vars.getId()»)
&lt;«vcard.getLowerBound()» {InstOfType(X, «vars.getId()») :</p>
          <p>InstDomain(X)} «vcard.getUpperBound()»
&lt;FunctionVP(«this.getId()»)
&lt;</p>
          <p>FunctionIsVP(«this.variableFunction.getId()», «this.getId()»)
&lt;11.
12.
13.
14. «ENDDEFINE»</p>
          <p>«ENDFOREACH»</p>
          <p>Using smodels as back-end inference engine, a WCRL model is taken as
input which then infers a con gured WCRL model as output (for the input
from Figure 4). Figure 6 shows an example of the output. We have one instance
IDT 1 of type IDT (line 1 and 2), and four instances of type At. Furthermore, all
instances for ports and their connections are inferred.
4.3</p>
        </sec>
        <sec id="sec-2-1-4">
          <title>Transformation to a Function Net Model</title>
          <p>Finally, the result of smodels has to be transformed back to the function net
model. Therefore, we again specify our transformation rules using oAW. We do
not describe this in detail, because it is analogous as described in Subsection 4.1.
Figure 7 illustrates the result of this step. The function net has now one instance
of IDT and four instances of At, which all are connected appropriately. Note that
in this model the complete variability is bind (there is no green colored functional
module) and therefore it is a variant that can be used as a skeleton for virtual
prototyping.</p>
          <p>IDT_1
ad
l
ul</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>Function Net Model Variability Model</title>
        <p>
          In terms of expressing constraints, two di erent approaches exist: structural/
graphical de nition and textual de nition. The former is usually adopted by
con guration systems involving feature trees [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], and the possible relations
include simple 'requires' and 'excludes' relations and cardinality constraints [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ],
and relations like 'recommends' or 'discourages' in some cases [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].The latter
requires the use of a constraint language/logic, including OCL [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], WCRL [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], or
Prolog [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] to express arbitrary logic formulas constraining the model, allowing
less user-friendly yet much more expressive constraints. Among di erent
languages, OCL has the advantage as the most well-known language since de ning
complex constraints requires a considerable amount of pro ciency in the relevant
language.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] and [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], di erent methods for product con guration are
summarized. Some are rule-based, logic-based and constraint-based con guration; the
strengths and weaknesses of tools adopting di erent approaches are discussed in
[
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. Answer Set Programming (ASP) [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] emerges to be an important and widely
accepted means for product con guration, and is suitable for the representation
of con guration knowledge [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. Since the con guration task is NP-complete,
performance of the inference engine seems to be important for medium to large
scale models. There exist several solvers including pure ASP solvers such as
smodels [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], DLV [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ], and hybrid approaches integrated with SAT solvers such
as ASSAT [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. A theoretical comparison can be found in [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] and comparison
of their performance in relevant sections of each paper and in [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ].
        </p>
        <p>Regarding the di erent ASP solvers, there exist considerable amount of data
on using smodels, which has a long history of development and wide
acceptance. It allows a direct integration into our con guration process with the use
of WCRL as input language. In contrast, OCL requires an extra model
transformation. However, we plan to integrate OCL into our con guration process
in order to compare both in more detail. The disadvantage in performance and
lack of advanced concepts (such as non-monotonic reasoning, learning, powerful
heuristics) may be neglected considering the current scope of our work; and it is
easy to migrate later to di erent engines with the same interface (WCRL I/O)
for better performance.
6</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Conclusion</title>
      <p>In this paper, we have illustrated a model-driven approach to con gure an
integrated variability and function net model. First, we have explained the need for
a constraint language in order to restrict the con guration domain. Therefore,
we have included WCRL as an appropriate language. Second, we have motivated
the necessity for an independent back-end inference engine. Here, smodels seems
to be a tool which is adaptable, extendable, and with high performance. We plan
to start a benchmark where this can be evaluated more precisely.</p>
      <p>The possibility to con gure concrete variants of function nets allow the
generation of skeleton variants for virtual prototyping. For example, in this way,
variants of Simulink models can be simulated in order to verify e ciently
requirement speci cations in an early phase of a model-driven development
process.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Broy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. H.</given-names>
            <surname>Kru</surname>
          </string-name>
          <article-title>ger, A</article-title>
          . Pretschner, and
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Salzmann: Engineering Automotive Software</article-title>
          .
          <source>In Proceedings of the IEEE</source>
          , pages
          <volume>356</volume>
          {
          <fpage>373</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          and U.W. Eisenecker:
          <article-title>Generative programming: methods, tools, and applications</article-title>
          . Addison-Wesley,
          <string-name>
            <surname>NY</surname>
          </string-name>
          , USA,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Bockle, and</article-title>
          <string-name>
            <surname>F. J. van der Linden</surname>
          </string-name>
          : Software Product Line Engineering: Foundations, Principles and Techniques. Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>H.</given-names>
            <surname>Wallentowitz</surname>
          </string-name>
          and K. Reif (eds.): Handbuch Kraftfahrzeugelektronik: Grundlagen, Komponenten, Systeme, Anwendungen. Vieweg, Wiesbaden,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>AUTOSAR (AUTomotive Open System ARchitecture) Development</surname>
          </string-name>
          <article-title>Partnership</article-title>
          . http://www.autosar.org.
          <source>Last request: March</source>
          <volume>30</volume>
          .
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>C.</given-names>
            <surname>Mengi</surname>
          </string-name>
          and
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Armac: Functional Variant Modeling for Adaptable Functional Networks</article-title>
          .
          <source>In VaMoS 2009: Proceedings of the 3rd International Workshop on Variability Modelling of Software-Intensive Systems</source>
          , pages
          <fpage>83</fpage>
          {
          <fpage>92</fpage>
          ,
          <string-name>
            <surname>Seville</surname>
          </string-name>
          , Spain,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>C.</given-names>
            <surname>Mengi</surname>
          </string-name>
          and
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Armac: Ein Klassi kationsansatz zur Variabilita</article-title>
          tsmodellierung in E/E-Entwicklungsprozessen. In Software Engineering 2009 Workshop: ProduktVariabilitat im gesamten
          <source>Lebenszyklus (PVLZ</source>
          <year>2009</year>
          ), KL, Germany,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>C.</given-names>
            <surname>Mengi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Navarro</given-names>
            <surname>Perez</surname>
          </string-name>
          , and
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Fu : Modellierung variantenreicher Funktionsnetze im Automotive Software Engineering</article-title>
          .
          <source>In Proceedings of the 7th Workshop Automotive Software Engineering (ASE</source>
          <year>2009</year>
          ), Lubeck, Germany,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>C.</given-names>
            <surname>Mengi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Fu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I.</surname>
          </string-name>
          <article-title>Aktas: Model-driven Support for Source Code Variability in Automotive Software Engineering</article-title>
          .
          <source>In Proceedings of the 1st International Workshop on Model-driven Approaches in Software Product Line Engineering (MAPLE</source>
          <year>2009</year>
          ), San Francisco, California, USA,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Helsen</surname>
          </string-name>
          , and U. W. Eisenecker:
          <article-title>Formalizing cardinality-based feature models and their specialization</article-title>
          .
          <source>In Software Process: Improvement and Practice</source>
          , pages
          <volume>7</volume>
          {
          <fpage>29</fpage>
          , Vol.
          <volume>10</volume>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. The Mathworks. http://www.mathworks.com/.
          <source>Last request: March</source>
          <volume>30</volume>
          .
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>T.</given-names>
            <surname>Soininen</surname>
          </string-name>
          , I. Niemela,
          <string-name>
            <given-names>J.</given-names>
            <surname>Tiihonen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Sulonen</surname>
          </string-name>
          <article-title>: Representing Con guration Knowledge with Weight Constraint Rules</article-title>
          .
          <source>AAAI Technical Report SS-01-01</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. openArchitectureware. http://www.openArchitectureware.org/.
          <source>Last request: March</source>
          <volume>30</volume>
          .
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Eclipse Modeling Framework. http://www.eclipse.org/modeling/emf/.
          <source>Last request: March</source>
          <volume>30</volume>
          .
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. I. Niemela and
          <string-name>
            <given-names>P.</given-names>
            <surname>Simons</surname>
          </string-name>
          <article-title>: Smodels - An Implementation of the Stable Model and Well-Founded Semantics for Normal LP</article-title>
          .
          <source>In LPNMR '97: Proceedings of the 4th International Conference on Logic Programming and Nonmonotonic Reasoning</source>
          , pages
          <volume>421</volume>
          {
          <fpage>430</fpage>
          , London, UK, Springer-Verlag,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>K. C. Kang</surname>
            ,
            <given-names>S. G.</given-names>
          </string-name>
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>J. A.</given-names>
          </string-name>
          <string-name>
            <surname>Hess</surname>
            ,
            <given-names>W. E.</given-names>
          </string-name>
          <string-name>
            <surname>Novak</surname>
            and
            <given-names>A. S.</given-names>
          </string-name>
          <string-name>
            <surname>Peterson: FeatureOriented Domain Analysis (FODA) Feasibility</surname>
          </string-name>
          <article-title>Study</article-title>
          .
          <source>Technical Report:</source>
          CarnegieMellon University Software Engineering Institute,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. pure::systems. http://www.pure-systems.com/.
          <source>Last request: 30th March</source>
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Object</surname>
          </string-name>
          <article-title>Constraint Language Speci cation Version 2.0</article-title>
          . http://www.omg.org/ technology/documents/formal/ocl.htm.
          <source>Last request: March</source>
          <volume>30</volume>
          .
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>D.</given-names>
            <surname>Sabin</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Weigel</surname>
          </string-name>
          <article-title>: Product Con guration Frameworks - A Survey</article-title>
          .
          <source>IEEE Intelligent Systems</source>
          , Vol.
          <volume>13</volume>
          , pages
          <fpage>42</fpage>
          {
          <fpage>49</fpage>
          ,
          <string-name>
            <given-names>IEEE</given-names>
            <surname>Educational Activities</surname>
          </string-name>
          <string-name>
            <surname>Department</surname>
          </string-name>
          , NJ, USA,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>L.</given-names>
            <surname>Hotz</surname>
          </string-name>
          and
          <string-name>
            <surname>T.</surname>
          </string-name>
          <article-title>Krebs: Con guration - State of the Art and New Challenges</article-title>
          .
          <source>In Proceedings of the 17th Workshop Planen</source>
          , Scheduling und Kon gurieren,
          <source>Entwerfen (PuK</source>
          <year>2003</year>
          ),
          <source>KI 2003 Workshop</source>
          , pages
          <volume>145</volume>
          {
          <fpage>157</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>M. Sinnema</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <article-title>Deelstra: Classifying variability modeling techniques</article-title>
          .
          <source>Inf. Softw. Technol.</source>
          , pages
          <volume>717</volume>
          {
          <issue>739</issue>
          ,
          <issue>7</issue>
          , Newton, MA, USA,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>C. Anger</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Konczak</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Linke</surname>
            , and
            <given-names>T.</given-names>
          </string-name>
          <article-title>Schaub: A Glimpse of Answer Set Programming</article-title>
          .
          <source>Kunstliche Intelligenz</source>
          , Vol.
          <volume>19</volume>
          , pages
          <fpage>12</fpage>
          {
          <issue>17</issue>
          ,
          <issue>1</issue>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>T.</given-names>
            <surname>Soininen</surname>
          </string-name>
          and
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Niemela: Developing a Declarative Rule Language for Applications in Product Con guration</article-title>
          .
          <source>In PADL '99: Proceedings of the First International Workshop on Practical Aspects of Declarative Languages</source>
          , pages
          <volume>305</volume>
          {
          <fpage>319</fpage>
          , London, UK, Springer-Verlag,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          , G. Pfeifer,
          <string-name>
            <given-names>W.</given-names>
            <surname>Faber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          , G. Gottlob,
          <string-name>
            <given-names>S.</given-names>
            <surname>Perri</surname>
          </string-name>
          , and
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>Scarcello: The DLV system for knowledge representation and reasoning</article-title>
          .
          <source>ACM Trans. Comput. Logic</source>
          Vol.
          <volume>7</volume>
          , pages
          <fpage>499</fpage>
          {
          <issue>562</issue>
          ,
          <issue>3</issue>
          , New York, NY, USA, ACM,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>F.</given-names>
            <surname>Lin</surname>
          </string-name>
          and
          <string-name>
            <surname>Y.</surname>
          </string-name>
          <article-title>Zhao: ASSAT: Computing Answer Sets of a Logic Program by SAT Solvers</article-title>
          . Artif. Intell., Vol.
          <volume>157</volume>
          ,
          <string-name>
            <surname>Nonmonotonic</surname>
            <given-names>Reasoning</given-names>
          </string-name>
          , pages
          <volume>115</volume>
          {
          <fpage>137</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26. E. Giunchiglia,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          , and
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Maratea: On the relation among answer set solvers</article-title>
          .
          <source>Annals of Mathematics and Arti cial Intelligence</source>
          Vol.
          <volume>53</volume>
          . pages
          <fpage>169</fpage>
          {
          <issue>204</issue>
          ,
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          , Hingham, MA, USA, Kluwer Academic Publishers,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mancini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Micaletto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Patrizi</surname>
          </string-name>
          , and
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Cadoli: Evaluating ASP and Commercial Solvers on the CSPLib</article-title>
          .
          <source>Constraints</source>
          , Vol.
          <volume>13</volume>
          , pages
          <fpage>407</fpage>
          {
          <issue>436</issue>
          ,
          <issue>4</issue>
          , Hingham, MA, USA, Kluwer Academic Publishers,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>