Assessing the Reusability of Source Code Components

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.

[1]  Roberto da Silva Bigonha,et al.  Identifying thresholds for object-oriented software metrics , 2012, J. Syst. Softw..

[2]  Tibor Gyimóthy,et al.  A probabilistic software quality model , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[3]  Till G. Bay,et al.  Reuse Frequency as Metric for Dependency Resolver Selection , 2005, Component Deployment.

[4]  Michail D. Papamichail,et al.  User-perceived reusability estimation based on analysis of software repositories , 2018, 2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE).

[5]  Themistoklis G. Diamantopoulos,et al.  Towards Modeling the User-perceived Quality of Source Code using Static Analysis Metrics , 2017, ICSOFT.

[6]  Marco Tulio Valente,et al.  Predicting the Popularity of GitHub Repositories , 2016, PROMISE.

[7]  Till G. Bay,et al.  Reuse Frequency as Metric for Component Assessment , 2004 .

[8]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[9]  Themistoklis G. Diamantopoulos,et al.  User-Perceived Source Code Quality Estimation Based on Static Analysis Metrics , 2016, 2016 IEEE International Conference on Software Quality, Reliability and Security (QRS).

[10]  Ioannis Stamelos,et al.  The SQO-OSS Quality Model: Measurement Based Open Source Software Evaluation , 2008, OSS.

[11]  Rudolf Ferenc,et al.  A Drill-Down Approach for Measuring Maintainability at Source Code Element Level , 2013 .

[12]  Wei Li,et al.  Finding software metrics threshold values using ROC curves , 2010 .

[13]  Nirvair Neeru,et al.  Reusability Evaluation Model for Procedure Based Software Systems , 2010 .

[14]  Claire Le Goues,et al.  Measuring Code Quality to Improve Specification Mining , 2012, IEEE Transactions on Software Engineering.

[15]  Hironori Washizaki,et al.  A Framework for Measuring and Evaluating Program Source Code Quality , 2007, PROFES.

[16]  Themistoklis G. Diamantopoulos,et al.  Assessing the User-Perceived Quality of Source Code Components Using Static Analysis Metrics , 2017, ICSOFT.

[17]  Fathi Taibi Empirical Analysis of the Reusability of Object-Oriented Program Code in Open-Source Software , 2014 .

[18]  Themistoklis G. Diamantopoulos,et al.  QualBoa: Reusability-aware Recommendations of Source Code Components , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[19]  Shari Lawrence Pfleeger,et al.  Software Quality: The Elusive Target , 1996, IEEE Softw..

[20]  Tiago L. Alves,et al.  Deriving metric thresholds from benchmark data , 2010, 2010 IEEE International Conference on Software Maintenance.

[21]  David P. Doane,et al.  Measuring Skewness: A Forgotten Statistic? , 2011 .

[22]  Pradeep Tomar,et al.  Estimation of Component Reusability through Reusability Metrics , 2014 .

[23]  Taghi M. Khoshgoftaar,et al.  Unsupervised learning for expert-based software quality estimation , 2004, Eighth IEEE International Symposium on High Assurance Systems Engineering, 2004. Proceedings..

[24]  Xavier Blanc,et al.  Computing contextual metric thresholds , 2014, SAC.

[25]  Parvinder S. Sandhu,et al.  A Reusability Evaluation Model for OO-Based Software Components , 2008 .