中国卓越技术团队访谈录读者调查,2022年采访嘉宾由你决定! 了解详情
写点什么

软件质量简介

  • 2012 年 4 月 12 日
  • 本文字数:1043 字

    阅读完需:约 3 分钟

最近, Chappell & Associates 的负责人 David Chappell 发表两篇文章,讲述了软件质量的一些不同方面:功能、架构和流程;质量与用户、开发人员和投资者的关系;以及随着时间的推移,外部软件和内部软件的缺陷会造成的影响。

在文章 The Three Aspects of Software Quality: Functional, Structural, and Process (PDF)中,Chappell 概括了软件质量的三个方面:功能、架构和流程,它们都在某种程度上和关注最终产品或服务的三类人:用户、开发人员和投资者有关。功能质量指的是软件执行其用户所要求的任务的好坏。Chappell 为软件功能质量定义了四个属性:

  • 软件符合指定需求
  • 软件几乎没有缺陷
  • 软件性能正常
  • 软件容易上手,操作方便

架构质量衡量的是软件设计的好坏,由以下属性来反映:

  • 代码可测试性
  • 代码可维护性
  • 代码可读性
  • 代码效率——是否高效地管理了资源?
  • 代码安全性——是否能够预防常见的安全威胁?

尽管在谈论软件质量时,功能质量和架构质量往往位高权重,但 Chappell 认为流程质量同样非常重要,那些耳熟能详的属性包括:

  • 软件按时交付
  • 软件满足预算
  • 有可复用的开发流程,能确保交付优质软件

Chappell 认为,用户最关注的是功能质量,其次是流程质量中的交付日期。开发人员最看重架构质量,因为这会直接影响他们的工作,当然他们也会关注功能质量,虽然不像用户那么看重。同时,他们也在意流程质量,因为“这涉及到很多他们的绩效指标”。项目投资者则重视软件质量的所有方面,他们知道任何方面都对最终结果有影响。

在文章 The Business Value of Software Quality (PDF)中,Chappell 谈论了糟糕的软件质量对商务的影响。他将软件分为两类:外部软件——公司的客户使用的软件,和内部软件——公司自己的职员使用的软件。

Chappell 回顾了一些惨痛事例,如 2011 年 4 月 Sony 旗下 PlayStation Network 的一个安全漏洞,仅仅由于某个数据库的一个已知安全隐患作威作福,7 千万用户遭受波及;还有 2011 年 10 月 RIM 公司某备用系统故障导致它的全球用户受影响整整三天。Chappell 认为,随着时间的推移,此类质量缺陷会给公司带来以下的损失:

  • 由于业务流失导致的经济损失
  • 由于赔偿导致的经济损失
  • 由于客户流失导致的经济损失
  • 由于法律诉讼导致的经济损失
  • 品牌价值的损失

随着时间的推移,内部软件的糟糕质量可能会造成:

  • 用户普及缓慢
  • 商业利益缩减
  • IT 经理如履薄冰
  • IT 部门信誉降低
  • 为软件外包提供可乘之机

不论内部软件还是外部软件,为了攀向成功之巅,质量的三个方面:功能、架构、流程都需要好好关注。

查看英文原文: An Introduction to Software Quality

2012 年 4 月 12 日 05:222336
用户头像

发布了 114 篇内容, 共 26.6 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

看清远处模糊的事,不如做好身边清楚的事

Neco.W

创业心态 未知

红警1游戏开源,代码非常规范。网友:秀色可餐

程序员生活志

开源 红警1

28岁程序员期权过亿,彪悍从字节退休,网友:酸了酸了!

程序员生活志

程序员 字节跳动 开发 退休

第二周作业

晨光

第二周总结

晨光

软件开发简史

Jeannette

编程这件事

dapaul

极客大学架构师训练营 框架设计、设计原则、设计模式 第四课 听课总结

John(易筋)

极客时间 极客大学 极客大学架构师训练营 设计原则 框架设计

架构师训练营第二章 总结

尔东雨田

架构师训练营 0 期第二周

Blink

如何构建低延时的直播体验,让互动更实时?

阿里云Edge Plus

CDN 短视频 直播 视频

设计模式的主要原则

依赖倒置架构

GAC·DU

面向开发者的 WSL2 安装指南

simpleapples

Python Windows 10 wsl Go 语言

免费下载 | 阿里云实时计算整体解决方案白皮书重磅发布!

Apache Flink

大数据 flink 流计算 实时计算

依赖倒置原则

Jeannette

第二周 作业

尔东雨田

【大厂面试06期】谈一谈你对Redis持久化的理解?

NotFound9

数据库 redis 后端

当你启动Redis的时候,Redis做了什么

老胡爱分享

redis 源码分析 面试

数仓系列 | 深入解读 Flink 资源管理机制

Apache Flink

大数据 flink 流计算 实时计算

使用WebMaker快速预览Ionic页面效果

davidce

Ionic WebMaker 混合应用开发

从字符串到常量池,一文看懂String类设计

程序员DMZ

JVM 常量池 intern

Apache Flink 误用之痛

Apache Flink

大数据 flink 流计算 实时计算 数据处理

《实现领域驱动设计》拆书稿 DDD入门 & 领域、子域和限界上下文

三界

架构 领域驱动设计 DDD

第二周作业

Aldaron

课程总结

GAC·DU

20年行业变革与技术演进,当下CDN如何为政企数字化转型加速?

阿里云Edge Plus

CDN 边缘计算 移动视频

Flink作业问题分析和调优实践

Apache Flink

大数据 flink 流计算 实时计算

小师妹学JVM之:JDK14中JVM的性能优化

程序那些事

JVM 小师妹 JIT JDK14 签约计划第二季

【Week02】框架设计

Aldaron

第二周总结

qqq

极客大学架构师训练营

撑起瞬时千亿交易额的云数据库是怎么炼成的?

撑起瞬时千亿交易额的云数据库是怎么炼成的?

软件质量简介-InfoQ