A Combined Concept Location Method for Java Programs

Concept location is one of the fundamental activities during software maintenance which locates the parts of the source code where a specific concept is implemented. The methods for concept location include static and dynamic approaches: the former includes string pattern matching, dependence graph search, and IR-based techniques, while the latter includes debugging, profiling, and tracing. Both concept location approaches have been proved to be effective in some situations. However, they are challenged by modern event-driven programs. We proposed a novel concept location method which combines static methods and dynamic tracing. We also validated its effectiveness and efficiency by conducting two case studies.

[1]  Andrian Marcus,et al.  Static techniques for concept location in object-oriented code , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[2]  K. Barraclough Eclipse , 2006, BMJ : British Medical Journal.

[3]  Spiros Mancoridis,et al.  A hierarchy of dynamic software views: from object-interactions to feature-interactions , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[4]  Norman Wilde,et al.  The role of concepts in program comprehension , 2002, Proceedings 10th International Workshop on Program Comprehension.

[5]  M A Branch,et al.  Software maintenance management , 1986 .

[6]  Yann-Gaël Guéhéneuc,et al.  Feature identification: a novel approach and a case study , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[7]  Yann-Gaël Guéhéneuc,et al.  Combining Probabilistic Ranking and Latent Semantic Indexing for Feature Identification , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[8]  Václav Rajlich,et al.  RIPPLES: tool for change in legacy software , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[9]  Václav Rajlich,et al.  Case study of feature location using dependence graph , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[10]  Charles L. A. Clarke,et al.  Archetypal source code searches: a survey of software developers and maintainers , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[11]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[12]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[13]  Norman Wilde,et al.  Software reconnaissance: Mapping program features to code , 1995, J. Softw. Maintenance Res. Pract..

[14]  Donglin Liang,et al.  Slicing objects using system dependence graphs , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[15]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[16]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem , 1994, CACM.

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

[18]  Václav Rajlich,et al.  JRipples: a tool for program comprehension during incremental change , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[19]  Vaclav Rajlich A Methodology for Incremental Changes , 2002 .

[20]  Norman Wilde,et al.  An approach to feature location in distributed systems , 2006, J. Syst. Softw..

[21]  David Eichmann,et al.  Program and interface slicing for reverse engineering , 1993, [1993] Proceedings Working Conference on Reverse Engineering.