Skip to main content

Identification and Prioritization of Reuse Opportunities with JReuse

  • Conference paper
  • First Online:
Mastering Scale and Complexity in Software Reuse (ICSR 2017)

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

Included in the following conference series:

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.

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 EPUB and 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

Notes

  1. 1.

    https://github.com/.

References

  1. 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)

    Google Scholar 

  2. Diakopoulos, N., Cass, S.: The Top Programming Languages 2015. http://spectrum.ieee.org/static/interactive-thetop-programming-languages-2015

  3. Gitchell, D., Tran, N.: Sim: a utility for detecting similarity in computer programs. ACM SIGCSE Bull. 31(1), 266–270 (1999)

    Article  Google Scholar 

  4. Krueger, C.: Software reuse. ACM Comput. Surv. (CSUR) 24(2), 131–183 (1992)

    Article  Google Scholar 

  5. 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)

    Article  Google Scholar 

  6. 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)

    Article  Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Article  Google Scholar 

  9. Monroe, R., Garlan, D.: Style-based reuse for software architectures. In: 4th ICSR, pp. 84–93 (1996)

    Google Scholar 

  10. Oliveira, J.: A method based on naming similarity to identify reuse opportunities. MSc dissertation, Federal University of Minas Gerais (UFMG), Belo Horizonte, Brazil (2016)

    Google Scholar 

  11. Oliveira, J., Fernandes, E., Vale, G., Figueiredo, E.: JReuse – Data of the Study. http://homepages.dcc.ufmg.br/~johnatan.si/jreuse

  12. Roopa, M., Mani, V., Stefan, H.: An approach for enabling effective and systematic software reuse. In: 11th ICGSE, pp. 134–138 (2016)

    Google Scholar 

  13. Wohlin, C., Runeson, P., Höst, M., Ohlsson, M., Regnell, B., Wesslén, A.: Experimentation in Software Engineering. Springer Science & Business Media, Heidelberg (2012)

    Book  MATH  Google Scholar 

  14. Ye, Y., Fischer, G.: Reuse-conducive development environments. Autom. Softw. Eng. (ASE) 12(2), 199–235 (2005)

    Article  Google Scholar 

  15. Yujian, L., Bo, L.: A normalized Levenshtein distance metric. IEEE Trans. Pattern Anal. Mach. Intell. (TPAMI) 29(6), 1091–1095 (2007)

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Johnatan Oliveira .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics