软件工程(五)

参考资料:
目录
[4.5 软件质量保证](#4.5 软件质量保证)
[4.5.1 软件质量](#4.5.1 软件质量)
[1. 软件质量的概念](#1. 软件质量的概念)
[2. 影响软件质量的因素(McCall三层次模型)](#2. 影响软件质量的因素(McCall三层次模型))
[4.5.2 软件质量模型(ISO/IEC 9126)](#4.5.2 软件质量模型(ISO/IEC 9126))
[4.5.3 软件质量保证 (SQA) 与 CMMI](#4.5.3 软件质量保证 (SQA) 与 CMMI)
[1. 软件质量保证 (SQA)](#1. 软件质量保证 (SQA))
[2. SQA vs 软件测试](#2. SQA vs 软件测试)
[3. CMMI(能力成熟度模型集成)](#3. CMMI(能力成熟度模型集成))
[4.5.4 软件工程标准与软件文档](#4.5.4 软件工程标准与软件文档)
[1. 软件工程标准的分级(按适用范围由大到小)](#1. 软件工程标准的分级(按适用范围由大到小))
[2. 软件文档的分类](#2. 软件文档的分类)
4.5 软件质量保证
4.5.1 软件质量
1. 软件质量的概念
定义:软件产品满足明确规定的需求(合同、标准)以及隐含的需求(业界习惯、用户期望)的能力。
注意:
质量不仅仅是"没Bug",还包括性能、易用性、可移植性等综合表现。
2. 影响软件质量的因素(McCall三层次模型)


产品运行
正确性、可靠性、效率、完整性、易用性。
产品修改
可维护性、灵活性、可测试性。
产品转移
可移植性、可复用性、互操作性。

4.5.2 软件质量模型(ISO/IEC 9126)


6个质量特性及 27个子特性(对应关系):
|-----------------|------------------|-----------------------------------------------------------------|
| 质量特性 | 核心释义 | 子特性 |
| 1. 功能性 | 软件能不能实现要求的功能 | 适合性 (功能完备)、准确性 (计算结果对不对)、互操作性(能不能和其他系统对接)、保密安全性、依从性 |
| 2. 可靠性 | 出错不死机,出了错能不能恢复 | 成熟性 (少出错)、容错性 (出错不崩)、易恢复性(崩了能迅速恢复数据) |
| 3. 易用性 | 用户觉得好不好用,学起来难不难 | 易理解性 (界面清不清爽)、易学性 (上手快不快)、易操作性(操作麻不麻烦)、吸引性 |
| 4. 效率 | 跑得快不快,吃不吃硬件资源 | 时间特性 (响应时间)、资源利用性(CPU/内存占用率) |
| 5. 维护性 | 后期改Bug或加功能麻不麻烦 | 易分析性 (好找Bug在哪)、易改变性(好改代码)、稳定性(改了不改出新Bug)、易测试性 |
| 6. 可移植性 | 换个电脑/系统/数据库还能不能用 | 适应性 (不用改代码就能跑)、易安装性、共存性、易替换性 |
注:国家标准 GB/T 16260 完全等同采用此模型。
4.5.3 软件质量保证 (SQA) 与 CMMI
1. 软件质量保证 (SQA)
核心定位:
SQA 是"过程审查",偏向管理职能。
主要工作:
审查软件开发过程是否符合既定的标准、规范和流程;记录不符合项并跟踪整改。
2. SQA vs 软件测试
|----------|------------------|----------------------|
| 比较维度 | 软件测试 | 软件质量保证 (SQA) |
| 关注点 | 关注产品缺陷(找Bug) | 关注过程合规(查流程) |
| 工作性质 | 技术性工作(写脚本、造数据) | 管理性工作(看文档、开会评审) |
| 执行时机 | 开发后期(编码完成后) | 贯穿软件生命周期全过程 |
3. CMMI(能力成熟度模型集成)
作用
评估一个软件企业的过程规范化和质量管理能力,不代表某个具体产品的质量。
级别越高,项目延期和超预算的风险越低。
5个成熟度等级(由低到高)

Level 1:初始级(无序,靠个人英雄主义,成功靠运气)。
Level 2:已管理级(项目级管理,能重复以前的成功经验)。
Level 3:已定义级(组织级管理,全公司统一流程标准)。
Level 4:量化管理级(用数据说话,过程可定量预测)。
Level 5:优化级(最高级,主动防范缺陷,持续过程改进)。
认证流程

认证权益

4.5.4 软件工程标准与软件文档
1. 软件工程标准的分级(按适用范围由大到小)
国际标准:ISO / IEC(如 ISO 9000 质量体系)。
国家标准:GB / GB/T(带 T 为推荐性,不带 T 为强制性)。
行业标准:特定行业规范(如 SJ/T 电子行业标准,YD/T 通信行业标准)。
企业标准:Q/XXXX(企业内部制定的规范,通常严于国标)。
项目规范:针对单一项目的临时标准。
2. 软件文档的分类

开发文档(研发人员内部看,描述怎么做出来的)
代表:需求规格说明书、概要设计说明书、详细设计说明书、数据库设计说明书、源代码清单。
管理文档(项目经理/高管看,描述管得怎么样)
代表:项目开发计划、进度月报、质量保证计划、开发总结报告、风险清单。
用户文档(最终用户/运维看,描述怎么用)
代表:用户手册、操作指南、安装说明、系统运维手册。