Assessing the Reusability of Source Code Components

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

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.

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
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free ship** worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • 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.

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

    http://s-case.github.io/.

References

  1. Pfleeger SL, Kitchenham B (1996) Software quality: the elusive target. IEEE Software, pp 12–21

    Google Scholar 

  2. ISO/IEC 25010:2011 (2011) https://www.iso.org/standard/35733.html. Retrieved: November 2017

  3. ISO/IEC 9126-1:2001 (2001) https://www.iso.org/standard/22749.html. Retrieved: October 2017

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

    Google Scholar 

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

    Google Scholar 

  6. Le Goues C, Weimer W (2012) Measuring code quality to improve specification mining. IEEE Trans Softw Eng 38(1):175–190

    Article  Google Scholar 

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

    Google Scholar 

  8. Singh AP, Tomar P (2014) Estimation of component reusability through reusability metrics. Int J Comput Electr Autom Control Inf Eng 8(11):1965–1972

    Google Scholar 

  9. Sandhu PS, Singh H (2006) A reusability evaluation model for OO-based software components. Int J Comput Sci 1(4):259–264

    Google Scholar 

  10. Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476–493

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  13. Manhas S, Vashisht R, Sandhu PS, Neeru N (2010) Reusability evaluation model for procedure-based software systems. Int J Comput Electr Eng 2(6)

    Google Scholar 

  14. Kumar A (2012) Measuring software reusability using SVM based classifier approach. Int J Inf Technol Knowl Manag 5(1):205–209

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

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

    Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

  24. Bay TG, Pauls K (2004) Reuse Frequency as Metric for Component Assessment. Technical report, ETH, Department of Computer Science, Zurich. Technical Reports D-INFK

    Google Scholar 

  25. SonarQube platform (2016). http://www.sonarqube.org/. Retrieved: June 2016

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

    Google Scholar 

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

    Google Scholar 

  28. ARiSA - Reusability related metrics (2008). http://www.arisa.se/compendium/node38.html. Retrieved: September 2017

  29. SourceMeter static analysis tool (2017). https://www.sourcemeter.com/. Retrieved: November 2017

  30. Doane DP, Seward LE (2011) Measuring skewness: a forgotten statistic. J Stat Educ 19(2):1–18

    Google Scholar 

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

    Google Scholar 

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

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

Publish with us

Policies and ethics

Navigation