这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
质量维度
David Garvin Gar87:
- 性能质量。软件是否交付了所有的内容、功能和特性,这些内容、功能和特性在某种程度上是需求模型所规定的一部分,可以为最终用户提供价值。
- 特性质量。软件是否首次提供了使最终用户惊喜的特性?
- 可靠性。软件是否无误地提供了所有的特性和能力,当需要使用该软件时,它是否是可用的,是否无错地提供了功能?
- 符合性。软件是否遵从本地的和外部的与应用领域相关的软件标准,是否遵循了事实存在的设计惯例和编码惯例?例如,对于菜单选择和数据输入等用户界面的设计是否符合已接受的设计规则?
- 耐久性。是否能够对软件进行维护(变更)或改正(改错),而不会粗心大意地产生料想不到的副作用?随着时间的推移,变更会使错误率或可靠性变得更糟吗?
- 适用性。软件能在可接受的短时期内完成维护(变更)和改正(改错)吗?技术支持人员能得到所需的所有信息以进行变更和修正缺陷吗?
- 审美。我们中的大多数都同意美的东西具有某种优雅、特有的流畅和醒目的外在,这些都是很难量化的,但显然是不可缺少的。
- 感知。在某些情况下,一些偏见将影响人们对质量的感知。
McCall:正确性、可靠性、效率、完整性、易用性、可维护性、灵活性、易测试性、可移植性、可复用性、互操作性。
ISO 9126:功能性、可靠性、易用性、效率、可维护性、可移植性。
“足够好”软件
- 足够好的软件提供用户期望的高质量功能和特性,但同时也提供了其他更多的包含已知错误的难解的或特殊的功能和特性
- 反对“足够好”的理由
- 诚然,“足够好”可能在某些应用领域和几个主要的软件公司起作用。毕竟,如果一家公司有庞大的营销预算,并能够说服足够多的人购买1.0版本,那么该公司已经成功地锁定了这些用户。
- 如果你工作的是一个小公司,就要警惕这一观念,当你交付一个足够好(有缺陷的)产品时,你是冒着永久损害公司声誉的风险。你可能再也没有机会提供2.0版本了,因为异口同声的不良评论可能会导致你的销售暴跌和公司关门。
- 如果你工作在某个应用领域(如实时嵌入式软件)或者你建造的是与硬件集成的应用软件(如汽车软件、电信软件),即使是疏忽,如果交付了带有已知错误的软件,可能使公司处于代价昂贵的诉讼之中。