Quantifying Reuse in OSS: A Large-Scale Empirical Study

Reuse is an established software development practice, whose benefits have attracted the attention of researchers and practitioners. In order for software reuse to advance from an opportunistic activity to a well-defined, systematic state of practice, the reuse phenomenon should be empirically studied in a real-world environment. To this end, OSS projects consist a fitting context for this purpose. In this paper, the authors aim at assessing the: a strategy and intensity of reuse activities in OSS development, beffect of reuse activities on design quality, c modification of reuse decisions from a chronological viewpoint and d effect of these modifications on software design quality. In order to achieve these goals, the authors performed a large-scale embedded multi-case study on 1,111 Java projects, extracted from Google Code repository. The results of the case study provide a valuable insight on reuse processes in OSS development, that can be exploited by both researchers and practitioners.

[1]  A. Mockus,et al.  Large-Scale Code Reuse in Open Source Software , 2007, First International Workshop on Emerging Trends in FLOSS Research and Development (FLOSS'07: ICSE Workshops 2007).

[2]  Tao Xie,et al.  Improving software quality via code searching and mining , 2009, 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation.

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

[4]  Cornelia Boldyreff,et al.  Successful Reuse of Software Components: A Report from the Open Source Perspective , 2011, OSS.

[5]  Di Wu,et al.  Empirical study of the effects of open source adoption on software development economics , 2007, J. Syst. Softw..

[6]  Stefan Eicker,et al.  A study on third party component reuse in Java enterprise open source software , 2013, CBSE '13.

[7]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[8]  Cornelia Boldyreff,et al.  Software Reuse in Open Source: A Case Study , 2011, Int. J. Open Source Softw. Process..

[9]  Stefan Koch,et al.  Effort, co‐operation and co‐ordination in an open source software project: GNOME , 2002, Inf. Syst. J..

[10]  Jens Dietrich,et al.  Broken promises: An empirical study into evolution problems in Java programs caused by library upgrades , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[11]  Arie van Deursen,et al.  The Maven repository dataset of metrics, changes, and dependencies , 2013, 2013 10th Working Conference on Mining Software Repositories (MSR).

[12]  Liguo Yu Indirectly predicting the maintenance effort of open-source software , 2006, J. Softw. Maintenance Res. Pract..

[13]  Mario Gleirscher,et al.  On the Extent and Nature of Software Reuse in Open Source Java Projects , 2011, ICSR.

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

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

[16]  Wayne C. Lim,et al.  Effects of reuse on quality, productivity, and economics , 1994, IEEE Software.

[17]  Sanjay Misra Evaluation Criteria for Object-oriented Metrics , 2011 .

[18]  Claes Wohlin,et al.  Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review , 2013, Empirical Software Engineering.

[19]  Florian Deißenböck,et al.  A structured approach to assess third-party library usage , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[20]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[21]  Wolfgang Bangerth,et al.  What makes computational open source software libraries successful , 2013 .

[22]  Liguo Yu Indirectly predicting the maintenance effort of open-source software: Research Articles , 2006 .

[23]  Arie van Deursen,et al.  Measuring software library stability through historical version analysis , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[24]  Johannes Sametinger,et al.  Software Engineering with Reusable Components , 1997, Springer Berlin Heidelberg.

[25]  Diomidis Spinellis,et al.  Tool Writing: A Forgotten Art? , 2005, IEEE Softw..

[26]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .