Safe Evolution Templates for Software Product Lines (Supporting Material)

Laís Neves, Paulo Borba, Vander Alves, Lucinéia Turnes, Leopoldo Teixeira, Demóstenes Sena, Uirá Kulesza



Software product lines enable generating related software products from reusable assets. Adopting a product line strategy can bring significant quality and productivity improvements. However, evolving a product line can be risky, since it might impact many products. When introducing new features or improving its design, it is important to make sure that the behavior of existing products is not affected. To ensure that, one usually has to analyze different types of artifacts, which is a tedious and error-prone activity. To address this issue, in this work we discover and analyze concrete evolution scenarios from four different product lines. We describe a total of 13 safe evolution templates, which are generic transformations that developers can apply when evolving compositional and annotative product lines, with the goal of preserving the behavior of existing products. We also evaluate the templates by analyzing the evolution history of these product lines. In this evaluation, we observe that the templates can address the modifications that developers performed in the analyzed scenarios, which corroborates the expressivity of our template set. We also observe that the templates could also have helped to avoid the errors that we identified during our analysis.

Googlecode seems to have changed the projetc URLs. So, instead of trying the URLs below (such as please try only their prefix (like .

TaRGeT SPL Safe Evolution Scenarios

  • Spreadsheet detailing the templates used in each TaRGeT scenario and the templates frequence of usage is available here

  • Illustration of some evolution scenarios are detailed here.
Note: As we migrated the data from our SVN to a public one, the commit comments were lost. If you need the comments, you can send an email to lmn3 at cin.ufpe. br requesting them. Some releases used Pure Variants and/or Hephaestus tools to manage variabilities.

MobileMedia SPL Safe Evolution Scenarios

RGMS SPL Safe Evolution Scenarios

The CK and FM, in Hephaestus format, are in the projects root folder.

Spreadsheet detailing the templates used in each RGMS scenario and the templates frequence of usage is available here

Hephaestus-PL Safe Evolution Scenarios

Safe Evolution Templates

Here we illustrate the templates for software product line safe evoltion.

Templates for Compositional Product Lines

  • Split Asset

  • Refine Asset

  • Add New Optional Feature

  • Add New Mandatory Feature

  • Replace Feature Expression

  • Add New Alternative Feature

  • Add New OR Feature

  • Delete Asset

Templates for Annotative Product Lines

  • Preprocess Asset Without Preprocessor Directive

  • Add Dead Preprocessed Code

  • Add Harmless Preprocessing Directive

  • Add New Preprocessed Feature

  • Extract Preprocessed Code


If you have any questions, comments, or suggestions, please do not hesitate to contact one of the following:

-- PauloBorba - 2016-09-01 -- LaisNeves - 2013-03-27 -- LaisNeves - 25 Oct 2011 -- LaisNeves - 20 May 2011 -- LaisNeves - 01 Mar 2011
Topic revision: r26 - 2016-09-01 - PauloBorba
This site is powered by the TWiki collaboration platformCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback

mersin escort bayan adana escort bayan izmit escort ankara escort bursa escort