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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Frakes, W.B., Kang, K.: Software reuse research: status and future. IEEE Transactions on Software Engineering 31(7), 529–536 (2005)
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)
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)
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)
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)
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)
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)
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)
Maalej, W., Robillard, M.P.: Patterns of knowledge in api reference documentation. IEEE Transactions on Software Engineering 39(9), 1264–1282 (2013)
Szyperski, C.: Component Software: Beyond Object-Oriented Programming. Pearson Education (2002)
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)
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)
Lüer, C., Van Der Hoek, A.: Composition Environments for Deployable Software Components. Citeseer (2002)
Heineman, G.T., Councill, W.T.: Component-Based Software Engineering: Putting the Pieces Together, vol. 17. Addison-Wesley, Reading (2001)
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)
ISO. Software Engineering – Product Quality – Part 1: Quality Model. Technical Report ISO/IEC 9126-1, International Organization for Standardization (2001)
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)
Han, J., Kamber, M., Pei, J.: Data mining: Concepts and techniques. Morgan Kaufmann (2006)
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)
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)
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)
von Detten, M., Platenius, M.C., Becker, S.: Reengineering component-based software systems with archimetrix. Software & Systems Modeling, 1–30 (2013)
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)
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)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)