Design patterns and change proneness: an examination of five evolving systems

Design patterns and change proneness: an examination of five evolving systems
复制标题

DOI:
10.1109/metric.2003.1232454
复制
发表时间:
2003-09
期刊:
Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717)
影响因子:
--
通讯作者:
J. Bieman;Greg Straw;Huxia Wang;P. W. Munger;R. Alexander
J. Bieman;Greg Straw;Huxia Wang;P. W. Munger;R. Alexander
中科院分区:
其他
文献类型:
--
作者:
J. Bieman;Greg Straw;Huxia Wang;P. W. Munger;R. Alexander

文献摘要

被引文献

相似文献

设计模式是针对常见设计问题的公认的、命名的解决方案。使用最常引用的设计模式应该促进程序代码的适应性和可重用性。当系统发展时,对涉及设计模式的代码的更改理论上应该包括创建新的具体类,这些类是先前存在类的扩展或子类。理论上,更改不应该涉及对在设计模式中扮演角色的先前版本中的类的直接修改。我们研究了五个系统,三个专有系统和两个开源系统,以确定在早期版本中使用设计模式对随着系统发展而发生的变化的可观察到的影响。在五个系统中的四个中,模式类更容易发生变化,而不是更少。其中一个系统中的模式类不太容易发生更改。在对班级规模的影响进行归一化后,这些结果站得住脚——在五个系统中的两个系统中,较大的班级更容易发生变化。这些结果提供了对如何实际使用设计模式的洞察,并且应该帮助我们学习开发更容易适应的软件设计。
Design patterns are recognized, named solutions to common design problems. The use of the most commonly referenced design patterns should promote adaptable and reusable program code. When a system evolves, changes to code involving a design pattern should, in theory, consist of creating new concrete classes that are extensions or subclasses of previously existing classes. Changes should not, in theory, involve direct modifications to the classes in prior versions that play roles in a design patterns. We studied five systems, three proprietary systems and two open source systems, to identify the observable effects of the use of design patterns in early versions on changes that occur as the systems evolve. In four of the five systems, pattern classes are more rather than less change prone. Pattern classes in one of the systems were less change prone. These results held up after normalizing for the effect of class size - larger classes are more change prone in two of the five systems. These results provide insight into how design patterns are actually used, and should help us to learn to develop software designs that are more easily adapted.