WordNet: a lexical database for English
Communications of the ACM
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Finding refactorings via change metrics
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Tracking structural evolution using origin analysis
Proceedings of the International Workshop on Principles of Software Evolution
Recovering Traceability Links between Code and Documentation
IEEE Transactions on Software Engineering
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Restructuring Program Identifier Names
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
3rd international workshop on traceability in emerging forms of software engineering (TEFSE 2005)
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
What's in a Name? A Study of Identifiers
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
The Conceptual Coupling Metrics for Object-Oriented Systems
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
Syntactic Identifier Conciseness and Consistency
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
Refactoring Detection based on UMLDiff Change-Facts Queries
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems
IEEE Transactions on Software Engineering
On the Use of Domain Terms in Source Code
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Tracking Your Changes: A Language-Independent Approach
IEEE Software
Recovering the Evolution Stable Part Using an ECGM Algorithm: Is There a Tunnel in Mozilla?
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Analyzing the Evolution of the Source Code Vocabulary
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Mining source code to automatically split identifiers for software analysis
MSR '09 Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories
Recognizing Words from Source Code Identifiers Using Speech Recognition Techniques
CSMR '10 Proceedings of the 2010 14th European Conference on Software Maintenance and Reengineering
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Is it dangerous to use version control histories to study source code evolution?
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
The MSR cookbook: mining a decade of research
Proceedings of the 10th Working Conference on Mining Software Repositories
Replicating mining studies with SOFAS
Proceedings of the 10th Working Conference on Mining Software Repositories
Hi-index | 0.00 |
Identifiers play an important role in source code understandability, maintainability, and fault-proneness. This paper reports a study of identifier renamings in software systems, studying how terms (identifier atomic components) change in source code identifiers. Specifically, the paper (i) proposes a term renaming taxonomy, (ii) presents an approximate lightweight code analysis approach to detect and classify term renamings automatically into the taxonomy dimensions, and (iii) reports an exploratory study of term renamings in two open-source systems, Eclipse-JDT and Tomcat. We thus report evidence that not only synonyms are involved in renamings but also (in a small fraction) more unexpected changes occur: surprisingly, we detected hypernym (a more abstract term, e.g., size vs. length) and hyponym (a more concrete term, e.g., restriction vs. rule) renamings, and antonym renamings (a term replaced with one having the opposite meaning, e.g., closing vs. opening). Despite being only a fraction of all renamings, synonym, hyponym, hypernym, and antonym renamings may hint at some program understanding issues and, thus, could be used in a renamingrecommendation system to improve code quality.