<!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>Integrated Modeling of Software Product Lines with Feature Models and Classification Trees</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Florian Markert Computer Systems Group</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Andy Sch u ̈rr Real-Time Systems Group Technische Universita ̈t Darmstadt</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Technische Universita ̈t Darmstadt</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Software Product Lines (SPLs) are an approach to improve reusability of software in a large number of products that share a common set of features. In SPLs, Feature Models (FMs) are frequently used to model commonalities and variabilities. However, according to the best of our knowledge, there are no approaches to automatically generate test cases on the basis of a stand-alone FM. We introduce a method, which fills this gap. In single system software testing, Classification Trees (CTs) are a proven approach for generating test cases derived from the original system specification. In this paper, we explore the relations and similarities between FMs and CTs and integrate both methods to a unified approach called Feature Model for Testing (FMT).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        SPL-engineering is one of the most promising approaches
of the Software Engineering community to reduce the
development costs, for as well as to increase the quality of families of
similar software product instances [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. As a consequence,
software product line engineering is successfully used in various
domains, including the domain of automotive software
development. In this area, the combination of highly parametrized
software of electronic control units (ECUs), together with
an abundance of configuration options of networks of ECUs
will soon lead to a situation, where (1) a single ECU may
be instantiated in at least 10.000 different ways and (2) the
software of a network of more than 50 ECUs in a single car
may exist in millions of different configurations.
      </p>
      <p>
        As a matter of fact, we are, therefore, running into a situation
where each instance of a certain brand of car possesses a
unique configuration of the embedded software of all its ECUs.
Testing all these millions of instances of an automotive SPL in
the following traditional way is no longer feasible: create all
actually used instances of an SPL and then develop for each
instance a separate suite of integration test cases. Hence, the
automotive industry as well as engineers from other domains
are urgently looking for new methods how to systematically
generate sets of software product instances that represent
equivalence classes of instances with a sufficiently similar
behavior from a system integration testing point of view.
Furthermore, model-based and more traditional black and
white box testing approaches are adapted in such a way that
families of test models and derived test cases can be developed,
together with semi-automatic procedures that allow one to
select the appropriate test cases for a specific SPL instance.
Examining more closely the state-of-the-art of SPL
development and software testing approaches in the automotive
industry we see that various kinds of feature modeling concepts
and tools are used for the design of SPLs and the selection
of needed instances [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. On the other hand, CTs and
related tools such as CTE [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] are successfully used for
blackbox testing of single product instances. We are not aware
of any proposal how to combine feature modeling concepts
used for the description and selection of features (parameters,
options, ... ) of SPLs with CT-concepts used for the description
and selection of test case parameters of selected product
instances—despite of the fact that the borderlines between
feature selection at compile time and input parameter selection
at runtime are blurred, and the same parameter may either be
instantiated at compile time or flash time, to unlock a specific
function or changed at runtime to activate a certain mode of
operation.
      </p>
      <p>
        To overcome these problems we will first present in Section II
of this paper the fundamentals of SPL description by means of
FMs and the specification of parameter equivalence classes for
testing purposes by means of CTs. Furthermore, this section
introduces our paper’s running example, a subset of a case
study provided by the Adam Opel GmbH which is a subsidiary
of GM (General Motors) Corp. Afterwards, we explain in more
detail the state-of-the-art of systematic testing approaches of
SPLs and black box testing with CTs in a related work section.
Section IV then systematically compares the basic modeling
elements of FMs, similar to the developed FMs in FODA [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
and the classification approach as supported by the tool CTE
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Based on this comparison, a tight integration of both
modeling languages is proposed and the abstract syntax of
the resulting feature and test parameter modeling language
“FMT” is presented. In Section V we describe the derivation
of a product with corresponding test cases from the FMT.
Additionally, we discuss an approach of testing SPLs using
FMT. The conclusion summarizes the advantages of such an
integrated feature and parameter equivalence class modeling
approach and lists a number of ongoing and future research
activities.
      </p>
      <p>II. FUNDAMENTALS</p>
      <p>The contribution of this paper is to generate variants and
corresponding test cases on the basis of one representation of
the SPL.</p>
      <sec id="sec-1-1">
        <title>A. Running Example</title>
        <p>Our running example is a very simple subset of
hardware and software components of the recently released Opel
Insignia. We restrain ourselves to four sensors, two actors
(engines), and one software component. The sensors are rain
light sensor (RLS), turn indicator sensor (TIS), steering angle
sensor (SAS), and the vehicle speed sensor (VSS). The RLS
detects rain and the TIS indicates the driver’s choice to turn
left or right. SAS senses the steering angle and the VSS
senses the speed of the car. Two different types of engines
serve as hardware features: a 1.6 liter and a 2.0 liter turbo
engine. Additionally, we use one feature of the (Adaptive
Forward Lighting) AFL+ technology. The bending light is a
functionality which belongs to AFL+ and realizes an adaptive
curve light. All parameters presented in this paper are provided
by the Adam Opel GmbH. We use the running example to
exemplify the differences and commonalties between FMs and
CTs and to motivate our approach of integrating both to a
Feature Model for Testing (FMT).</p>
      </sec>
      <sec id="sec-1-2">
        <title>B. Product Lines and Feature Models</title>
        <p>
          SPLs provide a high level reuse of software in a
specific problem domain [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. FMs are frequently used
to describe an explicit representation of the commonalities
and variabilities in an SPL. FMs consist of features each
representing “a system property that is relevant to some
stakeholder” as defined in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. One major advantage of using
FMs to model SPLs is that they offer a very intuitive way
to represent commonalities and variabilities. However, FMs
by themselves are insufficient for a complete modeling of
an SPL. Usually FMs are complemented by development
artifacts such as UML diagrams or code fragments that are
traced to the corresponding features. An FM provides a
treelike structure and incorporates different node notations and
cross-tree-constraints. The first feature model was introduced
by Kang et al. in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] as part of FODA, in 1990. In the
FM of FODA node notations like, mandatory, optional, and
alternative features can be modeled. It is also possible to use
require and exclude constraints between features, which are
described textually. Since the introduction of FODA, further
extensions of FMs were introduced to improve precision
and expressiveness, including amongst others cardinalities,
probabilities, and weighting. We can employ cardinalities to
formulate the different notations of features and groups of
features [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. The probabilities can be based on empirical
data and/or system specifications and are used to state that
a certain feature is more likely than another one [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Weights
can be used to represent cost factors of features to help the
engineers to build products appropriate for a certain budget
[
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Czarnecki et al. summarize some existing extensions
of the FODA FM [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. However, our FM is very similar to
the original FODA with additional cardinality extension [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
Table I depicts the used notation. We do not want to discuss
Graphical Notation
        </p>
        <p>Single features
edge with filled circle
edge with unfilled circle</p>
        <p>Group of features</p>
        <p>filled circles
and connected edges</p>
        <p>unfilled circles
and connected edges</p>
        <p>Cardinality</p>
        <p>
          Formal description
1..1
0..1
1..n
n..m
every FODA extension because our approach is not limited to
a certain FM. We also aim e.g. to support the Orthogonal
Variability Model (OVM) proposed by Pohl et al. [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. A
detailed description of the relation between FMs and OVMs is
given in [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. We, therefore, assume that our unified approach
using FMs may also use the OVM approach.
        </p>
        <p>The FM in Fig. 1 shows an excerpt of the Opel Insignia FM.
All dependencies and constraints within the FM have to be
taken into account when deriving a product.</p>
      </sec>
      <sec id="sec-1-3">
        <title>C. Software Testing with Classification Trees</title>
        <p>
          After extracting a variant from the FM, suitable test cases
need to be built. For this purpose the CT-method was
introduced by Grochtmann and Grimm [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. It provides an
approach to black box testing. Test cases can be extracted
by defining rules for valid input combinations. A CT consists
of classifications (boxes with bold lines), compositions (boxes
with thin lines), and equivalence classes (values in brackets).
Each equivalence class represents a disjoint subset of
parameter values for a classification, while the composition splits
complex input parameters into a number of subcomponents.
To generate test cases from a specification using CTs the
following procedure needs to be applied:
1) evaluate the specification and identify all classifications
with the corresponding equivalence classes
2) build the CT
3) fill the test case table with respect to the CT using
parameter value combination heuristics
4) extract all possible test cases from the test case table by
identifying valid combinations of equivalence classes
omitting illegitimate samples out of the test set
Fig. 2 depicts a variant of the Insignia SPL and a
corresponding CT to test this instance. Sensors is a composition, while
turn indicator is a classification of the equivalence classes
representing test values. The model is extracted from the
specification of the product instance. Test cases can be derived
easily by choosing a valid combination of equivalence classes.
This model can e.g. be used to check the output characteristics
of the AFL+ dependent upon the sensor intervals. The range of
the intervals is defined by the designer. It depends on suitable
test scenarios chosen by the designer or extracted from the
specification. A test case table is built, which incorporates all
relevant test cases in an abstract way.
        </p>
        <p>In Fig. 2 three test cases for the CT of the running example
are given. Each test case consists of the equivalence classes
marked by the black dots in a horizontal line.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>III. RELATED WORK In this section we focus on SPL-testing and the role FMs play in that context. We also present research activities related to software testing using the CT-method to generate test cases.</title>
      <sec id="sec-2-1">
        <title>A. Testing SPLs</title>
        <p>
          Miscellaneous approaches exist dedicated to SPL testing.
Although there are no real FM-based testing approaches, many
test methods partially use the FM of the SPL under test. A
summary of methods is given in [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]. The authors distinguish
between the following approaches to integrate testing into the
development process of SPLs:
Product-by-product testing: In the majority of cases, each
instance of an SPL is tested individually. This method is
called product-by-product testing. Each product instance may
be tested using the CT approach. However, this method is very
exhaustive and normally not practicable. For instance, in the
automotive field a single ECU like the engine control unit may
be instantiated in at least several 10.000 different ways. Since
a car may consist of up to 50 ECUs this results in millions of
different configurations. An individual test of all configurations
is feasible neither at the end of the assembly line nor during
the development process. One method to improve
product-byproduct testing is to identify a minimal set of products which
is representative for all other products. However, finding a
minimal test set is an NP-complete problem [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]. Different
heuristics are used to approximate a minimal test set. A very
promising procedure is mentioned in [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]. The author uses a
simplified version of the OVM approach. Members for the
representative set of products are selected on the basis of
requirements. That means that certain products are chosen so
that all requirements are verified at least once. Optimization
problems are formulated to produce a minimal test set.
In [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], an approach with a motivation similar to [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] was
published. It uses dependencies derived from architecture and
implementation to extend the FM of the SPL under test.
Subsequently, pairwise testing that considers these dependencies
is used to generate a representative set of products.
In both approaches the generation of test cases with
appropriate input parameter values is out of scope.
        </p>
        <p>
          Incremental Testing: In this approach, the first product
derived from the SPL is tested individually, for instance by using
the CT-methodology. With respect to the commonalities
between the different products, the following products are tested
using regression testing techniques [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. The challenging part
of this approach is to identify those parts of a product which
stay unchanged and those which vary. The question arises
if only the modified and added parts have to be tested. In
addition, one has to find out if the modified parts can be
tested individually or if some of them have to be tested in
combination with unchanged components.
        </p>
        <p>
          Reusable assets: The goal is to create reusable test assets.
To ensure reusability, these assets are created during domain
engineering. For each product these assets are customized
during application engineering. Pohl et al. apply model based
testing techniques. The authors use activity diagrams which
are developed in domain engineering, based on requirements,
and customized during application engineering to derive test
cases. The so called ScenTED approach focuses on the reuse
of test cases [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ], [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ], [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. It uses substitution in order
to derive configuration specific test cases. This is a very
promising approach which we will take into account in our
future work. However, test parametrization and the selection
of proper values is still an open problem.
        </p>
        <p>
          Division of responsibility: In [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ], this method is described
according to the levels of the development process, for instance
the V-model. For example, unit testing can be executed during
domain engineering and the other levels of the V-model could
be executed in the application engineering phase.
All approaches confirm that testing is very challenging in
SPL-engineering due to the high level of variability. However,
the fact that the parametrization within an SPL leads to an
additional degree of variability is often neglected as well as
the fact that the borderlines between parameters that model
variability at design time and parameters that are instantiated
at runtime are often moving.
        </p>
        <p>
          Furthermore, we are not aware of any SPL testing approach
that combines SPL variant selection strategies with
parameter value selection strategies as supported by CT. The tool
pure::variants [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] offers e.g. the option to store parameter
information in attributes of features, but gives no support
for the definition of equivalence classes etc. The approach
published in [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] is as far as we know the most similar
SPL testing method to FMT. It uses one decision model to
represent the variability of an SPL as well as to document input
parameters of the regarded system. An integrated SPL variant
and parameter value selection process is presented with rather
promising evaluation results. Compared to FMT presented here
the decision model is considerably less expressive and the
introduced selection process is considerably less expressive
than the algorithms for SPLs and the heuristics developed for
CT-based black box testing purposes.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Black-Box Testing Products with CT</title>
        <p>
          CTs are a widely used technique for test case generation.
There are many publications related to this topic. A CT can
be used to test a single product instance derived from the
FM. The resulting product instance has specific actors and
sensors, which interact complying to the specification. A CT
splits the input domain of the sensors into relevant equivalence
classes. These classes can be used to test an actor that is
part of the product instance. Several approaches to improve
and extend CTs like the Classification Hierarchy Table [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ],
the Classification Tree Transformer [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ], Class Graphs [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ],
adding attributes [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], and introducing a time line [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] have
been discussed. There are tools like the Classification Tree
Editor for Embedded Systems (CTE/ES) that support the
designer when trying to build a CT and its test table. The
CTE/ES provides a graphical user interface that enables the
designer to build a CT and the corresponding combination
table.
        </p>
        <p>All CT-based testing approaches we are aware of share the
drawback that they deal with single product instances only
and thus are only compatible with a product-by-product SPL
testing approach.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>IV. UNIFIED APPROACH - FMT</title>
      <p>As introduced in the preceding sections FMs and CTs
have been used in software engineering for rather different
purposes until now. An in-depth comparison of the modeling
language constructs of FMs and CTs in the sequel reveals
that both modeling approaches share a majority of their
concepts. Therefore, this section is structured as follows: the
first subsection starts with the in-depth comparison of FM
and CT modeling constructs. Based on the results of this
comparison, the following subsection then selects a minimal
number of language constructs that correspond to a superset of
the concepts of both FM and CT. Finally, the last subsection
introduces a metamodel that captures the essential design of
the new integrated FMT modeling language from an abstract
syntax point of view.</p>
      <sec id="sec-3-1">
        <title>A. FMT Language Constructs</title>
        <p>In this section we develop language constructs which
present a minimal list of abstract language concepts that is
a superset of the concepts of FM and CT. Table II lists the
constructs of FMs and CTs and the corresponding constructs
for the unified approach: FMT. First, we have to define which
kinds of nodes the FMT needs to support. CTs distinguish
between compositions, classification, and equivalence classes.
Composition and classification (line 1 in Table II) in CTs
are nodes with child elements and equivalence classes (line
3 in Table II) are leafs in a CT. In FMs only compound
features contain child elements and leafs are always features.
To integrate CTs and FMs with regard to the different kinds
of nodes, we need to examine the differences. Compositions
are always mandatory and classifications are always optional
nodes. As a consequence, we can use the compound feature
known from FMs, and use cardinalities to state that the
compound feature is either optional (0..1) or mandatory (1..1).
Therefore, we adopt the compound feature for the FMT
approach. The leafs of CTs and FMs differ obviously. On the
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.</p>
        <p>Feature Model
compound
feature
Feature
none
mandatory
feature (1..1)</p>
        <p>optional
feature (0..1)
(1..n)
features
(n..m)
features
cross-treeconstraints
feature
attributes
feature
types</p>
        <p>Classification Tree
composition,
classification</p>
        <p>none
equivalence</p>
        <p>class
composition
classification
equivalence
class
none
only between
equivalence classes
none
none
one hand, an equivalence class represents a value or range
of values of a parameter necessary for testing. On the other
hand a feature in FMs can be any feature or property of
an SPL. To realize an integration we need a leaf, which is
capable to represent both information: a feature in general and
a representation of values of parameters. Another difference,
which we have to take into account for the integration, are the
cardinalities. In FMs features and compound features may have
four different types of cardinalities to describe commonalities
and variabilities. In CTs three of them are present: composition
(1..1), classification (0..1), and equivalence classes (1..n). We
adopt the missing cardinality of FM to ensure that the FMT is
as expressive as the original FM. Furthermore, all four types
of cardinalities may be used on all levels of an FMT tree in
contrast to the much more restrictive approach of CT.</p>
        <p>In addition, we allow cross-tree-constraints between all
nodes of the FMT (line 8 in Table II). Finally, we adopt the
node attributes and node types from feature modeling (line 9
and 10 in Table II).</p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Concept</title>
        <p>We now describe the integration of FM and CT by means
of a metamodel depicted in Fig. 3. We developed this class
diagram on the basis of Table II. Please note that the depicted
class diagram is a small extract of the complete FMT
metamodel that illustrates the concept of the unified approach. It
does e.g. not contain any information concerning the test case
generation. The characteristics of the nodes of the FMT
approach are described using the following classes: Compound
Feature, Feature, and Atomic Feature. The last one
can either be a feature representing its property in form of
a literal or an interval. This is realized using the two classes
Literal and Interval. These classes may represent:
a value or a range of values of test parameters as known
from equivalence classes in CTs
a value or a range of values of parameters needed for
product instantiation purposes
the labels of features known from FMs.
A node in the FMT can only be a Compound Feature or
a leaf node (Literal or Interval), because the classes
Feature and Atomic Feature are abstract. Compound
Feature, Literal, and Interval inherit properties from
Feature. All nodes in the FMT may have a Type and an
arbitrary number of Attributes. In a Type the information
of the data type of a feature is stored if existent. This is
important, for instance, to distinguish between parameters of
an integer or real data type. Attributes can store any
information of the node. To obtain sufficient information to
properly plan the test effort it is for example important for
vehicle OEMs to embed information about realizing a feature
in hardware or software. Additionally, we can apply constraints
between Features and, therefore, also between Compound
Features and Atomic Features. According to FMs we
allow Require and Exclude constraints between all nodes.
Since we want to adopt the cardinalities, describing the relation
of features or groups of features to their parent node, we model
a relation between Features and Compound Features
by means of the class Dependency, which contains the
cardinality constraints as attributes (minimum and maximum
cardinality).</p>
        <p>Fig. 4 depicts an object diagram that shows how dependencies
and cardinalities are used to distinguish between the four
different categories of subfeatures of Table II. A Feature is
always connected to its Compound Feature by a
dependency. Therefore, Dependencies with different cardinalities
can be placed beneath a Compound Feature.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>V. APPLICATION</title>
      <p>In this section we briefly describe the application of our
FMT approach by generating test cases for our running
example. Additionally, we discuss a tool, which is under
development in our research groups.</p>
      <sec id="sec-4-1">
        <title>A. Generating a test case</title>
        <p>We demonstrate the ability to derive products and test
cases on the basis of the FMT using our running example
depicted in Fig. 5. We now derive two different products
and present the handling of the parameters. The two products
differ because they use different types of engines which results
in different configurations. The 2.0 Turbo ECOTEC engine
allows a vehicle maximum speed of 240km/h and, therefore,
needs to be tested above 200km/h. The 1.6 ECOTEC engine
is limited to 192km/h and does not require the test instance
for vehicle speeds above 200km/h. Therefore, when testing the
product containing the 1.6 ECOTEC engine, the equivalence
class representing a speed range between 201 and 250 km/h
has to be disregarded.</p>
        <p>For both instances we derived some example test cases, which
was done according to the well-known procedure described in
section II-C. In the following we will describe the FMT in
Fig. 5 which integrates the information of the FM of Fig.
1 and the CT of Fig. 2. Leaf nodes of the FMT, therefore,
either represent basic features of the Opel Insignia SPL or
equivalence classes of (runtime) parameter values. All
nonleaf nodes of the FMT are inherited from the FM of Fig. 1,
whereas leaf nodes are inherited from Fig. 1 and 2. The nodes
of the new FMT have to be interpreted as follows:
All nodes below the sensors node represent optional
or mandatory Opel Insignia sensors together with their
output parameter value definitions which are used as input
parameters for control function test cases.</p>
        <p>All nodes below the actors node represent available actors
(actuators) for the Opel Insignia such as different types
of engines. Input parameters that control the behavior of
these actors have been omitted due to lack of space. These
missing parameters are output parameters of to be tested
control functions. Specifications of their values can be
used as oracles during the execution of test cases.
A node like bending light represents a group of control
functions that shall be tested. Again due to lack of space
we do assume that bending light consists of a single
function only which consumes output values of a subset
of all sensors and produces input values for a subset of
all actors defined in Fig. 6.</p>
        <p>Node attributes (which are not visualized in Fig. 5) are used
to distinguish these different categories of nodes of FMTs as
well as for other purposes like the definition of additional node
selection constraints (cf. metamodel of Fig. 3). Furthermore,
Fig. 5 shows that the optional bending light functionality still
requires the optional rain light sensor (as well as all other
mandatory sensors of our SPL). The fact that the bending
light control function also requires input values from the
three other mandatory sensors is not visualized in Fig. 5.
A more realistic FMT splits the bending light functionality
into a number of subfunctionalities such as curve light, rain
light, city light, or highway light which have to be tested
separately. As a consequence we have to distinguish between
features (functions, parameters, sensors, actors) that are part
of a regarded product instance, but irrelevant for a specific test
case, and features that are directly involved in a specific test
case. The test case specifications in the lower part of Fig. 5
use black and white shapes for these two different purposes.</p>
        <p>The selection of a specific variant and associated test cases
is specified in a style adopted from CTs (due to lack of space
the FMT metamodel of Fig. 3 does not cover these elements).
Different shapes on vertical lines are used to distinguish
between the following three cases, when a certain feature or
parameter is selected:</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>1) square: selection at design time</title>
      <p>2) circle: selection at installation time (flash time)
3) triangle: selection at runtime</p>
      <p>The first two options correspond to the selection of a certain
variant in an FM, whereas the third option corresponds to the
selection of test cases with parameter values in a CT.</p>
      <p>Regarding the bottom part of Fig. 5 we can see that the type
of engine is of course selected at design time. The bending
light functionality can be added or removed by firmware
updates as long as the optional rain light sensor is present.
The fact that all presented variants with their associated test
cases do contain the optional rain light sensor is implicitly
represented by the fact that all test cases possess a parameter
value definition for this type of sensor (Wet or Dry). Black
triangles represent Wet and Dry values that are actually used
in a specific test case, whereas white triangles represent the
fact that the rain light sensor is present and computes output
values that are not needed as input for the just regarded test
cases. Finally, Fig. 5 shows that four of the six depicted test
cases are related to the functionality of the bending light (black
bending light circles). In general, the distinction between black
and white shapes related to other nodes of the FMT reflect the
information which features and parameter values are relevant
for which test case. It consists of nodes describing the product
line and nodes for the test cases. Test case values are depicted
in brackets.</p>
      <p>Fig. 6. Using FMT for SPL testing</p>
      <sec id="sec-5-1">
        <title>B. Testing SPLs using FMT</title>
        <p>
          In this subsection we describe in more detail how the FMT
approach is used for SPL testing purposes, i.e. we sketch
a methodology how to generate the bottom part of Fig. 5
automatically. For this purpose we describe the current state
of development of our MoSo-PoLiTe project, which realizes
the test methodology described in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], but use FMT instead
of FM. The generation of a representative set of products is
subdivided into three steps [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
        </p>
        <p>
          1) Adding dependencies derived from system architecture
and code as additional edges in the FMT.
2) Simplification of the FMT such that the resulting FMT
uses a minimal set of modeling concepts.
3) Integrated selection of variants and runtime parameter
values using the pairwise combination approach of [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
Fig. 6 depicts the individual steps. We refer to [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] for further
details. To use the FMT approach we are currently developing
an FMT tool suite using MOFLON and GEF [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. MOFLON
is a meta-CASE tool for rapid development of CASE tools
and tool adapters [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] developed at the Technische
Universita¨t Darmstadt. MOFLON supports model analysis, model
transformation, and model integration for standard modeling
languages like UML or domain-specific modeling languages.
The abstract syntax of the new FMT modeling language as
well as its static semantics rules are described using the
OMG metamodeling approach supported by MOFLON, i.e. a
combination of MOF 2.0 and OCL 2.0. Using this description
as input we can generate an FMT model repository
implementation together with all specified static semantics rules
in Java. Furthermore, a generic text-oriented user interface
for the definition of FMT instances is generated, too. The
implementation of the user interface of a visual FMT editor
on top of GEF is ongoing work. Model transformation rules
(graph transformations) can be used to implement
automatically executable FMT transformations. The last processing
step of Fig. 6 has been implemented by modifying an existing
Java implementation of a pairwise testing tool. The modified
implementation in addition takes all kinds of dependencies
between FMT nodes into account. The incorporation of
CTparameter value selection heuristics dealing e.g. with illegal
or stress parameter equivalence classes (cf. Section II-C)
is subject of ongoing research activities. The same is true
for the first processing step depicted in Fig. 6. Right now
dependencies that capture the fact that certain features or
parameters interact from an implementation point of view
have to be added manually. The adaption of ideas how to
automatically derive this information from SPL architectures
or code is also subject to future research activities.
According to the approach described in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] we use the
pairwise combination method to generate a representative set
of products. At this point the major advantages of the FMT
approach comes into play. We can generate the test cases
for the selected products semi-automatically as described in
the previous section. To summarize, we benefit from several
advantages using FMT instead of FM. The FMT is more
precise than FM when it comes to parametrization and for each
product of the representative set we can derive the
corresponding test cases semi-automatically. Likewise, the FMT describes
parameters explicitly, therefore, we can consider dependencies
which only occur between certain values of parameters.
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>VI. CONCLUSION AND FUTURE WORK</title>
      <p>Within this paper we have presented a new approach how
to integrate SPL engineering with feature models (FMs) and
black-box testing of system functions with CTs. Our
motivation for this line of research is based on the fact that
both FM- and CT-based methods are, e.g., well established
in the automotive industry for embedded software system
development purposes. On the one hand FMs are a suitable
modeling method to describe commonalities and variabilities
of an SPL. CTs, on the other hand, support the generation of
test cases, using equivalence classes of parameter values of a
regarded system function. We are not aware of any integrated
approach that combines both methods for the generation of
variants as test candidates and the associated test cases. Today,
FM-based methods are first used to select one variant after
the other; then for each of these variants a separate CT has
to be defined which is then used to guide the related test case
selection process. The integration of FM and CT in the form of
the presented new FMT (Feature Model for Testing) method
seems to be the perfect symbiosis of two very promising
and widely used techniques. The key advantages are: (1) we
use a single model for SPLs and test case generation, (2)
approaches known from FMs and CTs can still be applied,
and (3) generation algorithms of variants and test cases can
be combined. We are currently working on different projects
using FMT for SPL testing purposes including the BMBF
project feasiPLe. Ongoing and future research activities will
address the following problems:
Checking the consistency of the FMT with respect to
an additionally available specification of the behavior of
the studied system. The FMT needs to incorporate the
complete functionality described in the specification. This
must be done before generating test cases.</p>
      <p>
        In embedded systems, our main application area,
realtime constraints play an important role. Furthermore, test
cases often have to be executed in a specified order and
continuous parameter values reflecting physical properties
of a controlled system and its environment have to be
synthesized from sequences of selected discrete
parameter values using well-known interpolation methods.
Defining a measure of completeness for the generated test
scenarios with respect to an additionally available system
behavior specification is challenging, too [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
Completeness checkers are useful to evaluate the generated test
cases and to find gaps and corner cases.
      </p>
      <p>The nodes of the FMT have to be extended to describe the
cost of creating configurations and requirements priority
which is essential for complex SPLs in the automotive
sector.</p>
      <p>We are currently applying our approach to several SPL
scenarios. These are real world examples and FMTs
generated randomly.</p>
      <p>
        We apply the pairwise testing approach [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] to generate a
representative set of test cases and measure the coverage
using appropriate and well known coverage metrics.
We focus on model checking techniques to address some of the
problems stated above. Hence, another field of our research is
the use of model checkers for test case generation and FMT
validation. For this purpose, we need to develop a tool that
is able to translate the FMT and the resulting test cases into
boolean formulas, which can be evaluated by a model checker.
Methodologies to translate an FM into a boolean formula have
already been introduced in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>Finally, we have to address the problem that realistic complete
FMT models cannot be displayed directly as depicted in
this paper. Various methods have to be developed how to
collapse/hide irrelevant substructures efficiently.</p>
    </sec>
    <sec id="sec-7">
      <title>ACKNOWLEDGMENT</title>
      <p>This work was partially funded by the feasiPLe project,
“Feature-driven, aspect-oriented and model-driven Software
Product Line Development”, Federal Ministry of Education
and Research (BMBF), Germany.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Alekseev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tiede</surname>
          </string-name>
          , and P. Tollku¨hn, “
          <article-title>Systematic approach for using the classification tree method for testing complex software-systems,”</article-title>
          <source>in SE'07: Proceedings of the 25th conference on IASTED. Anaheim</source>
          , CA, USA: ACTA Press,
          <year>2007</year>
          , pp.
          <fpage>261</fpage>
          -
          <lpage>266</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Amelunxen</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Ko¨nigs,
          <string-name>
            <surname>T.</surname>
          </string-name>
          <article-title>Ro¨tschke, and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Schu¨rr, “
          <article-title>Adapting FUJABA for Building a Meta Modelling Framework,”</article-title>
          <source>in Proc. 1st International Fujaba Days</source>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          and
          <string-name>
            <surname>A</surname>
          </string-name>
          . Zu¨ndorf, Eds., vol.
          <source>tr-ri04-247</source>
          ,
          <year>10 2003</year>
          , pp.
          <fpage>29</fpage>
          -
          <lpage>34</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>T. Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. L.</given-names>
            <surname>Poon</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T. H.</given-names>
            <surname>Tse</surname>
          </string-name>
          , “
          <article-title>A new restructuring algorithm for the classification-tree method,” in STEP '99</article-title>
          . Washington, DC, USA: IEEE Computer Society,
          <year>1999</year>
          , pp.
          <fpage>105</fpage>
          -
          <lpage>114</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Northrop</surname>
          </string-name>
          ,
          <article-title>Software product lines: practices and patterns</article-title>
          . Boston, MA, USA:
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc.,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Conrad</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Krupp</surname>
          </string-name>
          , “
          <article-title>An extension of the classification-tree method for embedded systems for the description of events</article-title>
          .
          <source>” Electr. Notes Theor. Comput. Sci.</source>
          , vol.
          <volume>164</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>11</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <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. Eisenecker, “
          <article-title>Staged configuration through specialization and multilevel configuration of feature models</article-title>
          ,
          <source>” Software Process: Improvement and Practice</source>
          , vol.
          <volume>10</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>143</fpage>
          -
          <lpage>169</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7] --, “
          <article-title>Formalizing cardinality-based feature models and their specialization</article-title>
          ,
          <source>” in Software Process: Improvement and Practice</source>
          ,
          <year>2005</year>
          , pp.
          <fpage>7</fpage>
          -
          <lpage>29</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>She</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wasowski</surname>
          </string-name>
          , “
          <article-title>Sample spaces and feature models: There and back again,” in SPLC '08</article-title>
          . Washington, DC, USA: IEEE Computer Society,
          <year>2008</year>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>31</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Wasowski</surname>
          </string-name>
          , “
          <article-title>Feature diagrams and logics: There and back again,” in SPLC '07</article-title>
          . Washington, DC, USA: IEEE Computer Society,
          <year>2007</year>
          , pp.
          <fpage>23</fpage>
          -
          <lpage>34</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>G. E. F. (GEF</surname>
          </string-name>
          ). [Online]. Available: http://www.eclipse.org/gef/
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Grochtmann</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Grimm</surname>
          </string-name>
          , “
          <article-title>Classification trees for partition testing</article-title>
          ,
          <source>” Software Testing, Verification and Reliability</source>
          , vol.
          <year>1993</year>
          , pp.
          <fpage>63</fpage>
          -
          <lpage>82</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Janota</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Kiniry</surname>
          </string-name>
          , “
          <article-title>Reasoning about feature models in higherorder logic,” in SPLC '07</article-title>
          . Washington, DC, USA: IEEE Computer Society,
          <year>2007</year>
          , pp.
          <fpage>13</fpage>
          -
          <lpage>22</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>B. D. Jules</given-names>
            <surname>White</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , “
          <article-title>Selecting highly optimal architectural feature sets with filtered cartesian flattening</article-title>
          ,
          <source>” Journal of Systems</source>
          and Software to appear.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <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>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Peterson</surname>
          </string-name>
          , “
          <article-title>Feature-oriented domain analysis (foda) feasibility study</article-title>
          ,” CarnegieMellon University Software Engineering Institute, Tech. Rep.,
          <year>November 1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>K. R. P. H.</given-names>
            <surname>Leung</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Wong</surname>
          </string-name>
          , “
          <article-title>Towards a more efficient way of generating test cases: Class graphs</article-title>
          ,”
          <source>in APAQS '00: Proceedings of the The First Asia-Pacific Conference on Quality Software (APAQS'00)</source>
          . Washington, DC, USA: IEEE Computer Society,
          <year>2000</year>
          , pp.
          <fpage>285</fpage>
          -
          <lpage>293</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Lu</surname>
          </string-name>
          <article-title>¨tzkendorf and</article-title>
          K. Bothe, “Attributierte Klassifikationsba¨ume zur Testdatenbestimmung,” Softwaretechnik-Trends, vol.
          <volume>23</volume>
          , no.
          <issue>1</issue>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>J. D. McGregor</surname>
          </string-name>
          , “
          <article-title>Testing a software product line</article-title>
          ,
          <source>” Tech. Rep</source>
          . CMU/SEI2001-TR-
          <volume>022</volume>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>A.</given-names>
            <surname>Metzger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Heymans</surname>
          </string-name>
          , P.-Y. Schobbens, and G. Saval, “
          <article-title>Disambiguating the documentation of variability in software product lines: A separation of concerns, formalization and automated analysis</article-title>
          ,” in RE '
          <volume>07</volume>
          . 15th IEEE International,
          <year>2007</year>
          , pp.
          <fpage>243</fpage>
          -
          <lpage>253</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>E. M.</given-names>
            <surname>Olimpiew</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Gomaa</surname>
          </string-name>
          , “
          <article-title>Model-based testing for applications derived from software product lines,” in A-MOST '05</article-title>
          . New York, NY, USA: ACM,
          <year>2005</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Oster</surname>
          </string-name>
          and
          <string-name>
            <surname>A</surname>
          </string-name>
          . Schu¨rr, “
          <article-title>Architekturgetriebenes Pairwise-Testing fu</article-title>
          ¨r Software-Produktlinien,” in Workshop SE '09: Produkt-Variabilita¨
          <article-title>t im gesamten Lebenszyklus</article-title>
          ,
          <year>March 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <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.</surname>
          </string-name>
          v. d. Linden, Software Product Line Engineering: Foundations, Principles and Techniques. Secaucus, NJ, USA: Springer-Verlag New York, Inc.,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Metzger</surname>
          </string-name>
          , “
          <article-title>Software product line testing,” Commun</article-title>
          . ACM, vol.
          <volume>49</volume>
          , no.
          <issue>12</issue>
          , pp.
          <fpage>78</fpage>
          -
          <lpage>81</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>[23] pure::systems. [Online]. Available: http://www.pure-systems.com</mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>S.</given-names>
            <surname>Reis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Metzger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          , “
          <article-title>Integration testing in software product line engineering: A model-based technique</article-title>
          ,” in FASE,
          <year>2007</year>
          , pp.
          <fpage>321</fpage>
          -
          <lpage>335</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A.</given-names>
            <surname>Reuys</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Kamsties</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Reis</surname>
          </string-name>
          , “
          <article-title>Model-based system testing of software product families</article-title>
          ,” in CAiSE,
          <year>2005</year>
          , pp.
          <fpage>519</fpage>
          -
          <lpage>534</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>K.</given-names>
            <surname>Scheidemann</surname>
          </string-name>
          , “
          <article-title>Verifying families of system configurations</article-title>
          ,
          <source>” Doctoral Thesis</source>
          , vol.
          <source>TU Munich</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>I. Stu</surname>
          </string-name>
          ¨rmer, H. Do¨rr, H. Giese,
          <string-name>
            <given-names>U.</given-names>
            <surname>Kelter</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Schu¨rr, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zu</surname>
          </string-name>
          <article-title>¨ndorf, “Das MATE Projekt visuelle Spezifikation von MATLAB Simulink/Stateflow Analysen und Transformationen,” Dagstuhl Seminar Modellbasierte Entwicklung eingebetteter Systeme</article-title>
          ,
          <year>Januar 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>A.</given-names>
            <surname>Tevanlinna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Taina</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Kauppinen</surname>
          </string-name>
          , “
          <article-title>Product family testing: a survey,” ACM SIGSOFT Software Engineering Notes</article-title>
          ., vol.
          <volume>29</volume>
          , pp.
          <fpage>12</fpage>
          -
          <lpage>12</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>