Dynamically discovering likely program invariants to support program evolution
Proceedings of the 21st international conference on Software engineering
Artificial Intelligence
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
Refactoring for generalization using type constraints
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Using Origin Analysis to Detect Merging and Splitting of Source Code Entities
IEEE Transactions on Software Engineering
Efficient and precise dynamic impact analysis using execute-after sequences
Proceedings of the 27th international conference on Software engineering
Detecting higher-level similarity patterns in programs
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Strathcona example recommendation tool
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
E-generalization using grammars
Artificial Intelligence
Analyzing the Evolutionary History of the Logical Design of Object-Oriented Software
IEEE Transactions on Software Engineering
When Functions Change Their Names: Automatic Detection of Origin Relationships
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Program element matching for multi-version program analyses
Proceedings of the 2006 international workshop on Mining software repositories
Detecting similar Java classes using tree algorithms
Proceedings of the 2006 international workshop on Mining software repositories
Tracking Code Clones in Evolving Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Jigsaw: a tool for the small-scale reuse of source code
Companion of the 30th international conference on Software engineering
Annotation refactoring: inferring upgrade transformations for legacy applications
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Semi-automating small-scale source code reuse via structural correspondence
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
DebugAdvisor: a recommender system for debugging
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A code reuse interface for non-programmer middle school students
Proceedings of the 15th international conference on Intelligent user interfaces
Exploring the design space of proactive tool support for copy-and-paste programming
CASCON '09 Proceedings of the 2009 Conference of the Center for Advanced Studies on Collaborative Research
Actively comparing clones inside the code editor
Proceedings of the 4th International Workshop on Software Clones
A program differencing algorithm for verilog HDL
Proceedings of the IEEE/ACM international conference on Automated software engineering
Representing clones in a localized manner
Proceedings of the 5th International Workshop on Software Clones
An empirical study of long-lived code clones
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
iDiff: Interaction-based program differencing tool
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Identification of generalization refactoring opportunities
Automated Software Engineering
Hi-index | 0.00 |
Generalization tasks are important for continual improvement to the design of an evolving code base, eliminating redundancy where it has accumulated. An important step in generalization is identifying the detailed structural correspondence between two pieces of code being considered for generalization. Unfortunately, tool support for this step is insufficient, leaving the developer to resort to tedious and error-prone manual determination of correspondence. This paper presents an approach for automatically determining correspondences as an early step in a generalization task. The approach is implemented in a proof-of-concept plug-in to the Eclipse integrated development environment. Two small empirical evaluations of the tool have been conducted: a comparison between human attempts to determine detailed correspondences and those of the tool; and, a comparison of the use of the tool to the use of diff/CCFinder in performing generalization tasks.