An industrial study of reuse, quality, and productivity

https://doi.org/10.1016/S0164-1212(00)00121-7Get rights and content

Abstract

The relationship between amount of reuse, quality, and productivity was studied using four sets of C and C++ modules collected from industrial organizations. The data domains are: text retrieval, user interface, distributed repository, medical records. Reuse in this paper is ad hoc, black box, compositional code reuse. The data generally show that more reuse results in higher quality, but are ambiguous regarding the relationship between amount of reuse and productivity.

Introduction

This paper presents a quasi-experimental study of four sets of industrial data to determine the effects of reuse on software quality and productivity. This is an important question since many organizations today are attempting to significantly increase the quality and productivity of their software systems via reuse (Frakes and Isoda, 1994).

Despite its importance, there is a paucity of industrial studies on this topic. Frakes and Terry (1996) provides a survey of these studies. Some recent studies on the relationship between reuse, quality and productivity based on academic data have been reported (Basili et al., 1996, Devanbu et al., 1996). A key difficulty is obtaining industrial data. One serious problem is the type of available industrial data. Industrial data are usually typified by small sample sizes and lack of strict experimental controls. Industrial data also often come in small sets, and conclusions have to be derived from analysis across data sets, rather than within a single set. There are two approaches to this situation. One is to not do empirical, industrial studies until more perfect data become available. As the lack of experimental studies in software engineering attests, this often means that studies are never done because “scientifically acceptable” data never become available.

The other approach is to analyze the data that are available, and learn what we can from them using exploratory quasi-experimental techniques. This is the approach taken in this paper. Our method is to do a correlational study (Campbell and Stanley, 1966) of quality and productivity measures and “amount of reuse” measures derived from four small sets of industrial data.

There are many types of software reuse. A typology of them is reported in Frakes and Terry (1996). The data in this paper are based on ad hoc, black box, compositional code reuse. Ad hoc means that the observed reuse is not part of a repeatable, mandated organizational process. Ad hoc reuse is by far more common than systematic reuse, though the latter is thought to be more powerful. Black box reuse is reuse of a software item without modification. Compositional reuse means that the software system was built by a human programmer out of components, as opposed to generating a system automatically from specifications.

This paper is organized as follows. In Section 2, we define the measures of amount of reuse, quality, and productivity used in this study. Section 3 presents a discussion of the experimental methods used. Section 4 presents the analysis of the four data sets, and Section 5 presents conclusions and suggestions for future work.

Section snippets

Quality and productivity measures

Since the first studies of McCall et al. (1977), it has been clear that it is not possible to measure the quality and productivity of software systems with a single number. Accordingly, many measures of software quality and productivity have been proposed (Conte et al., 1986, Arthur, 1993).

In this paper we use measures of quality and productivity that we have observed to be commonly used in industrial practice. Not all the measures that we use are the best possible measures for describing

Structure of the study

We collected four data sets from four different sources. Table 3 summarizes the sizes of the samples and the quality and productivity measures used. An “X” in a cell indicates that a given quality or productivity measure was used for a given data set.

This study is an exploratory correlational study (Campbell and Stanley, 1966) of quality and productivity measures and amount of reuse measures. A correlational study is a kind of quasi-experiment. Quasi-experiments are used in settings where

PRC Inc

Our first data set was obtained from PRC Inc., a large government contracting company located in Fairfax, VA, USA. The domain of the software was text processing and retrieval. We do not have demographic data on the developers of this software. ERL and ERF were measured for three software modules written in the C language. Deltas in the PRC data were extracted using SCCS, a change management tool on Unix. Table 4 summarizes these measures.

The rank correlation for ERL and Deltas is −0.5 and for

Conclusions and future work

This paper is an exploratory study of the relationships between amount of reuse, and quality and productivity in software modules from four industrial organizations. The data sets are from four different domains: text retrieval, user interface, distributed repository, and medical records. The data in this paper are based on ad hoc, black box, compositional code reuse. The modules in the study were written in C and C++.

The amount of reuse was measured with RL and RF. The rl tool was used to

Acknowledgements

We would like to thank Prof. G. Kovacs for his insightful comments, N. Scioscia and G. Cardino for their help in finding data, CIM-EXP (Budapest, Hungary), PRC (Falls Church, VA), and Software Uno S.r.l. (Padova, Italy) for the data they provided us. Thanks also to Omar Alonso, Gabriella Belli, Gloria Hasslacher, Eric Liu, Romana Spasojevic, Milorad Stefanovic, Raymond Wong, and Jason Yip for their reviews of a draft of the paper. The second author thanks the University of Calgary, the

