<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//TaxonX//DTD Taxonomic Treatment Publishing DTD v0 20100105//EN" "../../nlm/tax-treatment-NS0.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tp="http://www.plazi.org/taxpub" article-type="research-article" dtd-version="3.0" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">109</journal-id>
      <journal-id journal-id-type="index">urn:lsid:arphahub.com:pub:3dc5f44e-8666-58db-bc76-a455210e8891</journal-id>
      <journal-title-group>
        <journal-title xml:lang="en">JUCS - Journal of Universal Computer Science</journal-title>
        <abbrev-journal-title xml:lang="en">jucs</abbrev-journal-title>
      </journal-title-group>
      <issn pub-type="ppub">0948-695X</issn>
      <issn pub-type="epub">0948-6968</issn>
      <publisher>
        <publisher-name>Journal of Universal Computer Science</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.3217/jucs-017-05-0684</article-id>
      <article-id pub-id-type="publisher-id">29928</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Research Article</subject>
        </subj-group>
        <subj-group subj-group-type="scientific_subject">
          <subject>D.2.13 - Reusable Software</subject>
          <subject>D.2.2 - Design Tools and Techniques</subject>
          <subject>D.2.7 - Distribution</subject>
          <subject> Maintenance</subject>
          <subject> and Enhancement</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Automatically Checking Feature Model Refactorings</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Gheyi</surname>
            <given-names>Rohit</given-names>
          </name>
          <email xlink:type="simple">rohit@dsc.ufcg.edu.br</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Massoni</surname>
            <given-names>Tiago</given-names>
          </name>
          <xref ref-type="aff" rid="A2">2</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Borba</surname>
            <given-names>Paulo</given-names>
          </name>
          <xref ref-type="aff" rid="A3">3</xref>
        </contrib>
      </contrib-group>
      <aff id="A1">
        <label>1</label>
        <addr-line content-type="verbatim">Campina Grande, , Brazil</addr-line>
        <institution>Campina Grande</institution>
        <country>Brazil</country>
      </aff>
      <aff id="A2">
        <label>2</label>
        <addr-line content-type="verbatim">Federal University of Campina Grande, Campina Grande, Brazil</addr-line>
        <institution>Federal University of Campina Grande</institution>
        <addr-line content-type="city">Campina Grande</addr-line>
        <country>Brazil</country>
      </aff>
      <aff id="A3">
        <label>3</label>
        <addr-line content-type="verbatim">Federal University of Pernambuco, Recife, Brazil</addr-line>
        <institution>Federal University of Pernambuco</institution>
        <addr-line content-type="city">Recife</addr-line>
        <country>Brazil</country>
      </aff>
      <author-notes>
        <fn fn-type="corresp">
          <p>Corresponding author: Rohit Gheyi (<email xlink:type="simple">rohit@dsc.ufcg.edu.br</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2011</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>01</day>
        <month>03</month>
        <year>2011</year>
      </pub-date>
      <volume>17</volume>
      <issue>5</issue>
      <fpage>684</fpage>
      <lpage>711</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/66B024F5-FDDD-5873-88C2-9D0C9E21F861">66B024F5-FDDD-5873-88C2-9D0C9E21F861</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/7001613">7001613</uri>
      <permissions>
        <copyright-statement>Rohit Gheyi, Tiago Massoni, Paulo Borba</copyright-statement>
        <license license-type="creative-commons-attribution" xlink:href="" xlink:type="simple">
          <license-p>This article is freely available under the J.UCS Open Content License.</license-p>
        </license>
      </permissions>
      <abstract>
        <label>Abstract</label>
        <p>A feature model (FM) defines the valid combinations of features, whose combinations correspond to a program in a Software Product Line (SPL). FMs may evolve, for instance, during refactoring activities. Developers may use a catalog of refactorings as support. However, the catalog is incomplete in principle. Additionally, it is non-trivial to propose correct refactorings. To our knowledge, no previous analysis technique for FMs is used for checking properties of general FM refactorings (a transformation that can be applied to a number of FMs) containing a representative number of features. We propose an efficient encoding of FMs in the Alloy formal specification language. Based on this encoding, we show how the Alloy Analyzer tool, which performs analysis on Alloy models, can be used to automatically check whether encoded general and specific FM refactorings are correct. Our approach can analyze general transformations automatically to a significant scale in a few seconds. In order to evaluate the analysis performance of our encoding, we evaluated in automatically generated FMs ranging from 500 to 2,000 features. Furthermore, we analyze the soundness of general transformations.</p>
      </abstract>
    </article-meta>
  </front>
</article>
