An industrial study of reuse, quality, 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)
- et al.
Object oriented metrics that predict maintainability
Journal of Systems and Software
(1993) Improving Software Quality – An Insider's Guide to TQM
(1993)- et al.
An investigation of human factors in software development
IEEE Computer
(1979) - et al.
How reuse influences productivity in object-oriented systems
Communications of the ACM
(1996) - et al.
Lessons learned from the OS/400 OO project
Communications of the ACM
(1995) - et al.
Cost models for future software life cycle processes: COCOMO 2.0
Annals of Software Engineering
(1995) - et al.
Experimental and Quasi-Experimental Designs for Research
(1966) The pros and cons of adopting and applying design patterns in the real world
Communications of the ACM
(1996)- 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...
Cited by (61)
Understanding and evaluating software reuse costs and benefits from industrial cases—A systematic literature review
2024, Information and Software TechnologyMetrics for reusability of java language components
2022, Journal of King Saud University - Computer and Information SciencesCitation 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 TechnologyCitation 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 SoftwareCitation 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.
Comparing reuse strategies in different development environments
2015, Advances in ComputersCode Reuse and Sustainable Testing-A Comparative Survey and Study
2023, 2023 International Conference on Artificial Intelligence and Smart Communication, AISC 2023
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.