Skip to main content

Debugging Method Names

  • Conference paper
ECOOP 2009 – Object-Oriented Programming (ECOOP 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5653))

Included in the following conference series:

Abstract

Meaningful method names are crucial for the readability and maintainability of software. Existing naming conventions focus on syntactic details, leaving programmers with little or no support in assuring meaningful names. In this paper, we show that naming conventions can go much further: we can mechanically check whether or not a method name and implementation are likely to be good matches for each other. The vast amount of software written in Java defines an implicit convention for pairing names and implementations. We exploit this to extract rules for method names, which are used to identify “naming bugs” in well-known Java applications. We also present an approach for automatic suggestion of more suitable names in the presence of mismatch between name and implementation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bajracharya, S.K., Ngo, T.C., Linstead, E., Dou, Y., Rigor, P., Baldi, P., Lopes, C.V.: Sourcerer: a search engine for open source code supporting structure-based search. In: Tarr, P.L., Cook, W.R. (eds.) OOPSLA Companion, pp. 681–682. ACM Press, New York (2006)

    Google Scholar 

  2. Beck, K.: Implementation Patterns. Addison-Wesley Professional, Reading (2007)

    Google Scholar 

  3. Bloch, J.: Effective Java. Prentice-Hall, Englewood Cliffs (2008)

    Google Scholar 

  4. Caprile, B., Tonella, P.: Nomen est omen: Analyzing the language of function identifiers. In: Proceedings of the Sixth Working Conference on Reverse Engineering (WCRE 1999), Atlanta, Georgia, USA, 6-8 October 1999, pp. 112–122. IEEE Computer Society Press, Los Alamitos (1999)

    Google Scholar 

  5. Collar, E., Valerdi, R.: Role of software readability on software development cost. In: Proceedings of the 21st Forum on COCOMO and Software Cost Modeling, Herndon, VA (October 2006)

    Google Scholar 

  6. Deißenböck, F., Pizka, M.: Concise and consistent naming. In: Proceedings of the 13th IEEE International Workshop on Program Comprehension (IWPC 2005), pp. 97–106. IEEE Computer Society Press, Los Alamitos (2005)

    Chapter  Google Scholar 

  7. Eierman, M.A., Dishaw, M.T.: The process of software maintenance: a comparison of object-oriented and third-generation development languages. Journal of Software Maintenance and Evolution: Research and Practice 19(1), 33–47 (2007)

    Article  Google Scholar 

  8. Fellbaum, C.: WordNet: An Electronic Lexical Database. MIT Press, Cambridge (1998)

    MATH  Google Scholar 

  9. Frege, G.: On sense and reference. In: Geach, P., Black, M. (eds.) Translations from the Philosophical Writings of Gottlob Frege, pp. 56–78. Blackwell, Malden (1952)

    Google Scholar 

  10. Gil, J., Maman, I.: Micro patterns in Java code. In: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2005), San Diego, CA, USA, October 16-20, 2005, pp. 97–116. ACM Press, New York (2005)

    Chapter  Google Scholar 

  11. Høst, E.W., Østvold, B.M.: The programmer’s lexicon, volume I: The verbs. In: Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2007), Washington, DC, USA, pp. 193–202. IEEE Computer Society, Los Alamitos (2007)

    Chapter  Google Scholar 

  12. Høst, E.W., Østvold, B.M.: The Java programmer’s phrase book. In: Proceedings of the 1st International Conference on Software Language Engineering (SLE 2008), Springer, Heidelberg (2008)

    Google Scholar 

  13. Lawrie, D., Feild, H., Binkley, D.: Quantifying identifier quality: An analysis of trends. Journal of Empirical Software Engineering 12(4), 359–388 (2007)

    Article  Google Scholar 

  14. Lawrie, D., Morrell, C., Feild, H., Binkley, D.: What’s in a name? A study of identifiers. In: Proceedings of the 14th International Conference on Program Comprehension (ICPC 2006), Athens, Greece, 14-16 June 2006, pp. 3–12. IEEE Computer Society Press, Los Alamitos (2006)

    Chapter  Google Scholar 

  15. Liblit, B., Begel, A., Sweeser, E.: Cognitive perspectives on the role of naming in computer programs. In: Proceedings of the 18th Annual Psychology of Programming Workshop, Sussex, United Kingdom, September 2006, Psychology of Programming Interest Group (2006)

    Google Scholar 

  16. Ma, H., Amor, R., Tempero, E.D.: Indexing the Java API using source code. In: Australian Software Engineering Conference, pp. 451–460. IEEE Computer Society Press, Los Alamitos (2008)

    Google Scholar 

  17. Manning, C.D., Schuetze, H.: Foundations of Statistical Natural Language Processing. MIT Press, Cambridge (1999)

    Google Scholar 

  18. Martin, R.C.: Clean Code. Prentice-Hall, Englewood Cliffs (2008)

    Google Scholar 

  19. McConnell, S.: Code Complete: A Practical Handbook of Software Construction, 2nd edn. Microsoft Press (2004)

    Google Scholar 

  20. Pollock, L.L., Vijay-Shanker, K., Shepherd, D., Hill, E., Fry, Z.P., Maloor, K.: Introducing natural language program analysis. In: Proceedings of the 7th ACM Workshop on Program Analysis for Software Tools and Engineering (PASTE 2007), San Diego, California, USA, 2007, June 13-14, 2007, pp. 15–16. ACM, New York (2007)

    Google Scholar 

  21. Reiss, S.P.: Finding unusual code. In: Proceedings of the 23rd IEEE International Conference on Software Maintenance (ICSM 2007), pp. 34–43. IEEE Computer Society Press, Los Alamitos (2007)

    Google Scholar 

  22. Shepherd, D., Fry, Z.P., Hill, E., Pollock, L., Vijay-Shanker, K.: Using natural language program analysis to locate and understand action-oriented concerns. In: Proceedings of the 6th international conference on Aspect-oriented software development (AOSD 2007), pp. 212–224. ACM Press, New York (2007)

    Chapter  Google Scholar 

  23. Shepherd, D., Pollock, L.L., Vijay-Shanker, K.: Towards supporting on-demand virtual remodularization using program graphs. In: Proceedings of the 5th International Conference on Aspect-Oriented Software Development (AOSD 2006), pp. 3–14. ACM Press, New York (2006)

    Chapter  Google Scholar 

  24. Singer, J., Kirkham, C.: Exploiting the correspondence between micro patterns and class names. In: Proceedings of the Eight IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2008), pp. 67–76. IEEE Computer Society Press, Los Alamitos (2008)

    Chapter  Google Scholar 

  25. Surowiecki, J.: The Wisdom of Crowds. Anchor (2005)

    Google Scholar 

  26. Witten, I.H., Frank, E.: Data Mining: Practical Machine Learning Tools and Techniques, 2nd edn. Morgan Kaufmann, San Francisco (2005)

    MATH  Google Scholar 

  27. Wittgenstein, L.: Philosophical Investigations. Prentice-Hall, Englewood Cliffs (1973)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Høst, E.W., Østvold, B.M. (2009). Debugging Method Names. In: Drossopoulou, S. (eds) ECOOP 2009 – Object-Oriented Programming. ECOOP 2009. Lecture Notes in Computer Science, vol 5653. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03013-0_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-03013-0_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-03012-3

  • Online ISBN: 978-3-642-03013-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics