An Empirical Study on the Reuse of Third-Party Libraries in Open-Source Software Development

Software development based on third-party libraries is becoming increasingly popular in recent years. Nowadays, the plethora of open-source libraries that are freely available to developers, offer great reuse opportunities, with relatively low cost. However, the reuse process is in many cases rather ad-hoc. In this paper, we investigate reuse processes in five successful open-source projects, with respect to: (a) the extent to which software functionality is built from scratch or reused, (b) the frequency with which reuse decisions are modified, and (c) the effect of reuse on software product quality. The results of the study suggest that: (a) OSS projects heavily reuse third-party libraries, (b) reuse decisions are not frequently revisited, and (c) there is no clear evidence that reuse decisions are quality-driven.

[1]  Richard W. Selby,et al.  Enabling reuse-based software development of large-scale systems , 2005, IEEE Transactions on Software Engineering.

[2]  Ipek Ozkaya,et al.  Analysis of architecture evaluation data , 2008, J. Syst. Softw..

[3]  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).

[4]  Maria Teresa Baldassarre,et al.  An industrial case study on reuse oriented development , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[5]  Ioannis Stamelos,et al.  An empirical investigation on the reusability of design patterns and software packages , 2011, J. Syst. Softw..

[6]  Ioannis Stamelos,et al.  Quantifying Reuse in OSS: A Large-Scale Empirical Study , 2014, Int. J. Open Source Softw. Process..

[7]  Apostolos Ampatzoglou,et al.  An Embedded Multiple-Case Study on OSS Design Quality Assessment across Domains , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

[8]  Joachim Henkel,et al.  Code Reuse in Open Source Software Development: Quantitative Evidence, Drivers, and Impediments , 2010, J. Assoc. Inf. Syst..

[9]  Robert Ivor John,et al.  Towards machine learning based design pattern recognition , 2013, 2013 13th UK Workshop on Computational Intelligence (UKCI).

[10]  Clemente Izurieta,et al.  Design pattern decay: the case for class grime , 2014, ESEM '14.

[11]  Ioannis Stamelos,et al.  Quality, Productivity, and Learning in Framework-Based Development: An Exploratory Case Study , 2002, IEEE Trans. Software Eng..

[12]  Ioannis Stamelos,et al.  Building and mining a repository of design pattern instances: Practical and research benefits , 2013, Entertain. Comput..

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

[14]  Ioannis Stamelos,et al.  A methodology on extracting reusable software candidate components from open source games , 2012, MindTrek.

[15]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

[16]  Klaus Schmid Proceedings of the 12th international conference on Top productivity through software reuse , 2011 .

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

[18]  Slinger Jansen,et al.  Pragmatic and Opportunistic Reuse in Innovative Start-up Companies , 2008, IEEE Software.

[19]  Sebastian Spaeth,et al.  Knowledge Reuse in Open Source Software: An Exploratory Study of 15 Open Source Projects , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

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

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

[22]  Christopher J. Fox,et al.  Quality Improvement Using A Software Reuse Failure Modes Model , 1996, IEEE Trans. Software Eng..

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