This Article 
 Bibliographic References 
 Add to: 
Feature Identification: An Epidemiological Metaphor
September 2006 (vol. 32 no. 9)
pp. 627-641
Feature identification is a technique to identify the source code constructs activated when exercising one of the features of a program. We propose new statistical analyses of static and dynamic data to accurately identify features in large multithreaded object-oriented programs. We draw inspiration from epidemiology to improve previous approaches to feature identification and develop an epidemiological metaphor. We build our metaphor on our previous approach to feature identification, in which we use processor emulation, knowledge-based filtering, probabilistic ranking, and metamodeling. We carry out three case studies to assess the usefulness of our metaphor, using the "save a bookmark” feature of Web browsers as an illustration. In the first case study, we compare our approach with three previous approaches (a naive approach, a concept analysis-based approach, and our previous probabilistic approach) in identifying the feature in Mozilla, a large, real-life, multithreaded object-oriented program. In the second case study, we compare the implementation of the feature in the Firefox and Mozilla Web browsers. In the third case study, we identify the same feature in two more Web browsers, Chimera (in C) and ICEBrowser (in Java), and another feature in JHotDraw and Xfig, to highlight the generalizability of our metaphor.

[1] E. Chikofsky and J.H. CrossII, “Reverse Engineering and Design Recovery: A Taxonomy,” IEEE Software, vol. 7, no. 1, pp. 13-17, Jan. 1990.
[2] J. Concling and M. Bergen, “Software Reconnaissance: Mapping Program Features to Code,” J. Software Maintenance: Research and Practice, vol. 7, no. 1, pp. 49-62, Jan. 1995.
[3] R. Koschke and D. Simon, “Locating Features in Source Code,” IEEE Trans. Software Eng., vol. 29, no. 3, pp. 210-224, Mar. 2003.
[4] G. Antoniol and Y.-G. Guéhéneuc, “Feature Identification: A Novel Approach and a Case Study,” Proc. 21st Int'l Conf. Software Maintenance, Sept. 2005.
[5] Y.-G. Guéhéneuc and N. Jussien, “Using Explanations for Design-Patterns Identification,” Proc. First IJCAI Workshop Modeling and Solving Problems with Constraints, pp. 57-64, Aug. 2001.
[6] N. Wilde and M.C. Scully, “Software Reconnaissance: Mapping Program Features to Code,” J. Software Maintenance: Research and Practice, pp. 49-62, Jan-Feb. 1995.
[7] IDEFØ graphical language, http://www.idef.comIDEF0.html, 2006.
[8] G. Antoniol, R. Fiutem, and L. Cristoforetti, “Using Metrics to Identify Design Patterns in Object-Oriented Software,” Proc. Fifth Int'l Symp. Software Metrics, pp. 23-34, Nov. 1998.
[9] D. Edwards, S. Simmons, and N. Wilde, “An Approach to Feature Location in Distributed Systems,” Technical Report SERC-TR-270, Software Eng. Research Center, 2004.
[10] Valgrind, http:/, 2006.
[11] JProf, jprof/, 2006.
[12] G.W. Snedecor and G.W. Cochran, Statistical Methods. Iowa State Univ. Press, 1989.
[13] Mozilla, http:/, 2006.
[14] Firefox, http://www.mozilla.comfirefox/, 2006.
[15] Chimera, http://www.chimera.orgtwo/, 2006.
[16] ICEBrowser, html , 2006.
[17] JHotDraw, http:/, 2006.
[18] Xfig, http://xfig.orgart2.html, 2006.
[19] R. Kollmann, P. Selonen, E. Stroulia, T. Systa, and A. Zundorf, “A Study on the Current State of the Art in Tool-Supported UML-Based Static Reverse Engineering,” Proc. Ninth Working Conf. Reverse Eng., E. Burd and A. van Deursen, eds., pp. 22-33, Oct-Nov. 2002.
[20] Y.-G. Guéhéneuc, “Ptidej,” A Tool Suite To Evaluate and to Enhance the Quality of Object-Oriented Programs, http:/, July 2001.
[21] M.D. Ernst, J. Cockrell, W.G. Griswold, and D. Notkin, “Dynamically Discovering Likely Program Invariants to Support Program Evolution,” Proc. 21st Int'l Conf. Software Eng., pp. 213-224, 1999.
[22] T. Ball and J.R. Larus, “Efficient Path Profiling,” Proc. 29th Int'l Symp. Microarchitecture, pp. 46-57, Dec. 1996.
[23] D. Melski and T.W. Reps, “Interprocedural Path Profiling,” Proc. 14th Conf. Computational Complexity, pp. 47-62, 1999.
[24] M.J. Harrold, G. Rothermel, R. Wu, and L. Yi, “An Empirical Investigation of Program Spectra,” Proc. First Workshop Program Analysis for Software Tools and Eng., pp. 83-90, June 1998.
[25] C. Jeffery and M. Auguston, “Some Axioms and Issues in the UFO Dynamic Analysis Framework,” Proc. First ICSE Workshop Dynamic Analysis, J.E. Cook and M.D. Ernst, eds., May 2003.
[26] M.D. Ernst, “Static and Dynamic Analysis: Synergy and Duality,” Proc. First ICSE Workshop Dynamic Analysis, J.E. Cook and M.D.Ernst, eds., May 2003.
[27] S. Reiss and M. Renieris, “Languages for Dynamic Instrumentation,” Proc. First ICSE Workshop Dynamic Analysis, J.E. Cook and M.D.Ernst, eds., May 2003.
[28] S.P. Reiss and M. Renieris, “Encoding Program Executions,” Proc. 23rd Int'l Conf. Software Eng., pp. 221-230, May 2001.
[29] M. Renieris and S.P. Reiss, “ALMOST: Exploring Program Traces,” Proc. First Conf. Information and Knowledge Management/Workshop New Paradigms in Information Visualization and Manipulation, pp. 70-77, Nov. 1999.
[30] A. Hamou-Lhadj and T. Lethbridge, “Compression Techniques to Simplify the Analysis of Large Execution Traces,” Proc. 10th Int'l Workshop Program Comprehension, pp. 159-168, June 2002.
[31] A. Hamou-Lhadj and T.C. Lethbridge, “An Efficient Algorithm for Detecting Patterns in Traces of Procedure Calls,” Proc. First Int'l Conf. Software Eng. Workshop Dynamic Analysis, May 2003.
[32] T. Gyimóthy, R. Ferenc, and I. Siket, “Empirical Validation of Object Oriented Metrics on Open Source Software for Fault Prediction,” IEEE Trans. Software Eng., vol. 31, no. 10, pp. 897-910, Oct. 2005.
[33] A.G. Koru and J.J. Tian, “Comparing High-Change Modules and Modules with the Highest Measurement Values in Two Large-Scale Open-Source Products,” IEEE Trans. Software Eng., vol. 31, no. 8, pp. 625-642, Aug. 2005.
[34] K. Chen and V. Rajlich, “Case Study of Feature Location Using Dependence Graph,” Proc. Eight Int'l Program Comprehension, pp.241-252, June 2000.
[35] T. Eisenbarth, R. Koschke, and D. Simon, “Aiding Program Comprehension by Static and Dynamic Feature Analysis,” Proc. Eight Int'l Conf. Software Maintenance, pp. 602-611, Nov. 2001.
[36] M. Salah and S. Mancoridis, “A Hierarchy of Dynamic Software Views: From Object-Interactions to Feature-Interactions,” Proc. 20th Int'l Conf. Software Maintenance, pp. 72-81, Sept. 2004.
[37] M. Salah, S. Mancordis, G. Antoniol, and M.D. Penta, “Towards Employing Use-Cases and Dynamic Analysis to Comprehend Mozilla,” Proc. 21st Int'l Conf. Software Maintenance, pp. 639-642, Sept. 2005.
[38] A.D. Eisenberg and K.D. Volder, “Dynamic Feature Traces: Finding Features in Unfamiliar Code,” Proc. 21st Int'l Conf. Software Maintenance, pp. 337-346, Sept. 2005.
[39] O. Greevy, S. Ducasse, and T. Girba, “Analyzing Feature Traces to Incorporate the Semantic of Changes,” Proc. 21st Int'l Conf. Software Maintenance, pp. 347-356, Sept. 2005.
[40] H. Agrawal and J.R. Horgan, “Dynamic Program Slicing,” Proc. Fourth Conf. Programming Language Design and Implementation, pp.246-256, June 1990.
[41] B.-U. Pagel and M. Winter, “Towards Pattern-Based Tools,” Proc. First European Conf. Pattern Languages of Programs, July 1996.
[42] G. Sunyé, A.L. Guennec, and J.-M. Jézéquel, “Design Patterns Application in UML,” Proc. 14th European Conf. Object-Oriented Programming, pp. 44-62, June 2000.
[43] D. Thomas, “Reflective Software Engineering—From MOPS to AOSD,” J. Object Technology, vol. 1, no. 4, pp. 17-26, Sept. 2002.
[44] J. Bézivin, “From Object Composition to Model Transformation with the MDA,” Proc. 39th Int'l Conf. Technology of Object-Oriented Languages and Systems, p. 348, Aug. 2001.
[45] Object Management Group, Model Driven Architecture,, Jan. 2005.

Index Terms:
Program understanding, dynamic analysis, static analysis, feature identification, epidemiology, Firefox and Mozilla Web browsers.
Giuliano Antoniol, Yann-Ga? Gu?h?neuc, "Feature Identification: An Epidemiological Metaphor," IEEE Transactions on Software Engineering, vol. 32, no. 9, pp. 627-641, Sept. 2006, doi:10.1109/TSE.2006.88
Usage of this product signifies your acceptance of the Terms of Use.