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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Hummel O, Janjic W, Atkinson C (2008) Code conjurer: pulling reusable software out of thin air. IEEE Softw 25(5):45–52
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
Wei Y, Chandrasekaran N, Gulwani S, Hamadi Y (2015) Building Bing Developer Assistant. Technical Report MSR-TR-2015-36, Microsoft Research
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
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
Tanimoto TT (1957) IBM Internal Report
Caldiera G, Basili VR (1991) Identifying and qualifying reusable software components. Computer 24(2):61–70
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
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
Poulin JS (1994) Measuring software reusability. In: Proceedings of the Third International Conference on Software Reuse: Advances in Software Reusability. pp 126–138
Spinellis D (2006) Code Quality: The Open Source Perspective. Effective software development series. Addison-Wesley Professional
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
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
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
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)