Reusability of open-source program code: a conceptual model and empirical investigation

Reusing program modules is one of the most direct and useful ways to develop cost effective software, especially with the availability of huge amounts of open-source projects. Reuse saves cost, increases the speed of development and improves software reliability. The quality of popular open-source packages is good as shown by various empirical studies. However, the quality of less known packages and the large number of projects developed by programming enthusiasts is unknown. Reusing them may be the source of more problems rather than being a solution to a problem. In this paper, a conceptual model is proposed to measure the reusability of program modules. A balanced set of wellestablished metrics is used to compute the most significant factors of reusability and an empirical investigation is conducted to measure the reusability of the modules of randomly selected open-source Java projects. The results obtained are thoroughly analyzed to discover the real reusability potential of open-source program code together with suggestions on how to improve this potential.

[1]  Westley Weimer,et al.  Learning a Metric for Code Readability , 2010, IEEE Transactions on Software Engineering.

[2]  Letha H. Etzkorn,et al.  Exploring the Relationship between Cohesion and Complexity , 2005 .

[3]  Andrea De Lucia,et al.  Improving Source Code Lexicon via Traceability and Information Retrieval , 2011, IEEE Transactions on Software Engineering.

[4]  Nicolas Anquetil,et al.  Assessing the relevance of identifier names in a legacy software system , 1998, CASCON.

[5]  William B. Frakes,et al.  Software reuse research: status and future , 2005, IEEE Transactions on Software Engineering.

[6]  David W. Binkley,et al.  Effective identifier names for comprehension and memory , 2007, Innovations in Systems and Software Engineering.

[7]  Yuanfang Cai,et al.  Detecting software modularity violations , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[8]  Ville Leppänen,et al.  Observations on Lack of Cohesion Metrics , 2006 .

[9]  Steve McConnell,et al.  Code complete - a practical handbook of software construction, 2nd Edition , 1993 .

[10]  Lionel C. Briand,et al.  A Precise Method-Method Interaction-Based Cohesion Metric for Object-Oriented Classes , 2012, TSEM.

[11]  Ramanath Subramanyam,et al.  Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects , 2003, IEEE Trans. Software Eng..

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

[13]  Nicholas Jalbert,et al.  Automated duplicate detection for bug tracking systems , 2008, 2008 IEEE International Conference on Dependable Systems and Networks With FTCS and DCC (DSN).

[14]  Daniel Sundmark,et al.  Reuse with Software Components - A Survey of Industrial State of Practice , 2009, ICSR.

[15]  Barry Boehm,et al.  Top 10 list [software development] , 2001 .

[16]  Barry W. Boehm,et al.  Software Defect Reduction Top 10 List , 2001, Computer.

[17]  Gonzalo Navarro,et al.  A guided tour to approximate string matching , 2001, CSUR.

[18]  Raed Shatnawi,et al.  A Quantitative Investigation of the Acceptable Risk Levels of Object-Oriented Metrics in Open-Source Systems , 2010, IEEE Transactions on Software Engineering.

[19]  Hausi A. Müller,et al.  Predicting fault-proneness using OO metrics. An industrial case study , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[20]  Rudolf Ferenc,et al.  Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems , 2008, IEEE Transactions on Software Engineering.

[21]  Andrian Marcus,et al.  On the Use of Domain Terms in Source Code , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[22]  Sebastian Spaeth,et al.  Code Reuse in Open Source Software , 2008, Manag. Sci..

[23]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[24]  C. Kemerer,et al.  OO Metrics in Practice , 2005, IEEE Softw..

[25]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.