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

Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval

Published: 01 June 2007 Publication History

Abstract

This paper recasts the problem of feature location in source code as a decision-making problem in the presence of uncertainty. The solution to the problem is formulated as a combination of the opinions of different experts. The experts in this work are two existing techniques for feature location: a scenario-based probabilistic ranking of events and an information-retrieval-based technique that uses Latent Semantic Indexing. The combination of these two experts is empirically evaluated through several case studies, which use the source code of the Mozilla Web browser and the Eclipse integrated development environment. The results show that the combination of experts significantly improves the effectiveness of feature location as compared to each of the experts used independently.

References

[1]
V. Rajlich and N. Wilde, “The Role of Concepts in Program Comprehension,” Proc. 10th IEEE Int'l Workshop Program Comprehension (IWPC '02), pp. 271-278, 2002.
[2]
V. Rajlich and P. Gosavi, “Incremental Change in Object-Oriented Programming,” IEEE Software, pp. 2-9, 2004.
[3]
S. Bohner and R. Arnold, Software Change Impact Analysis. IEEE Computer Soc. Press, 1996.
[4]
J.-P. Queille, J.-F. Voidrot, N. Wilde, and M. Munro, “The Impact Analysis Task in Software Maintenance: A Model and a Case Study,” Proc. 11th Int'l Conf. Software Maintenance (ICSM '94), pp.234-242, 1994.
[5]
L.C. Briand, J. Wuest, and H. Lounis, “Using Coupling Measurement for Impact Analysis in Object-Oriented Systems,” Proc. 15th Int'l Conf. Software Maintenance (ICSM '99), pp. 475-483, 1999.
[6]
M. Lindvall and K. Sandahl, “Traceability Aspects of Impact Analysis in Object-Oriented Systems,” J. Software Maintenance: Research and Practice, vol. 10, no. 1, pp. 37-57, 1998.
[7]
G. Antoniol, G. Canfora, G. Casazza, and A. Lucia, “Identifying the Starting Impact Set of a Maintenance Request: A Case Study,” Proc. Fourth European Conf. Software Maintenance and Reeng. (CSMR '00), pp. 227-231, 2000.
[8]
V. Rajlich, “Changing the Paradigm of Software Engineering,” Comm. ACM, vol. 49, no. 8, pp. 67-70, Aug. 2006.
[9]
T. Eisenbarth, R. Koschke, and D. Simon, “Locating Features in Source Code,” IEEE Trans. Software Eng., vol. 29, no. 3, pp. 210-224, Mar. 2003.
[10]
M. Salah, S. Mancoridis, G. Antoniol, and M. Di Penta, “Towards Employing Use-Cases and Dynamic Analysis to Comprehend Mozilla,” Proc. 21st IEEE Int'l Conf. Software Maintenance (ICSM'05), pp. 639-642, 2005.
[11]
D. Eng, “Combining Static and Dynamic Data in Code Visualization,” Proc. Fourth ACM SIGPLAN-SIGSOFT Workshop Program Analysis for Software Tools and Eng. (PASTE '02), pp. 43-50, 2002.
[12]
G. Antoniol and Y. Guéhéneuc, “Feature Identification: A Novel Approach and a Case Study,” Proc. 21st IEEE Int'l Conf. Software Maintenance (ICSM '05), pp. 357-366, 2005.
[13]
M. Ernst, “Static and Dynamic Analysis: Synergy and Duality,” Proc. ICSE Workshop Dynamic Analysis (WODA '03), pp. 24-27, 2003.
[14]
D. Edwards, S. Simmons, and N. Wilde, “An Approach to Feature Location in Distributed Systems,” Software Eng. Research Center, 2004.
[15]
S. Deerwester, S.T. Dumais, G.W. Furnas, T.K. Landauer, and R. Harshman, “Indexing by Latent Semantic Analysis,” J. Am. Soc. Information Science, vol. 41, pp. 391-407, 1990.
[16]
A. Marcus, A. Sergeyev, V. Rajlich, and J. Maletic, “An Information Retrieval Approach to Concept Location in Source Code,” Proc. 11th IEEE Working Conf. Reverse Eng. (WCRE '04), pp.214-223, 2004.
[17]
G. Antoniol and Y.G. Guéhéneuc, “Feature Identification: An Epidemiological Metaphor,” IEEE Trans. Software Eng., vol. 32, no. 9, pp. 627-641, Sept. 2006.
[18]
R. Jacobs, “Methods for Combining Experts' Probability Assessments,” Neural Computation, vol. 7, no. 5, pp. 867-888, Sept. 1995.
[19]
R. Winkler and R. Clemen, “Multiple Experts vs. Multiple Methods: Combining Correlation Assessments,” Decision Analysis, vol. 1, no. 3, pp. 167-176, Sept. 2004.
[20]
N. Wilde and T. Gust, “Locating User Functionality in Old Code,” Proc. Eighth IEEE Int'l Conf. Software Maintenance (ICSM '92), pp.200-205, 1992.
[21]
A.D. Eisenberg and K. De Volder, “Dynamic Feature Traces: Finding Features in Unfamiliar Code,” Proc. 21st IEEE Int'l Conf. Software Maintenance (ICSM '05), pp. 337-346, 2005.
[22]
W.E. Wong, S.S. Gokhale, and J.R. Horgan, “Quantifying the Closeness between Program Components and Features,” J.Systems and Software, vol. 54, no. 2, pp. 87-98, Oct. 2000.
[23]
T.J. Biggerstaff, B.G. Mitbander, and D.E. Webster, “Program Understanding and the Concept Assignment Problem,” Comm. ACM, vol. 37, no. 5, pp. 72-82, May 1994.
[24]
A.V. Aho, “Pattern Matching in Strings,” Formal Language Theory: Perspectives and Open Problems. pp. 325-347, Academic Press, 1980.
[25]
K. Chen and V. Rajlich, “Case Study of Feature Location Using Dependence Graph,” Proc. Eighth IEEE Int'l Workshop Program Comprehension (IWPC '00), pp. 241-249, 2000.
[26]
M. Robillard, “Automatic Generation of Suggestions for Program Investigation,” Proc. Joint 10th European Software Eng. Conf. and 13th ACM SIGSOFT Symp. Foundations of Software Eng. (ESEC/FSE'05), pp. 11-20, 2005.
[27]
W. Zhao, L. Zhang, Y. Liu, J. Sun, and F. Yang, “SNIAFL: Towards a Static Non-Interactive Approach to Feature Location,” ACM Trans. Software Eng. and Methodologies, vol. 15, no. 2, pp. 195-226, 2006.
[28]
A. Marcus, V. Rajlich, J. Buchta, M. Petrenko, and A. Sergeyev, “Static Techniques for Concept Location in Object-Oriented Code,” Proc. 13th IEEE Int'l Workshop Program Comprehension (IWPC '05), pp. 33-42, 2005.
[29]
M. Salah and S. Mancoridis, “A Hierarchy of Dynamic Software Views: From Object-Interactions to Feature-Interactions,” Proc. 20th IEEE Int'l Conf. Software Maintenance (ICSM '04), pp. 72-81, 2004.
[30]
A. Marcus, J.I. Maletic, and A. Sergeyev, “Recovery of Traceability Links between Software Documentation and Source Code,” Int'l J.Software Eng. and Knowledge Eng., vol. 15, no. 4, pp. 811-836, Oct. 2005.
[31]
L.H. Etzkorn and C.G. Davis, “Automatically Identifying Reusable OO Legacy Code,” Computer, vol. 30, no. 10, pp. 66-72, Oct. 1997.
[32]
W. Frakes and B.A. Nejmeh, “Software Reuse through Information Retrieval,” ACM SIGIR Forum, vol. 21, nos. 1-2, pp. 30-36, Sept.-Mar. 1986-1987.
[33]
Y.S. Maarek, D.M. Berry, and G.E. Kaiser, “An Information Retrieval Approach for Automatically Constructing Software Libraries,” IEEE Trans. Software Eng., vol. 17, no. 8, pp. 800-813, Aug. 1991.
[34]
Y. Ye and G. Fischer, “Supporting Reuse by Delivering Task-Relevant and Personalized Information,” Proc. 24th Int'l Conf. Software Eng. (ICSE '02), pp. 513-523, 2002.
[35]
J.I. Maletic and A. Marcus, “Supporting Program Comprehension Using Semantic and Structural Information,” Proc. 23rd Int'l Conf. Software Eng. (ICSE '01), pp. 103-112, 2001.
[36]
A. Marcus and J.I. Maletic, “Identification of High-Level Concept Clones in Source Code,” Proc. 16th IEEE Int'l Conf. Automated Software Eng. (ASE '01), pp. 107-114, 2001.
[37]
A. De Lucia, F. Fasano, R. Oliveto, and G. Tortora, “Enhancing an Artefact Management System with Traceability Recovery Features,” Proc. 20th IEEE Int'l Conf. Software Maintenance (ICSM '04), pp. 306-315, 2004.
[38]
D. Poshyvanyk and A. Marcus, “The Conceptual Coupling Metrics for Object-Oriented Systems,” Proc. 22nd IEEE Int'l Conf. Software Maintenance (ICSM '06), pp. 469-478, 2006.
[39]
A. Marcus and D. Poshyvanyk, “The Conceptual Cohesion of Classes,” Proc. 21st IEEE Int'l Conf. Software Maintenance (ICSM'05), pp. 133-142, 2005.
[40]
A. Kuhn, S. Ducasse, and T. Girba, “Enriching Reverse Engineering with Semantic Clustering,” Proc. 12th Working Conf. Reverse Eng. (WCRE '05), pp. 133-142, 2005.
[41]
J.H. Hayes, A. Dekhtyar, and S.K. Sundaram, “Advancing Candidate Link Generation for Requirements Tracing: The Study of Methods,” IEEE Trans. Software Eng., vol. 32, no. 1, pp. 4-19, Jan. 2006.
[42]
A.D. Lucia, F. Fasano, R. Oliveto, and G. Tortora, “ADAMS Re-Trace: A Traceability Recovery Tool,” Proc. Ninth European Conf. Software Maintenance and Reengineering (CSMR '05), 2005.
[43]
D. Poshyvanyk, A. Marcus, Y. Dong, and A. Sergeyev, “IRiSS—A Source Code Exploration Tool,” Proc. 21st IEEE Int'l Conf. Software Maintenance (ICSM '05), pp. 69-72, 2005.
[44]
D. Poshyvanyk, A. Marcus, and Y. Dong, “JIRiSS—An Eclipse Plug-In for Source Code Exploration,” Proc. 14th IEEE Int'l Conf. Program Comprehension (ICPC '06), pp. 252-255, 2006.
[45]
A.J. Ko, B.A. Myers, M.J. Coblenz, and H.H. Aung, “An Exploratory Study of How Developers Seek, Relate and Collect Relevant Information during Software Maintenance Tasks,” IEEE Trans. Software Eng., vol. 32, no. 12, pp. 971-987, Dec. 2006.
[46]
M.P. Robillard, W. Coelho, and G.C. Murphy, “How Effective Developers Investigate Source Code: An Exploratory Study,” IEEE Trans. Software Eng., vol. 30, no. 12, pp. 889- 903, Dec. 2004.
[47]
R.K. Yin, Applications of Case Study Research, second ed. Sage, 2003.
[48]
Y.G. Guéhéneuc and A.A. Hervé, “Recovering Binary Class Relationships: Putting Icing on the UML Cake,” Proc. 19th Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA '04), pp. 301-314, 2004.
[49]
D. Poshyvanyk, Y.G. Guéhéneuc, A. Marcus, G. Antoniol, and V. Rajlich, “Combining Probabilistic Ranking and Latent Semantic Indexing for Feature Identification,” Proc. 14th IEEE Int'l Conf. Program Comprehension (ICPC '06), pp. 137-146, 2006.

