<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Model analytics for feature models: case studies for S.P.L.O.T. repository</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Önder Babur</string-name>
          <email>O.Babur@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Loek Cleophas</string-name>
          <email>L.G.W.A.Cleophas@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mark van den Brand</string-name>
          <email>M.G.J.v.d.Brand@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Eindhoven University of Technology Eindhoven</institution>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Model-Driven Engineering and Software Product Lines promote the use of models as central artifacts for a variety of activities including domain analysis and generative software development. As these paradigms gain popularity, the number and variety of models in use increase. Several initiatives to gather models in repositories exist, such as ATL Zoo for metamodels or S.P.L.O.T. for feature models, aiming for public access and reuse. However, as those repositories are only partly or not at all curated, the growing number of models leads to problems such as duplicates a.k.a. clones, and lack of repository overview. This makes both repository management and model searching/reuse very hard. We address this issue for S.P.L.O.T. by adapting SAMOS, our generic model analytics framework for feature model comparison. We perform two exploratory case studies. First, we aim for getting a high level repository overview with large clusters and their domains. Secondly, we try to get clusters of highly similar models, to be interpreted as duplicates or clones. We conclude our approach is applicable for feature models and can improve the use and maintenance of S.P.L.O.T.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        Model-Driven Engineering (MDE) and Software Product Lines
