Providing Reusability-Aware Recommendations

  • Chapter
  • First Online:
Mining Software Engineering Data for Software Reuse

Abstract

As contemporary software development relies more on software reuse, several systems have been designed to automate the process of finding reusable software components from online sources and integrating them to one’s source code. However, these systems focus on whether the proposed components cover the desired functionality, without assessing also their reusability. In this chapter, we present a recommendation system for source code components that covers both the functional and the quality aspects of component reuse. Our system, which is named QualBoa, retrieves components from online repositories and reports their functional matching to the query as well as their reusability score, which is based on configurable thresholds of source code metrics. Upon providing an example usage scenario and evaluating QualBoa, we conclude that it is effective for recommending reusable source code.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or Ebook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
EUR 29.95
Price includes VAT (France)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
EUR 85.59
Price includes VAT (France)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
EUR 105.49
Price includes VAT (France)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free ship** worldwide - see info
Hardcover Book
EUR 105.49
Price includes VAT (France)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free ship** worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://www.eclipse.org/jdt/.

  2. 2.

    https://pmd.github.io/.

  3. 3.

    https://developers.google.com/java-dev-tools/codepro/.

References

  1. Hummel O, Janjic W, Atkinson C (2008) Code conjurer: pulling reusable software out of thin air. IEEE Softw 25(5):45–52

    Article  Google Scholar 

  2. Reiss SP (2009) Semantics-based code search. In: Proceedings of the 31st International Conference on Software Engineering, ICSE ’09. IEEE Computer Society, Washington, DC, USA, pp 243–253

    Google Scholar 

  3. Wei Y, Chandrasekaran N, Gulwani S, Hamadi Y (2015) Building Bing Developer Assistant. Technical Report MSR-TR-2015-36, Microsoft Research

    Google Scholar 

  4. Diamantopoulos T, Thomopoulos K, Symeonidis A (2016) QualBoa: reusability-aware Recommendations of source code components. In: Proceedings of the IEEE/ACM 13th Working Conference on Mining Software Repositories, MSR ’16. pp 488–491

    Google Scholar 

  5. Dyer R, Nguyen HA, Rajan H, Nguyen TN (2013) Boa: a language and infrastructure for analyzing ultra-large-scale software repositories. In: 35th International Conference on Software Engineering, ICSE 2013. pp 422–431

    Google Scholar 

  6. Tanimoto TT (1957) IBM Internal Report

    Google Scholar 

  7. Caldiera G, Basili VR (1991) Identifying and qualifying reusable software components. Computer 24(2):61–70

    Article  Google Scholar 

  8. Moser R, Sillitti A, Abrahamsson P, Succi G (2006) Does refactoring improve reusability? In: Proceedings of the 9th International Conference on Reuse of Off-the-Shelf Components, ICSR’06. Berlin, Heidelberg, Springer-Verlag, pp 287–297

    Google Scholar 

  9. Gui G, Scott PD (2006) Coupling and cohesion measures for evaluation of component reusability. In: Proceedings of the 2006 International Workshop on Mining Software Repositories, MSR ’06. ACM, New York, NY, USA, pp 18–21

    Google Scholar 

  10. Poulin JS (1994) Measuring software reusability. In: Proceedings of the Third International Conference on Software Reuse: Advances in Software Reusability. pp 126–138

    Google Scholar 

  11. Spinellis D (2006) Code Quality: The Open Source Perspective. Effective software development series. Addison-Wesley Professional

    Google Scholar 

  12. Dandashi F (2002) A method for assessing the reusability of object-oriented code using a validated set of automated measurements. In: Proceedings of the 2002 ACM Symposium on Applied Computing, SAC ’02. ACM, New York, NY, USA, pp 997–1003

    Google Scholar 

  13. Ferreira KAM, Bigonha MAS, Bigonha RS, Mendes LFO, Almeida HC (2012) Identifying thresholds for object-oriented software metrics. J Syst Softw 85(2):244–257

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Themistoklis Diamantopoulos .

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Diamantopoulos, T., Symeonidis, A.L. (2020). Providing Reusability-Aware Recommendations. In: Mining Software Engineering Data for Software Reuse. Advanced Information and Knowledge Processing. Springer, Cham. https://doi.org/10.1007/978-3-030-30106-4_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-30106-4_9

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-30105-7

  • Online ISBN: 978-3-030-30106-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics

Navigation