Home > Research > Publications & Outputs > Heuristic expansion of feature mappings in evol...

Electronic data

  • Nunesetal_SPE_2013

    Submitted manuscript, 455 KB, PDF document

Links

Text available via DOI:

View graph of relations

Heuristic expansion of feature mappings in evolving program families

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Published
Close
<mark>Journal publication date</mark>11/2014
<mark>Journal</mark>Software: Practice and Experience
Issue number11
Volume44
Number of pages35
Pages (from-to)1315–1349
Publication StatusPublished
Early online date20/05/13
<mark>Original language</mark>English

Abstract

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.