一个软件的质量和性能可以从三个维度来进行考量:1)用户、2)开发人员、3)产品人员。
分别对应软件的三个阶段:1)运行时、2)开发时、3)交付时。
软件开发的目的是为用户交付可用的产品,所以用户的维度的软件的第一维度。
用户的维度:
1 正确性(Correctness)
正确性是软件最基本,最重要的属性。他代表了这个软件能够正确的执行计算并给出用户正确的结果。如果软件不能保证正确性,那么这个软件将没有价值可言。比如,一个总是计算错误的财务软件,显然是没有任何用处的。对小型的,功能单一的软件来说,正确性是显而易见的,要么正确,要么不正确。但是对于大型的复杂的软件来说,衡量正确性的标准都相当复杂或不确定,所以正确性本身也不是个简单的是和否的问题了。需求不等于正确性,需求不仅要求正确性,还会要求其他属性,如性能等,需求也不一定要求100%的正确性,只要计算结果对于最终用户来说是可用的就可以了。
2 有效性(时效性)
有效性是指软件能在有效的时间内给出计算结果。一个无效的软件,即便其必然能得到正确的结果,也是无价值的。比如,穷举法总是正确的,但是在解决某些问题时,穷举法并不能在有效的时间内给出结果。如果一个用来预报明天天气的软件,却要在后天才能算出明天的天气情况,即使算正确了,也是没有意义的。
3 健壮性(Robustness):处理异常情况的能力
在异常状况下,软件仍能够保持可用性,被称为健壮性。如果一个软件,由于输入数据不正确,或者运行时发生了些不正常状况等,就立刻崩溃,以致于不能再工作,显然是不健壮的。相反的,在这样恶劣的情况下,仍能够工作,则是健壮的。
4 体验性;
开发的角度:
1)可读性;
2)可维护、可扩展性;
产品的角度:
1)一致性;产品与文档保持高度一致;
2)完备性:实现了产品定义的全部功能。
概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。