Program evolution: processes of software change
Program evolution: processes of software change
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Data mining: practical machine learning tools and techniques with Java implementations
Data mining: practical machine learning tools and techniques with Java implementations
Reverse engineering: a roadmap
Proceedings of the Conference on The Future of Software Engineering
The Java Language Specification
The Java Language Specification
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Nomen Est Omen: Analyzing the Language of Function Identifiers
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
An Evaluation of Clone Detection Techniques for Identifying Crosscutting Concerns
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Aspect Mining Using Event Traces
Proceedings of the 19th IEEE international conference on Automated software engineering
Aspect Mining through the Formal Concept Analysis of Execution Traces
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Identifying Aspects Using Fan-In Analysis
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
A Qualitative Comparison of Three Aspect Mining Techniques
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Identifications of Concepts, Features, and Concerns in Source Code
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Timna: a framework for automatically combining aspect mining analyses
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Towards supporting on-demand virtual remodularization using program graphs
Proceedings of the 5th international conference on Aspect-oriented software development
On the Use of Line Co-change for Identifying Crosscutting Concern Code
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
A common framework for aspect mining based on crosscutting concern sorts
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Questions programmers ask during software evolution tasks
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Using natural language program analysis to locate and understand action-oriented concerns
Proceedings of the 6th international conference on Aspect-oriented software development
Introducing natural language program analysis
PASTE '07 Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Empirical Software Engineering
Hi-index | 0.00 |
Software maintainers often use reverse engineering tools to aid in the extremely difficult task of understanding unfamiliar code, especially within large, complex software systems. While traditional program analysis can provide detailed information for reverse engineering, often this information is not sufficient to assist the user with high-level program understanding tasks. To bridge the gap between current reverse engineering tools and the high-level questions that software maintainers want answered, we propose supplementing traditional program analysis with natural language analysis of program source code. This paper presents a case study where we have augmented an existing reverse engineering tool, an aspect miner, to complement the existing traditional program analysis-based miner with natural language analysis of method names, class names, and comments. Our quantitative and qualitative results strongly suggest that supplementing traditional program analysis with natural language analysis is a promising approach to raising the level of effectiveness of reverse engineering tools.