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
- Minor Releases source codes: The CK and FM, when available, are inside TaRGeT PV folder
- Between Releases 4.0 and 5.0
- Between Releases 5.0 and 6.0
- 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.
- Team 1
- Team 2
- Team 3
- Team 4
- Team 5
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
- Add New Mandatory Feature
- Replace Feature Expression
- Add New Alternative Feature
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
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