5软件质量模型
5.1软件质量概念
1,软件质量的重要性: 导致项目进度延误、预算超支或项目失败、项目终止。软件质量高降低项目开发成本,包括维护成本、修复成本等
2,软件质量的定义:
·ISO/IEC9126: 反映软件产品满足规定需求和潜在需求能力的特征和特性的总和
·MJ.Fisher: 所有描述计算机优秀程度的特性的组合
·ANSI/IEEE Std 1061-1992:与软件产品满足需求所规定的和隐含的能力有关的特征或特性的全体
3,软件质量的特性: •用户--如何使用软件、软件性能和使用软件的效果
•开发者--中间产品的质量以及最终产品
•管理者--总的质量,而不是某一特性
4,ISO/IEC9126规定,软件质量可用6个特性来评价:
• 功能性:软件所实现的功能达到它的设计规范和满足用户需求的程度
• 可靠性:在满足一定条件的应用环境中,软件能够正常维持其工作的能力
•可用性:对于一个软件,用户在学习、操作和理解过程中所做努力的程度
• 效率:在规定条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度
• 维护性:当环境改变或软件运行发生故障时,为使其恢复正常运行所做努力的程度
• 可移植性:为使一个软件从现有运行平台向另一个运行平台过度所做努力的程度
![](https://i-blog.csdnimg.cn/blog_migrate/d2e5974ee3c9e57ffb81f1f5de3e7f91.png)
5.2软件质量分层模型
![](https://i-blog.csdnimg.cn/blog_migrate/e2a38438c79a43172bfbe726823ce734.png)
1, McCall模型(FCM):软件质量要素(factor),衡量标准(criteria)和量度标准(metrics)。在FCM三层模型中,软件质量概念是基于11个特性之上,这11个特性分别面向产品操作(product operation)、产品修正(product revision)和产品转移(product transition)
![](https://i-blog.csdnimg.cn/blog_migrate/8badd2935b75c747a03e02817b181eb7.png)
2,Boehm模型:
• 软件质量模型第一层:功能性、可靠性、可用性、效率、可维护性和可移植性
• 第二层给出了23个质量特性: 可访问性、可说明性、准确性、可扩充性、通信性、完备性、简洁性、一致性、设备独立性、效率、人类工程、可读性、可维护性、可修改性、可移植性、可靠性、健壮性、自包含性、自描述性、结构性、可测试性、可理解性和可用性
• 第三层是软件质量度量,通过对软件开发各个阶段进行问卷调查,实现对软件开发过程的质量控制
3, ISO/IEC 9126质量模型:该模型将软件质量定义为六大特性:功能性、可靠性、可用性、效率、可维护性和可移植性,每个特性又分为一系列子特性。
4,GB/T 16260-2006质量模型:该模型在上述模型的基础上对软件质量从6个质量特性和27个质量子特性进行概念性描述。
5.3软件质量度量与评价
软件质量定量评价公式:通过国内外多年研究,在软件质量的定量评价方面取得了一定成果。国外著名软件质量度量和评价产品中都给出了相关的计算公式,如Panorama++,Logiscope,McCabe IQ等
•可维护性:0.5*可测试性+0.5*可理解性
•可测试性:0.5*结构性+0.5*McCabe复杂度
•可理解性:0.25*结构性+0.25*McCabe复杂度+0.25*简洁性+0.25*自描述性
•结构性:0.2*编码语句的最大嵌套层次+0.2*修改全局数据+0.2*使用Goto语句+0.2*数据习惯用法+0.2*无条件循环语句所占比例
• 简洁性:0.4*实体的习惯用法+0.4*局部调用+0.2*被调用
• 自描述性:0.2*B_comment + 0.3*全部注释行所占的比例 + 0.5*注释实体所占比例
• 可移植性:0.5 * 独立性 + 0.5 * 完整性
• 独立性:0.5 * 异常比例 +0.5 * 用户定义类型
• 完整性:(if语句 + case语句 + 初始化对象)/ 3
• 可靠性:0.33*完整性+0.33*模块性+0.34*可测试性
• 模块性:0.5 * 编码行数 + 0.5 * 结构性