设计模式真的能改善软件质量吗?(二)
结果分析
选取三个知名的设计模式:组合模式、抽象工厂模式、享元模式
(1) 组合模式
结论:组合模式对大部分质量属性都有正影响,可伸缩性(Scalability)和健壮性(Robustness)除外。
(2) 抽象工厂模式
结论:总体上来说,抽象工厂模式对软件质量属性的影响为中等,扩展性、普遍性和模块性不错,但是健壮性的结果令人吃惊。
(3) 享元模式
结论:总体上来说享元模式对软件质量属性有负影响,只有可伸缩性还不错。
选取三个GoF提及的质量属性:可重用性、扩展性、易理解性
(1) 可重用性
结论:10个模式对可重用性有正影响,6个无影响,7个有负影响。
(2) 扩展性
结论:19个模式对可扩展性有正影响,3个无影响,1个有负影响。
(3) 易理解性
结论:15个模式对易理解性有正影响,3个无影响,5个有负影响。
整体分析:
总的来说,设计模式对软件质量属性的正影响大于负影响,因此,恰当使用设计模式可以在一定程度上提高软件质量。
设计模式对质量属性的影响并不总是正的,有些模式会对某些质量属性产生负面影响,因此需要慎重选择和使用设计模式(They should be used with caution)。
个人认为,本工作需要参与者对这些设计模式要有较深的理解,此外对于这些软件质量属性要有统一的理解和认识,为此,需要对这些软件质量属性提供一个较为标准的定义。(我计划写专门的文章来对这些软件质量属性进行详细的说明,)
由于本研究工作主观性较强,我在此不多加分析,不同的人会有不同的评价结果。
同志们,如果要你来填写这个表,答案是什么呢?偶也想在国内组织一次类似的调查,呵呵!
主要参考资料:
[1] Foutse Khomh and Yann-Ga?l Guéhéneuc. Do Design Patterns Impact Software Quality Positively?. In Christos Tjortjis and Andreas Winter, editors, Proceedings of the 12th Conference on Software Maintenance and Reengineering (CSMR), April 2008. IEEE Computer Society Press.
[2] Yann-Ga?l Guéhéneuc. Design Patterns: Empirical Studies on the Impact of Design Patterns on Quality. Encyclopedia of Software Engineering (ESE), September 2010.
[3] Yann-Ga?l Guéhéneuc, Jean-Yves Guyomarc'h, Khashayar Khosravi, and Houari Sahraoui. Design Patterns as Laws of Quality, chapter 5, pages 105--142. Idea Group, January 2006.
[4] Khashayar Khosravi and Yann-Ga?l Guéhéneuc. On Issues with Software Quality Models, chapter 11, pages 218--235. ICFAI University Press, January 2008.
【作者:刘伟 http://blog.csdn.net/lovelion】