Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Heuristic expansion of feature mappings in evolving program families

Published: 01 November 2014 Publication History

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. Copyright ©2013 John Wiley & Sons, Ltd.

References

[1]
Chen K, Rajlich V. Case study of feature location using dependence graph. In Proceedings of the International Workshop on Program Comprehension, <bookSeriesTitle>IWPC</bookSeriesTitle>. IEEE Computer Society: Washington, DC, USA, 2000; pp.241-249.
[2]
Eisenbarth T, Koschke R, Simon D. Locating features in source code. IEEE Transactions on Software Engineering 2003; Volume 29: pp.210-224.
[3]
Rohatgi A, Hamou-Lhadj A, Rilling J. An approach for mapping features to code based on static and dynamic analysis. In Proceedings of the International Conference on Program Comprehension, <bookSeriesTitle>ICPC</bookSeriesTitle>. IEEE Computer Society: Los Alamitos, CA, USA, 2008; pp.236-241.
[4]
Wilde N, Scully M. Software reconnaissance: mapping program features to code. Journal of Software Maintenance 1995; Volume 7: pp.49-62.
[5]
Kang K, Cohen S, Hess J, Novak W, Peterson S. Feature-oriented domain analysis foda feasibility study. Technical Report, Carnegie-Mellon University Software Engineering Institute, 1990.
[6]
Figueiredo E, Cacho N, Sant'Anna C, Monteiro M, Kulesza U, Garcia A, Soares S, Ferrari F, Khan S, Filho FC, Dantas F. et al. Evolving software product lines with aspects: an empirical study on design stability. In Proceedings of the International Conference on Software Engineering, <bookSeriesTitle>ICSE</bookSeriesTitle>. ACM: NY, USA, 2008; pp.261-270.
[7]
Parnas D. On the design and development of program families. IEEE Transaction Software Engineering 1976; Volume 2: pp.1-9.
[8]
Novais R, Nunes C, Lima C, Cirilo E, Dantas F, Garcia A, Mendonca M. On the proactive and interactive visualization for feature evolution comprehension: an industrial investigation. In Proceedings of the International Conference on Software Engineering ICSE, Software Engineering in Practice. IEEE Computer Society: Washington, DC, USA, 2012; pp.1044-1053.
[9]
Kästner C, Kuhlemann M, Batory D. Automating feature-oriented refactoring of legacy applications. Workshop on Refactoring Tools in Conjunction With European Conference on Object-Oriented Programming, WRT, 2007; pp.62-63.
[10]
Ratzinger J, Sigmund T. Mining software evolution to predict refactoring. In Proceedings of the International Symposium on Empirical Software Engineering and Measurement, ESEM, 2007; pp.354-363.
[11]
Kang KC, Kim M, Lee J, Kim B. Feature-oriented re-engineering of legacy systems into product line assets - a case study. Proceedings of the International Software Product Line Conference, SPLC, 2005; pp.45-56.
[12]
Zhang G, Shen L, Peng X, Xing Z, Zhao W. Incremental and iterative reengineering towards software product line: an industrial case study. Proceedings of the International Conference on Software Maintenance, ICSM, 2011; pp.418-427.
[13]
Eixelsberger W, Ogris M, Gall H, Bellay B. Software architecture recovery of a program family. In Proceedings of the International Conference on Software Engineering, <bookSeriesTitle>ICSE</bookSeriesTitle>. IEEE Computer Society: Washington, DC, USA, 1998; pp.508-511.
[14]
Quilty G, Cinnéide M. Experiences with software product line development in risk management software. In Proceedings of the Software Product Line Conference SPLC, <bookSeriesTitle>SPLC</bookSeriesTitle>. IEEE Computer Society: Washington, DC, USA, 2011; pp.251-260.
[15]
Antoniol G, Guéhéneuc YG. Feature identification: a novel approach and a case study. In Proceedings of the International Conference on Software Maintenance, <bookSeriesTitle>ICSM</bookSeriesTitle>. IEEE Computer Society: Los Alamitos, USA, 2005; pp.357-366.
[16]
Biggerstaff T, Mitbander B, Webster D. Program understanding and the concept assignment problem. Communications of the ACM 1994; Volume 37: pp.72-82.
[17]
Eisenberg A, Volder KD. Dynamic feature traces: finding features in unfamiliar code. In Proceedings of the International Conference on Software Maintenance, <bookSeriesTitle>ICSM</bookSeriesTitle>. IEEE Computer Society: Washington, USA, 2005; pp.337-346.
[18]
Kellens A, Mens K, Tonella P. Transactions on aspect-oriented software development iv, 2007; pp.143-162.
[19]
Poshyvanyk D, Gueheneuc YG, Marcus A, Antoniol G, Rajlich V. Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval. IEEE Transactions on Software Engineering 2007; Volume 33: pp.420-432.
[20]
Robillard M. An empirical study of the concept assignment problem. Technical Report, SOCS-TR-2007.3, School of Computer Science, McGill University, 2007.
[21]
Savage T, Revelle M, Poshyvanyk D. Flat3: feature location and textual tracing tool. In Proceedings of the International Conference on Software Engineering, Vol.Volume 2, <bookSeriesTitle>ICSE</bookSeriesTitle>. ACM: NY, USA, 2010; pp.255-258.
[22]
Nunes C, Garcia A, Figueiredo E, Lucena C. Revealing mistakes in concern mapping tasks: an experimental evaluation. In Proceedings of the European Conference on Software Maintenance and Reengineering, <bookSeriesTitle>CSMR</bookSeriesTitle>. IEEE Computer Society: Los Alamitos, USA, 2011; pp.101-110.
[23]
Robillard M, Murphy G. Representing concerns in source code. ACM Transactions on Software Engineering and Methodology TOSEM 2007; Volume 16.
[24]
Robillard M, Weigand-Warr F. Concernmapper: simple view-based separation of scattered concerns. In Proceedings of the OOPSLA Workshop on Eclipse Technology Exchange, <bookSeriesTitle>Eclipse</bookSeriesTitle>. ACM: NY, USA, 2005; pp.65-69.
[25]
Adams B, Jiang Z, Hassan A. Identifying crosscutting concerns using historical code changes. In Proceedings of the International Conference on Software Engineering, vol.Volume 1, <bookSeriesTitle>ICSE</bookSeriesTitle>. ACM: NY, USA, 2010; pp.305-314.
[26]
Nguyen T, Nguyen H, Nguyen H, Nguyen T. Aspect recommendation for evolving software. In Proceeding of the International Conference on Software Engineering, <bookSeriesTitle>ICSE</bookSeriesTitle>. ACM: NY, USA, 2011; pp.361-370.
[27]
Doar M. Jdiff - an html report of api differences, 2007. Available from: "http://www.jdiff.org/"[Accessed in September].
[28]
Kawrykow D, Robillard M. Non-essential changes in version histories. In Proceedings of the International Conference on Software Engineering, <bookSeriesTitle>ICSE '11</bookSeriesTitle>. ACM: New York, NY, USA, 2011; pp.351-360.
[29]
Dit B, Revelle M, Gethers M, Poshyvanyk D. Feature location in source code: a taxonomy and survey. Journal of Software Maintenance and Evolution: Research and Practice - JSME to appear 2011.
[30]
Cornelissen B, Zaidman A, <familyNamePrefix>van</familyNamePrefix>Deursen A, Moonen L, Koschke R. A systematic survey of program comprehension through dynamic analysis. IEEE Transactions on Software Engineering 2009; Volume 35: pp.684-702.
[31]
Koschke R, Quante J. On dynamic feature location. In Proceedings of the International Conference on Automated Software Engineering, <bookSeriesTitle>ASE</bookSeriesTitle>. ACM: NY, USA, 2005; pp.86-95.
[32]
Wong E, Horgan J, Gokhale S, Trivedi K. Locating program features using execution slices. In Proceedings of the Symposium on Application - Specific Systems and Software Engineering and Technology, <bookSeriesTitle>ASSET</bookSeriesTitle>. IEEE Computer Society: Washington, USA, 1999; pp.194-203.
[33]
Eaddy M, Zimmermann T, Sherwood KD, Garg V, Murphy GC, Nagappan N, Aho AV. Do crosscutting concerns cause defects?. IEEE Transactions on Software Engineering July 2008; Volume 34 Issue 4: pp.497-515.
[34]
Buckner J, Buchta J, Petrenko M, Rajlich V. Jripples: a tool for program comprehension during incremental change. In Proceedings of the International Workshop on Program Comprehension, <bookSeriesTitle>IWPC</bookSeriesTitle>. IEEE Computer Society: Washington, USA, 2005; pp.149-152.
[35]
Dit B, Revelle M, Poshyvanyk D. Integrating information retrieval, execution and link analysis algorithms to improve feature location in software. Empirical Software Engineering 2012: pp.1-33.
[36]
Eaddy M, Aho A, Antoniol G, Gueheneuc YG. Cerberus: tracing requirements to source code using information retrieval, dynamic analysis, and program analysis. In Proceedings of the International Conference on Program Comprehension, <bookSeriesTitle>ICPC</bookSeriesTitle>. IEEE Computer Society: Los Alamitos, USA, 2008; pp.53-62.
[37]
Poshyvanyk D, Marcus A. Combining formal concept analysis with information retrieval for concept location in source code. In Proceedings of the IEEE International Conference on Program Comprehension, <bookSeriesTitle>ICPC</bookSeriesTitle>. IEEE Computer Society: Washington, DC, USA, 2007; pp.37-48.
[38]
Revelle M, Gethers M, Poshyvanyk D. Using structural and textual information to capture feature coupling in object-oriented software. Empirical Software Engineering December 2011; Volume 16 Issue 6: pp.773-811.
[39]
Antoniol G, Canfora G, Casazza G, Lucia AD, Merlo E. Recovering traceability links between code and documentation. IEEE Transactions on Software Engineering 2002; Volume 28 Issue 10: pp.970-983.
[40]
Marcus A, Maletic JI. Recovering documentation-to-source-code traceability links using latent semantic indexing. In Proceedings of the International Conference on Software Engineering, <bookSeriesTitle>ICSE</bookSeriesTitle>. IEEE Computer Society: Washington, DC, USA, 2003; pp.125-135.
[41]
Breu S, Zimmermann T. Mining aspects from version history. In Proceedings of the International Conference on Automated Software Engineering, <bookSeriesTitle>ASE</bookSeriesTitle>. IEEE Computer Society: Washington, DC, USA, 2006; pp.221-230.
[42]
Bruntink M, <familyNamePrefix>van</familyNamePrefix>Deursen A, Tourwe T, <familyNamePrefix>van</familyNamePrefix>Engelen R. An evaluation of clone detection techniques for identifying crosscutting concerns. In Proceedings of the IEEE International Conference on Software Maintenance, <bookSeriesTitle>ICSM</bookSeriesTitle>. IEEE Computer Society: Washington, DC, USA, 2004; pp.200-209.
[43]
Bruntink M, <familyNamePrefix>van</familyNamePrefix>Deursen A, <familyNamePrefix>van</familyNamePrefix>Engelen R, Tourwe T. On the use of clone detection for identifying crosscutting concern code. IEEE Transactions on Software Engineering October 2005; Volume 31 Issue 10: pp.804-818.
[44]
Nunes C, Garcia A, Lucena C. History-sensitive recovery of product line features. In Proceedings of the International Conference on Software Maintenance - Doc. Symp., <bookSeriesTitle>ICSM</bookSeriesTitle>. IEEE Computer Society, 2010; pp.1-2.
[45]
Kim M, Sazawal V, Notkin D, Murphy G. An empirical study of code clone genealogies. In Proceedings of the International Symposium on Foundations of Software Engineering, <bookSeriesTitle>ESEC/FSE</bookSeriesTitle>. ACM: NY, USA, 2005; pp.187-196.
[46]
Carneiro G, Silva M, Mara L, Figueiredo E, Sant'Anna C, Garcia A, Mendonca M. Identifying code smells with multiple concern views. Proceedings of the Brazilian Symposium on Software Engineering, 2010; pp.128-137.
[47]
Fowler M. Refactoring: Improving the design of existing code. Addison-Wesley: Boston, MA, USA, 1999.
[48]
Nguyen T, Nguyen H, Pham N, Al-Kofahi J, Nguyen T. Clemanx: incremental clone detection tool for evolving software. In Proceedings of the International Conference on Software Engineering, <bookSeriesTitle>ICSE</bookSeriesTitle>. IEEE: Vancouver, BC, 2009; pp.437-438.
[49]
Hrbacek K, Jech T. Introduction to Set Theory, Monographs and Textbooks in Pure and Applied Mathematics. Marcel Dekker AG: New York, NY, 1944.
[50]
Figueiredo E, Carreiro B, Sant'Anna C, Garcia A, Whittle J, Nunes D. Crosscutting patterns and design stability: an exploratory analysis. Proceeding of the International Conference on Program Comprehension, ICPC, 2009; pp.138-147.
[51]
Nguyen T, Nguyen H, Pham N, Al-Kofahi J, Nguyen T. Clone-aware configuration management. In Proceedings of the International Conference on Automated Software Engineering, <bookSeriesTitle>ASE</bookSeriesTitle>. IEEE Computer Society: Washington, DC, USA, 2009; pp.123-134.
[52]
Robillard M, Murphy G. Concern graphs: finding and describing concerns using structural program dependencies. In Proceedings of the International Conference on Software Engineering, <bookSeriesTitle>ICSE</bookSeriesTitle>. ACM: NY, USA, 2002; pp.406-416.
[53]
Marin M, Deursen A, Moonen L. Identifying crosscutting concerns using fan-in analysis. ACM Transactions on Software Engineering and Methodology TOSEM 2007; Volume 17: pp.3:1-3:37.
[54]
Zhang D, Guo Y, Chen X. Automated aspect recommendation through clustering-based fan-in analysis. In Proceedings of the International Conference on Automated Software Engineering, <bookSeriesTitle>ASE</bookSeriesTitle>. IEEE Computer Society: Washington, USA, 2008; pp.278-287.
[55]
Gamma E, Helm R, Johnson R, Vlissides J. Design patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley: USA, 1994.
[56]
Nunes C, Garcia A, Lucena C, Lee J. History-sensitive heuristics for recovery of features in code of evolving program families. In Proceedings of the International Software Product Line Conference, <bookSeriesTitle>SPLC</bookSeriesTitle>. ACM: Savaldor, Brazil, 2012; pp.136-145.
[57]
Bennett K, Rajlich V. Software maintenance and evolution: a roadmap. In Proceedings of the Conference on the Future of Software Engineering, <bookSeriesTitle>ICSE</bookSeriesTitle>. ACM: New York, NY, USA, 2000; pp.73-87.
[58]
Figueiredo E, Garcia A, Maia M, Ferreira G, Nunes C, Whittle J. On the impact of crosscutting concern projection on code measurement. In Proceedings of the International Conference on Aspect-Oriented Software Development, <bookSeriesTitle>AOSD</bookSeriesTitle>. ACM: NY, USA, 2011; pp.81-92.
[59]
Wohlin C, Runeson P, Hösta M, Ohlsson M, Regnell B, Wesslén A. Experimentation in Software Engineering: An Introduction. Kluwer Academic Publishers: Norwell, MA, USA, 2000.

Cited By

View all
  • (2015)Architecture-sensitive heuristics for prioritizing critical code anomaliesProceedings of the 14th International Conference on Modularity10.1145/2724525.2724567(68-80)Online publication date: 16-Mar-2015

Index Terms

  1. Heuristic expansion of feature mappings in evolving program families
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Software—Practice & Experience
    Software—Practice & Experience  Volume 44, Issue 11
    November 2014
    128 pages

    Publisher

    John Wiley & Sons, Inc.

    United States

    Publication History

    Published: 01 November 2014

    Author Tags

    1. evolving program families
    2. experimental evaluation
    3. feature mappings
    4. heuristics

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 06 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2015)Architecture-sensitive heuristics for prioritizing critical code anomaliesProceedings of the 14th International Conference on Modularity10.1145/2724525.2724567(68-80)Online publication date: 16-Mar-2015

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media