Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/2820282.2820312acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

A survey of the forms of Java reference names

Published: 16 May 2015 Publication History

Abstract

The readability of identifiers is a major factor of program comprehension and an aim of naming convention guidelines. Due to their semantic content, identifiers are also used in feature and bug location, among other software maintenance tasks. Looking at how names are used in practice may lead to insights on potential problems for comprehension and for programming support tools that process identifiers.
Class and method names are already well represented in the literature. This paper presents an investigation of Java field, formal argument and local variable names, which we collectively call reference names. These names cannot be ignored because they constitute over half the unique names and almost 70% of the name declarations in the corpus investigated.
We analysed the forms of 3.5 million reference name declarations in 60 well known Java projects, examining the phrasal structure of names composed of known words and acronyms. The structures found in practice were evaluated against those given in the literature. The use of unknown abbreviations and words, which may pose a problem for program comprehension, was also identified. Based on our observations of the rich diversity of reference names, we suggest issues to be taken into account for future academic research and for improving tools that rely on names as sources of information.

References

[1]
S. Butler, M. Wermelinger, Y. Yu, and H. Sharp, "INVocD: Identifier name vocabulary dataset," in Proc. of the 10th Working Conf. on Mining Software Repositories. IEEE, 2013, pp. 405--408.
[2]
J. Gosling, B. Joy, G. Steele, G. Bracha, and A. Buckley, The Java Language Specification (Java SE 8 edition), java se 8 ed. Oracle, 2014.
[3]
A. Vermeulen, S. W. Ambler, G. Bumgardner, E. Metz, T. Misfeldt, J. Shur, and P. Thompson, The Elements of Java Style. Cambridge University Press, 2000.
[4]
B. Liblit, A. Begel, and E. Sweetser, "Cognitive perspectives on the role of naming in computer programs," in Proc. 18th Annual Psychology of Programming Workshop. Psychology of Programming Interest Group, 2006.
[5]
E. Hill, "Integrating natural language and program structure information to improve software search and exploration," Ph.D. dissertation, The University of Delaware, 2010.
[6]
S. Abebe and P. Tonella, "Natural language parsing of program element names for concept extraction," in 18th Int'l Conf. on Program Comprehension. IEEE, Jun. 2010, pp. 156--159.
[7]
S. Gupta, S. Malik, L. Pollock, and K. Vijay-Shanker, "Part-of-speech tagging of program identifiers for improved text-based software engineering tool," in Proc. of the 21st Int'l Conf. on Program Comprehension, 2013, pp. 3--12.
[8]
E. W. Høst and B. M. Østvold, "The Java programmer's phrase book." in Software Language Engineering, ser. LNCS, vol. 5452. Springer, 2008, pp. 322--341.
[9]
S. Butler, M. Wermelinger, Y. Yu, and H. Sharp, "Mining Java class naming conventions," in Proc. of the 27th IEEE Int'l Conf. on Software Maintenance. IEEE, 2011, pp. 93--102.
[10]
D. Lawrie, H. Feild, and D. Binkley, "Quantifying identifier quality: an analysis of trends," Empirical Software Engineering, vol. 12, no. 4, pp. 359--388, 2007.
[11]
S. Butler, M. Wermelinger, Y. Yu, and H. Sharp, "Improving the tokenisation of identifier names," in 25th European Conf. on Object-Oriented Programming, ser. Lecture Notes in Computer Science, M. Mezini, Ed., vol. 6813. Springer Berlin/Heidelberg, 2011, pp. 130--154.
[12]
K. Atkinson, "SCOWL readme," http://wordlist.sourceforge.net/scowl-readme, 2004.
[13]
E. Hill, Z. P. Fry, H. Boyd, G. Sridhara, Y. Novikova, L. Pollock, and K. Vijay-Shanker, "AMAP: Automatically mining abbreviation expansions in programs to enhance software maintenance tools," in Proc. of the 5th Int'l Working Conf. on Mining Software Repositories. ACM, 2008, pp. 79--88.
[14]
K. Toutanova, D. Klein, C. Manning, and Y. Singer, "Feature-rich part-of-speech tagging with a cyclic dependency network," in Proceedings of HLT-NAACL, 2003, pp. 252--259.
[15]
M. Heller and C. Simonyi, "The Hungarian revolution," BYTE, vol. 16, no. 8, pp. 131--138, 1991.
[16]
D. Klein and C. D. Manning, "Fast exact inference with a factored model for natural language parsing," in Advances in Neural Information Processing Systems 15, 2002, pp. 3--10.
[17]
B. Santorini, "Part-of-speech tagging guidelines for the Penn Treebank Project," Department of Computer and Information Science, University of Pennsylvania, Tech. Rep. MS-CIS-90-47, 1990. {Online}. Available: http://repository.upenn.edu/cis_reports/570/
[18]
D. Lawrie, D. Binkley, and C. Morrell, "Normalizing source code vocabulary," in Proc. of the International Working Conference on Reverse Engineering, 2010.
[19]
M. Janssen, "Neotag: a pos tagger for grammatical neologism detection," in Proceedings of the Eight International Conference on Language Resources and Evaluation (LREC'12). European Language Resources Association (ELRA), 2012.
[20]
B. Caprile and P. Tonella, "Nomen est omen: analyzing the language of function identifiers," in Proc. Sixth Working Conf. on Reverse Engineering. IEEE, Oct 1999, pp. 112--122.
[21]
B. Caprile and P. Tonella, "Restructuring program identifier names," in Proc. Int'l Conf. on Software Maintenance. IEEE, 2000, pp. 97--107.
[22]
E. W. Høst and B. M. Østvold, "Debugging method names," in Proc. of the 23rd European Conf. on Object-Oriented Programming. Springer-Verlag, 2009, pp. 294--317.
[23]
D. Binkley, M. Hearn, and D. Lawrie, "Improving identifier informativeness using part of speech information," in Proc. of the Working Conf. on Mining Software Repositories, 2011.
[24]
C. Fellbaum, Ed., WordNet: an electronic lexical database. Bradford Books, 1998.
[25]
S. L. Abebe and P. Tonella, "Towards the extraction of domain concepts from the identifiers," in Proc. of the 18th Working Conf. on Reverse Engineering. IEEE Computer Society, Oct. 2011, pp. 77--86.

Cited By

View all
  • (2021)On the Naming of MethodsProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00061(587-599)Online publication date: 22-May-2021
  • (2017)Comprehending studies on program comprehensionProceedings of the 25th International Conference on Program Comprehension10.1109/ICPC.2017.9(308-311)Online publication date: 20-May-2017

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICPC '15: Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension
May 2015
325 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 16 May 2015

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '15
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2021)On the Naming of MethodsProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00061(587-599)Online publication date: 22-May-2021
  • (2017)Comprehending studies on program comprehensionProceedings of the 25th International Conference on Program Comprehension10.1109/ICPC.2017.9(308-311)Online publication date: 20-May-2017

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media