Journal of Systems and Software - Special issue on Evaluation and assessment in software engineering
Basic Business Statistics: Concepts and Applications
Basic Business Statistics: Concepts and Applications
Does OO Sync with How We Think?
IEEE Software
The effect of inheritance on the maintainability of object-oriented software: an empirical study
ICSM '95 Proceedings of the International Conference on Software Maintenance
A controlled experiment on inheritance depth as a cost factor for code maintenance
Journal of Systems and Software
The task-dependent nature of maintenance of object-oriented programming: an empirical investigation
The task-dependent nature of maintenance of object-oriented programming: an empirical investigation
Hi-index | 0.00 |
In this paper we present the results of three experiments we have conducted to test the maintainability of object-oriented software products. Previous research in the field has yielded contradictory results as to whether or not object orientation promotes maintainability. Our experiments were conducted to test our hypothesis that the type of maintenance task influences whether or not the presence of an inheritance hierarchy aids maintainability. We constructed two equivalent C++ programs. One version incorporated an inheritance hierarchy; the other was flat. We used a between-subjects design in each experiment. In each experiment, the maintenance task was the same for all the subjects. Essentially the same two versions of the program were used in all three experiments but with different subjects and a different maintenance task. The results of the first experiment support the hypothesis that at least one type of maintenance task exists where an inheritance-based implementation is more maintainable than a flat version, and conversely for the second experiment. The results of the third experiment support the hypothesis that at least one type of maintenance task exists where there is no significant difference between an inheritance-based implementation and a flat version. We conclude that, when maintaining object-oriented software products, the nature of the maintenance task itself determines whether or not the presence of an inheritance hierarchy promotes maintainability.