ScienceDirect® Home Skip Main Navigation Links
You have guest access to ScienceDirect. Find out more.
 
Home
Browse
My Settings
Alerts
Help
 Quick Search
 Search tips (Opens new window)
    Clear all fields    
advertisementadvertisement
Journal of Systems and Software
Volume 65, Issue 2, 15 February 2003, Pages 115-126
 
Font Size: Decrease Font Size  Increase Font Size
 Abstract - selected
Article
Purchase PDF (149 K)

 
 
 
Related Articles in ScienceDirect
View More Related Articles
 
View Record in Scopus
 
doi:10.1016/S0164-1212(02)00053-5    How to Cite or Link Using DOI (Opens New Window)
Copyright © 2002 Elsevier Science Inc. All rights reserved.

A controlled experiment on inheritance depth as a cost factor for code maintenance

Lutz PrecheltE-mail The Corresponding Author, 1, Barbara UngerE-mail The Corresponding Author, Michael PhilippsenE-mail The Corresponding Author and Walter TichyCorresponding Author Contact Information, E-mail The Corresponding Author, E-mail The Corresponding Author

Fakultät für Informatik, Universität Karlsruhe, D-76128, Karlsruhe, Germany

Received 24 November 2001; 
accepted 3 April 2002. ;
Available online 24 April 2003.

Purchase the full-text article



References and further reading may be available for this article. To view references and further reading you must purchase this article.

Abstract

In two controlled experiments we compare the performance on code maintenance tasks for three equivalent programs with 0, 3, and 5 levels of inheritance. For the given tasks, which focus on understanding effort more than change effort, programs with less inheritance were faster to maintain. Daly et al. previously reported similar experiments on the same question with quite different results. They found that the 5-level program tended to be harder to maintain than the 0-level program, while the 3-level program was significantly easier to maintain than the 0-level program. We describe the design and setup of our experiment, the differences to the previous ones, and the results obtained. Ours and the previous experiments are different in several ways: We used a longer and more complex program, made an inheritance diagram available to the subjects, and added a second kind of maintenance task. When taken together, the previous results plus ours suggest that there is no such thing as usefulness or harmfulness of a certain inheritance depth as such. Code maintenance effort is hardly correlated with inheritance depth, but rather depends on other factors (partly related to inheritance depth). Using statistical modeling, we identify the number of relevant methods to be one such factor. We use it to build an explanation model of average code maintenance effort that is much more powerful than a model relying on inheritance depth.

Author Keywords: Controlled experiment; Inheritance depth; Maintenance; Cost model

Article Outline

1. Inheritance and complexity
1.1. Previous experiments: PImage
1.2. Article overview
2. Comparison of PImage and NImage
3. Description of the experiments
3.1. Hypotheses
3.2. Subjects and environment
3.3. Program used
3.4. Experiment design
3.5. Tasks and assignments
3.6. Procedure and measurements
3.7. Threats to internal validity
3.8. Threats to external validity
4. Results and discussion
4.1. Experiment G
4.2. Experiment U
4.3. Statistical robustness
4.4. Subjective experience of subjects
4.5. Discussion
5. Building explanation models of code maintenance effort
5.1. Input variables: properties of programs, tasks, and subjects
5.2. Models with two coefficients
5.3. Models with three or four coefficients
5.4. Discussion
6. Conclusion
7. Further details
Acknowledgements
References
Vitae





Journal of Systems and Software
Volume 65, Issue 2, 15 February 2003, Pages 115-126
 
Home
Browse
My Settings
Alerts
Help
Elsevier.com (Opens new window)
About ScienceDirect  |  Contact Us  |  Information for Advertisers  |  Terms & Conditions  |  Privacy Policy
Copyright © 2008 Elsevier B.V. All rights reserved. ScienceDirect® is a registered trademark of Elsevier B.V.