当前位置:文档之家› 软件质量模型

软件质量模型

对运行的程序找到错误并 排除错误的工作量
为保证程序执行其规定的 功能所需的测试工作量
它能在硬件上尽 力工作吗? 它是安全吗?
它可用吗?
它可调整吗?
它可测试吗?
3
灵活性
修改运行的程序所需的工作量 它可修改吗?
Flexibility
可移植性 Portability
将程序从一种硬件配置和/或环 可以在另一
通用性
13
主要用途
质量因素
评价准则
移植性
模块性
自描述性

品 转 移
复用性
通用性
硬件独立性
共运行性
软件独立性
图10 McCall等人提出的软件质量模型
14
主要用途
质量因素
评价准则
移植性
模块性
自描述性


转 移
复用性
通用性
硬件独立性
共运行性
软件独立性
图11 McCall等人提出的软件质量模型
15
主要用途 产 品 转 移
1
McCall提出了表明软件质量的11个质量特性,表1 给出了McCall提出的11个质量特性及其含意。
表1 McCall提出的质量特性
质量特性 正确性
Correctness 可靠性
Reliability


程序能够满足规格说明和 完成用户业务目标的程度
程序能够按要求的精度实 现其预期功能的程度
可回答的问题 它做了该做的事吗?
维护性 灵活性 测试性
修转 正移
可移植性 可重复用 互操作性
运行
正确性 可靠性
效率
完整性 使用性
图1 在运行阶段用户的质量特性观点
5
主要用途
质量因素
评价准则
正确 性
可跟踪性
可靠 性
完整性


运 行
效率
一致性
完整 性
使用 性
图2 McCall等人提出的软件质量模型
6
主要用途
质量因素
评价准则
正确 性
程度。 数据共用性: 在整个程序中使用标准数据结
构和类型的程度。
19
国际标准和国家标准规定的质量特性标准中规定 了6个质量特性及其相关的21个质量子特性(如图 13所示)。6个质量特性的含义在表2中给出。
20
特性
功能性 Functionality
可靠性 Reliability
子特性
适合性 准确性 互操作性 依从性 安全性 成熟性 容错性 易恢复性
质量属性
虽然有许多产品特性可以称为质量属性(Quality Attribute),但是在许多系统中需要认真考虑的仅是 其中的一小部分。如果开发者知道哪些特性对项目 的成功至关重要,那么他们就能选择软件工程方法 来达到特定的质量目标。根据不同的设计可以把质 量属性分类。一种属性分类的方法是把在运行时可 识别的特性与那些不可识别的特性区分开。 另一种方法是把对用户很重要的可见特性与对开发 者和维护者很重要的不可见特性区分开。 那些对开发者具有重要意义的属性使产品易于更改、 验证,并易于移植到新的平台上,从而可以间接地 满足客户的需要。
工具性


运 行
效率
可审计性
完整 性
使用 性
图5 McCall等人提出的软件质量模型
9
主要用途
质量因素 正确 性
评价准则
可靠 性 产

运 行
效率
完整 性
可训练性
使用 性
可操作性
图6 McCall等人提出的软件质量模型
10
主要用途
质量因素
评价准则
维护性
一致性 工具性

简明性

修 改
测试性
模块性
自描述性
它总能准确地工作 吗?
2
效率 Efficiency 完整性 Integrity 可用性 Usability
可维护性 Maintainability
测试性 Testability
程序实现其功能所需要的 计算机资源量
软件或数据不受未授权人 控制的程度
学习、操作程序、为其准 备输入数据、解释其输出 的工作量
境转移到另一硬件配置和/或环 台机器上用
境所需的工作量
它吗?
可重用性 Reusability
程序可被用于与其实现功能相 可以重复使
关的其他应用问题的程度
用它的某些
部分吗?
互操作性
一系统与另一系统协同运行所 它能够与另
Interoperability 需的工作量
外系统联接 吗?
4
用户对于已投人使用的软件,会关心软件运行以后表现出来的运行 特性,修正特性和转移特性。也即从这3个方面理解上述11个质量 特性,于是我们把11个质量特性分为3组,使其分别录属于上述3 个方面,请参见图1。
灵活性
简洁性
图7 McCall等人提出的软件质量模型
11
主要用途
质量因素
评价准则
维护性
复杂性
工具性
产 品
可审计性
修 改
测试性
模块性
自描述性
灵活性
简洁性
图8 McCall等人提出的软件质量模型
12
主要用途
质量因素
评价准则
维护性
一致性
复杂性

简明性

修 改
测试性
可扩充性
模块性
灵活性
简洁性
图9 McCall等人提出的软件质量模型
洁、清晰和可理解的程度。
17
安全性:控制或保护程序和数据机制的有效性。 工具性:程序监视自身运行和识别出现错误的程序。 简明性: 程序代码的紧密程度。 可训练性:程序使新用户使用该系统的辅助程度。 可操作性: 程序操作的难易程度。 可审计性: 检查与标准是否符合的难易程度。 可扩充性:系结构、数据或过程设计可扩充的程度。 模块性 : 程序各构件的功能独立性。
18
自描述性: 源代码提供自身描述的程度。 简洁性: 程序易于理解的程度。 通用性: 程序各构件潜在的应用范围。 硬件独立性:软件与运行它的硬件之间的相关程度。 软件独立性:程序与非标准编程语言性质、
操作系统特性、以及其他环境 限制的无关程度。 通信共用性: 使用标准接口、协议和带宽的
一致性
可靠 性
容错性

品 运
效率
准确性

完整 性
执行效率
模块性
使用 性 图3 McCall等人提出的软件质量模型
简洁性
7
主要用途
质量因素
评价准则
正确 性
执行效率
可靠 性
简明性


运 行
效率
可操作性
完整 性
使用 性
图4 McCall等人提出的软件质量模型
8
主要用途
质量因素
评价准则
正确 性
安全性
可靠 性
质量因素 移植性
复用性
共运行性 图12 McCall等人提出的软件质量模型
• 可跟踪性:沿一个设计说明或一个实际程序 构件返回到需求的能力。
• 完整性: 所需功能实现的程度。 • 一致性: 在整个软件开发项目中使用统一
的设计和文档编制技术的程度。 • 容错性:当程序出错时,造成破坏的程度。 • 准确性: 计算和控制的精确程度。 • 执行效率:程序的运行时间。 • 复杂性 : 程序结构化、模块化、简明、简
相关主题