30 June 2009
SEAD Seminar: Simon Butler
JLB meeting room 10
Title: The Influence of Identifier Naming on Source Code Readability and Quality
Abstract: Identifier names are natural language representations of program concepts in source code, which the readers of source code, such as maintenance programmers, rely on for program comprehension. It has been shown that ill-considered, or poor quality, identifier names affect the readability of source code and hinder program comprehension. However, as identifier names are also artefacts of designers' and programmers' cognitive processes, to what extent are poor quality identifiers indicative of problems in source code, including bugs?
We adapted a set of identifier naming style guidelines to evaluate the quality of identifier names in eight established open source Java applications and libraries. We used an existing tool to produce readability metrics for methods in each project and found statistically significant relationships between methods judged to be less-readable and the presence of flawed identifier names. Further investigation of each project with FindBugs, a static analysis tool, uncovered statistically significant relationships between FindBugs defects and flawed identifier names, at both the class and method levels. (A paper on the relationships between flawed identifier names and FindBugs defects at the class level has been submitted to ICSM '09.)
The relationships found at this early stage are not clear cut and indicate the need to develop a more sophisticated understanding of identifier name quality - in particular how identifier names might interact with each other and programming language elements - which will facilitate further exploration of the possible implications of poor quality identifier names for source code readability and code quality.
Simon Butler is a part-time PhD student in CRC with a research interest in programming conventions, and naming conventions in particular.
Seminar starts at 12.30pm, lunch will be provided from 12noon.
Save to your Calendar