- 软件质量特性(ISO/IEC25010)
--软工第四版,不展开- 正确性
- 可用性
- 可靠性
- 有效性
- 安全性
- 可维护性
- 可移植性
- 可复用性
- 软件质量特性(ISO/IEC9126)
--软件设计师教程第五版,蓝皮书5,以下以该版本知识点整理规划- 效率
- 可靠性
- 功能性
- 易使用性
- 可维护性
- 可移植性
- 效率:软件的性能水平和资源量之间的关系。
- 时间特性:响应、处理时间,软件执行功能时的吞吐量。
- 资源特性:执行功能时,所使用的资源量,使用资源的持续时间有关的属性。
- 可靠性:规定时间或一段时间内,软件维持其性能水平的能力。不取决于软件的开发方式。
- 成熟性:由软件故障引起失效的频度相关。
- 容错性:软件错误情况下维持指定的性能水平的能力。
- 易恢复性:故障发生后,重新简历其性能水平,并恢复直接受影响数据的能力。
- 功能性:功能及其指定的性质存在关系的属性。
- 适应性:对规定任务能否提供一组功能,以及功能是否适合有关的软件属性。
- 准确性:是否能够得到正确或相符的结果或效果。
- 交互性:与其他指定系统进行交互操作的能力。
- 依从性:软件是否服从有关的标准、约定、法规及类似规定。
- 安全性:避免对程序及数据的非法授权,故意或意外访问的能力。
- 易使用性:为使用所需的努力,用户对某种使用所作的个别评价相关的属性。
- 易理解性:用户为理解逻辑概念及其应用,所付出的努力。(了解拿来处理什么问题)
- 易学性:用户为学习其应用所付出的努力。(输入、输出,学习怎么处理问题)
- 易操作性:用户为学习如何操作所付出的努力。(学习怎么操作)
- 可维护性:与进行规定的修改所需要的努力相关的属性。
- 易分析性:诊断缺陷或失效原因,判定待修改的部分所需努力相关的属性。
- 易改变性: 与进行修改、排错或适应环境变换所需的努力。
- 稳定性:修改造成未预料效果的风险有关的属性。
- 易测试性:为确认经修改软件所需努力有关的属性。
- 可移植性:软件从某一环境转移到另一环境的能力。
- 适应性:转移过程中的处理或手段有关的属性。
- 易安装性:指定环境下,安装软件所需努力有关的属性。
- 一致性:使软件服从与可移植性有关的标准或约定的软件属性。
- 易替换性:改软件替换其他软件的难易度。
- McCall模型
- 产品修正
a. 可维护性
b. 灵活性
c. 可测试性 - 产品转移
a. 可移植性
b. 复用性
c. 互用性 - 产品运行
a. 效率
b. 可靠性
c. 正确性
d. 完整性
e. 易使用性
- 产品修正
- 设计质量评审
- 软件的规格说明是否符合用户的要求。
- 评审的可靠性。
- 评审的保密措施实现情况。
- 评审操作特性实施情况。
- 评审性能实现情况。
- 评审软件是否具有可修改性、可扩充性、可互换性、可移植性。
- 平生软件是否具有可测试性。
- 平生软件是否具有复用性。
不包括模块层次
- 软件结构
- 功能结构
a. 数据结构
b. 功能结构
c. 数据结构和功能结构之间的对应关系 - 功能的通用性
- 模块的层次
- 模块结构
a. 控制流结构
b. 数据流结构
c. 模块结构与功能结构之间的对应关系 - 处理过程的结构
- 功能结构
- 与运行环境的接口
- 与硬件的接口
- 与用户接口
- 冗余技术
- 结构冗余
a. 静态冗余
b. 动态冗余
c. 混合荣誉 - 信息冗余
- 时间冗余
- 冗余附加技术
- 结构冗余
-
冗余附加技术
- 屏蔽硬件错误的容错技术
a. 关键程序和数据的冗余存储及调用。
b. 检测、表决、切换、重构、纠错、复算的实现。 - 屏蔽软件错误的容错技术
a. 冗余备份程序的存储及调用。
b. 实现错误检测和错误恢复的程序。
c. 实现容错软件所需的固化程序。
- 屏蔽硬件错误的容错技术
- 软件复杂性包括程序复杂性和文档复杂性,主要体现在程序复杂性中。
- 程序复杂性度量的参数
- 规模:总共的指令数,或源程序行数。(源程序行数是主要参数)
- 难度
- 结构
- 智能度:算法难易度
- 环路复杂度:V(G) = m - n + 2p
- m是图G中弧的个数,实线。
- n是图G中的节点数。
- p是图G中强连通分量个数。(程序总是连通的,所以可以认为该分量为1)
-
常用公式:V(G) = m - n + 2
- 软件维护工具
- 版本控制工具
- 文档分析工具
- 开发信息库工具
- 逆向工程工具
- 在工程工具
- 高质量文档
- 针对性: 针对不同读者。
- 精确性:行文确切,无多义性描述。
- 清晰性:简明。
- 完整性:完整的。
- 灵活性:规模,复杂度是灵活的。
- 可追溯性:文档间可追溯。