Skip to main content

Mining Software Components from Object-Oriented APIs

  • Conference paper
Software Reuse for Dynamic Systems in the Cloud and Beyond (ICSR 2015)

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

Included in the following conference series:

Abstract

Object-oriented Application Programing Interfaces (APIs) support software reuse by providing pre-implemented functionalities. Due to the huge number of included classes, reusing and understanding large APIs is a complex task. Otherwise, software components are admitted to be more reusable and understandable entities than object-oriented ones. Thus, in this paper, we propose an approach for reengineering object- oriented APIs into component-based ones. We mine components as a group of classes based on the frequency they are used together and their ability to form a quality-centric component. To validate our approach, we experimented on 100 Java applications that used Android APIs.

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. Frakes, W.B., Kang, K.: Software reuse research: status and future. IEEE Transactions on Software Engineering 31(7), 529–536 (2005)

    Article  Google Scholar 

  2. Zibran, M.F., Eishita, F.Z., Roy, C.K.: Useful, but usable? factors affecting the usability of apis. In: 18th Working Conf. on Reverse Engineering (WCRE), pp. 151–155 (2011)

    Google Scholar 

  3. Monperrus, M., Eichberg, M., Tekes, E., Mezini, M.: What should developers be aware of? An empirical study on the directives of api documentation. Empirical Software Engineering 17(6), 703–737 (2012)

    Article  Google Scholar 

  4. Ma, H., Amor, R., Tempero, E.: Usage patterns of the java standard api. In: 13th Asia Pacific Software Engineering Conf. (APSEC), pp. 342–352 (2006)

    Google Scholar 

  5. Uddin, G., Dagenais, B., Robillard, M.P.: Temporal analysis of api usage concepts. In: Proc. of the 2012 Inter. Conf. on Software Engineering (ICSE), pp. 804–814. IEEE Press, Piscataway (2012)

    Chapter  Google Scholar 

  6. Wang, J., Dang, Y., Zhang, H., Chen, K., Xie, T., Zhang, D.: Mining succinct and high-coverage api usage patterns from source code. In: Proc. of the 10th Working Conf. on Mining Software Repositories (MSR), pp. 319–328. IEEE Press, Piscataway (2013)

    Google Scholar 

  7. Montandon, J.E., Borges, H., Felix, D., Valente, M.T.: Documenting apis with examples: Lessons learned with the apiminer platform. In: 20th Working Conf. on Reverse Engineering (WCRE), pp. 401–408 (2013)

    Google Scholar 

  8. Monperrus, M., Bruch, M., Mezini, M.: Detecting missing method calls in object-oriented software. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 2–25. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  9. Maalej, W., Robillard, M.P.: Patterns of knowledge in api reference documentation. IEEE Transactions on Software Engineering 39(9), 1264–1282 (2013)

    Article  Google Scholar 

  10. Szyperski, C.: Component Software: Beyond Object-Oriented Programming. Pearson Education (2002)

    Google Scholar 

  11. Kebir, S., Seriai, A.-D., Chardigny, S., Chaoui, A.: Quality-centric approach for software component identification from object-oriented code. In: Joint Working IEEE/IFIP Conf. and European Conf. on Software Architecture (WICSA)/(ECSA), pp. 181–190 (2012)

    Google Scholar 

  12. Allier, S., Sadou, S., Sahraoui, H., Fleurquin, R.: From object-oriented applications to component-oriented applications via component-oriented architecture. In: 2011 9th Working IEEE/IFIP Conf. on Software Architecture (WICSA), pp. 214–223 (2011)

    Google Scholar 

  13. Lüer, C., Van Der Hoek, A.: Composition Environments for Deployable Software Components. Citeseer (2002)

    Google Scholar 

  14. Heineman, G.T., Councill, W.T.: Component-Based Software Engineering: Putting the Pieces Together, vol. 17. Addison-Wesley, Reading (2001)

    Google Scholar 

  15. Chardigny, S., Seriai, A., Oussalah, M., Tamzalit, D.: Extraction of component-based architecture from object-oriented systems. In: Seventh Working IEEE/IFIP Conf. on Software Architecture (WICSA), pp. 285–288 (2008)

    Google Scholar 

  16. ISO. Software Engineering – Product Quality – Part 1: Quality Model. Technical Report ISO/IEC 9126-1, International Organization for Standardization (2001)

    Google Scholar 

  17. Chardigny, S., Seriai, A., Oussalah, M., Tamzalit, D.: Search-based extraction of component-based architecture from object-oriented systems. In: Morrison, R., Balasubramaniam, D., Falkner, K. (eds.) ECSA 2008. LNCS, vol. 5292, pp. 322–325. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  18. Han, J., Kamber, M., Pei, J.: Data mining: Concepts and techniques. Morgan Kaufmann (2006)

    Google Scholar 

  19. Bieman, J.M., Kang, B.-K.: Cohesion and reuse in an object-oriented system. In: Proc. of the 1995 Symposium on Software Reusability (SSR), pp. 259–262. ACM, New York (1995)

    Chapter  Google Scholar 

  20. Poshyvanyk, D.: A Marcus. The conceptual coupling metrics for object-oriented systems. In: 22nd IEEE Inter. Conf. on Software Maintenance (ICSM), pp. 469–478 (2006)

    Google Scholar 

  21. Garcia, J., Ivkovic, I., Medvidovic, N.: A comparative analysis of software architecture recovery techniques. In: IEEE/ACM 28th Inter. Conf. on Automated Software Engineering (ASE), pp. 486–496 (2013)

    Google Scholar 

  22. von Detten, M., Platenius, M.C., Becker, S.: Reengineering component-based software systems with archimetrix. Software & Systems Modeling, 1–30 (2013)

    Google Scholar 

  23. Weinreich, R., Miesbauer, C., Buchgeher, G., Kriechbaum, T.: Extracting and facilitating architecture in service-oriented software systems. In: Joint Working IEEE/IFIP Conf. on Software Architecture (WICSA) and European Conf. on Software Architecture (ECSA), pp. 81–90 (2012)

    Google Scholar 

  24. Shatnawi, A., Seriai, A.-D.: Mining reusable software components from object-oriented source code of a set of similar software. In: IEEE 14th Inter. Conf. on Information Reuse and Integration (IRI), pp. 193–200 (2013)

    Google Scholar 

  25. Robillard, M.P., Bodden, E., Kawrykow, D., Mezini, M., Ratchford, T.: Automated api property inference techniques. IEEE Transactions on Software Engineering 39(5), 613–637 (2013)

    Article  Google Scholar 

  26. Bruch, M., Schäfer, T., Mezini, M.: Fruit: Ide support for framework understanding. In: Proc. of the 2006 OOPSLA Workshop on Eclipse Technology Exchange, pp. 55–59. ACM, New York (2006)

    Chapter  Google Scholar 

  27. Buse, R.P.L., Weimer, W.: Synthesizing api usage examples. In: Proc. of the 2012 Inter. Conf. on Software Engineering, ICSE 2012, pp. 782–792. IEEE Press, Piscataway (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Shatnawi, A., Seriai, A., Sahraoui, H., Al-Shara, Z. (2014). Mining Software Components from Object-Oriented APIs. In: Schaefer, I., Stamelos, I. (eds) Software Reuse for Dynamic Systems in the Cloud and Beyond. ICSR 2015. Lecture Notes in Computer Science, vol 8919. Springer, Cham. https://doi.org/10.1007/978-3-319-14130-5_23

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-14130-5_23

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-14129-9

  • Online ISBN: 978-3-319-14130-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics