OO design patterns, design structure, and program changes: An industrial case study

被引:29
作者
Bieman, JM [1 ]
Jain, D [1 ]
Yang, HJ [1 ]
机构
[1] Colorado State Univ, Dept Comp Sci, Ft Collins, CO 80523 USA
来源
IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS: SYSTEMS AND SOFTWARE EVOLUTION IN THE ERA OF THE INTERNET | 2001年
关键词
design patterns; object-oriented design; software changes; adaptability;
D O I
10.1109/ICSM.2001.972775
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A primary expected benefit of object-oriented(OO) methods is the creation of software systems that are easier to adapt and maintain. 00 design patterns are especially geared to improve adaptability, since patterns generally increase the complexity of an initial design in order to case future enhancements. For design patterns to really provide benefit, they must reduce the cost of future adaptation, The evidence of improvements in adaptability, through the use of design patterns and other design structures consists primarily of intuitive arguments and examples. There is little empirical evidence to support claims of improved flexibility of these preferred structures. In this case study, we analyze 39 versions of an evolving industrial OO software system to see if there is a relationship between patterns, other design attributes, and the number of changes. We found a strong relationship between class size and the number of changes - larger classes were changed more frequently We also found two relationships that we did not expect: (1) classes that participate in design patterns are not less change prone - these pattern classes are among the most change prone in the system, and (2) classes that are reused the most through inheritance tend to be more change prone. These unexpected results hold zip after accounting for class size, which had the Strongest relationship with changes.
引用
收藏
页码:580 / 589
页数:2
相关论文
共 22 条
[1]  
ANTONIOL G, 1998, P IEEE CS SOFTW METR
[2]  
Briand L. C., 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002), P345, DOI 10.1109/ICSE.1999.841025
[3]   A Unified Framework for Cohesion Measurement in Object-Oriented Systems [J].
Briand L.C. ;
Daly J.W. ;
Wüst J. .
Empirical Software Engineering, 1998, 3 (1) :65-117
[4]   A unified framework for coupling measurement in object-oriented systems [J].
Briand, LC ;
Daly, JW ;
Wüst, JK .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1999, 25 (01) :91-121
[5]   A comprehensive empirical validation of design measures for object-oriented systems [J].
Briand, LC ;
Daly, J ;
Porter, V ;
Wüst, J .
FIFTH INTERNATIONAL SOFTWARE METRICS SYMPOSIUM - METRICS 1998, PROCEEDINGS, 1998, :246-257
[6]  
Campbell D.T., 1966, Experimental and quasi-experimental designs for research
[7]   A METRICS SUITE FOR OBJECT-ORIENTED DESIGN [J].
CHIDAMBER, SR ;
KEMERER, CF .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1994, 20 (06) :476-493
[8]  
Fenton N., 1997, SOFTWARE METRICS RIG
[9]  
Gamma E., 1995, Design Patterns: Elements of Reusable Object-Oriented Software, V206, P395, DOI 10.1093/carcin/bgs084
[10]  
Keller R. K., 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002), P226, DOI 10.1109/ICSE.1999.841012