接前一篇文章: “設計模式真的能改善軟體品質嗎?(一)”
結果分析
選取三個知名的設計模式:組合模式、抽象原廠模式、享元模式
(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】