An Information Retrieval Approach for Automatically Constructing Software Libraries
IEEE Transactions on Software Engineering
Recovering Traceability Links between Code and Documentation
IEEE Transactions on Software Engineering
Assessing the relevance of identifier names in a legacy software system
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
Object-oriented COBOL recycling
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Nomen Est Omen: Analyzing the Language of Function Identifiers
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Restructuring Program Identifier Names
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Identifying Comprehension Bottlenecks Using Program Slicing and Cognitive Complexity Metrics
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Identification of High-Level Concept Clones in Source Code
Proceedings of the 16th IEEE international conference on Automated software engineering
Columbus - Reverse Engineering Tool and Schema for C++
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Automatic Categorization Algorithm for Evolvable Software Archive
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
An Information Retrieval Approach to Concept Location in Source Code
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
IEEE Transactions on Software Engineering
What's in a Name? A Study of Identifiers
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Data Mining Static Code Attributes to Learn Defect Predictors
IEEE Transactions on Software Engineering
Information and Software Technology
Hi-index | 0.00 |
Readers of programs have two main sources of domain information: identifier names and comments. In order to efficiently maintain source code, it is important that the identifier names (as well as comments) communicate clearly the concepts they represent. Deißenböck and Pizka recently introduced two rules for creating well-formed identifiers: one considers the consistency of identifiers and the other their conciseness. These rules require a mapping from identifiers to the concepts they represent, which may be costly to develop after the initial release of a system. An approach for verifying whether identifiers are well formed without any additional information (e.g., a concept mapping) is developed. Using a pool of 48 million lines of code, experiments with the resulting syntactic rules for well-formed identifiers illustrate that violations of the syntactic pattern exist. Two case studies show that three-quarters of these violations are ‘real’. That is, they could be identified using a concept mapping. Three related studies show that programmers tend to use a rather limited vocabulary, that, contrary to many other aspects of system evolution, maintenance does not introduce additional rule violations, and that open and proprietary sources differ in their percentage of violations. Copyright © 2007 John Wiley & Sons, Ltd.