<!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>Towards a Framework for Feature Deduplication during Software Product Lines Evolution</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Amal Khtira (Supervised by  Bouchra El Asri)</string-name>
          <email>amalkhtira@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>IMS Team, SIME Laboratory, ENSIAS, Mohammed V University Rabat</institution>
          ,
          <country country="MA">Morocco</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Software product lines are long-living systems that evolve continuously over time to satisfy the new requirements of customers. This evolution consists of adding or modifying features in the core platform of the product line or in derived products. As a result of this change, many model defects can occur, such as inconsistency and duplication. In this paper, we describe our work which proposes a framework to manage the software product line evolutions. The aim of the framework is to formalize the representation of the software product line models and the speci cations of the new evolutions. Then, a set of algorithms are provided which enable the detection of feature duplication.</p>
      </abstract>
      <kwd-group>
        <kwd>Software Product Line</kwd>
        <kwd>Evolution</kwd>
        <kwd>Feature Duplication</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The Software Product Line Engineering (SPLE) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is an approach that aims at
creating individual software applications based on a core platform, while
reducing the time-to-market and the cost of development. Many SPLE-related issues
have been addressed both by researchers and practitioners, such as variability
management, product derivation, reusability, etc. The focus of our work will be
on SPL evolution.
      </p>
      <p>
        The evolution of a SPL involves both changes in the domain model of the
product line and the application models of derived products. This evolution
consists of adding new features or modifying or deleting existing ones. As a result
of these changes, many model defects can arise. In the literature, many papers
have dealt with defects such as the incompleteness and inconsistency of features
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and the non-conformance of constraints [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Other papers have dealt
with duplication in the code level [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], but few have addressed the problem of
features duplication. Our study is di erent because it aims at nding a solution
to the problem of duplication in the feature level, which helps avoid wasting
time and e ort in implementing duplicate functionalities. Thus, we propose a
framework that focuses especially on this speci c issue.
      </p>
      <p>Our approach allows, among others, to formalize the representation of the
feature models related to software product lines and of the speci cations of the
new evolutions. Based on the uni cation of these inputs, a set of algorithms are
proposed to enable an e cient detection of features duplication. An automated
tool will be developed and its accuracy will be veri ed incrementally using a
case study until we achieve satisfying results.</p>
      <p>The rest of the paper is organized as follows. Section 2 positions our approach
with related works. In Section 3, we de ne the research questions and the research
goal. In Section 4, we describe the methodology used to carry out our study,
namely the DSRM process model. Section 5 explains our approach aiming at
detecting duplication when evolving software product lines and presents the
progress of our work. Finally, Section 6 concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        A plethora of papers have dealt with evolution in software product lines. This
evolution concerns either the feature level, the architecture level or the code
level. In our approach, we focus especially on features evolution. When evolving
the product line or its derived products, some defects can be introduced to the
existing models. Several papers in the literature have addressed model defects.
For example, Guo and Wang [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] propose to limit the consistency maintenance
to the part of the feature model that is a ected by the requested change
instead of the whole feature model. Romero et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] introduced SPLEmma, a
generic evolution framework that enables the validation of controlled SPL
evolution by following a Model Driven Engineering approach. This study focused,
among others, on SPL consistency during evolution. Mazo [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] de nes di
erent veri cation criteria of the product line model and classi es them into four
categories: expressiveness criteria, consistency criteria, error-prone criteria and
redundancy-free criteria.
      </p>
      <p>
        Since the model defects are introduced most of the time from speci cations,