(SPLs) are paradigms heavily using models for a variety of activities
ranging from domain analysis to software development,
deployment and testing. While one of the key objectives of such paradigms
is the management and reuse of increasingly complex software
artifacts, the same problem emerges as they gain popularity and wider
adoption: there are more, larger and more complex models in use [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
Recently, there has been some efort to collect various models in
model repositories to facilitate public access and reuse. Notable
examples are the ATL Ecore Metamodel Zoo1, and Software Product
Lines Online Tools (S.P.L.O.T.) feature model repository2 [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. One
problem of such repositories is when they are either partly or not
at all curated.
      </p>
      <p>This is particularly evident in S.P.L.O.T.: a quick inspection of
the individual models reveals that (1) models usually lack proper
metadata on their domains, versions, etc.; (2) there are quite many
duplicates/clones/versions of models with no explicit relationship
noted. Moreover the number of models in the repository increases
1http://web.emn.fr/x-info/atlanmod/index.php?title=Ecore
2http://www.splot-research.org/
rapidly, scaling up the aforementioned problems. These have serious
implications in scenarios involving both repository management
and use. First of all, there is a lack of repository overview, e.g. what
groups of models there are, and to which domains these belong.
This type of information would enable repository exploration,
facilitating model search and reuse. Secondly, as new models are added,
either the model manager or the users themselves are burdened
with the manual labeling of the models e.g. with respect to their
domains. And lastly, there is a considerable amount of duplicate
models, clones arbitrarily copy-pasted, and also various versions of
the same models lying around in the repository.</p>
      <p>
        These issues have been raised in the domain of MDE [
        <xref ref-type="bibr" rid="ref7 ref9">7, 9</xref>
        ]. A
promising solution is the automatic comparison of models [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]
for gaining some information on the repository dataset such as
grouping/subgrouping of models, proximities among models (and
groups as well) and outliers. Doing this on a large scale for hundreds
of models requires techniques beyond the complex and expensive
pairwise comparison such as in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]; rather it requires approximate
but fast and scalable techniques. These include e.g. fragmentation of
models into smaller chunks, typically via Information
Retrieval(IR)based and statistical methods such as clustering [
        <xref ref-type="bibr" rid="ref7 ref9">7, 9</xref>
        ], especially
for clone detection [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        There has been a considerable amount of work in the SPL
community on feature model analysis, comparison and use of IR-based
techniques, however with several important distinctions. First of
all, inspecting the thorough literature study of Benavides et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
on automated analysis of feature models reveals that analysis is
mostly performed on a single feature model and some configuration
of that, for instance to find out the dead features or valid products.
Other approaches involve multiple feature models as input, model
comparison is generally perceived based on the configuration
semantics (as used by She et al. [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] in contrast with ontological
semantics): feature models are transformed into logical formulas,
and reasoned about their pairwise relationships such as
generalization/specialization [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], or exact diferences [
        <xref ref-type="bibr" rid="ref12 ref3">3, 12</xref>
        ]. Another
approach uses EMF Compare to calculate pairwise diferences
between feature models [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. An interesting take on feature model
comparison is presented by Xing [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], who argues that feature
models might evolve over time with changes in both the structure
and feature names/descriptions, and applies their generic model
diferencing technique to feature models using the structural (or
ontological according to [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]) information in the models. On the
other hand, many researchers have proposed IR and clustering,
not for comparing feature models but requirements, product
descriptions, or features themselves (e.g. their names, the text in their
description) for reverse engineering feature models [
        <xref ref-type="bibr" rid="ref23 ref4">4, 23</xref>
        ]. Along
a line of work mostly on model synthesis and composition [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ],
Bécan et al. utilize IR and NLP techniques in their interactive model
synthesis tool [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. To our best knowledge, there has been no
comparable work in the modelling and SPL domains to cluster large
numbers of feature models with our objectives and scalability.
      </p>
      <p>In this paper, we attempt to apply our generic model analytics
framework to compare the feature models in the S.P.L.O.T.
repository. Our goals are twofold; introducing our approach to the SPL
community which we believe can benefit from the proposed
techniques, and testing the genericness and extensibility of our
approach for new model types and datasets. First, we extend our
framework with an extraction scheme for feature models using
the S.P.L.O.T. Java API for parsing Simple XML Feature Model
(SXFM) files. Using many utilities of the framework, notably
Natural Language Processing (NLP) tools, we test our approach on the
1034-model dataset in S.P.L.O.T. We perform two case studies: firstly
trying to get relatively large sized clusters and their corresponding
domains in the repository; and secondly obtaining clusters of very
similar models—to be interpreted as duplicates, clones or versions.
We conclude our approach is indeed applicable for feature models
and can improve the use and maintenance of S.P.L.O.T.
2</p>
    </sec>
    <sec id="sec-2">
      <title>ANALYZING FEATURE MODELS</title>
      <p>In this section we start with some preliminaries and move on to
detail our approach for analyzing and comparing feature models.
2.1</p>
    </sec>
    <sec id="sec-3">
      <title>SXFM Feature Models</title>
      <p>
        There are many notations for feature models, starting with the
original one by Kang et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], later extended with cardinalities,
additional constraints, attributes and so on [
        <xref ref-type="bibr" rid="ref21 ref22">21, 22</xref>
        ]. As a starting
point for this study we take the SXFM notation supported by the
models in S.P.L.O.T. A feature model has a feature tree with diferent
types of features in it (Root, Solitaire), optional/mandatory modifier,
feature groups with cardinalities (lower and upper bounds) and
grouped features in them, and the parent-child relations. They may
also contain additional constraints in Conjunctive Normal Form
(CNF) clauses. See Figure 2 for an example SXFM feature model
with mandatory, optional and grouped features.
2.2
      </p>
    </sec>
    <sec id="sec-4">
      <title>Underlying Concepts of SAMOS</title>
    </sec>
    <sec id="sec-5">
      <title>Framework</title>
      <p>
        Information Retrieval [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] deals with efectively indexing,
analyzing and searching various forms of content including natural
language text documents. As a first step for document retrieval
in general, documents are collected and indexed via some unit of
representation. Index construction can be implemented using a
Vector Space Model (VSM) with the following major components:
(1) a vector representation of occurrence of the vocabulary in a
document, named term frequency, (2) zones (e.g. ’author’ or ’title’), (3)
weighting schemes such as inverse document frequency (idf), and
zone weights, (4) NLP techniques for handling compound terms,
detecting synonyms and semantically related words.
      </p>
      <p>
        The VSM allows transforming each document into an n-dimensional
vector, resulting in an m ×n matrix for m documents. Over the VSM,
document similarity can be defined as the distance (e.g. Euclidean
or cosine) between vectors. These can be used for identifying
similar groups of documents in the vector space. This unsupervised
machine learning (ML) technique is called clustering. Among many
clustering methods [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], there is a distinction between flat
clustering, where a flat cluster labeling is done, and hierarchical clustering,
where a hierarchy of proximities is produced.
      </p>
      <p>
        Finally, n-grams [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] are used in computational linguistics to
build probabilistic models of natural language text, e.g. for
estimating the next word given a sequence of words, or comparing
text collections based on their n-gram profiles. In essence, n-grams
represent a linear encoding of structural context.
2.3
      </p>
    </sec>
    <sec id="sec-6">
      <title>SAMOS Framework for Feature Models</title>
      <p>
        Our generic model analytics framework SAMOS (Statistical
Analysis of MOdelS) [
        <xref ref-type="bibr" rid="ref5 ref6 ref7">5–7</xref>
        ] applies the above ideas for models. We have so
far used SAMOS for Ecore metamodels, UML class diagrams, state
charts and industrial domain specific modelling languages; in the
scenarios of domain clustering, data preprocessing and filtering,
and notably clone detection [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The workflow, as depicted in
Figure 1, starts with the extraction of IR-features (note the distinction
with features as in feature models) and constraints from a set of
input feature models, with a traversal of those models using the
SXFM Java Parser Library provided by S.P.L.O.T. We use various
schemes and NLP steps such as tokenization, filtering and synonym
checking, to populate a VSM after NLP. As a result, each feature
model is represented in the VSM as a point in a high dimensional
space and model similarity is reduced to a distance calculation.
Clustering is applied over these distances. The framework allows
configuring several matching schemes (e.g. whether to ignore types,
check synonyms) and weighting schemes (e.g. idf or type weights).
     SXFM  Parser  
      </p>
      <p>n-­‐grams   Vertex/n-­‐gram/  
Extrac&lt;on     constraints   constr.  matching  
scheme   scheme  </p>
      <p>NLP  
Tokeniza&lt;on   Synonyms  
Filtering  
Set  of  feature  models  </p>
      <p>Clone  
clusters  </p>
      <p>Manual    
inspec&lt;on  
Automated    
extrac&lt;on  </p>
      <p>Dendrogram  
We want to extract the information from the features (names, types,
cardinalities) and their relation to other features in the hierarchy
(i.e. structural context) in the form of n-grams as supported by
our framework. Additionally, we want to represent constraints
for accurate comparison. Using the SXFM Java parser library of
S.P.L.O.T., it is rather straightforward to traverse the feature tree
Weigh&lt;ng  
scheme  </p>
      <p>Clustering  </p>
      <p>Raw  VSM  
Weighted  VSM  </p>
      <p>Distance  
Calcula&lt;on  
and generate the information to be used for clustering. We have
used the following scheme to extract n-grams and constraints:
• Start with the root node of the tree.
• For each feature traversed, extract its name and type
(Mandatory,Grouped),etc. as an item of the n-gram chains.
• For each regular child, advance the traversal and add them
to the n-gram chains with the cardinality (0..1 for optional,
1..1 for mandatory) captured in the edge information.
• For each grouped feature, advance the traversal and add
them to the n-gram chains with group cardinality (0..1 for
optional, 1..1 for mandatory). Note that this is an inaccurate
simplification due to our choice of using n-grams (due to the
current implementation of SAMOS), please see Section 4 on
future work to overcome this limitation with more complex
features.
• for each clause in the CNF constraints, replace the unique
feature ids by the feature names and extract as an unordered
set.</p>
      <p>
        We give an example extraction for a model in S.P.L.O.T. (Figure 2)
for n = 1, 2 and constraints in Table 1. We use a mobile phone
feature model, with mandatory features (Calls), optional ones (GPS),
and an alternative feature group (meaning only one should be
chosen) with Basic, Colour or High Resolution screen.
Once we obtain the IR-features, the rest of the framework can be
used as is for the n-grams. For the constraint sets, we apply the
Hungarian algorithm [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] to obtain a best (partial) match score among
the sets based on their feature names and negations (each using
vertex similarity in SAMOS). In terms of vertex/node matching, i.e. how
to compare unigrams with each other, users can choose to check
for synonyms via tokenization, filtering, stemming/lemmatization,
Levenshtein distance and WordNet3; whether types should be
exactly the same or ignored altogether. Finally, users can choose to
apply type-based weighting (e.g. some parts of the model might be
more important such as classes vs. parameters in UML) and idf.
      </p>
      <p>Having set all the above schemes, the framework computes the
VSM based on the n-grams extracted. Using this matrix and picking
a distance measure (e.g. cosine for domain clustering), clustering is
performed in R. Further options are what type of clustering to do
(flat vs. hierarchical) and algorithm-specific parameters. The main
output of hierarchical clustering is the dendrogram, which can be
manually inspected, or cut with certain parameters to automatically
infer clusters (e.g. for clone detection with threshold values).
3</p>
    </sec>
    <sec id="sec-7">
      <title>CASE STUDIES</title>
      <p>We performed two exploratory case studies to demonstrate the
applicability of our approach for feature models, on the 1034-model
dataset in S.P.L.O.T. (as of July 18, 20184).
3.1</p>
    </sec>
    <sec id="sec-8">
      <title>Case Study 1 - Repository Overview and</title>
    </sec>
    <sec id="sec-9">
      <title>Major Domains</title>
      <p>
        In this case study, we want to obtain large groups of related feature
models, to be able to identify roughly the domains in the repository
(e.g. mobile phone models). Observing that in our case the
domain knowledge is captured mostly in the feature names, unigrams
(n = 1) are adequate here. We have adopted a similar parameter
set previously used for clustering the ATL Ecore metamodels [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]:
unigrams of names only (no types), NLP including pre-tokenization
for compound words, Levenshtein distance for typos, stemming,
lemmatization and WordNet for semantic relatedness; normalized
log idf weighting, cosine distance and finally hierarchical clustering
with average linkage. The procedure for this case study is as follows:
(1) cluster the whole dataset with the above settings, (2) perform a
ifltering pass to cut of the models that are less similar ( ≥ 0.8 cosine
distance, arbitrarily chosen as high enough similarity) to the rest
of the dataset, and focus on relatively large clusters (≥ 20 models),
and (3) perform a second clustering step on the subset and visualize
the dendrogram.
      </p>
      <p>Note that the filtering step with specific thresholds for
similarities and cluster sizes is necessary, as we have to manually inspect
and evaluate the results; manually handling a 1034-item
dendrogram with a non-trivial coarse structure within the scope of this
work is not feasible. Figure 4 is useful to see the diversity of the
models in S.P.L.O.T: there is not much thick branching, for instance
dividing the dataset into few large clusters.
3https://wordnet.princeton.edu/
4snapshot available at http://www.win.tue.nl/~obabur/data/AMMORE18.zip
57</p>
      <p>92
9 6
6
8 95</p>
      <p>529
73917
3845
26
8060
848817 513687805
155
482495
4"
it
ehg
H</p>
      <p>A Brief Qualitative Evaluation. The filtering steps reduced the
dataset size to 275. The resulting dendrogram for clustering those
275 models is given in Figure 3. The interpretation of the
dendrogram is that (1) the numbers on the dendrogram correspond to the
table row indices of the feature models as given in S.P.L.O.T. table
and (2) the joining height of individual branches are the
normalized distance (can be considered percentage dissimilarity) between
those two individual models or groups of models. Cutting the
dendrogram horizontally at height 0.8, we obtain 10 major clusters,
as shown in Figure 3 in dashed lined boxes with cluster labels at
the bottom. Inspecting the models, we can roughly attribute the
following domain labels to the clusters: cluster 1 of mobile media
and cluster 2 of mobile phone models, cluster 3 of models with
many feature names Feature-1, Feature-2, . . . Feature-N, cluster 4 of
voting/e-voting models in Portuguese (urna), cluster 5 of models
with many feature names F1, F2, F_1, and so on; cluster 6 of models
in Spanish about real estate (inmobiliaria), cluster 7 of models for
marketplaces (mostly in Spanish), cluster 8 of models with a lot of
abbreviations and numbers as feature names (see discussion below),
cluster 9 of e-shop and e-commerce models, cluster 10 of computer
models (mostly in Spanish).</p>
      <p>A precise account of the accuracy of this categorization is dificult
to give, as the dataset itself is not labeled. Instead we comment
about the clusters and some false positives we found by manual
inspection. Clusters 1 and 2 are very accurate, and we could find
cases where our tool successfully detected typos and NLP-related
changes. Cluster 3 has the upper part of the branch (say, higher
than 0.5 distance) seemingly less and less relevant; models with
few percentages of features with names Feature-X are detected as
partly relevant to this cluster.</p>
      <p>Cluster 4 is also a quite accurate account including non-English
(in this case Portuguese) models, although our tool cannot
specifically address them at the moment (e.g. with synonym detection in
other languages). Cluster 5 (F ′s) is conceptually similar to 3, but
does not have as many irrelevant models and is mostly accurate.
Clusters 6 and 7 are again mostly accurate except for an outlier
numbered 682 (about mass transport). Cluster 8 is the most
irrelevant one, where a lot of diferent models with abbreviations and
numbers as feature names are grouped together. Clusters 9 and 10
also seem quite accurate. In the latter, we even identified two
models about computers in diferent languages being correctly clustered
together thanks to some shared terms.</p>
      <p>A detailed account of the recall for this case study is left as
future work. One can arguably increase the recall (at the cost of
precision) by relaxing the parameters/thresholds more generously.
Note that there are certainly some more domains in the dataset
to be discovered, e.g. car and bike feature models. If there are too
many domains, it might be practical to handle all of the dataset
manually; a semi-automatic way could solve the problem and is left
as future work.
3.2</p>
    </sec>
    <sec id="sec-10">
      <title>Case Study 2 - Detecting Duplicates and</title>
    </sec>
    <sec id="sec-11">
      <title>Clones</title>
      <p>
        In this case study, we set the objective to obtain groups of very
similar feature models, both content- and structure-wise. We would
like to detect duplicates, clones, variants and versions in S.P.L.O.T. ,
easily seen with a brief inspection of the models in the repository.
Exact categorization of the found models into one of these is beyond
the scope of this work; we refer to all of those simply as clones. As
we want to capture as much information as possible, we turned
to use full bigrams (with types, cardinalities) and constraints here.
We used (1) no idf weighting, (2) relaxed type matching (with
nonexact type matches getting a reduced similarity multiplier). We
further used masked Bray-Curtis Distance with a density-based
clustering technique (please refer to [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] for this technique and [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
for clone detection in general—omitted due to space constraints).
In summary, we ran SAMOS with the clone detection setting on
the 1034-model dataset for detecting Type A, B and C clones [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
with respective distance thresholds of 0 (identical except cosmetic
changes), 0.1 (slightly diferent) and 0.3 (somewhat diferent).
5See http://www.win.tue.nl/~obabur/data/AMMORE18.zip for the full list of clones
already indicates that a relatively high percentage of the models
in S.P.L.O.T. is highly similar to other models in the repository.
The actual clone clusters with some examples are given in Table 3.
Inspecting a (random sample of) the clone clusters, we were able
to trace the following:
• Type A clones: SAMOS was able to detect Type A clones
very accurately; we found no incorrect labeling in the
validation subset. Manually inspecting the clusters, we found
the following changes which led to a Type A classification
(implying no significant change): change in the date of
creation of the model, feature model name, metadata, constraint
names (i.e. not the content), order of elements in the feature
tree and the CNF formulas, consistently changed feature id’s
(which lead to e.g. completely diferent looking constraint
formulas), and cosmetic changes in feature names (e.g.
upper/lower and snake/camel casing).
• Type B clones: SAMOS detected clones with a variety of
changes, ranging from simple modification of cardinalities,
textual changes in feature names (e.g. typos, additional
tokens) to addition or removal of features and constraints, and
moving of features to elsewhere in the feature tree as well.
Although all the clones we inspected were relevant, some
might arguably be categorized as higher level, namely type
C (see discussion about weighting and feature groups in
Section 4).
• Type C clones: SAMOS is again generally accurate in finding
higher percentage of addition, removal, or changes in feature
trees and constraints, although we identify certain
shortcomings. SAMOS (1) treats feature names such as Feature-1 and
Feature-2 as highly similar, which leads to an inaccurate
Type C classification (see e.g. line 3 of type C clones in
Table 3). Also due to the simplification of grouped features in
the form of bigrams, SAMOS is not able to distinguish very
well between e.g. grouped features in a strict alternative
feature group of cardinality 1..1, and the same features moved
outside as mandatory features (again with cardinalities 1..1).
The problem with weighting as mentioned above might lead
to some misjudgment and is subject to improvement.
4
      </p>
    </sec>
    <sec id="sec-12">
      <title>DISCUSSION AND FUTURE WORK</title>
      <p>The case studies show our approach can provide an insight into the
feature models in S.P.L.O.T., in terms of repository overview and
domain decomposition, and of duplicates a.k.a. clones. We extract
the information captured in the feature names, the ontological
hierarchy of the feature tree and the constraints (syntax only); and use
this to eficiently calculate approximate similarities among models.
Here we provide no quantitative evaluation on the accuracy of
our approach partly due to the lack of a labeled dataset and the
exploratory nature of the study. A brief qualitative evaluation yet
reveals our approach is indeed efective to a considerable extent
with room for improvements. It would be interesting to
quantitatively evaluate the efect of diferent settings, given a labeled dataset
(e.g. feature models with explicit domains for the first case study,
or mutated feature models for clone detection). In this section we
discuss several limitations of and improvements for our approach.</p>
      <p>Grouped features, configuration semantics: Given our choice of
bigram representation, we inaccurately extract group cardinalities
for each grouped feature. An improvement would be to switch to
tree representations in SAMOS (still in development) to properly
capture those. Furthermore, we do not perform any inference and
compare the syntactic constructs as is. Hence, it should be
further investigated how we can incorporate the inferred information,
though then the approach would would move towards comparing
knowledge bases. Another further step would be incorporating
attributes in extended feature models for comparison, which is not
supported by the S.P.L.O.T. dataset, and left as an open problem.</p>
      <p>Weighting, fine tuning: At the moment we did not use any
weighting scheme in this paper, such as type-based weighting (e.g.
constraints having less weight than the feature tree) as supported by
SAMOS, but also advanced ones. An initial idea for the latter would
be depth-dependent weighting, i.e. features lower in the tree
hierarchy get lower weights, hence attributing more importance to higher
level features (which are arguably more general or abstract, e.g. as
mere structural units, more coarse grained/architecture-related).
Inspecting the results of the clone detection, we believe a fine-tuned
weighting scheme could improve the clone classification, especially
around boundaries between Type B, C and higher thresholds.</p>
      <p>NLP settings: The S.P.L.O.T. dataset brings several new
challenges for our framework’s NLP capabilities, notably due to its
multi-language heterogeneous nature. There are models in
English, Spanish, Portuguese, Indonesian, etc. in the repository, which
renders our English-based NLP tools inadequate. In an
orthogonal direction for improvement, the framework could be extended
with multi-language NLP, including e.g. tokenizers and even
crosslanguage synonym checkers. The features labeled as Feature-1 or
F1, or cryptically abbreviated, pose yet another challenge.</p>
      <p>Threats to validity. There are several threats to validity for our
work, mostly stemming from the exploratory approach. The
settings we have chosen for the case studies may not be the most
eficient and accurate ones, but were chosen mostly for simplicity
and demonstration purposes. A quantitative evaluation of
diferent parameters and thresholds, and more importantly on labelled
datasets (e.g. explicit domain labels for case study 1, clones for case
study 2) would be required for a more precise account.
5</p>
    </sec>
    <sec id="sec-13">
      <title>CONCLUSION</title>
      <p>In this paper we have presented an application of our generic model
clustering technique to feature models. We have extended our
framework to extract information from feature models and eficiently but
approximately compare models. With two exploratory case studies
on the 1034-model dataset in the S.P.L.O.T. repository, we get (1) a
repository overview and major domains therein, (2) very similar
models in the repository such as duplicates and clones. Based on the
studies, we conclude that our approach is applicable for clustering
feature models to a great extent. Following the two objectives we
set in the beginning, we both confirm the genericity and
applicability of our approach for diferent types of models, and provide
a new perspective on the comparison of feature models for the
SPL community. Indeed, our approach can help with the use and
maintenance of emerging repositories such as S.P.L.O.T.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Mathieu</given-names>
            <surname>Acher</surname>
          </string-name>
          , Benoit Baudry, Patrick Heymans, Anthony Cleve, and
          <string-name>
            <surname>Jean-Luc Hainaut</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Support for reverse engineering and maintaining feature models</article-title>
          .
          <source>In Int. Workshop on Variability modelling of Software-intensive Systems. ACM</source>
          ,
          <volume>20</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Mathieu</given-names>
            <surname>Acher</surname>
          </string-name>
          , Benoit Combemale, Philippe Collet, Olivier Barais, Philippe Lahire, and Robert B France.
          <year>2013</year>
          .
          <article-title>Composing your compositions of variability models</article-title>
          .
          <source>In Int. Conf. on Model Driven Engineering Languages and Systems</source>
          . Springer,
          <fpage>352</fpage>
          -
          <lpage>369</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Mathieu</given-names>
            <surname>Acher</surname>
          </string-name>
          , Patrick Heymans, Philippe Collet, Clément Quinton, Philippe Lahire, and
          <string-name>
            <given-names>Philippe</given-names>
            <surname>Merle</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Feature model diferences</article-title>
          .
          <source>In Int. Conf. on Advanced Information Systems Engineering</source>
          . Springer,
          <fpage>629</fpage>
          -
          <lpage>645</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Vander</given-names>
            <surname>Alves</surname>
          </string-name>
          , Christa Schwanninger, Luciano Barbosa, Awais Rashid,
          <string-name>
            <given-names>Peter</given-names>
            <surname>Sawyer</surname>
          </string-name>
          , Paul Rayson, Christoph Pohl, and
          <string-name>
            <given-names>Andreas</given-names>
            <surname>Rummler</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>An exploratory study of information retrieval techniques in domain analysis</article-title>
          .
          <source>In Software Product Line Conference</source>
          ,
          <year>2008</year>
          . SPLC'
          <volume>08</volume>
          . 12th International. IEEE,
          <fpage>67</fpage>
          -
          <lpage>76</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Önder</given-names>
            <surname>Babur</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Clone Detection for Ecore Metamodels using N-grams</article-title>
          .
          <source>In Proc. of the 6th Int. Conf. on Model-Driven Engineering and Software Development</source>
          ,
          <year>2018</year>
          .
          <fpage>411</fpage>
          -
          <lpage>419</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Önder</given-names>
            <surname>Babur</surname>
          </string-name>
          and
          <string-name>
            <given-names>Loek</given-names>
            <surname>Cleophas</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Using n-grams for the Automated Clustering of Structural Models</article-title>
          .
          <source>In 43rd Int. Conf. on Current Trends in Theory and Practice of Computer Science</source>
          .
          <volume>510</volume>
          -
          <fpage>524</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Önder</given-names>
            <surname>Babur</surname>
          </string-name>
          , Loek Cleophas, and Mark van den Brand.
          <year>2016</year>
          .
          <article-title>Hierarchical Clustering of Metamodels for Comparative Analysis and Visualization</article-title>
          .
          <source>In Proc. of the 12th European Conf. on Modelling Foundations and Applications</source>
          ,
          <year>2016</year>
          .
          <fpage>2</fpage>
          -
          <lpage>18</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Önder</given-names>
            <surname>Babur</surname>
          </string-name>
          , Loek Cleophas, Mark van den Brand, Bedir Tekinerdogan, and
          <string-name>
            <given-names>Mehmet</given-names>
            <surname>Aksit</surname>
          </string-name>
          .
          <year>2018</year>
          . Models,
          <string-name>
            <given-names>More</given-names>
            <surname>Models</surname>
          </string-name>
          , and
          <article-title>Then a Lot More</article-title>
          .
          <source>In Software Technologies: Applications and Foundations</source>
          ,
          <source>Martina Seidl and Stefen Zschaler (Eds.)</source>
          . Springer International Publishing, Cham,
          <fpage>129</fpage>
          -
          <lpage>135</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Francesco</given-names>
            <surname>Basciani</surname>
          </string-name>
          , Juri Di Rocco, Davide Di Ruscio, Ludovico Iovino, and
          <string-name>
            <given-names>Alfonso</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Automated clustering of metamodel repositories</article-title>
          .
          <source>In Int. Conf. on Advanced Information Systems Engineering</source>
          . Springer,
          <fpage>342</fpage>
          -
          <lpage>358</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Guillaume</surname>
            <given-names>Bécan</given-names>
          </string-name>
          , Sana Ben Nasr, Mathieu Acher, and
          <string-name>
            <given-names>Benoit</given-names>
            <surname>Baudry</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>WebFML: synthesizing feature models everywhere</article-title>
          .
          <source>In Proceedings of the 18th International Software Product Line Conference: Companion Volume for Workshops</source>
          ,
          <article-title>Demonstrations and Tools-Volume 2</article-title>
          . ACM,
          <volume>112</volume>
          -
          <fpage>116</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <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-Cortés.
          <year>2010</year>
          .
          <article-title>Automated analysis of feature models 20 years later: A literature review</article-title>
          .
          <source>Information Systems</source>
          <volume>35</volume>
          ,
          <issue>6</issue>
          (
          <year>2010</year>
          ),
          <fpage>615</fpage>
          -
          <lpage>636</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Johannes</surname>
            <given-names>Bürdek</given-names>
          </string-name>
          , Timo Kehrer, Malte Lochau,
          <string-name>
            <given-names>Dennis</given-names>
            <surname>Reuling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Udo</given-names>
            <surname>Kelter</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Andy</given-names>
            <surname>Schürr</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Reasoning about product-line evolution using complex feature model diferences</article-title>
          .
          <source>Automated Software Engineering</source>
          (
          <year>2015</year>
          ),
          <fpage>1</fpage>
          -
          <lpage>47</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Nicolas</surname>
            <given-names>Dintzner</given-names>
          </string-name>
          , Arie van Deursen, and
          <string-name>
            <given-names>Martin</given-names>
            <surname>Pinzger</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Analysing the Linux kernel feature model changes using FMDif</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          (
          <year>2015</year>
          ),
          <fpage>1</fpage>
          -
          <lpage>22</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <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>
          .
          <year>1990</year>
          .
          <article-title>Feature-oriented domain analysis (FODA) feasibility study</article-title>
          .
          <source>Technical Report. DTIC Document.</source>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Rainer</given-names>
            <surname>Koschke</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Survey of research on software clones</article-title>
          .
          <source>In Dagstuhl Seminar Proceedings. Schloss Dagstuhl-Leibniz-Zentrum für Informatik.</source>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Harold</surname>
            <given-names>W</given-names>
          </string-name>
          <string-name>
            <surname>Kuhn</surname>
          </string-name>
          .
          <year>1955</year>
          .
          <article-title>The Hungarian method for the assignment problem</article-title>
          .
          <source>Naval research logistics quarterly 2</source>
          ,
          <fpage>1</fpage>
          -
          <lpage>2</lpage>
          (
          <year>1955</year>
          ),
          <fpage>83</fpage>
          -
          <lpage>97</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Christopher</surname>
            <given-names>D</given-names>
          </string-name>
          <string-name>
            <surname>Manning</surname>
            , Prabhakar Raghavan,
            <given-names>Hinrich</given-names>
          </string-name>
          <string-name>
            <surname>Schütze</surname>
          </string-name>
          , et al.
          <year>2008</year>
          .
          <article-title>Introduction to information retrieval</article-title>
          . Vol.
          <volume>1</volume>
          . Cambridge university press Cambridge.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Christopher</surname>
            <given-names>D</given-names>
          </string-name>
          <string-name>
            <surname>Manning</surname>
            and
            <given-names>Hinrich</given-names>
          </string-name>
          <string-name>
            <surname>Schütze</surname>
          </string-name>
          .
          <year>1999</year>
          .
          <article-title>Foundations of statistical natural language processing</article-title>
          . Vol.
          <volume>999</volume>
          . MIT Press.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Sergey</surname>
            <given-names>Melnik</given-names>
          </string-name>
          , Hector Garcia-Molina, and
          <string-name>
            <given-names>Erhard</given-names>
            <surname>Rahm</surname>
          </string-name>
          .
          <year>2002</year>
          .
          <article-title>Similarity flooding: A versatile graph matching algorithm and its application to schema matching</article-title>
          .
          <source>In Data Engineering</source>
          ,
          <year>2002</year>
          .
          <source>Proc. 18th Int. Conf. on. IEEE</source>
          ,
          <fpage>117</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Marcilio</surname>
            <given-names>Mendonca</given-names>
          </string-name>
          , Moises Branco, and
          <string-name>
            <given-names>Donald</given-names>
            <surname>Cowan</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>SPLOT: software product lines online tools</article-title>
          .
          <source>In Proc. of the 24th ACM SIGPLAN Conf. Companion on Object oriented Prog. Systems Languages and Applications</source>
          . ACM,
          <volume>761</volume>
          -
          <fpage>762</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Pierre-Yves</surname>
            <given-names>Schobbens</given-names>
          </string-name>
          , Patrick Heymans,
          <string-name>
            <surname>Jean-Christophe Trigaux</surname>
            , and
            <given-names>Yves</given-names>
          </string-name>
          <string-name>
            <surname>Bontemps</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Generic semantics of feature diagrams</article-title>
          .
          <source>Computer Networks</source>
          <volume>51</volume>
          ,
          <issue>2</issue>
          (
          <year>2007</year>
          ),
          <fpage>456</fpage>
          -
          <lpage>479</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Christoph</surname>
            <given-names>Seidl</given-names>
          </string-name>
          , Tim Winkelmann, and
          <string-name>
            <given-names>Ina</given-names>
            <surname>Schaefer</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>A software product line of feature modeling notations and cross-tree constraint languages</article-title>
          .
          <source>Modellierung</source>
          (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Steven</surname>
            <given-names>She</given-names>
          </string-name>
          , Rafael Lotufo, Thorsten Berger, Andrzej Wasowski, and
          <string-name>
            <given-names>Krzysztof</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Reverse engineering feature models</article-title>
          .
          <source>In Software Engineering (ICSE)</source>
          ,
          <year>2011</year>
          33rd International Conference on. IEEE,
          <fpage>461</fpage>
          -
          <lpage>470</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>Matthew</given-names>
            <surname>Stephan and James R Cordy</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>A Survey of Model Comparison Approaches and Applications.</article-title>
          . In Modelsward.
          <volume>265</volume>
          -
          <fpage>277</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Thomas</surname>
            <given-names>Thüm</given-names>
          </string-name>
          , Don Batory, and
          <string-name>
            <given-names>Christian</given-names>
            <surname>Kästner</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Reasoning about edits to feature models</article-title>
          .
          <source>In 31st Int. Conf. on Software Engineering. IEEE</source>
          ,
          <fpage>254</fpage>
          -
          <lpage>264</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>Zhenchang</given-names>
            <surname>Xing</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Model comparison with GenericDif</article-title>
          .
          <source>In Proc. of the IEEE/ACM Int. Cont. on Automated Software Engineering. ACM</source>
          ,
          <volume>135</volume>
          -
          <fpage>138</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>