DocumentCode
2577780
Title
TRIS: A Fast and Accurate Identifiers Splitting and Expansion Algorithm
Author
Guerrouj, Latifa ; Galinier, Philippe ; Guéhéneuc, Yann-Gaël ; Antoniol, Giuliano ; Penta, Massimiliano Di
Author_Institution
DGIGL, Ecole Polytech. de Montreal, Montreal, QC, Canada
fYear
2012
fDate
15-18 Oct. 2012
Firstpage
103
Lastpage
112
Abstract
Understanding source code identifiers, by identifying words composing them, is a necessary step for many program comprehension, reverse engineering, or redocumentation tasks. To this aim, researchers have proposed several identifier splitting and expansion approaches such as Samurai, TIDIER and more recently GenTest. The ultimate goal of such approaches is to help disambiguating conceptual information encoded in compound (or abbreviated) identifiers. This paper presents TRIS, TRee-based Identifier Splitter, a two-phases approach to split and expand program identifiers. First, TRIS pre-compiles transformed dictionary words into a tree representation, associating a cost to each transformation. In a second phase, it maps the identifier splitting/expansion problem into a minimization problem, i.e., the search of the shortest path (optimal split/expansion) in a weighted graph. We apply TRIS to a sample of 974 identifiers extracted from JHotDraw, 3,085 from Lynx, and to a sample of 489 identifiers extracted from 340 C programs. Also, we compare TRIS with GenTest on a set of 2,663 mixed Java, C and C++ identifiers. We report evidence that TRIS split (and expansion) is more accurate than state-of-the-art approaches and that it is also efficient in terms of computation time.
Keywords
identification; program diagnostics; reverse engineering; source coding; trees (mathematics); C identifiers; C programs; C++ identifiers; GenTest; JHotDraw; Java identifiers; Lynx; Samurai; TIDIER; TRIS; identifier expansion algorithm; identifier splitting algorithm; minimization problem; program comprehension; redocumentation tasks; reverse engineering; shortest path; source code identifiers; state-of-the-art approaches; transformed dictionary words; tree representation; tree-based identifier splitter; two-phase approach; weighted graph; Buildings; Complexity theory; Context; Dictionaries; Java; Software; Identifier Splitting/Expansion; Linguistic Analysis; Optimal Path; Program Comprehension; Weighted Acyclic Graph;
fLanguage
English
Publisher
ieee
Conference_Titel
Reverse Engineering (WCRE), 2012 19th Working Conference on
Conference_Location
Kingston, ON
ISSN
1095-1350
Print_ISBN
978-1-4673-4536-1
Type
conf
DOI
10.1109/WCRE.2012.20
Filename
6385106
Link To Document