<!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>Monte Carlo Simulations for Variability Analyses in Highly Configurable Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jose-Miguel Horcas</string-name>
          <email>jhorcas@us.es</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Germa´ n Ma´ rquez</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jose´ A. Galindo</string-name>
          <email>jagalindo@us.es</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Benavides</string-name>
          <email>benavides@us.es</email>
        </contrib>
      </contrib-group>
      <abstract>
        <p>Highly configurable systems expose numerous variation points to be configured by the stakeholders. Deciding which variant to select for a given variation point is hard to know a priori because each variant affects the configuration properties (e.g., performance, efficiency, fault tolerance) differently, and evaluating all configurations is practically infeasible. This paper introduces an approach based on Monte Carlo simulations to analyze the influence of each feature selection when configuring a variability model. We split the whole configuration space into step-wise decisions driven by the variation points that a user normally needs to face/decide during the configuration process. Monte Carlo simulations approximate the influence of each feature variant evaluating as few configurations as possible. Our solution complements existing sampling techniques to analyze colossal configuration spaces improving the understanding of the influence of each feature selection. It can be part of a decisionmaking tool to assist the user by means of recommendation systems and interactive configuration processes.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        A Software Product Line (SPL) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] defines a set of common and
variable characteristics that can be customized according to the specific
needs of the stakeholders in a particular application. To represent
and model those commonalities and variabilities, feature models [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]
stand out as the de-facto standard in SPL. The automated analysis of
feature models (AAFM) [
        <xref ref-type="bibr" rid="ref11 ref6">6, 11</xref>
        ] is challenging due to the large
number of variants and configurations.
      </p>
      <p>A feature model represents the variation points of an application
and its possible variants in terms of features, which can be optional,
mandatory, required or excluded by other features. For example, the
persistence feature is a recurrent variation point in many systems
requiring to select a specific database variant (e.g., SQL, MongoDB)
to be used in the target application. Deciding which variant to select
depends on several factors such as the user’s requirements,
performance, energy efficiency, or fault tolerance of the complete
configuration. The analysis of how each variant influences the application
properties (e.g., performance, efficiency, fault tolerance) is hard to
know because of the high number of possible alternatives for a
specific feature, logical constraints between the features, and
interactions among them. Evaluating all configurations for highly
configurable systems is practically infeasible because the number of
configurations grows exponentially in terms of the number of features.</p>
      <p>
        Configuration sampling [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ] is a technique used to avoid
exhaustive analysis, providing a subset of all valid configurations. Several
sampling strategies have been proposed in the literature about SPLs
and configurable systems [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ]: random sampling [
        <xref ref-type="bibr" rid="ref18 ref30 ref33">18, 30, 33</xref>
        ] to
select configurations uniformly; coverage-based sampling [
        <xref ref-type="bibr" rid="ref10 ref34 ref9">9, 10, 34</xref>
        ]
to select configurations that cover all combinations of t selected
features (e.g., pair-wise sampling for t = 2); or distance-based
sampling [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] to select configurations according to a given probability
distribution and a distance metric; among other techniques reviewed
in [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ]. Despite the fact that these techniques have shown great
results in SPL testing [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and learning configuration spaces [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ],
sampling large-scale SPLs poses a challenge [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ]. Existing techniques
present scalability issues as they tend to run out of memory, do not
terminate, or produce samples which are too large to be tested [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ].
In addition, analyzing and making decisions from a sample of
configurations that considers the whole configuration space can be difficult
for the user that configures a product. For instance, the performance
or efficiency of the database variant (e.g., SQL) used in a system’s
configuration is not influenced, in most cases, by the back end
technology (e.g., Gradle, Maven) used to build the application. Thus,
analyzing the feature interactions (e.g., by using coverage-based
sampling) between both variation points may be useless for the user
configuring the product. Moreover, from the analysis of a particular
complete configuration, it is challenging to comprehend a priori the
influence of each feature variant in such configuration and in the rest
of configurations of the SPL [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ].
      </p>
      <p>
        In this paper, we propose an approach based on Monte Carlo
simulations to analyze the influence of the variation points and each of
their variants in the configuration properties (e.g., performance, fault
tolerance). Our approach relies on statistical analysis [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and
random sampling [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] to analyze large-scale configuration spaces
improving the understanding of the influence of each feature
selection. We split the whole configuration space into step-wise decisions
driven by the variation points that a user normally needs to face and
decide during the configuration process. Monte Carlo simulations
approximate the influence of each feature variant evaluating as few
configurations as possible. We demonstrate the applicability of our
approach with a large-scale real-world SPL: the JHipster Web
development stack [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], the configuration space of which has been
exhaustively evaluated in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] serving us as an appropriate candidate to
verify the results of the Monte Carlo simulations. Our approach can
be part of a decision-making tool to assist the user in the process of
configuring a feature model improving the recommendation systems
and interactive configuration processes of the current state-of-the-art.
      </p>
      <p>The paper is organized as follows. Section 2 motivates our
approach by discussing related work and its limitations. Section 3
describes our approach to analyze feature models using Monte Carlo
simulations. In Section 4, we apply our approach to the jHipster SPL.
Finally, Section 5 concludes the paper and presents future work.</p>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORK AND MOTIVATION</title>
      <p>This section reviews related work about product configuration of
feature models and evaluation of configurations. We also expose its
limitations and compare it with our approach.
2.1</p>
    </sec>
    <sec id="sec-3">
      <title>Product configuration of feature models</title>
      <p>
        Product configuration is a decision-making process involving
selecting a valid combination of features from a feature model [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ].
This process takes place during the application engineering phase
of an SPL where the stakeholder (the application engineer) elicits
the product’s requirements of a particular application and derives
a concrete product satisfying those requirements [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ]. There exist
many mechanisms to support the product configuration of large and
complex SPLs by means of recommender systems [
        <xref ref-type="bibr" rid="ref29 ref41">29, 41</xref>
        ],
interactive processes [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], automated propagation strategies [
        <xref ref-type="bibr" rid="ref2 ref46">2, 46</xref>
        ],
optimization of quality requirements [
        <xref ref-type="bibr" rid="ref15 ref22 ref26">15, 22, 26</xref>
        ], or visualization
techniques [
        <xref ref-type="bibr" rid="ref32 ref36">32, 36</xref>
        ]. These systems present a collection of heuristics to
prioritize choices and recommend candidate features to be
configured [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. They guide the users through the product configuration
using decision models [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], proposing a feature ranking approach to
support decision makers [
        <xref ref-type="bibr" rid="ref4 ref41 ref42">4, 41, 42</xref>
        ], predicting the configuration
likability based on users’ votes [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] or questionaries [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], or ordering
the selection of the features [
        <xref ref-type="bibr" rid="ref32 ref36 ref37">32, 36, 37</xref>
        ].
      </p>
      <p>
        Limitations. Automated configuration systems like those based
on propagation strategies [
        <xref ref-type="bibr" rid="ref29 ref46">29, 46</xref>
        ] or search-based optimization
techniques [
        <xref ref-type="bibr" rid="ref15 ref26">15, 26</xref>
        ] do not propose any mechanism to guide the users
choosing among the candidate features. Also, most of the
recommender systems that provide user assistance can be overwhelming to
users due to the amount and complexity of options presented by the
configurator [
        <xref ref-type="bibr" rid="ref12 ref28">12, 28</xref>
        ]. Moreover, interactive assistants [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] are
constantly asking the user to choose between two competing features,
even when the user is not interested in a particular decision. Finally,
without the user’s input, those algorithms usually make poor
decisions [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] because, they usually rely on historical data from previous
users’ configurations to make decisions [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
      </p>
      <p>Our approach. We propose to split the whole configuration space
into step-wise decisions driven by the variation points of the feature
model that require to make a choice (i.e., select a variant). So that,
the user can focus on a particular and concise decision at a
specific time. However, variation points of the applications usually have
dependencies between them, so the selection of a variant can affect
others variation points. To infer the influence of each feature
selection and assist the user when making a decision, we have to evaluate
the influence of each feature selection in the configuration
properties of interest such as performance, energy efficiency, or defects and
faults present in the configurations.
2.2</p>
    </sec>
    <sec id="sec-4">
      <title>Evaluation of configurations</title>
      <p>
        Evaluating all configurations to study the influence of each feature
in the configuration properties (e.g., performance) is not feasible for
large-scale feature models. Researchers often rely on configuration
sampling techniques [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ] to obtain a sample of configurations,
evaluate them and make predictions of the whole configuration space [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ].
Many sampling strategies have been proposed in the literature for
SPL configuration, most of them taking as input a feature model [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ].
Schaefer et al. [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ] review product sampling for SPL and provide a
classification of techniques. Most used sampling techniques include
random sampling [
        <xref ref-type="bibr" rid="ref18 ref30 ref33">18, 30, 33</xref>
        ] that aims to cover the configuration
space uniformly; solver-based sampling [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] that relies on SAT and
constraint solvers; feature coverage-based sampling [
        <xref ref-type="bibr" rid="ref10 ref34 ref9">9, 10, 34</xref>
        ] that
aims to optimize the sample with regards to a coverage criterion, as
for example the pair-wise sampling to consider every interaction
between two features; or distance-based sampling [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] that covers the
configuration space according to a given probability distribution and
a distance metric.
      </p>
      <p>
        Limitations. On the one hand, sampling techniques present
scalability issues when dealing with large-scale SPLs [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ]. They usually
run out of memory, take long execution times, or produce samples
which are too large to be analyzed. There even exist a specific
challenge to cope with those limitations [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ]. On the other hand,
analyzing and making decisions from a sample of configurations that
considers the whole configuration space is challenging [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]. For
example, from the analysis of a particular complete configuration
randomly obtained, it is difficult to comprehend a priori how each
feature variant influence the configuration properties. Moreover,
pairwise sampling [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] consider every two feature interactions in the
feature model, but not all interactions are of user’s interest when
configuring a product.
      </p>
      <p>
        Our approach. We propose to use Monte Carlo simulations [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]
to approximate the influence of each feature variant in the
configuration properties (e.g., performance) evaluating as few configurations
as possible. Monte Carlo simulations [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] is a randomness model
used to predict the probability of different outcomes in a process that
cannot easily be analyzed because of the intervention of complex
inter-related variables. The basis of Monte Carlo simulations involve
constantly repeating an experiment many times (e.g., a random
sampling in our case) to approximate the expected results (e.g., the
configuration properties) using the law of large numbers theorem [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
and other methods of statistical inference [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. As we split the
configuration space into individual variation points, a Monte Carlo
simulation in our approach will be a uniform random sampling
considering only the variants of a specific variation point. We use statistical
analysis of feature models [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] to determine the number of
simulations/evaluations to be performed for each feature variant. As results,
our approach provides an estimation of the influence of each feature
in the complete configuration to assist the user when configuring a
product.
      </p>
      <p>
        Monte Carlo simulations have been used in many real-world
problems with great success [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], including combinatorial
optimization [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ], constraint satisfaction problems (CSP) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and boolean
satisfiability (SAT) [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ], model checking [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], scheduling
problems [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], and feature selection problems [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Typical uses of Monte
Carlo simulations are (i) sampling to gather information about a
random object by observing many realizations of it (e.g., simulation of a
system’s behavior [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]); (ii) estimation of certain numerical
quantities (e.g., the expected throughput in an SPL [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]); and (iii)
optimization of complicated objective functions (e.g., to improve a
searchbased technique [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]).
3
      </p>
    </sec>
    <sec id="sec-5">
      <title>SIMULATION-BASED ANALYSIS OF</title>
    </sec>
    <sec id="sec-6">
      <title>FEATURE MODELS</title>
      <p>Figure 1 overviews our approach based on Monte Carlo simulations
to analyze the influence of each feature selection when configuring a
Feature model
variation</p>
      <p>
        point
(decision)
#configs
%configs
#configs
%configs
variants (choices)
product distribution
%
%
feature model. Our approach is divided in three steps detailed in the
following subsections:
1. Identification of variation points and variants. To overcome the
scalability issues [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ] discussed in the previous section, we split
the whole configuration space into step-wise decisions driven by
the variation points of the feature model that require to make a
choice (i.e., select a variant). So that, the user can focus on a
particular and concise decision (i.e., a variation point) at a specific
time. Therefore, the first step in our approach consists in
identifying the variation points, their variants, and the possible variant
combinations given by the variability type of the variation point
(Section 3.1).
2. Statistical analysis of variation points. The second step of our
approach is characterizing the complexity of every decision that
the user needs to face. To do that, we rely on the statistical
analysis [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] of the feature model, and specifically on the product
distribution of each variation point. The product distribution provides
us an idea about the complexity of each decision (variation point)
in terms of the number of products or configurations in which that
variation point, and each of its variant respectively, are involved
(Section 3.2).
3. Monte Carlo simulations. The statistical analysis is useful to
determine the number of Monte Carlo simulations to be performed in
the last step of our approach. It consists on taking a small size
random sampling of configurations for a specific variant of a given
variation point, and evaluating those configurations by
measuring the non-functional properties (e.g., performance, energy
efficiency, faults, etc.). We then average the results and obtain an
approximation of the influence of the feature variant. We repeat
this process for each possible variant combination of the variation
point, so that the user can obtain an estimation about how each
feature variant affects its configuration (Section 3.3).
3.1
      </p>
    </sec>
    <sec id="sec-7">
      <title>Variation points and variants</title>
      <p>The first step in our approach consists in identifying (1) the
variation points (i.e., the decisions), (2) its variants (i.e., the choices),
and also (3) the possible variant combinations of each variation point
(i.e., the allowed choice combinations according to the variability
type). Variation points are represented by those features that require
to make a decision in order to obtain a valid configuration of the
feature model. The variants of a variation point are represented by
direct sub-features (i.e., the possible choices), which may also
represent other variation points. Finally, the possible variant combinations
of a variation point are the distinct choice combinations of the
variants that are allowed to select in a configuration of the feature model,
and it depends on the variability type of the features as well as on the
random
sampling
product distribution</p>
      <p>Evaluation
- performance
- efficiency
- faults
-...</p>
      <p>estimations
Example</p>
      <p>WebFramework
Authentication BackEnd Testing
1 variant combination:
{Authentication, BackEnd, Testing}</p>
      <p>DatabaseOptimization</p>
      <p>Cache ElasticSearch
4 variant combinations:
{}, {Cache}, {ElasticSearch},
{Cache, ElasticSearch}</p>
      <p>Authentication
HTTPSession OAuth2 Uaa JWT
4 variant combinations:
{HTTPSession}, {OAuth2}, {Uaa}, {JWT}</p>
      <p>SocialLogin</p>
      <p>Variability type
Mandatory
vaproiaitniton f
g1
g1
variants
Optional
variation
point
variants
Alternative (xor)
variation
point
variants
Selection (or)
variation
point
variants
g2 ... gn
g2 ... gn
f
f
f
g1</p>
      <p>g2 ... gn
g1
g2 ... gn</p>
      <p>Variant combinations
c
c1
m = 1
c
c
c
c1 c2 ... cm</p>
      <p>=
c2
m = n</p>
      <p>... cm
c
m =
c1
c1
m =</p>
      <p>UserPass Pin DigCert
7 variant combinations:
c2 ... cm {UserPass}, {Pin}, {DigCert}, {UserPass,
= {PUins}e,r{PUassesr,PPainss,,DDigigCCeertrt}}, {Pin, DigCert},
dependencies between features. Figure 2 illustrates these concepts
for each variability type:
Mandatory features. For variation points whose variants are
mandatory features, there is only one variant combination which is
the result of selecting all the mandatory features. So, the user does
not have to make any decision as all mandatory features need to
be selected in any configuration where that variation point is
selected. For example, the WebFramework variation point requires
to select each of its variants Authentication, BackEnd, and
Testing, and thus, there is only one possible variant
combination including the three variants (see third column in Figure 2).
Optional features. For variation points whose variants are optional
features, the user may choose to include or not include each
of the variant, leading to a total of Pkn=0 nk = 2n variant
combinations, where n is the number of variants (sub-features)
and k goes from 0 (none variant is selected) to n (all
variants are selected). nk is the binomial coefficient (read as “n
choose k”) indicating the ways to choose an unordered subset
of k variants from the n available options. For instance, for the
DatabaseOptimization variation point with 2 optional
variants (Cache and ElasticSearch), the user has to decide
between four possible combinations: (1) none of the variants is
selected, (2) only Cache is selected, (3), only ElasticSearch
is selected, and (4) both Cache and ElasticSearch are
selected. The variant combinations grows exponentially, for 5
variants there are 32 possible combinations, while for 7 variants there
are 128 combinations.</p>
      <p>Variation points that contains both mandatory and optional
variants can be seen as if they only contain optional variants because
the mandatory features will be always selected in every variant,
and the user only needs to take care of the optional features.</p>
      <sec id="sec-7-1">
        <title>Alternative (xor) group features. Variation points represented by</title>
        <p>an alternative-group feature requires to select only one of its n
variants. Thus, there are n possible variant combinations to be
decided by the user. For instance, the Authentication variation
point offers four variants: HTTPSession, OAuth2, Uaa, and
JWT; and only one of them is allowed to be selected in a valid
configuration, leading to four possible variant combinations.
Selection (or) group features. Variation points represented by an
or-group feature requires to select at least one of its variants and
at most n. Similarly to optional features (but requiring at least one
variant), there are Pkn=1 nk = 2n 1 possible variant
combinations to be decided. For instance, the SocialLogin variation
point allows to select between three variants: UserPass, Pin,
or DigCert; and the user can select any of them, leading to a
total of 7 variant combinations (see third column in Figure 2).</p>
        <p>
          Note that in the feature model literature, there exist models that
allow multiple decomposition type for features [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. That is, a
variation point may have more than one variability type — e.g., optional
and mandatory sub-features together with one or more xor or
selection groups under the same feature. Czarnecki and Eisenecker [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]
describe a normalization strategy for such models by introducing
additional abstract features. This does not affect our approach, as it only
increases the number of variation points and simplifies the variant
combinations by mapping them to the explained cases in Figure 2.
Moreover, current existing tools for modeling and managing feature
models do not support complex decomposition types [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. Note also
that, at this step, we have not considered the cross tree constraints that
may exist between variants of a variation point, which may reduce
the number of possible choices. Cross tree constraints are considered
in the following step where we analyze the valid configurations for
each decision.
3.2
        </p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Statistical analysis of variation points</title>
      <p>
        For each variation point identified in the previous step, we
calculate the product distribution of its variant combinations. The product
distribution is defined by Heradio et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] as the number of valid
products in the whole configuration space having a given number of
features. Thus, in this research we define the product distribution as
the number of valid products (or configurations) having the features
of a variant combination.
      </p>
      <p>
        The product distribution provides us a characterization of the
complexity of the whole configuration space. It allows us to determine
the number of configurations containing a specific variation point, as
well as the number of configurations containing each of the variants
and variant combinations for a variation point. The product
distribution will depend on the cross tree constraints defined in the
feature model. For a given variation point, all its variants will have the
same probability of being part of a configuration if there are not cross
tree constraints involving those variants. In other case, there will be
variants present in more configurations than others. To compute the
product distribution it is necessary either to enumerate all
configurations of the feature model, or to encode the feature model as a binary
decision diagram (BDD) [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. The former is infeasible for large
configuration spaces. In contrast, using a BDD has been demonstrated
to scale for large feature models [
        <xref ref-type="bibr" rid="ref21 ref44">21, 44</xref>
        ]. Then, the product
distribution can be computed by traversing the BDD and accounting for how
many configurations have the specified variant features [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>In our approach, we use the product distribution to determine the
number of Monte Carlo simulations that will be performed for each
variant combination in order to evaluate as few as possible products.
3.3</p>
    </sec>
    <sec id="sec-9">
      <title>Monte Carlo simulations</title>
      <p>
        The basis of Monte Carlo simulations involve constantly repeating
an experiment many times to approximate the expected results [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]:
First, a Monte Carlo simulation takes the variable with uncertainty
and assigns it a random value. Then, the model is evaluated and a
result is provided. This process is repeated a number of times
(simulations) while assigning the variable in question with many different
values. Once all simulations have finished, the results are averaged
together to provide an estimation.
      </p>
      <p>
        In our approach, a Monte Carlo simulation consists in a uniform
random sampling of configurations [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], where the variable with
uncertainty is the feature variant being analyzing, and the assignment of
a random value to that variable corresponds with the evaluation of a
sample of configurations containing that feature variant. The sample
of configurations are evaluated by measuring their properties (e.g.,
performance, memory consumption, number of defects,. . . ), and the
obtained results are averaged obtaining an estimation of the feature
expected influence. To simplify the implementation of this process,
we consider a Monte Carlo simulation as an individual configuration
randomly sampled and evaluated. Therefore, performing N
simulations corresponds with a random sampling of N configurations.
      </p>
      <p>The number of simulations to be performed can be defined
according to several criteria such as a fixed number, a percentage of
configurations, or a computational budget (e.g., time or memory). In
this paper, we use the product distribution calculated in the statistical
analysis to determine the number of simulations. We specify a shared
percentage of configurations to be sampled for all variants, so that
the same ratio of configurations are evaluated for each variant. Then,
the number of simulations will depends on the number of
configurations containing a specific feature variant. Note that we can define
the variable (feature) of interested to be analyzed at any level: (1) at
the variation point level to analyze it independently of its variants, (2)
to the variant level to study the influence of each variant, and (3) to
the variant combinations to analyze the interaction between the
different variants. The latter can be seen as a t-wise coverage sampling
considering only the variant features of a specific variation point.</p>
      <p>Next section illustrates our approach with a real-world SPL.
4</p>
    </sec>
    <sec id="sec-10">
      <title>APPLICABILITY OF OUR APPROACH</title>
      <p>
        To show the applicability of our approach we use the JHipster Web
development stack [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The jHipster SPL (Figure 3) is a popular
code generator for web applications with 45 features which lead a
total of 26,256 configurations. We choose jHipster because its
configuration space has been exhaustively evaluated in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] to find those
configurations that present errors or defects when they are deployed
(i.e., configurations that make the application fails). Therefore, we
can use it to compare and verify the results of the Monte Carlo
simulations. In this SPL, we focus on evaluating the configurations to find
whether they provoke an error or some other misbehavior when they
are deployed, but our approach can be used to evaluate any other
configuration property like performance or energy efficiency. Complete
Uaa JWT SQL
v: 2
c: 4
Feature model legend:
mandatory
optional
or group
alternative group
Hazel
Cast
      </p>
      <p>Hibernate v: 2 Development
2ndLvlCache c: 2 v: 4 c: 4</p>
      <p>v: 2
Eh c: 2 Postgre
Cache H2 SQLDev</p>
      <p>Mari
DBDev</p>
      <p>Elastic
Search
MySql MySQL</p>
      <p>Production
v: 3 c: 3</p>
      <p>Maria
DB
DiskBased</p>
      <p>InMemory
analysis results can be found online2.</p>
      <sec id="sec-10-1">
        <title>Identifying variation points, variants, and variant combinations.</title>
        <p>Following our approach, we first identify the variation points in the
jHipster feature model, as well as the variants of each variation point
and the possible variant combinations. Figure 3 presents the jHipster
feature model where we have identified 13 variation points
(highlighted features). The variants of each variation points are their
direct sub-features. For instance, the Database variation point is a
xor-group feature with three alternative variants: SQL, Cassandra,
and MongoDB, being the SQL variant also a variation point itself. For
each variation point we explicitly show the number of variants and
the number of possible variant combinations. This gives us an idea
about the number of decisions and options the user needs to face
in order to configure a valid product. For example, to configure the
Database variation point the user needs to make, at least, one
decision with three possible choices (SQL, Cassandra, MongoDB), but
if the SQL variant is selected the user needs to face, in addition, three
more decisions (and possibly more): the variants of the SQL variation
point, and the two mandatory variation points that require to select a
database variant to be used in Development and Production,
respectively. Left-hand side of Table 1 details these decisions that the
user needs to consider. For space reasons, we only show 5 illustrative
variation points of the jHipster feature model. The complete analysis
of all variation points can be found online.</p>
      </sec>
      <sec id="sec-10-2">
        <title>Statistical analysis of variation points. Along with the variation</title>
        <p>points, Table 1 shows the product distribution of each variant
combination. That is, the number of configurations in the feature model
containing such variant features and the percentage of
configurations that it represents with regard the whole configuration space.</p>
        <p>We can observe that for the Database variation point, there are
25,488 valid configurations with the SQL variant (that means 97.13%
of all configurations of the feature model) in contrast to 280 valid
configurations with the Cassandra variant (0.01%), and 472 with
MongoDB (0.02%). This evidences that applying a uniform random
sampling over the whole configuration space with lead to the
majority of the resulting configurations to have selected the SQL variant,
to the detriment of the other alternative variants (Cassandra or
MongoDB). Therefore analyzing those random configurations does
not provide enough insight about the influence of each variant in a
configuration. To avoid that, our approach considers the product
distribution of each variant in order to calculate the number of Monte
2 https://github.com/diverso-lab/montecarlo analysis</p>
        <p>Cross tree constraints:
OAuth2 ∧ ¬SocialLogin ∧ ¬MicroserviceApplication =&gt; SQL ∨ MongoDB</p>
        <p>SocialLogin =&gt; (HTTPSession ∨ JW) ∧ Monolithic ∧ (SQL ∨ MongoDB)
¬OAuth2 ∧ ¬SocialLogin ∧ ¬MicroserviceApplication =&gt; SQL ∨ MongoDB ∨ Cassandra
PoSsQtgLre MiScprorisneMgrWvoinceeobAlSitpohpciclkice=at&gt;tsiJo∨WnCT∨lu∨CstHleuTrseTtedPrSSeeedssSsseiioosnnsi=o∨&gt;nOA=A&gt;pupJtWlhic2Tat∨ioUnaa</p>
        <p>PostgreSQL =&gt; H2 ∨ PostgreSQLDev</p>
        <p>Server =&gt; ¬Protactor ¬Server =&gt; Protactor MySQL =&gt; H2 ∨ MySql</p>
        <p>Libass =&gt; Application MariaDB =&gt; H2 ∨ MariaDBDev UaaServer =&gt; Uaa
Carlo simulations, and thus, obtain the configurations to be sampled
and evaluated.</p>
        <p>Monte Carlo simulations. Middle of Table 1 summarizes the
results of the Monte Carlo simulations with the number of
configurations sampled and evaluated for each variant combination, and the
median, mean, standard deviation, and percentage of defective
configurations found in the sample. In all cases, we set the number of
simulations to be performed as 1% of the configurations of each
variant combination.</p>
        <p>We can observe in Table 1 that for the Authentication
variation point, the JWT variant (highlighted) is the less likely to lead to
a configuration with defects (19.64%), in contrast to the Uaa
variant which is the most likely to achieve a defective configuration
(92.22%). So, the user will prefer to select the JWT variant when
configuring a product that does not provoke errors. Similarly, the
SQL variant for the Database variation point is the most safety
variant with 34.31% of defective configurations, being also the
variant that appears in most configurations: 25,488 (97.13% of the whole
configuration space). In contrast, Cassandra and MongoDB
appears in a few number of configurations: 280 (0.02%), and 472
(0.02%), respectively; but their configurations are more likely to
present defects (66.67% and 40% respectively). The SQL variant also
provides two optional features to be decided (ElasticSearch
and Hibernate2ndLvlCache) and two more xor-group
variation points (Development and Production). In the former, the
solely selection of the ElasticSearch provides the combination
of variants that lead to less defective configurations (32.56%)
versus the decision of selecting the Hibernate2ndLvlCache
variant (36.47%), selecting both variants together (33.53%) or not
selecting any variant at all (None with 38.37% defective configurations).</p>
        <p>For Development and Production, MySQL and PostgreSQL
are the most desirable variants with similar probability of achieving
a configuration with defect. Figure 4 summarizes the influence of
each variant feature regarding configurations with defects for every
variation point identified in the jHipster SPL. A broader feature
indicates a major influence, that is, a higher probability of leading to a
configuration with defect.</p>
        <p>With this information, we can provide a decision-making tool to
assist the user in the process of configuring a feature model or to
assist the developer when testing and maintaining the SPL (see
Figure 5). The expected probabilities obtained with Monte Carlo
simulations help the stakeholder to make decisions for each variation
point. On the one hand, the user (e.g., an application engineer) is
aware about the influence of each feature decision in the
configuraFor each variation point (VP), we show the configuration distribution of its variants: number of configurations (#Conf) and its
percentage (%Conf) wrt. the whole configuration space. For each variant, we perform a number of simulations (#Sim) corresponding
to a uniform random sampling with sample sizes of 1% wrt. the product distribution (number of configurations) of the variant.
We show the median, mean and standard deviation of defective configurations found in the simulations, as well as the percentage
(%Conf) using the median. To calculate the statistics we performed 30 executions. Finally, we show real total values of defective
configurations in the whole configuration space of the jHipster feature model to verify the results of the simulations.
tion properties (e.g., configurations with defects in this case), and can
use this knowledge to configure a product with a lower probability of
contain a defect. On the other hand, the developer of the SPL can
easily identify the problematic features and act accordingly by changing
their implementation or modify the feature model by updating the
feature relationships to avoid the defective configurations. Figure 5
shows the estimated probabilities for achieving configurations with
faults in the jHipster feature model, and a valid selection (shaded
features) for the most probable configuration without defects.</p>
        <p>
          Verifying the results. To verify our results, we compare them with
the real probability of finding defective configurations (right-hand
side of Table 1). We calculate the real probability of finding
defective configurations by considering all configurations for each
variation point and variant combination. In order to be able to obtain the
real values, the whole configuration space needs to be evaluated as
Halin et al [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] did for the jHipster SPL. However, this is not
feasible for large-scale feature models, and in those cases our approach
can provide robust approximations to the real probabilities (check the
small standard deviation of the results in Table 1).
        </p>
        <p>As observed in Table 1, only sampling and evaluating 1% of the
configurations we approximate to the real probability of finding
defective configurations with less than 1% of error in most cases. We
can improve the approximations of the Monte Carlo simulations by
increasing the number of simulations. Figure 6 illustrates how the
Monte Carlo simulations approximate to the real probability as the
number of simulations increases. Considering the complete jHipster
feature model which contains 9,376 defective configurations from a
total of 26,256 (35.71% of defective configurations), a sample of 1%
(260 configurations) leads to 95 defective configurations (36.54%)
with an error of 0.0083, while a sample of 20% (5,000
configurations) lead to a total of 1,787 defective configurations (35.74%) with
an error of 0.0003. We can conclude that using samples of 1% for the
Monte Carlo simulations are enough to approximate the probability
of finding defective configurations in the jHipster feature model.</p>
        <p>
          Threats to validity. There are two main threats, first, population
validity, as we only have tested it with the jHipster dataset. However,
we aim at demonstrating that this approach is feasible and are
planning to perform a more exhaustive evaluation in future work. While
the external validity, in general, focuses on the generalization of the
results to other contexts (e.g., using other models), the ecological
validity focuses on possible errors in the experiment materials and tools
used. To mitigate this threat we have relied on well-known tools for
automated analysis of feature models like BDD solvers [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
5
        </p>
      </sec>
    </sec>
    <sec id="sec-11">
      <title>CONCLUSIONS AND FUTURE WORK</title>
      <p>We have presented a step-wise decision analysis based on Monte
Carlo simulations and driven by the variation points of the feature
model. Our approach scales for large configuration spaces by
splitting the analysis into the main decisions a user usually faces when
configuring a product. Monte Carlo simulations approximate the
influence of each feature variant in the configuration properties
evaluating as few configurations as possible. In particular, we have applied
our approach in a real-world feature model like the jHipster SPL to
identify those features that have a higher probability of provoking a
defect in a configuration. Our solution complements existing
sampling techniques to analyze colossal configuration spaces improving
the understanding of the influence of each feature selection. It can
be part of a decision-making tool to assist the user in the process of
configuring a feature model, to assist the developer when testing and
Cross tree constraints:
OAuth2 ∧ ¬SocialLogin ∧ ¬MicroserviceApplication =&gt; SQL ∨ MongoDB</p>
      <p>SocialLogin =&gt; (HTTPSession ∨ JW) ∧ Monolithic ∧ (SQL ∨ MongoDB)
¬OAuth2 ∧ ¬SocialLogin ∧ ¬MicroserviceApplication =&gt; SQL ∨ MongoDB ∨ Cassandra</p>
      <p>SpringWebSockets ∨ ClusteredSession =&gt; Application
MicroserviceApplication ∨ ClusteredSession =&gt; JWT ∨ Uaa</p>
      <p>Monolithic =&gt; JWT ∨ HTTPSession ∨ OAuth2</p>
      <p>PostgreSQL =&gt; H2 ∨ PostgreSQLDev</p>
      <p>Server =&gt; ¬Protactor ¬Server =&gt; Protactor MySQL =&gt; H2 ∨ MySql</p>
      <p>Libass =&gt; Application MariaDB =&gt; H2 ∨ MariaDBDev UaaServer =&gt; Uaa
maintaining an SPL, or to improve reasoner module of recommender
systems and interactive configuration processes.</p>
      <p>As future work, we plan to quantitatively compare our approach
with existing sampling techniques that consider the whole
configuration space (e.g., feature coverage-based sampling), in order to
evaluate how differ the features’ influence in the configuration
properties between those techniques. We also plan to extend our evaluation
considering a broaden corpus of large-scale feature models and
nonfunctional properties of the configuration to be measured like
performance, memory footprint, or energy efficiency.</p>
    </sec>
    <sec id="sec-12">
      <title>ACKNOWLEDGEMENTS</title>
      <p>This work was supported by the Project (RTI2018-101204-B-C22,
OPHELIA), funded by: FEDER/Ministry of Science and
Innovation — State Research Agency; the TASOVA network (MCIU-AEI
TIN2017-90644-REDT); the Junta de Andalucia COPERNICA and
METAMORFOSIS projects; and the Spanish Government under
Juan de la Cierva—Formacio´ n 2019 grant. We would also like to
thank Jose´ A. Troyano for having inspired us in the usage of Monte
Carlo methods in software product line analyses.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Sven</given-names>
            <surname>Apel</surname>
          </string-name>
          , Don S. Batory, Christian Ka¨stner, and Gunter Saake,
          <source>Feature-Oriented Software Product Lines - Concepts and Implementation</source>
          , Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Mohsen</given-names>
            <surname>Asadi</surname>
          </string-name>
          , Samaneh Soltani, Dragan Gasevic, Marek Hatala, and Ebrahim Bagheri, '
          <article-title>Toward automated feature model configuration with optimizing non-functional requirements', Inf</article-title>
          . Softw. Technol.,
          <volume>56</volume>
          (
          <issue>9</issue>
          ),
          <fpage>1144</fpage>
          -
          <lpage>1165</lpage>
          , (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Satomi</given-names>
            <surname>Baba</surname>
          </string-name>
          , Yongjoon Joe, Atsushi Iwasaki, and Makoto Yokoo, '
          <article-title>Real-time solving of quantified csps based on monte-carlo game tree search'</article-title>
          ,
          <source>in 22nd International Joint Conference on Artificial Intelligence (IJCAI)</source>
          , pp.
          <fpage>655</fpage>
          -
          <lpage>661</lpage>
          , Barcelona, Spain, (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Ebrahim</given-names>
            <surname>Bagheri</surname>
          </string-name>
          , Mohsen Asadi, Dragan Gasevic, and Samaneh Soltani, '
          <article-title>Stratified analytic hierarchy process: Prioritization and selection of software features'</article-title>
          ,
          <source>in 14th International Conference on Software Product Lines (SPLC)</source>
          , volume
          <volume>6287</volume>
          <source>of LNCS</source>
          , pp.
          <fpage>300</fpage>
          -
          <lpage>315</lpage>
          , (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Ebrahim</given-names>
            <surname>Bagheri</surname>
          </string-name>
          and Faezeh Ensan, '
          <article-title>Dynamic decision models for staged software product line configuration', Requir</article-title>
          . Eng.,
          <volume>19</volume>
          (
          <issue>2</issue>
          ),
          <fpage>187</fpage>
          -
          <lpage>212</lpage>
          , (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>David</given-names>
            <surname>Benavides</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Sergio</given-names>
            <surname>Segura</surname>
          </string-name>
          , and Antonio Ruiz Corte´s, '
          <article-title>Automated analysis of feature models 20 years later: A literature review', Inf</article-title>
          . Syst.,
          <volume>35</volume>
          (
          <issue>6</issue>
          ),
          <fpage>615</fpage>
          -
          <lpage>636</lpage>
          , (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Muhammad</given-names>
            <surname>Umar</surname>
          </string-name>
          Chaudhry and
          <string-name>
            <surname>Jee-Hyong</surname>
            <given-names>Lee</given-names>
          </string-name>
          , '
          <article-title>MOTiFS: Monte carlo tree search based feature selection'</article-title>
          ,
          <source>Entropy</source>
          ,
          <volume>20</volume>
          (
          <issue>5</issue>
          ), (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Krzysztof</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          and Ulrich W. Eisenecker,
          <article-title>Generative programming - methods, tools and applications</article-title>
          , Addison-Wesley,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Krzysztof</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          , Steven She, and Andrzej Wasowski, '
          <article-title>Sample spaces and feature models: There and back again'</article-title>
          ,
          <source>in 12th International Conference on Software Product Lines (SPLC)</source>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>31</lpage>
          , (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Stefan</surname>
            <given-names>Fischer</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Roberto E.</given-names>
            <surname>Lopez-Herrejon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Rudolf</given-names>
            <surname>Ramler</surname>
          </string-name>
          , and Alexander Egyed, '
          <article-title>A preliminary empirical assessment of similarity for combinatorial interaction testing of software product lines'</article-title>
          ,
          <source>in 9th Workshop on Search-Based Software Testing (SBST@ICSE)</source>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>18</lpage>
          , (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11] Jose´ Angel Galindo, David Benavides,
          <string-name>
            <given-names>Pablo</given-names>
            <surname>Trinidad</surname>
          </string-name>
          , Antonio Manuel Gutie´
          <fpage>rrez</fpage>
          -Ferna´ndez, and Antonio Ruiz-Corte´s, '
          <source>Automated analysis of feature models: Quo vadis?', Computing</source>
          ,
          <volume>101</volume>
          (
          <issue>5</issue>
          ),
          <fpage>387</fpage>
          -
          <lpage>433</lpage>
          , (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12] Jose´ Angel Galindo, Deepak Dhungana, Rick Rabiser, David Benavides,
          <string-name>
            <given-names>Goetz</given-names>
            <surname>Botterweck</surname>
          </string-name>
          , and Paul Gru¨ nbacher, '
          <article-title>Supporting distributed product configuration by integrating heterogeneous variability modeling approaches', Inf</article-title>
          . Softw. Technol.,
          <volume>62</volume>
          ,
          <fpage>78</fpage>
          -
          <lpage>100</lpage>
          , (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13] Jose´ Angel Galindo, Hamilton A.
          <string-name>
            <surname>Turner</surname>
            , David Benavides,
            <given-names>and Jules</given-names>
          </string-name>
          <string-name>
            <surname>White</surname>
          </string-name>
          , '
          <article-title>Testing variability-intensive systems using automated analysis: an application to android', Softw</article-title>
          . Qual. J.,
          <volume>24</volume>
          (
          <issue>2</issue>
          ),
          <fpage>365</fpage>
          -
          <lpage>405</lpage>
          , (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Carl</given-names>
            <surname>Graham</surname>
          </string-name>
          and
          <string-name>
            <given-names>Denis</given-names>
            <surname>Talay</surname>
          </string-name>
          ,
          <source>Strong Law of Large Numbers and Monte Carlo Methods</source>
          ,
          <fpage>13</fpage>
          -
          <lpage>35</lpage>
          , Springer Berlin Heidelberg,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Jianmei</surname>
            <given-names>Guo</given-names>
          </string-name>
          , Jia Hui Liang, Kai Shi,
          <string-name>
            <given-names>Dingyu</given-names>
            <surname>Yang</surname>
          </string-name>
          , Jingsong Zhang, Krzysztof Czarnecki, Vijay Ganesh, and Huiqun Yu, '
          <article-title>SMTIBEA: a hybrid multi-objective optimization algorithm for configuring large constrained software product lines', Softw</article-title>
          . Syst. Model.,
          <volume>18</volume>
          (
          <issue>2</issue>
          ),
          <fpage>1447</fpage>
          -
          <lpage>1466</lpage>
          , (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Axel</surname>
            <given-names>Halin</given-names>
          </string-name>
          , Alexandre Nuttinck, Mathieu Acher, Xavier Devroey, Gilles Perrouin, and Benoit Baudry, '
          <article-title>Test them all, is it worth it? assessing configuration sampling on the jhipster web development stack', Empir</article-title>
          . Softw. Eng.,
          <volume>24</volume>
          (
          <issue>2</issue>
          ),
          <fpage>674</fpage>
          -
          <lpage>717</lpage>
          , (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Christopher</surname>
            <given-names>Henard</given-names>
          </string-name>
          , Mike Papadakis, Gilles Perrouin, Jacques Klein, Patrick Heymans, and Yves Le Traon, '
          <article-title>Bypassing the combinatorial explosion: Using similarity to generate and prioritize t-wise test configurations for software product lines'</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>40</volume>
          (
          <issue>7</issue>
          ),
          <fpage>650</fpage>
          -
          <lpage>670</lpage>
          , (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Ruben</surname>
            <given-names>Heradio</given-names>
          </string-name>
          , David Ferna´
          <fpage>ndez</fpage>
          -Amor o´s, Jose´ A.
          <string-name>
            <surname>Galindo</surname>
          </string-name>
          , and David Benavides, '
          <article-title>Uniform and scalable sat-sampling for configurable systems'</article-title>
          ,
          <source>in 24th ACM International Systems and Software Product Line Conference (SPLC)</source>
          , volume A, pp.
          <volume>17</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          :
          <fpage>11</fpage>
          . ACM, (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Ruben</surname>
            <given-names>Heradio</given-names>
          </string-name>
          , David Ferna´
          <article-title>ndez-Amor o´s, Christoph Mayr-Dorn, and Alexander Egyed, 'Supporting the statistical analysis of variability models'</article-title>
          ,
          <source>in 41st International Conference on Software Engineering (ICSE)</source>
          , pp.
          <fpage>843</fpage>
          -
          <lpage>853</lpage>
          . IEEE/ACM, (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Ruben</surname>
            <given-names>Heradio</given-names>
          </string-name>
          , David Ferna´
          <article-title>ndez-Amor o´s, Luis Torre-Cubillo, and Alberto Pe´rez Garc´ıa-Plaza, 'Improving the accuracy of COPLIMO to estimate the payoff of a software product line'</article-title>
          ,
          <source>Expert Syst. Appl.</source>
          ,
          <volume>39</volume>
          (
          <issue>9</issue>
          ),
          <fpage>7919</fpage>
          -
          <lpage>7928</lpage>
          , (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Ruben</surname>
            <given-names>Heradio</given-names>
          </string-name>
          , Hector Perez-Morago, David Ferna´
          <fpage>ndez</fpage>
          -Amoro´ s, Roberto Bean, Francisco Javier Cabrerizo, Carlos Cerrada, and
          <string-name>
            <surname>Enrique</surname>
          </string-name>
          Herrera-Viedma, '
          <article-title>Binary decision diagram algorithms to perform hard analysis operations on variability models'</article-title>
          ,
          <source>in 15th International Conference on New Trends in Software Methodologies, Tools and Techniques (SoMeT)</source>
          , volume
          <volume>286</volume>
          <source>of Frontiers in Artificial Intelligence and Applications</source>
          , pp.
          <fpage>139</fpage>
          -
          <lpage>154</lpage>
          , (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22] Jose Miguel Horcas,
          <article-title>M o´nica Pinto, and Lidia Fuentes, 'Variability models for generating efficient configurations of functional quality attributes', Inf</article-title>
          . Softw. Technol.,
          <volume>95</volume>
          ,
          <fpage>147</fpage>
          -
          <lpage>164</lpage>
          , (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23] Jose´-Miguel
          <string-name>
            <surname>Horcas</surname>
          </string-name>
          , Mo´ nica Pinto, and Lidia Fuentes, '
          <article-title>Software product line engineering: a practical experience'</article-title>
          ,
          <source>in 23rd International Systems and Software Product Line Conference (SPLC)</source>
          , pp.
          <volume>25</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          :
          <fpage>13</fpage>
          . ACM, (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Christian</surname>
            <given-names>Kaltenecker</given-names>
          </string-name>
          , Alexander Grebhahn, Norbert Siegmund, Jianmei Guo, and Sven Apel, '
          <article-title>Distance-based sampling of software configuration spaces'</article-title>
          ,
          <source>in 41st International Conference on Software Engineering (ICSE)</source>
          , pp.
          <fpage>1084</fpage>
          -
          <lpage>1094</lpage>
          . IEEE/ACM, (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Kyo</surname>
            <given-names>C Kang</given-names>
          </string-name>
          , Sholom G Cohen,
          <article-title>James A Hess</article-title>
          , William E Novak, and
          <string-name>
            <given-names>A Spencer</given-names>
            <surname>Peterson</surname>
          </string-name>
          , '
          <article-title>Feature-oriented domain analysis (FODA) feasibility study'</article-title>
          ,
          <source>Technical report</source>
          , (
          <year>1990</year>
          ). CMU/SEI-90
          <string-name>
            <surname>-</surname>
          </string-name>
          TR-
          <volume>21</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>Reza</given-names>
            <surname>Karimpour</surname>
          </string-name>
          and Guenther Ruhe, '
          <article-title>Evolutionary robust optimization for software product line scoping: An explorative study'</article-title>
          ,
          <source>Comput. Lang. Syst. Struct.</source>
          ,
          <volume>47</volume>
          ,
          <fpage>189</fpage>
          -
          <lpage>210</lpage>
          , (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Dirk</surname>
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Kroese</surname>
          </string-name>
          , Tim Brereton, Thomas Taimre, and
          <string-name>
            <surname>Zdravko</surname>
            <given-names>I. Botev</given-names>
          </string-name>
          , '
          <article-title>Why the monte carlo method is so important today'</article-title>
          ,
          <source>WIREs Computational Statistics</source>
          ,
          <volume>6</volume>
          (
          <issue>6</issue>
          ),
          <fpage>386</fpage>
          -
          <lpage>392</lpage>
          , (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Jabier</surname>
            <given-names>Martinez</given-names>
          </string-name>
          , Gabriele Rossi, Tewfik Ziadi, Tegawende´ Franc¸ois D. Assise Bissyande´,
          <string-name>
            <given-names>Jacques</given-names>
            <surname>Klein</surname>
          </string-name>
          , and Yves Le Traon, '
          <article-title>Estimating and predicting average likability on computer-generated artwork variants'</article-title>
          ,
          <source>in Genetic and Evolutionary Computation Conference (GECCO)</source>
          , pp.
          <fpage>1431</fpage>
          -
          <lpage>1432</lpage>
          . ACM, (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29] Rau´ l Mazo, Cosmin Dumitrescu, Camille Salinesi, and Daniel Diaz, '
          <article-title>Recommendation heuristics for improving product line configuration processes'</article-title>
          ,
          <source>in Recommendation Systems in Software Engineering</source>
          ,
          <fpage>511</fpage>
          -
          <lpage>537</lpage>
          , Springer, (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>Daniel-Jesus</surname>
            <given-names>Munoz</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Jeho</given-names>
            <surname>Oh</surname>
          </string-name>
          ,
          <article-title>M o´nica Pinto, Lidia Fuentes</article-title>
          , and Don Batory, '
          <article-title>Uniform random sampling product configurations of feature models that have numerical features'</article-title>
          ,
          <source>in 23rd International Systems and Software Product Line Conference (SPLC)</source>
          , pp.
          <fpage>289</fpage>
          -
          <lpage>301</lpage>
          , (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>Hootan</given-names>
            <surname>Nakhost</surname>
          </string-name>
          and
          <article-title>Martin M u¨ller, 'Monte-carlo exploration for deterministic planning'</article-title>
          ,
          <source>in 21st International Jont Conference on Artifical Intelligence (IJCAI)</source>
          , p.
          <fpage>1766</fpage>
          -
          <lpage>1771</lpage>
          , (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <surname>Alexander</surname>
            <given-names>N</given-names>
          </string-name>
          <article-title>o¨hrer and Alexander Egyed, 'Optimizing user guidance during decision-making'</article-title>
          ,
          <source>in 15th International Conference on Software Product Lines (SPLC)</source>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>34</lpage>
          . IEEE Computer Society, (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <surname>Jeho</surname>
            <given-names>Oh</given-names>
          </string-name>
          , Don S. Batory, Margaret Myers, and Norbert Siegmund, '
          <article-title>Finding near-optimal configurations in product lines by random sampling'</article-title>
          ,
          <source>in 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE)</source>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>71</lpage>
          , (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>Juliana</given-names>
            <surname>Alves</surname>
          </string-name>
          <string-name>
            <surname>Pereira</surname>
          </string-name>
          , Mathieu Acher, Hugo Martin, and
          <article-title>Jean-Marc Je´ze´quel, 'Sampling effect on performance prediction of configurable systems: A case study'</article-title>
          ,
          <source>in ACM/SPEC International Conference on Performance Engineering (ICPE)</source>
          , pp.
          <fpage>277</fpage>
          -
          <lpage>288</lpage>
          , (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>Juliana</given-names>
            <surname>Alves</surname>
          </string-name>
          <string-name>
            <surname>Pereira</surname>
          </string-name>
          , Hugo Martin,
          <string-name>
            <surname>Mathieu Acher</surname>
          </string-name>
          ,
          <article-title>Jean-Marc Je´ze´quel, Goetz Botterweck, and Anthony Ventresque, 'Learning software configuration spaces: A systematic literature review'</article-title>
          , CoRR, abs/
          <year>1906</year>
          .03018, (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>Juliana</given-names>
            <surname>Alves</surname>
          </string-name>
          <string-name>
            <surname>Pereira</surname>
          </string-name>
          , Jabier Martinez, Hari Kumar Gurudu,
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Krieter</surname>
          </string-name>
          , and Gunter Saake, '
          <article-title>Visual guidance for product line configuration using recommendations and non-functional properties'</article-title>
          ,
          <source>in 33rd Symposium on Applied Computing (SAC)</source>
          , pp.
          <fpage>2058</fpage>
          -
          <lpage>2065</lpage>
          , (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>Juliana</given-names>
            <surname>Alves</surname>
          </string-name>
          <string-name>
            <surname>Pereira</surname>
          </string-name>
          , Pawel Matuszyk,
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Krieter</surname>
          </string-name>
          , Myra Spiliopoulou, and Gunter Saake, '
          <article-title>A feature-based personalized recommender system for product-line configuration'</article-title>
          ,
          <source>in ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE)</source>
          , pp.
          <fpage>120</fpage>
          -
          <lpage>131</lpage>
          . ACM, (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <surname>Tobias</surname>
            <given-names>Pett</given-names>
          </string-name>
          , Thomas Th u¨m, Tobias Runge,
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Krieter</surname>
          </string-name>
          , Malte Lochau, and Ina Schaefer, '
          <article-title>Product sampling for product lines: the scalability challenge'</article-title>
          ,
          <source>in 23rd International Systems and Software Product Line Conference (SPLC)</source>
          , pp.
          <volume>14</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          :
          <fpage>6</fpage>
          , Paris, France, (
          <year>2019</year>
          ). ACM.
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>Simon</given-names>
            <surname>Poulding</surname>
          </string-name>
          and Robert Feldt, '
          <article-title>Heuristic model checking using a monte-carlo tree search algorithm'</article-title>
          ,
          <source>in Annual Conference on Genetic and Evolutionary Computation (GECCO)</source>
          , p.
          <fpage>1359</fpage>
          -
          <lpage>1366</lpage>
          , (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <surname>Alessandro</surname>
            <given-names>Previti</given-names>
          </string-name>
          , Raghuram Ramanujan, Marco Schaerf, and Bart Selman, '
          <article-title>Monte-carlo style UCT search for boolean satisfiability'</article-title>
          ,
          <source>in Artificial Intelligence Around Man and Beyond</source>
          , pp.
          <fpage>177</fpage>
          -
          <lpage>188</lpage>
          , (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>Jorge</given-names>
            <surname>Rodas-Silva</surname>
          </string-name>
          , Jose´ Angel Galindo, Jorge Garc´
          <article-title>ıa-Gutie´rrez, and David Benavides, 'Selection of software product line implementation components using recommender systems: An application to wordpress'</article-title>
          ,
          <source>IEEE Access</source>
          ,
          <volume>7</volume>
          ,
          <fpage>69226</fpage>
          -
          <lpage>69245</lpage>
          , (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <surname>Lei</surname>
            <given-names>Tan</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Yuqing</given-names>
            <surname>Lin</surname>
          </string-name>
          , and Li Liu, '
          <article-title>Quality ranking of features in software product line engineering'</article-title>
          ,
          <source>in 2014 21st Asia-Pacific Software Engineering Conference</source>
          , volume
          <volume>2</volume>
          , pp.
          <fpage>57</fpage>
          -
          <lpage>62</lpage>
          , (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Tanabe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Yoshizoe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Imai</surname>
          </string-name>
          , '
          <article-title>A study on security evaluation methodology for image-based biometrics authentication systems'</article-title>
          ,
          <source>in 3rd IEEE International Conference on Biometrics: Theory, Applications, and Systems</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          , (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <surname>Thomas</surname>
            <given-names>Thu¨</given-names>
          </string-name>
          <article-title>m, 'A BDD for linux?: the knowledge compilation challenge for variability'</article-title>
          ,
          <source>in 24th ACM International Systems and Software Product Line Conference (SPLC)</source>
          , volume A, pp.
          <volume>16</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          :
          <fpage>6</fpage>
          , (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [45]
          <string-name>
            <surname>Mahsa</surname>
            <given-names>Varshosaz</given-names>
          </string-name>
          , Mustafa Al-Hajjaji, Thomas Thu¨ m, Tobias Runge, Mohammad Reza Mousavi, and Ina Schaefer, '
          <article-title>A classification of product sampling for software product lines'</article-title>
          ,
          <source>in 22nd International Systems and Software Product Line Conference (SPLC)</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>13</lpage>
          , (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [46]
          <string-name>
            <given-names>Cristian</given-names>
            <surname>Vidal-Silva</surname>
          </string-name>
          , Jose´ A.
          <string-name>
            <surname>Galindo</surname>
          </string-name>
          ,
          <article-title>Jes u´s Gira´ldez-</article-title>
          <string-name>
            <surname>Cru</surname>
          </string-name>
          , and David Benavides, '
          <article-title>Automated completion of partial configurations as a diagnosis task using fastdiag to improve performance'</article-title>
          ,
          <source>in Intelligent Systems in Industrial Applications</source>
          , pp.
          <fpage>107</fpage>
          -
          <lpage>117</lpage>
          , (
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>