Skip to main content

Detecting Entry Points in Java Libraries

  • Conference paper
Book cover Perspectives of Systems Informatics (PSI 2011)

Part of the book series: Lecture Notes in Computer Science ((LNISA,volume 7162))

  • 513 Accesses

Abstract

When writing a Java library, it is very difficult to hide functionality that is intended not to be used by clients. The visibility concept of Java often forces the developer to expose implementation details. Consequently, we find a high number of public classes and methods in many Java libraries. Thus, client programmers must rely on documentation in order to identify the entry points of the library, i.e. the methods originally intended to be used by clients.

In this paper, we introduce a new metric, called the Method Weight, that assists in detecting entry points. Applying this metric on some well-known open-source Java libraries considerably supported the process of identifying their entry points. Furthermore, the metric provides a classification criterion to distinguish libraries with focused functionality from plain collections of utility classes.

This work was supported by Bundesministerium für Bildung und Forschung, research framework Unternehmen Region, project BIZWARE.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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. Apache Foundation: Byte Code Engineering Library (BCEL) 5.2, http://jakarta.apache.org/bcel/

  2. Apache Foundation: Commons IO Library 2.0.1, http://commons.apache.org/io/

  3. Bloch, J.: Effective Java, 2nd edn. Addison-Wesley (2008)

    Google Scholar 

  4. Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20, 476–493 (1994), http://portal.acm.org/citation.cfm?id=630808.631131

    Article  Google Scholar 

  5. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading/MA (1995)

    Google Scholar 

  6. Gosling, J., Joy, B., Steele, G.L., Bracha, G.: Java Language Specification, 3rd edn. Addison-Wesley (2005)

    Google Scholar 

  7. Halstead, M.H.: Elements of software science. Elsevier (1977)

    Google Scholar 

  8. Henning, M.: API Design Matters. Communications of the ACM (CACM) 52(5), 46–56 (2009)

    Article  Google Scholar 

  9. Java Community Process: Java Specification Request (JSR)-294, http://jcp.org/en/jsr/detail?id=294

  10. Kerievsky, J.: Refactoring to Patterns. Addison-Wesley (2005)

    Google Scholar 

  11. Knoernschild, K.: JarAnalyzer 1.2, http://www.kirkk.com/main/main/jaranalyzer

  12. Lafortune, E.: ProGuard 4.6, http://proguard.sourceforge.net/

  13. McCabe, T.J.: A complexity measure. IEEE Transactions on Software Engineering 2(4), 308–320 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  14. OpenJDK: Project jigsaw, http://openjdk.java.net/projects/jigsaw/

  15. OSGi Alliance: OSGi Service Platform Release 4.2 (2010), http://www.osgi.org/Download/Release4V42

  16. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 1053–1058 (1972), http://doi.acm.org/10.1145/361598.361623

    Article  Google Scholar 

  17. Spinellis, D.D.: ckjm 1.9 — an implementation of the Chidamber and Kemerer metrics for Java, http://www.spinellis.gr/sw/ckjm/

  18. Tulach, J.: Practical API Design: Confessions of a Java Framework Architect. APress (2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Baar, T., Kumar, P. (2012). Detecting Entry Points in Java Libraries. In: Clarke, E., Virbitskaite, I., Voronkov, A. (eds) Perspectives of Systems Informatics. PSI 2011. Lecture Notes in Computer Science, vol 7162. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29709-0_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-29709-0_6

  • Publisher Name: Springer, Berlin, Heidelberg

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

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics