TIDIER: an identifier splitting approach using speech recognition techniques

Latifa Guerrouj, Massimiliano Di Penta, Giuliano Antoniol, Yann-Gaël Guéhéneuc
2011 Journal of Software: Evolution and Process  
The software engineering literature reports empirical evidence on the relation between various characteristics of a software system and its quality. Among other factors, recent studies have shown that a proper choice of identifiers influences understandability and maintainability. Indeed, identifiers are developers' main source of information and guide their cognitive processes during program comprehension when high-level documentation is scarce or outdated and when source code is not
more » ... ly commented. This paper proposes a novel approach to recognize words composing source code identifiers. The approach is based on an adaptation of Dynamic Time Warping used to recognize words in continuous speech. The approach overcomes the limitations of existing identifier-splitting approaches when naming conventions (e.g., Camel Case) are not used or when identifiers contain abbreviations. We apply the approach on a sample of more than 1000 identifiers extracted from 340 C programs and compare its results with a simple Camel Case splitter and with an implementation of an alternative identifier splitting approach, Samurai. Results indicate the capability of the novel approach: (i) to outperform the alternative ones, when using a dictionary augmented with domain knowledge or a contextual dictionary and (ii) to expand 48% of a set of selected abbreviations into dictionary words. The effect size is considered small for 0.2 ≤ d < 0.5, medium for 0.5 ≤ d < 0.8, and large for d ≥ 0.8 [25] . We choose the Cohen d effect size because it is appropriate for our variables (in ratio scale) and because the different levels (small, medium, and large) are easy to interpret. As both the Fisher's exact test and the Wilcoxon paired test are executed multiple times to compare the various approaches and dictionaries, significant p-values must be corrected. We used the Holm correction [26] , which is similar to the Bonferroni correction, but less stringent. It works
doi:10.1002/smr.539 fatcat:iu7cfsgalzf4npavl3cgsnvuaq