软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。而定义一个软件的质量,就等价于为该软件定义一系列质量特性。
人们通常用软件质量模型来描述影响软件质量的特性。已有多种有关软件质量的模型。它们共同的特点是把软件质量特性定义成分层模型。在这种分层的模型中,最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量。二次特性在必要时又可由它的一些子质量特性定义和度量。下面是几个影响较大的软件质量模型。文章源自玩技e族-https://www.playezu.com/12892.html
Mccall质量模型
这是McCall等人于1979年提出的软件质量模型。其软件质量概念基于11个特性之上。而这11个特性分别面向软件产品的运行、修正、转移。它们与特性的关系。文章源自玩技e族-https://www.playezu.com/12892.html
进一步,Mc(all等给出了一个三层次式模型的框架。McCaIl等认为,特性是软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件质量的McCa儿等人的质量特性定义如下:文章源自玩技e族-https://www.playezu.com/12892.html
正确性 在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件没有错误。文章源自玩技e族-https://www.playezu.com/12892.html
可靠性 软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。文章源自玩技e族-https://www.playezu.com/12892.html
效率 为了完成预定功能,软件系统所需的计算机资源的多少。文章源自玩技e族-https://www.playezu.com/12892.html
完整性 为了某一目的而保护数据,避免它受到偶然的,或有意的破坏、改动或遗失的能力。文章源自玩技e族-https://www.playezu.com/12892.html
可使用性 对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。文章源自玩技e族-https://www.playezu.com/12892.html
可维护性 为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。文章源自玩技e族-https://www.playezu.com/12892.html
可测试性 测试软件以确保其能够执行预定功能所需工作量的大小。文章源自玩技e族-https://www.playezu.com/12892.html
灵活性 修改或改进一个已投入运行的软件所需工作量的大小。
可移植性 将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。
复用性 一个软件(或软件的部件)能再次用于其他应用(该应用的功能与此软件或软件部件的所完成的功能有联系)的程度。
互连性 连接一个软件和其他系统所需工作量的大小。如果这个软件要联网,或与其他系统通信,或要把其他系统纳入到自己的控制之下,必须有系统间的接口,使之可以联结。互连性很重要。它又称相互操作性。
通常,对以上各个质量特性直接进行度量是很困难的,在有些情况下甚至是不可能的。
因此,Mccall定义了一些评价准则,使用它们对反映质量特性的软件属性分级,以此来估计软件质量特性的值。
软件属性一般分级范围从O(最低)到10(最高)。各评价准则定义如下。
可跟踪性 在特定的开发和运行环境下,跟踪设计表示或实际程序部件到原始需求的(可追溯)能力。
完备性 软件需求充分实现的程度。
一致性 在整个软件设计与实现的过程中技术与记号的统一程度。
安全性 防止软件受到意外的或蓄意的存取、使用、修改、毁坏,或防止泄密的程度。
容错性 系统出错(机器临时发生故障或数据输入不合理)时,能以某种预定方式,做出适当处理,得以继续执行和恢复系统的能力。它又称健壮性。
准确性 能达到的计算或控制精度。它又称精确性。
简单性 在不复杂、可理解的方式下,定义和实现软件功能的程度。
执行效率 为了实现某个功能,提供使用最少处理时间的程度。
存储效率 为了实现某个功能,提供使用最少存储空间的程度。
存取控制 软件对用户存取权限的控制方式达到的程度。
存取审查 软件对用户存取权限的俭查程度。
操作性 操作软件的难易程度。它通常取决于与软件操作有关的操作规程,以及是否提供有用的输入/输出方法。
易训练性 软件辅助新的用户使用系统的能力。这取决于是否提供帮助用户熟练掌握
软件系统的方法。它又称可培训性或培训性。
简明性 软件易读的程度。这个特性可以帮助人们方便地阅读自己或他人编制的程序和文档。它又称可理解性。
模块独立性 软件系统内部接口达到的高内聚、低耦合的程度。
自描述性 对软件功能进行自身说明的程度。亦称自含文档性。
结构性 软件能达到的结构良好的程度。
文档完备性 软件文档齐全、描述清楚、满足规范或标准的程度。
通用性 软件功能覆盖面宽广的程度。
可扩充性 软件的体系结构、数据设计和过程设计的可扩充的程度。
可修改性 软件容易修改,而不致于产生副作用的程度。
自检性 软件监测自身操作效果和发现自身错误的能力。它又称工具性。
机器独立性 不依赖于某个特定设备及计算机而能工作的程度。它又称硬件独立性。
软件系统 软件不依赖于非标准程序设计语言特征、操作系统特征,或其他环境约
独立性 仅靠自身能实现其功能的程度。它又称软件独立性或自包含性。
通信共享性 使用标准的通信协议、接口和带宽的标准化的程度。
数据共享性 使用标准数据结构和数据类型的程度。
通信性 提供有效的I/O方式的程度。
需要特别注意的是,正确性和容错性是相互补充的。正确的程序不一定是可容错的程序,反过来,可容错的程序不一定是完全正确的程序。
这就要求一个可靠的软件系统应当在正常的情况下能够正确地工作;而在意外的情况下,也能做出适当的处理,隔离故障,尽快地恢复。这才是一个好的程序。
此外,有人在灵活性中加了一个评价准则,叫做“可重配置特性”,它是指软件系统本身各部分的配置能按用户要求实现的容易程度。
在简明性中也加了一个评价准则,即“清晰性”,它是指软件的内部结构、内部接口要清晰,人一机界面要清晰。
图文来源网络,如有侵权联系删除
觉得文章不错的话记得点赞,转发就更好了
评论