Abstract
In the context of reusing components from online repositories, assessing the quality and specifically the reusability of source code before reusing it poses a major challenge for the research community. Although several quality assessment systems have been proposed, most of them do not focus on reusability. In this chapter, we design a reusability score using as ground truth information from GitHub stars and forks, which indicate the extent to which software components are adopted/preferred by developers. Our methodology includes applying different machine learning algorithms in order to produce reusability estimation models at both class and package levels. Finally, evaluating our methodology indicates that it can be effective for assessing reusability as perceived by developers.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
According to this method, the optimal degree is the one for which there is no significant decrease in the square sum of residuals when increasing the order by one.
- 2.
References
Pfleeger SL, Kitchenham B (1996) Software quality: the elusive target. IEEE Software, pp 12–21
ISO/IEC 25010:2011 (2011) https://www.iso.org/standard/35733.html. Retrieved: November 2017
ISO/IEC 9126-1:2001 (2001) https://www.iso.org/standard/22749.html. Retrieved: October 2017
Diamantopoulos T, Thomopoulos K, Symeonidis A (2016) Symeonidis. 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
Taibi F (2014) Empirical analysis of the reusability of object-oriented program code in open-source software. Int J Comput Inf Syst Control Eng 8(1):114–120
Le Goues C, Weimer W (2012) Measuring code quality to improve specification mining. IEEE Trans Softw Eng 38(1):175–190
Washizaki H, Namiki R, Fukuoka T, Harada Y, Watanabe H (2007) A framework for measuring and evaluating program source code quality. In: Proceedings of the 8th International Conference on Product-Focused Software Process Improvement, PROFES. Springer, pp 284–299
Singh AP, Tomar P (2014) Estimation of component reusability through reusability metrics. Int J Comput Electr Autom Control Inf Eng 8(11):1965–1972
Sandhu PS, Singh H (2006) A reusability evaluation model for OO-based software components. Int J Comput Sci 1(4):259–264
Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476–493
Zhong S, Khoshgoftaar TM, Seliya N (2004) Unsupervised learning for expert-based software quality estimation. In: Proceedings of the Eighth IEEE International Conference on High Assurance Systems Engineering, HASE’04, pp 149–155
Kaur A, Monga H, Kaur M, Sandhu PS (2012) Identification and performance evaluation of reusable software components based neural network. Int J Res Eng Technol 1(2):100–104
Manhas S, Vashisht R, Sandhu PS, Neeru N (2010) Reusability evaluation model for procedure-based software systems. Int J Comput Electr Eng 2(6)
Kumar A (2012) Measuring software reusability using SVM based classifier approach. Int J Inf Technol Knowl Manag 5(1):205–209
Cai T, Lyu MR, Wong KF, Wong M (2001) ComPARE: a generic quality assessment environment for component-based software systems. In: Proceedings of the 2001 International Symposium on Information Systems and Engineering, ISE’2001
Bakota T, Hegedűs P, Körtvélyesi P, Ferenc R, Gyimóthy T (2011) A probabilistic software quality model. In: 27th IEEE International Conference on Software Maintenance (ICSM), pp 243–252
Papamichail M, Diamantopoulos T, Chrysovergis I, Samlidis P, Symeonidis A (2018) User-perceived reusability estimation based on analysis of software repositories. In: Proceedings of the 2018 IEEE International Workshop on Machine Learning Techniques for Software Quality Evaluation, MaLTeSQuE. Campobasso, Italy, pp 49–54
Samoladas I, Gousios G, Spinellis D, Stamelos I (2008) The SQO-OSS quality model: measurement based open source software evaluation. Open source development, communities and quality, pp 237–248
Hegedűs P, Bakota T, Ladányi G, Faragó C, Ferenc R (2013) A drill-down approach for measuring maintainability at source code element level. Electron Commun EASST 60
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
Alves TL, Ypma C, Visser J (2010) Deriving metric thresholds from benchmark data. In: Proceedings of the IEEE International Conference on Software Maintenance, ICSM. IEEE, pp 1–10
Foucault M, Palyart M, Falleri JR, Blanc X (2014) Computing contextual metric thresholds. In: Proceedings of the 29th Annual ACM Symposium on Applied Computing. ACM, pp 1120–1125
Shatnawi R, Li W, Swain J, Newman T (2010) Finding software metrics threshold values using ROC curves. J Softw: Evol Process 22(1):1–16
Bay TG, Pauls K (2004) Reuse Frequency as Metric for Component Assessment. Technical report, ETH, Department of Computer Science, Zurich. Technical Reports D-INFK
SonarQube platform (2016). http://www.sonarqube.org/. Retrieved: June 2016
Papamichail M, Diamantopoulos T, Symeonidis A (2016) User-perceived source code quality estimation based on static analysis metrics. In: Proceedings of the 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS. Vienna, Austria, pp 100–107
Borges H, Hora A, Valente MT (2016) Predicting the popularity of github repositories. In: Proceedings of the The 12th International Conference on Predictive Models and Data Analytics in Software Engineering, PROMISE 2016. ACM, New York, NY, USA, pp 9:1–9:10
ARiSA - Reusability related metrics (2008). http://www.arisa.se/compendium/node38.html. Retrieved: September 2017
SourceMeter static analysis tool (2017). https://www.sourcemeter.com/. Retrieved: November 2017
Doane DP, Seward LE (2011) Measuring skewness: a forgotten statistic. J Stat Educ 19(2):1–18
Dimaridou V, Kyprianidis AC, Papamichail M, Diamantopoulos TG, Symeonidis AL (2017) Towards modeling the user-perceived quality of source code using static analysis metrics. In: Proceedings of the 12th International Conference on Software Technologies - Volume 1, ICSOFT. INSTICC, SciTePress, Setubal, Portugal, pp 73–84
Dimaridou V, Kyprianidis AC, Papamichail M, Diamantopoulos T, Symeonidis A (2018) Assessing the user-perceived quality of source code components using static analysis metrics. In: Communications in Computer and Information Science. Springer, page in press
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). Assessing the Reusability of Source Code Components. 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_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-30106-4_10
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)