A multiple case study of design pattern decay, grime, and rot in evolving software systems

A multiple case study of design pattern decay, grime, and rot in evolving software systems
复制标题

DOI:
10.1007/s11219-012-9175-x
复制
发表时间:
2012-02
影响因子:
1.9
通讯作者:
C. Izurieta;J. Bieman
C. Izurieta;J. Bieman
中科院分区:
计算机科学4区
文献类型:
--
作者:
C. Izurieta;J. Bieman

文献摘要

被引文献

相似文献

软件设计随着系统、使用和操作环境的发展而衰退。衰退可能涉及用于构建系统的设计模式。参与设计模式实现的类会积累与模式无关的代码。当变更破坏了设计模式的结构或功能完整性时,设计模式的实现也会腐烂。设计模式腐烂可以阻止模式实现完成它的职责,因此代表一个错误。污垢的积累不会破坏模型的结构完整性,但会降低系统的可测试性和适应性。这项研究通过研究三个成功的面向对象系统中设计模式的老化,来检验软件设计实际上衰退、腐烂和积累污垢的程度。我们从三个实现中生成UML模型,并采用多案例研究方法来分析设计的演变。我们在这些系统中没有发现设计模式腐烂的证据。然而,我们发现了相当多的证据,由于污垢的图案衰减。设计模式组件之间的依赖性增加,而不考虑模式意图,降低了模式的模块性,降低了可测试性和适应性。对衰减和污垢的研究表明,围绕设计模式建立的污垢主要是由于耦合的增加。
Software designs decay as systems, uses, and operational environments evolve. Decay can involve the design patterns used to structure a system. Classes that participate in design pattern realizations accumulate grime—non-pattern-related code. Design pattern realizations can also rot, when changes break the structural or functional integrity of a design pattern. Design pattern rot can prevent a pattern realization from fulfilling its responsibilities, and thus represents a fault. Grime buildup does not break the structural integrity of a pattern but can reduce system testability and adaptability. This research examined the extent to which software designs actually decay, rot, and accumulate grime by studying the aging of design patterns in three successful object-oriented systems. We generated UML models from the three implementations and employed a multiple case study methodology to analyze the evolution of the designs. We found no evidence of design pattern rot in these systems. However, we found considerable evidence of pattern decay due to grime. Dependencies between design pattern components increased without regard for pattern intent, reducing pattern modularity, and decreasing testability and adaptability. The study of decay and grime showed that the grime that builds up around design patterns is mostly due to increases in coupling.