Get access

Heuristic expansion of feature mappings in evolving program families

Authors

  • Camila Nunes,

    Corresponding author
    1. Opus Research Group Software Engineering Lab, Informatics Department, Pontifical Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil
    • Correspondence to: Camila Nunes, Opus Research Group, Software Engineering Lab, Informatics Department, Pontifical Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil.

      E-mail: cnunes@inf.puc-rio.br

    Search for more papers by this author
  • Alessandro Garcia,

    1. Opus Research Group Software Engineering Lab, Informatics Department, Pontifical Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil
    Search for more papers by this author
  • Carlos Lucena,

    1. Opus Research Group Software Engineering Lab, Informatics Department, Pontifical Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil
    Search for more papers by this author
  • Jaejoon Lee

    1. Lancaster University School of Computing and Communications, UK
    Search for more papers by this author

SUMMARY

Establishing explicit mappings between features and their implementation elements in code is one of the critical factors to maintain and evolve software systems successfully. This is especially important when developers have to evolve program families, which have evolved from one single core system to similar but different systems to accommodate various requirements from customers. Many techniques and tools have emerged to assist developers in the feature mapping activity. However, existing techniques and tools for feature mapping are limited as they operate on a single program version individually. Additionally, existing approaches are limited to recover features on demand, that is, developers have to run the tools for each family member version individually. In this paper, we propose a cohesive suite of five mapping heuristics addressing those two limitations. These heuristics explore the evolution history of the family members in order to expand feature mappings in evolving program families. The expansion refers to the action of automatically generating the feature mappings for each family member version by systematically considering its previous change history. The mapping expansion starts from seed mappings and continually tracks the features of the program family, thus eliminating the need of on demand algorithms. Additionally, we present the MapHist tool that provides support to the application of the proposed heuristics. We evaluate the accuracy of our heuristics through two evolving program families from our industrial partners. Copyright © 2013 John Wiley & Sons, Ltd.

Ancillary