William Frakes is an associate professor in the Computer Science Department at Virginia Tech. He chairs the IEEE TCSE committee on software reuse, and edits ReNews. He has a B.L.S. from the University of Louisville, an M.S. from the University of Illinois at Urbana-Champaign, and an M.S. and Ph.D. from the Syracuse University.

References (20)

  • W. Li et al.

    Object oriented metrics that predict maintainability

    Journal of Systems and Software

    (1993)
  • L.J. Arthur

    Improving Software Quality – An Insider's Guide to TQM

    (1993)
  • V.R. Basili et al.

    An investigation of human factors in software development

    IEEE Computer

    (1979)
  • V. Basili et al.

    How reuse influences productivity in object-oriented systems

    Communications of the ACM

    (1996)
  • W. Berg et al.

    Lessons learned from the OS/400 OO project

    Communications of the ACM

    (1995)
  • B. Boehm et al.

    Cost models for future software life cycle processes: COCOMO 2.0

    Annals of Software Engineering

    (1995)
  • D.T. Campbell et al.

    Experimental and Quasi-Experimental Designs for Research

    (1966)
  • M.P. Cline

    The pros and cons of adopting and applying design patterns in the real world

    Communications of the ACM

    (1996)
  • S.D. Conte et al.

    Software Engineering Metrics and Models

    (1986)
  • Curry, W., Succi, G., Smith, M., Liu, E., Wong, R., 1999. Empirical analysis of the correlation between amount-of-reuse...
There are more references available in the full text version of this article.

Cited by (61)

  • Metrics for reusability of java language components

    2022, Journal of King Saud University - Computer and Information Sciences
    Citation Excerpt :

    Reusability has been an active part of software development for the past several decades and it has its roots back in 1969 when Mcllroy introduced the concept of reusable components in an international conference held at Garmisch, Germany (McIllroy, 1968). Based on the study conducted by Frakes and Succi aiming at determining the relationship between the extent of reuse, software quality, and productivity gain, it is concluded that promoting reuse always results in improved underlying software system quality (Frakes and Succi, 2001). With the gain in the popularity of FOSS (Free and Open Source Software), software components are managed in the form of packages (Cosmo et al., 2009).

  • What software reuse benefits have been transferred to the industry? A systematic mapping study

    2018, Information and Software Technology
    Citation Excerpt :

    The basic principle of the CBD is the idea that similar functionalities can be useful in different situations, making the components that offer them reusable [81]. Frakes and Succi [S10] [41] presented a detailed research on the reuse of code modules in an industrial context. The authors found a direct relationship between the amount of reuse and quality, while the results for productivity were ambiguous, in line with [S9, S30] [11,61].

  • CollabRDL: A language to coordinate collaborative reuse

    2017, Journal of Systems and Software
    Citation Excerpt :

    To illustrate, in (Lim, 1994), two case studies were conducted: the first reduced by 51% defects (quality improvement) and increased productivity by 57%, and the second got 24% in reducing defects and 40% increasing productivity. However, other studies were not so conclusive (Frakes and Succi, 2001). Framework instantiation is a type of software reuse.

  • Code Reuse and Sustainable Testing-A Comparative Survey and Study

    2023, 2023 International Conference on Artificial Intelligence and Smart Communication, AISC 2023
View all citing articles on Scopus

William Frakes is an associate professor in the Computer Science Department at Virginia Tech. He chairs the IEEE TCSE committee on software reuse, and edits ReNews. He has a B.L.S. from the University of Louisville, an M.S. from the University of Illinois at Urbana-Champaign, and an M.S. and Ph.D. from the Syracuse University.

Giancarlo Succi is a Professor of Electrical and Computer Engineering at the University of Alberta, Edmonton, AB. He holds a Laurea degree in Electrical Engineering (Genova, Italy, 1988) Italy, an M.Sc. in Computer Science (SUNY Buffalo, NY, 1991), and a Ph.D. in Electrical and Computer Engineering (Genova, Italy, 1993). His research interests include software reuse, software metrics, software product lines, and software engineering economics. He has chaired and co-chaired several international, scientific events and published papers in international journals and conferences.

View full text