Skip to main content

Mining for Software Library Usage Patterns Within an Ecosystem: Are We There Yet?

  • Chapter
  • First Online:
Software Ecosystems
  • 254 Accesses

Abstract

The use of software libraries is important in a software development ecosystem, in which the systems are interacting and share several usages of Application Programming Interfaces. The patterns of library usages have been shown to be useful in not only improving the productivity of the coding process via software reuse but also improving the code quality. In this chapter, we systematically evaluate the different approaches in library usage pattern mining. We also provide lessons learned from the history of those approaches and discuss the potential future directions in the usage pattern mining area.

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 149.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 199.99
Price excludes VAT (USA)
  • Durable hardcover 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. Acharya, M., Xie, T., Pei, J., Xu, J.: Mining API patterns as partial orders from source code: from usage scenarios to specifications. In: Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), pp. 25–34. ACM, New York (2007)

    Google Scholar 

  2. Andrzej, W., Zeller, A., Lindig, C.: Detecting object usage anomalies. In: Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The foundations of Software Engineering (ESEC/FSE), pp. 35–44. ACM, New York (2007). https://doi.org/10.1145/1287624.1287632

  3. Dagenais, B., Hendren, L.: Enabling static analysis for partial Java programs. In: Conference on Object-Oriented Programming Systems Languages and Applications (OOPSLA), pp. 313–328. ACM, New York (2008). https://doi.org/10.1145/1449764.1449790

  4. Engler, D., Chen, D.Y., Hallem, S., Chou, A., Chelf, B.: Bugs as deviant behavior: a general approach to inferring errors in systems code. In: Symposium on Operating Systems Principles (SOSP), pp. 57–72. ACM, New York (2001)

    Google Scholar 

  5. Fowkes, J., Sutton, C.: Parameter-free probabilistic API mining across GitHub. In: International Symposium on Foundations of Software Engineering (FSE), pp. 254–265. ACM, New York (2016). https://doi.org/10.1145/2950290.2950319

  6. Glassman, E.L., Zhang, T., Hartmann, B., Kim, M.: Visualizing API usage examples at scale. In: Conference on Human Factors in Computing Systems (CHI). ACM (2018). https://doi.org/10.1145/3173574.3174154

  7. Li, Z., Zhou, Y.: PR-Miner: Automatically extracting implicit programming rules and detecting violations in large software code. In: Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), pp. 306–315. ACM, New York (2005)

    Google Scholar 

  8. Michail, A.: Data mining library reuse patterns using generalized association rules. In: International Conference on Software Engineering (ICSE), pp. 167–176. ACM, New York (2000). https://doi.org/10.1145/337180.337200

  9. Moreno, L., Bavota, G., Di Penta, M., Oliveto, R., Marcus, A.: How can i use this method? In: International Conference on Software Engineering (ICSE), pp. 880–890. IEEE, Piscataway (2015)

    Google Scholar 

  10. Moritz, E., Linares-Vásquez, M., Poshyvanyk, D., Grechanik, M., McMillan, C., Gethers, M.: ExPort: detecting and visualizing API usages in large source code repositories. In: International Conference on Automated Software Engineering (ASE), pp. 646–651 (2013). https://doi.org/10.1109/ASE.2013.6693127

  11. Nguyen, A.T., Nguyen, H.A., Nguyen, T.T., Nguyen, T.N.: GraPacc: a graph-based pattern-oriented, context-sensitive code completion tool. In: International Conference on Software Engineering (ICSE), pp. 1407–1410. IEEE, Piscataway (2012)

    Google Scholar 

  12. Nguyen, H.A., Nguyen, T.T., Pham, N.H., Al-Kofahi, J.M., Nguyen, T.N.: Accurate and efficient structural characteristic feature extraction for clone detection. In: Fundamental Approaches to Software Engineering (FASE), pp. 440–455. Springer, Berlin (2009)

    Google Scholar 

  13. Nguyen, T.T., Nguyen, H.A., Pham, N.H., Al-Kofahi, J.M., Nguyen, T.N.: Graph-based mining of multiple object usage patterns. In: Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering (ESEC/FSE), pp. 383–392. ACM, New York (2009). https://doi.org/10.1145/1595696.1595767

  14. Niu, H., Keivanloo, I., Zou, Y.: API usage pattern recommendation for software development. J. Syst. Softw. 129, 127–139 (2017). https://doi.org/10.1016/j.jss.2016.07.026

    Article  Google Scholar 

  15. Saied, M.A., Sahraoui, H.: A cooperative approach for combining client-based and library-based API usage pattern mining. In: International Conference on Program Comprehension (ICPC) (2016). https://doi.org/10.1109/ICPC.2016.7503717

  16. Shen, Q., Wu, S., Zou, Y., Xie, B.: Comprehensive integration of API usage patterns. In: International Conference on Program Comprehension (ICPC), pp. 83–93 (2021). https://doi.org/10.1109/ICPC52881.2021.00017

  17. Sven, A., Nguyen, H.A., Nadi, S., Nguyen, T.N., Mezini, M.: Investigating next steps in static API-misuse detection. In: International Conference on Mining Software Repositories (MSR), pp. 265–275 (2019). https://doi.org/10.1109/MSR.2019.00053

  18. Wang, J., Dang, Y., Zhang, H., Chen, K., Xie, T., Zhang, D.: Mining succinct and high-coverage API usage patterns from source code. In: Working Conference on Mining Software Repositories (MSR), pp. 319–328. IEEE, Piscataway (2013)

    Google Scholar 

  19. Weimer, W., Necula, G.C.: Mining temporal specifications for error detection. In: International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), pp. 461–476. Springer, Berlin (2005)

    Google Scholar 

  20. Williams, C.C., Hollingsworth, J.K.: Automatic mining of source code repositories to improve bug finding techniques. Trans. Softw. Eng. 31(6), 466–480 (2005)

    Article  Google Scholar 

  21. Yang, J., Evans, D., Bhardwaj, D., Bhat, T., Das, M.: Perracotta: Mining temporal API rules from imperfect traces. In: International Conference on Software Engineering (ICSE), pp. 282–291. ACM, New York (2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tien N. Nguyen .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Nguyen, T.N. (2023). Mining for Software Library Usage Patterns Within an Ecosystem: Are We There Yet?. In: Mens, T., De Roover, C., Cleve, A. (eds) Software Ecosystems. Springer, Cham. https://doi.org/10.1007/978-3-031-36060-2_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-36060-2_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-36059-6

  • Online ISBN: 978-3-031-36060-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics