Improving feature location using structural similarity and iterative graph mapping

Locating program element(s) relevant to a particular feature is an important step in efficient maintenance of a software system. The existing feature location techniques analyse each feature independently and perform a one-time analysis after being provided an initial input. As a result, these techniques are sensitive to the quality of the input. In this paper, we propose to address the above issues in feature location using an iterative context-aware approach. The underlying intuition is that features are not independent of each other, and the structure of source code resembles the structure of features. The distinguishing characteristics of the proposed approach are: (1) it takes into account the structural similarity between a feature and a program element to determine feature-element relevance and (2) it employs an iterative process to propagate the relevance of the established mappings between a feature and a program element to the neighbouring features and program elements. We evaluate our approach using two different systems, DirectBank, a small-scale industry financial system, and Linux kernel, a large-scale open-source operating system. Our evaluation suggests that the proposed approach is more robust and can significantly increase the recall of feature location with only a minor decrease of precision.

[1]  Yiming Yang,et al.  Domain Feature Model Recovery from Multiple Applications Using Data Access Semantics and Formal Concept Analysis , 2009, 2009 16th Working Conference on Reverse Engineering.

[2]  Krzysztof Czarnecki,et al.  The Variability Model of The Linux Kernel , 2010, VaMoS.

[3]  Jane Cleland-Huang,et al.  On-demand feature recommendations derived from mining public product descriptions , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[4]  Collin McMillan,et al.  Portfolio: Finding Relevant Functions and Their Usages , 2011 .

[5]  Andrian Marcus,et al.  Recovering documentation-to-source-code traceability links using latent semantic indexing , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[6]  Ahmed E. Hassan,et al.  Identifying crosscutting concerns using historical code changes , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[7]  Genny Tortora,et al.  IR-Based Traceability Recovery Processes: An Empirical Comparison of "One-Shot" and Incremental Processes , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[8]  Krzysztof Czarnecki,et al.  Reverse engineering feature models , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[9]  Frederic P. Miller,et al.  Linux kernel , 2009 .

[10]  Yijun Yu,et al.  Iterative context-aware feature location: (NIER track) , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[11]  Jane Huffman Hayes,et al.  Advancing candidate link generation for requirements tracing: the study of methods , 2006, IEEE Transactions on Software Engineering.

[12]  Haiyan Zhao,et al.  Feature-driven requirement dependency analysis and high-level software design , 2006, Requirements Engineering.

[13]  Daniel T. Larose,et al.  Discovering Knowledge in Data: An Introduction to Data Mining , 2005 .

[14]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[15]  Andrian Marcus,et al.  An information retrieval approach to concept location in source code , 2004, 11th Working Conference on Reverse Engineering.

[16]  Xin Peng,et al.  Ontology-Based Feature Modeling and Application-Oriented Tailoring , 2006, ICSR.

[17]  Shinpei Hayashi,et al.  Feature Location for Multi-Layer System Based on Formal Concept Analysis , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[18]  Denys Poshyvanyk,et al.  Combining Formal Concept Analysis with Information Retrieval for Concept Location in Source Code , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[19]  Wei Zhao,et al.  SNIAFL: towards a static non-interactive approach to feature location , 2004, Proceedings. 26th International Conference on Software Engineering.

[20]  Bogdan Dit,et al.  Feature location in source code: a taxonomy and survey , 2013, J. Softw. Evol. Process..

[21]  Yann-Gaël Guéhéneuc,et al.  Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval , 2007, IEEE Transactions on Software Engineering.

[22]  K. H. Bennett,et al.  Journal of software maintenance : research and practice , 1989 .

[23]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[24]  Yijun Yu,et al.  Improving the Tokenisation of Identifier Names , 2011, ECOOP.

[25]  Natalya Keberle,et al.  A Strategy for Automated Meaning Negotiation in Distributed Information Retrieval , 2005, SEMWEB.

[26]  Krzysztof Czarnecki,et al.  Variability modeling in the real: a perspective from the operating systems domain , 2010, ASE '10.

[27]  Collin McMillan,et al.  Portfolio: finding relevant functions and their usage , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[28]  Martin P. Robillard,et al.  Suade: Topology-Based Searches for Software Investigation , 2007, 29th International Conference on Software Engineering (ICSE'07).