many studies have dealt with the detection of defects in speci cations. For
instance, Lami et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] present a methodology and a tool called QuARS
(Quality Analyzer for Requirement Speci cations) which performs an initial parsing
of the speci cations in order to detect automatically speci c linguistic defects,
namely inconsistency, incompleteness and ambiguity. Kamalrudin et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] use
the automated tracing tool Marama in order to give the possibility to users to
capture their requirements and automatically generate the Essential Use Cases
(EUC). This tool supports the inconsistency checking between the textual
requirements, the abstract interactions and the EUCs. Holtmann et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
proposed an approach that uses an extended CNL (controlled natural language)
from the automotive industry. The CNL requirements are rst translated into
an ASG (Abstract Syntax Graph) typed by a requirements metamodel. Then,
structural patterns are used to allow an automated correction of some
requirements errors and the validation of requirements due to new evolutions. A system
called CIRCE was introduced by Ambriola and Gervasi [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. The system
processes natural language requirements to build semi-formal models in an almost
automatic fashion, then checks the consistency of these models and produces
functional metric reports. Zowghi [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] provides an evolutionary framework that
deals with inconsistency and incompleteness in a way that ensures the
correctness of speci cations.
      </p>
      <p>An analysis of the literature shows that the majority of studies deal with
inconsistency, while the problem of feature duplication has not been thoroughly
treated. In addition, these studies focus either on the detection of defects in
feature models or in speci cations, but do not address the comparison between
the new features and the existing ones to avoid the introduction of defects into
the SPL.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Research Questions and Research Goal</title>
      <p>
        Feature Duplication is among the defects that can be introduced into the model
during software product lines evolution. According to [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], this defect occurs
due to many reasons, such as mistakes in the design, the non-synchronization
between the di erent people working on the project, the rapid implementation
of requirements without referring to the existing models, etc. In the purpose of
solving this problem, we need to answer the following research questions:
{ How can we de ne feature duplication?
{ How to detect feature duplication when evolving software product lines?
{ How can we avoid the introduction of duplication in the SPL?
      </p>
      <p>When evolving a software product line, the duplication of features must be
veri ed in three levels: in the feature models (domain model and application
models), in the speci cation of the new evolution, and between the feature
models and the speci cation. Thus, other speci c research sub-questions have to be
answered:
{ How can we formalize the representation of the feature models and the
natural language speci cations in order to facilitate the deduplication process?
{ How can we detect feature duplication between the new speci cations and
the existing feature models?
{ How to avoid the introduction of duplicate features from speci cations to
the existing models of software product lines?
Based on the research questions, the goal of our work is to construct:
"A framework that aims at formalizing and unifying the representation
of the SPL feature models and the speci cations of new evolutions,
detecting duplicate features, and generating duplication-free speci cations.
To enable an automatic deduplication, a tool will be developed based on
the proposed framework."</p>
    </sec>
    <sec id="sec-4">
      <title>Research Methodology</title>
      <p>
        In our study, we adopt a design science approach in IS. The purpose of design
science as stated by Hevner et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] is to build and evaluate IT artifacts
designed to solve identi ed business problems. In order to structure our work, we
use the Design Science Research Methodology (DSRM) process model proposed
by Pe ers et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. It is a sequential process based on six main activities:
Problem identi cation and motivation, De nition of objectives for the solution,
Design and development, Demonstration, Evaluation and Communication.
Figure 1 illustrates the customized steps of the adopted process.
      </p>
      <p>In the rest of this section, we describe the details of each of the process steps.
The introduction of new features into the domain and application models of
a software product line can be the source of many model defects (e. g.
inconsistency, incorrectness, incompleteness, redundancy). A review of the literature
has shown that these defects have been treated by several studies, while little
attention has been given to the problem of feature duplication.</p>
      <p>
        The main objectives of a software product line are the reduction of
timeto-market, the reduction of cost, and the improvement of product quality. The
introduction of duplication in a SPL prevents from meeting these objectives,
because it causes a waste of time, money and e ort by implementing the same
functionalities many times. In addition, duplicate features can change
independently from each other, which may cause inconsistencies in the model. For
example, a feature can be deleted or modi ed while its copy in another place remains
the same, which leads to a contradiction. Moreover, duplication in the feature
level impacts the quality of the product by causing the famous problem of code
cloning, resulting in the recurring-bug problem and the increase of the
maintenance e ort [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. A solution is thus necessary to detect duplicate features in the
rst step of an evolution, which is requirements analysis, which helps avoid their
inclusion into the existing models from the very beginning.
4.2
      </p>
      <sec id="sec-4-1">
        <title>De nition of Objectives for the Solution</title>
        <p>The objective of our solution is to detect feature duplication between the existing
feature models and the new speci cations related to a software product line
evolution. To achieve this, our artifact has two main concerns. First, the artifact
must allow the formalization of the feature models and the speci cations in order
to facilitate the veri cation of defects. The second concern of the artifact is to
detect and remove duplicate features by providing a set of algorithms.
4.3</p>
      </sec>
      <sec id="sec-4-2">
        <title>Design and Development</title>
        <p>This step consists of designing and building the artifact. Hence, we de ne in
details the basic framework of our approach, which should meet the objectives
set during the previous stage. The rst action is thus to identify a method and
select tools to formalize the representation of the framework inputs. The second
action consists of de ning a set of algorithms to detect duplication in the level
of speci cations, in the level of feature models, then between the speci cations
and the SPL models. Since manual veri cation has proved to be time-consuming
and error prone, a tool is to be developed based on the framework in order to
automatize the two actions.
4.4</p>
      </sec>
      <sec id="sec-4-3">
        <title>Demonstration</title>
        <p>To demonstrate the e cacy of our solution, we will use a case study from the
CRM (Customer Relationship Management) eld. Indeed, a CRM project has to
follow continuously the market change at the lowest possible cost and satisfy new
requirements of customers on tight deadlines. Consequently, an optimization of
the requirements implementation is necessary, which requires an e cient
verication of the model defects, especially duplication. Thus, we take the feature
model of the CRM and the textual speci cations of a new evolution as inputs of
the automated tool. In the rst place, the two inputs have to be formalized and
uni ed. Then, the algorithms of deduplication are applied to detect and remove
the duplicate features.
4.5</p>
      </sec>
      <sec id="sec-4-4">
        <title>Evaluation</title>
        <p>After the development of the artifact, an iterative evaluation is necessary to
determine how e ective it is. This evaluation is carried out using some metrics
such us the number of detected duplications in a speci cation, or the percentage of
duplicate features between a speci cation and a feature model. To decide whether
the results generated by the artifact are satisfying or not, we de ne the required
values of the proposed metrics in agreement with the customer.
4.6</p>
      </sec>
      <sec id="sec-4-5">
        <title>Communication</title>
        <p>
          The identi ed problem and the proposed artifact are communicated to researchers
through several publications in conferences and journals. Hitherto, we published
a rst paper in the proceeding of the ICSEA 2014 Conference [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], in which we
de ned duplication and proposed a rst design of the framework and the
formalization of the basic concepts of our solution. An extended version of this paper
is under review [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Two other papers on the same subject are under publication
[
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. In [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], we deal with the duplication detection in the speci cations
of new evolutions, while in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] we address the duplication between the speci
cations and the existing feature models. As this work progresses, we intend to
publish other papers to communicate the new results.
5
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Proposed Approach and Work Progress</title>
      <p>To deal with the problem of duplication in software product lines, we propose an
approach based on a two-process framework. The rst process consists of
formalizing and unifying the representation of the SPL models and the speci cations
of an evolution. The second process involves the detection and removal of
duplicated features caused by the new evolution. Figure 2 represents the proposed
framework.</p>
      <p>
        During the domain engineering of a software product line, the common and
variant features of all the speci c applications are captured. To document and
model variability, many approaches have been proposed. For instance, [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
introduced the orthogonal variability model which de nes variability in a separate
way. Salinesi et al. [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] used a constraint-based product line language. Other
approaches proposed to model variability using UML models or feature models
(FODA [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]). In our study, we opt for the FODA method used by the
Featureoriented software development (FOSD) paradigm [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] whose objective is to
generate automatically software products based on the feature models. Hence, tools
such as FeatureIDE [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] have been proposed to formalize the representation of
feature models and enable the automatic selection of features of derived
products. This tool will be used during the rst process of our framework.
      </p>
      <p>
        During the evolution of a derived product, the requirements are most of
the time expressed in the form of natural language speci cations. This form
of presentation makes it di cult to detect the di erent defects that can occur
(Duplication in our case). To deal with this problem, the solution is to
transform natural language speci cations into formal or semi-formal speci cations.
For this, we adopt a Natural Language Processing (NLP) approach. NLP is a
technology of computer science whose objective is to process sentences in a
natural language such as English and to build output based on the rules of a target
language understandable by the machine. In our study, the purpose is to
transform speci cations into the same format of the SPL feature models by using
syntax and semantic parsers. The syntax parser analyzes the speci cations and
generates the syntactic tree based on the English grammar, while the semantic
parser extracts the meaning of the sentences. The operation of parsing will be
performed using the OpenNLP library [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], which is a machine learning based
toolkit for the processing of natural language text.
      </p>
      <p>The second process of the framework consists of applying a set of algorithms
of search and comparison to detect duplications in the processed speci cations,
feature models and between these two inputs. To help de ne the algorithms, we
need to express mathematically the di erent concepts of the framework.</p>
      <p>
        So far, we have identi ed the processes of the framework and its basic
concepts [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. We have started the de nition of the algorithms of duplication
detection in the speci cations [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], and between the speci cations and the feature
models [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. In future work, we intend to implement our approach by designing
an automated tool that takes as inputs the domain feature model of a SPL,
the application feature model of a derived product and the speci cation of an
evolution. The output generated by this tool is the list of duplicate features in
these inputs and those caused by the evolution. This output will be sent to the
customer to verify his initial needs and change them if necessary.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>This paper contains an overview of our thesis dealing with software product line
evolution. After a review of the existing approaches concerning the detection
of model defects when evolving SPLs, we decided to focus on the resolution
of a speci c problem, which is feature duplication. The objective of this study
is to construct a framework that helps detect and remove duplicate features
introduced by new evolutions. An automated tool is to be developed to avoid
the complexity of manual veri cation. The evaluation of the artifact will be
performed by applying it to a case study from the CRM eld.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Northop</surname>
          </string-name>
          ,
          <source>Software Product Lines - Practices and Patterns</source>
          , Boston: Addison-Wesley,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Bockle, and</article-title>
          <string-name>
            <given-names>F.</given-names>
            <surname>Van Der Linden</surname>
          </string-name>
          , Software Product Line Engineering Foundations, Principles, and
          <string-name>
            <surname>Techniques</surname>
          </string-name>
          , Berlin, Germany: Springer-Verlag,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>A.</given-names>
            <surname>Reder</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          ,
          <article-title>"Determining the cause of a design model inconsistency,"</article-title>
          <source>IEEE Transactions on Software Engineering</source>
          , vol.
          <volume>39</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>15311548</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Zowghi</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Gervasi</surname>
          </string-name>
          ,
          <article-title>"On the interplay between consistency, completeness, and correctness in requirements evolution,"</article-title>
          <source>Information and Software Technology</source>
          , vol.
          <volume>46</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>763</fpage>
          -
          <lpage>779</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>D.</given-names>
            <surname>Romero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Urli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Quinton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Blay-Fornarino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Collet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Duchien</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Mosser</surname>
          </string-name>
          ,
          <article-title>"SPLEMMA: a generic framework for controlled-evolution of software product lines,"</article-title>
          <source>in Proc. 17th International Software Product Line Conference colocated workshops, ACM</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>59</fpage>
          -
          <lpage>66</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>R.</given-names>
            <surname>Mazo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Lopez-Herrejon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Salinesi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Diaz</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          ,
          <article-title>"Conformance checking with constraint logic programming: The case of feature models,"</article-title>
          <source>in Proc. COMPSAC'11</source>
          , IEEE,
          <year>2011</year>
          , pp.
          <fpage>456</fpage>
          -
          <lpage>465</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S.</given-names>
            <surname>Schulze</surname>
          </string-name>
          ,
          <article-title>"Analysis and removal of code clones in software product lines," Doctoral dissertation</article-title>
          , Magdeburg, Universitt, Diss.,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>A.</given-names>
            <surname>Khtira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Benlarabi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. El</given-names>
            <surname>Asri</surname>
          </string-name>
          ,
          <article-title>"Towards Duplication-Free Feature Models when Evolving Software Product Lines,"</article-title>
          <source>in Proc. 9th International Conference on Software Engineering Advances (ICSEA'14)</source>
          , Oct.
          <year>2014</year>
          , pp.
          <fpage>107</fpage>
          -
          <lpage>113</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>A.</given-names>
            <surname>Khtira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Benlarabi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. El</given-names>
            <surname>Asri</surname>
          </string-name>
          ,
          <article-title>"A Framework for Ensuring Duplication-Free Feature Models when Evolving Software Product Lines," Submited for publication to "</article-title>
          <source>International Journal On Advances in Software"</source>
          , under review.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.</given-names>
            <surname>Khtira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Benlarabi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. El</given-names>
            <surname>Asri</surname>
          </string-name>
          ,
          <article-title>"Detecting Feature Duplication in Natural Language Speci cations when Evolving Software Product Lines," Accepted in the 10th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE'15), under publication</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>A.</given-names>
            <surname>Khtira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Benlarabi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. El</given-names>
            <surname>Asri</surname>
          </string-name>
          ,
          <article-title>"An Approach to Detect Duplication in Software Product Lines Using Natural Language Processing," Accepted in the Mediterranean Conference on Information and Communication Technologies (MEDICT'15), under publication</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>J.</given-names>
            <surname>Guo</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>"Towards consistent evolution of feature models,"</article-title>
          <source>In. Software Product Lines: Going Beyond</source>
          , Springer Berlin Heidelberg,
          <year>2010</year>
          , pp.
          <fpage>451</fpage>
          -
          <lpage>455</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>R.</given-names>
            <surname>Mazo</surname>
          </string-name>
          ,
          <article-title>"A generic approach for automated veri cation of product line models,"</article-title>
          <source>Ph.D. thesis</source>
          , Pantheon-Sorbonne University,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. G. Lami,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gnesi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Fabbrini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Fusani</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Trentanni</surname>
          </string-name>
          ,
          <article-title>"An automatic tool for the analysis of natural language requirements," Informe tcnico</article-title>
          ,
          <source>CNR Information Science and Technology Institute</source>
          , Pisa, Italia, Sept.
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>M. Kamalrudin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Grundy</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Hosking</surname>
          </string-name>
          ,
          <article-title>"Managing consistency between textual requirements, abstract interactions and Essential Use Cases,"</article-title>
          <source>in Proc. COMPSAC'10</source>
          , IEEE,
          <year>July 2010</year>
          , pp.
          <fpage>327</fpage>
          -
          <lpage>336</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>J. Holtmann</surname>
          </string-name>
          , J. Meyer, and M. von
          <string-name>
            <surname>Detten</surname>
          </string-name>
          ,
          <article-title>"Automatic validation and correction of formalized, textual requirements,"</article-title>
          <source>in Proc. 4th International Conference on Software Testing</source>
          ,
          <article-title>Veri cation and Validation Workshops (ICSTW), IEEE</article-title>
          , Mar.
          <year>2011</year>
          , pp.
          <fpage>486</fpage>
          -
          <lpage>495</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>V.</given-names>
            <surname>Ambriola</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Gervasi</surname>
          </string-name>
          ,
          <article-title>"Processing Natural Language Requirements,"</article-title>
          <source>in Proc. 12th IEEE Conference on Automated Software Engineering (ASE'97)</source>
          , IEEE Computer Society Press, Nov.
          <year>1997</year>
          , pp.
          <fpage>36</fpage>
          -
          <lpage>45</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>A.</given-names>
            <surname>Hunt</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Thomas</surname>
          </string-name>
          ,
          <article-title>The pragmatic programmer: from journeyman to master</article-title>
          , Addison-Wesley
          <string-name>
            <surname>Professional</surname>
          </string-name>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>A. R. Hevner</surname>
            ,
            <given-names>S. T.</given-names>
          </string-name>
          <string-name>
            <surname>March</surname>
            , J. Park, and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Sudha</surname>
          </string-name>
          ,
          <article-title>"Design science in information systems research,"</article-title>
          <source>MIS quarterly</source>
          , vol.
          <volume>28</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>75</fpage>
          -
          <lpage>105</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. K. Pe ers, T. Tuunanen,
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Rothenberger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Chatterjee</surname>
          </string-name>
          ,
          <article-title>"A design science research methodology for information systems research,"</article-title>
          <source>Journal of management information systems</source>
          , vol.
          <volume>24</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>45</fpage>
          -
          <lpage>77</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. L.
          <string-name>
            <surname>Aversano</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Cerulo</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Di Penta</surname>
          </string-name>
          ,
          <article-title>"How clones are maintained: An empirical study,"</article-title>
          <source>11th European Conference on Software Maintenance and Reengineering (CSMR'07)</source>
          , IEEE,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>C. Salinesi</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Mazo</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Djebbi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Diaz</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Lora-Michiels</surname>
          </string-name>
          ,
          <article-title>"Constraints: the Core of Product Line Engineering,"</article-title>
          <source>In. RCIS11</source>
          , IEEE, Guadeloupe- French West Indies, France, May
          <volume>19</volume>
          -21,
          <year>2011</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>K.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hess</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Novak</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Peterson</surname>
          </string-name>
          ,
          <article-title>"Feature-Oriented Domain Analysis (FODA) Feasibility Study,"</article-title>
          <source>Technical Report CMU/SEI-90-TR-21</source>
          , Carnegie Mellon University, Software Engineering Institute, Nov.
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>S.</given-names>
            <surname>Apel</surname>
          </string-name>
          and
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Kastner, "An Overview of Feature-Oriented Software Development,"</article-title>
          <source>Journal of Object Technology (JOT)</source>
          ,
          <source>vol. 8</source>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>84</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25. C. Kastner, T. Thum, G. Saake,
          <string-name>
            <given-names>J.</given-names>
            <surname>Feigenspan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Leich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Wielgorz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Apel</surname>
          </string-name>
          ,
          <article-title>"FeatureIDE: A Tool Framework for Feature-Oriented Software Development,"</article-title>
          <source>in Proc. The 31st International Conference on Software Engineering</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>611</fpage>
          -
          <lpage>614</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <article-title>The Apache Software Foundation, "OpenNLP," opennlp</article-title>
          .apache.org.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>