Abstract
Software reuse aims to decrease the development efforts by using existing software components in the development of new systems. Previous work propose tools to support the identification of reuse opportunities. Such tools apply different techniques, such as software design and source code analyses. However, none of them combines lexical analysis with prioritization and identification of reuse opportunities in several systems of a single domain. To fill this gap, this paper proposes JReuse, a tool that computes naming similarity for classes and methods of Java systems. Based on naming similarity, JReuse identifies reuse opportunities and prioritizes them by their frequency among systems. We evaluate JReuse with 35 e-commerce systems collected from GitHub by assessing the agreement among the JReuse recommendations and the opinion of a group of experts. We observe agreements of 89% and 72% for classes and methods, respectively. Therefore, our data suggest that JReuse is able to recommend reusable classes and methods in a given domain.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
Bilenko, M., Mooney, R.: Adaptive duplicate detection using learnable string similarity measures. In: 9th Conference on Knowledge Discovery and Data Mining (KDD), pp. 39–48 (2003)
Diakopoulos, N., Cass, S.: The Top Programming Languages 2015. http://spectrum.ieee.org/static/interactive-thetop-programming-languages-2015
Gitchell, D., Tran, N.: Sim: a utility for detecting similarity in computer programs. ACM SIGCSE Bull. 31(1), 266–270 (1999)
Krueger, C.: Software reuse. ACM Comput. Surv. (CSUR) 24(2), 131–183 (1992)
Maarek, Y., Berry, D., Kaiser, G.: An information retrieval approach for automatically constructing software libraries. IEEE Trans. Softw. Eng. (TSE) 17(8), 800–813 (1991)
Mohagheghi, P., Conradi, R.: Quality, productivity and economic benefits of software reuse: a review of industrial studies. Empirical Softw. Eng. (ESE) 12(5), 471–516 (2007)
Mohagheghi, P., Conradi, R., Killi, O., Schwarz, H.: An empirical study of software reuse vs. defect-density and stability. In: 26th ICSE, pp. 282–291 (2004)
Mojica, I., Adams, B., Nagappan, M., Dienst, S., Berger, T., Hassan, A.: A large-scale empirical study on software reuse in mobile apps. IEEE Softw. 31(2), 78–86 (2014)
Monroe, R., Garlan, D.: Style-based reuse for software architectures. In: 4th ICSR, pp. 84–93 (1996)
Oliveira, J.: A method based on naming similarity to identify reuse opportunities. MSc dissertation, Federal University of Minas Gerais (UFMG), Belo Horizonte, Brazil (2016)
Oliveira, J., Fernandes, E., Vale, G., Figueiredo, E.: JReuse – Data of the Study. http://homepages.dcc.ufmg.br/~johnatan.si/jreuse
Roopa, M., Mani, V., Stefan, H.: An approach for enabling effective and systematic software reuse. In: 11th ICGSE, pp. 134–138 (2016)
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M., Regnell, B., Wesslén, A.: Experimentation in Software Engineering. Springer Science & Business Media, Heidelberg (2012)
Ye, Y., Fischer, G.: Reuse-conducive development environments. Autom. Softw. Eng. (ASE) 12(2), 199–235 (2005)
Yujian, L., Bo, L.: A normalized Levenshtein distance metric. IEEE Trans. Pattern Anal. Mach. Intell. (TPAMI) 29(6), 1091–1095 (2007)
Acknowledgments
This work was partially supported by CAPES, CNPq (grants 424340/2016-0 and 290136/2015-6), and FAPEMIG (grant PPM-00382-14).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Oliveira, J., Fernandes, E., Vale, G., Figueiredo, E. (2017). Identification and Prioritization of Reuse Opportunities with JReuse. In: Botterweck, G., Werner, C. (eds) Mastering Scale and Complexity in Software Reuse. ICSR 2017. Lecture Notes in Computer Science(), vol 10221. Springer, Cham. https://doi.org/10.1007/978-3-319-56856-0_13
Download citation
DOI: https://doi.org/10.1007/978-3-319-56856-0_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-56855-3
Online ISBN: 978-3-319-56856-0
eBook Packages: Computer ScienceComputer Science (R0)