接前一篇文章: “设计模式真的能改善软件质量吗?(一)”

结果分析

      选取三个知名的设计模式:组合模式、抽象工厂模式、享元模式

     (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】

设计模式真的能改善软件质量吗 (二)相关推荐

  1. 设计模式真的能改善软件质量吗 (一)

    本文是加拿大蒙特利尔大学(University of Montreal)Foutse Khomh和Yann-Gaël Guéhéneuc开展的一项经验性软件研究的成果,他们已在此基础上发表了相关论文. ...

  2. 采用ODC改善软件质量:一个案例研究

    采用ODC改善软件质量:一个案例研究 点击:265       更新时间:2007-7-17 11:39:42     作者:Yang Gu 出处:IBM   本文内容包括: 软件开发中典型的质量问题 ...

  3. 内向的人怎样改善人际关系(二)

    内向的人怎样改善人际关系(二) 二.态度:爱心与勇气的平衡. 双赢就是大家都赢,双方都得利. 要想双赢离不开爱心与勇气. 爱心使你关心他人,照顾到对方的利益:勇气使你能够坚持自己的立场,维护自己的利益 ...

  4. 设计模式(C++实现)(二十三)——享元模式

    示例问题: 一个制造杯子的厂商,主要生产大.中.小圆柱形杯子(这3种规格的杯子上印有各种各样的文字),以及特殊造型杯子1,特殊造型杯子2.现需要定制模具来生产杯子,用代码解决该问题. 分析: 由于大. ...

  5. 改善记忆力的二十种记忆方法,随便你挑!

    工程师强于推理,但记忆力也非常重要.让记忆与推理齐飞,两者相辅相承. 1.  改善身体素质 记忆力是软件,身体素质是硬件.硬件强劲,软件才有更充分的释放空间.健康有力.精力充沛的身体素质带来的益处是全 ...

  6. Java——Web开发之MVC设计模式的学生信息管理系统(二)

    为什么这个标题为"(二)",其实是对于上一个特别简单学生信息管理系统里功能的完善. 所谓的"(一)"在这:学生信息管理系统(一) 系统实现的功能: 实现添加学生 ...

  7. 设计模式详解——工厂模式(二)

    本篇文章介绍一种设计模式--工厂模式.工厂模式是用来封装对象的创建,减少应用程序和具体类之间的依赖,促进松耦合.根据工厂模式的应用特性,一共分为三种子模式:简单工厂模式,工厂方法模式和抽象工厂模式.本 ...

  8. 中介者模式android,Android[高级教程] 设计模式之六 中介者模式(二)

    我们还是接着上一章节的中介者模式,这次我们来重构一下,唐僧只告诉小妖让他的徒弟们来救他,至于小妖通知谁,他不管,反正就是三个徒弟,小妖也想省事,就看见谁就通知谁呗.于是,我们的代码修改成: publi ...

  9. 设计模式原则 - 接口隔离原则(二)

    接口隔离原则 一 官方定义 二 案例演示 普通方案 案例分析 解决方案 解决方案 案例总结 三 与单一职责原则对比 一 官方定义 接口隔离原则(Interface Segregation Princi ...

最新文章

  1. 经典重温:卡尔曼滤波器介绍与理论分析
  2. CentOS上安装MyCat-MySQL
  3. gridview获取选中行数据_Word转Excel,不想熬夜加班,那就掌握这个数据清洗方法...
  4. 拒绝PPT手机?魅族首款真无孔手机将开启众筹
  5. 扁平化设计的几个规律
  6. 10分钟就能学会,Linux操作系统21个shell常用命令
  7. 台达PLC与台达DTE8路温控程序,威纶通触摸屏与温控器modbus485通讯
  8. 一文搞懂VOS3000如何配置MicroSIP网络电话
  9. 第三方公众号用 微信联合 登录
  10. 炒鞋风潮下的“真鞋”鉴定生意
  11. 腾讯云图地图使用介绍
  12. AlphaGo之后又来了AlphaStar,这个更厉害。。。
  13. EETI eGTouch Linux 驱动的安装与使用
  14. 01Cadence Allegro做PCB拼版
  15. 恶搞 GitHub 贡献图
  16. 刘一男词汇课(从sail到shed):“重复是记忆之母,理解是记忆之父。“
  17. 你管这叫操作系统源码(一)
  18. 周鸿祎的微创新和中国的电子书
  19. iOS----------适配iOS12
  20. 【原创】常用元器件(数码管)选型之引脚和极性识别-cayden20221029

热门文章

  1. Spring cloud Eureka consumer 调用 provider ERROR:java.net.UnknownHostException: XXX-PAYMENT-SERVICE
  2. GPS北斗时钟服务器(NTP网络时钟系统)施工部署方案
  3. F1巴林揭幕阿隆索拔头筹 雷克南一次进站成就季军
  4. 一文看懂通信新基建:5G、车联网、工业互联网……
  5. 动力学方程的数值解(动力学方程+行星运动轨道)
  6. PHP简易商城(一)概述
  7. STM32——光敏传感器实验-M4
  8. PCIE TLP报文
  9. 【论文阅读】Learning Effective Road Network Representation with Hierarchical Graph Neural Networks
  10. java从入门到精通----基础1