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

Menu

Abstract

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 https://targetspl.googlecode.com/svn/trunk/trunk) please try only their prefix (like https://targetspl.googlecode.com) .

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
T1STemplateSplitAsset.png

  • Refine Asset
TemplateRefactorAsset.png

  • Add New Optional Feature
TemplateAddOptionalFeature.png

  • Add New Mandatory Feature
TemplateAddNewMandatory.png

  • Replace Feature Expression
TemplateChangeFeatureExpression.png

  • Add New Alternative Feature
TemplateAddNewAlternative.png

  • Add New OR Feature
TemplateAddNewOR.png

  • Delete Asset
TemplatesDeleteAsset.png

Templates for Annotative Product Lines


  • Preprocess Asset Without Preprocessor Directive
Template1T.png


  • Add Dead Preprocessed Code
Template2T.png

  • Add Harmless Preprocessing Directive
Template3T.png


  • Add New Preprocessed Feature
Template4T.png

  • Extract Preprocessed Code
Template5T.png



Contact

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