Program evolution: processes of software change
Program evolution: processes of software change
Object-oriented design
Object-oriented analysis (2nd ed.)
Object-oriented analysis (2nd ed.)
The object-oriented brewery: a comparison of two object-oriented development methods
ACM SIGSOFT Software Engineering Notes
Object-oriented metrics that predict maintainability
Journal of Systems and Software - Special issue on object-oriented software
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
Program understanding behaviour during enhancement of large-scale software
Journal of Software Maintenance: Research and Practice
Investigating quality factors in object-oriented designs: an industrial case study
Proceedings of the 21st international conference on Software engineering
Towards a framework for empirical assessment of changeability decay
Journal of Systems and Software - Special issue on empirical studies of software development and evolution
An Experimental Comparison of the Maintainability of Object-Orientedand Structured Design Documents
Empirical Software Engineering
Empirical Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
A Comprehensive Empirical Validation of Design Measures for Object-Oriented Systems
METRICS '98 Proceedings of the 5th International Symposium on Software Metrics
Conducting experiments on software evolution
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Program Understanding Behavior during Estimation of Enhancement Effort on Small Java Programs
PROFES '01 Proceedings of the Third International Conference on Product Focused Software Process Improvement
A web-based support environment for software engineering experiments
Nordic Journal of Computing
Adaptable architecture generation for embedded systems
Journal of Systems and Software - Special issue: Computer systems
Dynamic Coupling Measurement for Object-Oriented Software
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Predicting the Probability of Change in Object-Oriented Systems
IEEE Transactions on Software Engineering
Static analysis for dynamic coupling measures
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
A Systematic Review of Theory Use in Software Engineering Experiments
IEEE Transactions on Software Engineering
Difficulties experienced by students in maintaining object-oriented systems: an empirical study
ACE '07 Proceedings of the ninth Australasian conference on Computing education - Volume 66
Journal of Systems and Software
Comparing of feedback-collection and think-aloud methods in program comprehension studies
Behaviour & Information Technology
Modifiability measurement from a task complexity perspective: A feasibility study
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
A survey of dynamic software metrics
Journal of Computer Science and Technology
Hi-index | 0.00 |
An important motivation for the object-oriented paradigm is to improve the changeability of the software, thereby reducing lifetime development costs. This paper describes the results of controlled experiments assessing the changeability of a given responsibility-driven (RD) design versus an alternative control-oriented “mainframe” (MF) design. According to Coad and Yourdon's OO design quality principles, the RD design represents a “good” design. The MF design represents a “bad” design. To investigate which of the designs have better changeability, we conducted two controlled experiments—a pilot experiment and a main experiment. In both experiments, the subjects were divided in two groups in which the individuals designed, coded and tested several identical changes on one of the two design alternatives.The results clearly indicate that the “good” RD design requires significantly more change effort for the given set of changes than the alternative “bad” MF design. This difference in change effort is primarily due to the difference in effort required to understand how to solve the change tasks. Consequently, reducing class-level coupling and increasing class cohesion may actually increase the cognitive complexity of a design. With regards to correctness and learning curve, we found no significant differences between the two␣designs. However, we found that structural attributes change less for the RD design than for the MF design. Thus, the RD design may be less prone to structural deterioration. A challenging issue raised in this paper is therefore the tradeoff between change effort and structural stability.