Cited By

View all
  • (2024)An Experience Report on Modeling Software Process in Industrial Context: Challenges and SolutionsProceedings of the 2024 International Conference on Software and Systems Processes10.1145/3666015.3666024(1-12)Online publication date: 4-Sep-2024
  • (2024)Give an Inch and Take a Mile? Effects of Adding Reliable Knowledge to Heuristic Feature TracingProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672593(84-95)Online publication date: 2-Sep-2024
  • (2024)On the Taxonomy of Developers' Discussion Topics with ChatGPTProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3645080(197-201)Online publication date: 15-Apr-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 33, Issue 6
June 2007
64 pages

Publisher

IEEE Press

Publication History

Published: 01 June 2007

Author Tags

  1. Latent Semantic Indexing
  2. Program understanding
  3. concept location
  4. dynamic and static analyses
  5. feature identification
  6. information retrieval
  7. open source software.
  8. scenario-based probabilistic ranking

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)An Experience Report on Modeling Software Process in Industrial Context: Challenges and SolutionsProceedings of the 2024 International Conference on Software and Systems Processes10.1145/3666015.3666024(1-12)Online publication date: 4-Sep-2024
  • (2024)Give an Inch and Take a Mile? Effects of Adding Reliable Knowledge to Heuristic Feature TracingProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672593(84-95)Online publication date: 2-Sep-2024
  • (2024)On the Taxonomy of Developers' Discussion Topics with ChatGPTProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3645080(197-201)Online publication date: 15-Apr-2024
  • (2024)TRIAD: Automated Traceability Recovery based on Biterm-enhanced Deduction of Transitive Links among ArtifactsProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639164(1-13)Online publication date: 20-May-2024
  • (2024)On Using GUI Interaction Data to Improve Text Retrieval-based Bug LocalizationProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3608139(1-13)Online publication date: 20-May-2024
  • (2024)An empirical study on the potential of word embedding techniques in bug report management tasksEmpirical Software Engineering10.1007/s10664-024-10510-329:5Online publication date: 25-Jul-2024
  • (2024)How far are we with automated machine learning? characterization and challenges of AutoML toolkitsEmpirical Software Engineering10.1007/s10664-024-10450-y29:4Online publication date: 13-Jun-2024
  • (2024)Balanced knowledge distribution among software development teams—Observations from open‐ and closed‐source software developmentJournal of Software: Evolution and Process10.1002/smr.265536:8Online publication date: 5-Aug-2024
  • (2023)Capturing the long-distance dependency in the control flow graph via structural-guided attention for bug localizationProceedings of the Thirty-Second International Joint Conference on Artificial Intelligence10.24963/ijcai.2023/249(2242-2250)Online publication date: 19-Aug-2023
  • (2023)Discovering Reusable Functional Features in Legacy Object-Oriented SystemsIEEE Transactions on Software Engineering10.1109/TSE.2023.327263149:7(3827-3856)Online publication date: 1-Jul-2023
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media