ISO/IEC 9126 是国际标准化组织(ISO)和国际电工委员会(IEC)联合发布的软件质量评估标准,它定义了一个多层级的软件质量模型,用于全面评估软件产品的质量。该模型从六个主要特性出发,每个特性又细分为若干子特性,具体如下:
-
功能性(Functionality)
- 指软件在指定条件下满足明确和隐含需求的能力。
- 子特性包括:适合性、准确性、互操作性、安全性、功能依从性。
-
可靠性(Reliability)
- 指软件在规定条件下维持其性能水平的能力。
- 子特性包括:成熟性、容错性、可恢复性、可靠性依从性。
-
可用性(Usability)
- 指软件被特定用户理解、学习、使用和吸引用户的能力。
- 子特性包括:易理解性、易学性、易操作性、吸引性、可用性依从性。
-
效率(Efficiency)
- 指软件在规定条件下,所使用的资源数量与其性能之间的关系。
- 子特性包括:时间特性、资源利用率、效率依从性。
-
可维护性(Maintainability)
- 指软件被修改(如纠正、改进或适应环境变化)的难易程度。
- 子特性包括:易分析性、易更改性、稳定性、可测试性、可维护性依从性。
-
可移植性(Portability)
- 指软件从一种环境迁移到另一种环境的难易程度。
- 子特性包括:适应性、易安装性、共存性、可替换性、可移植性依从性。
该模型采用三层结构:质量特性 → 质量子特性 → 度量指标,支持对软件质量进行定性和定量评估。
# 示例:一个简单的质量属性检查表(示意用途)
quality_attributes = {
"功能性": ["适合性", "准确性", "安全性"],
"可靠性": ["成熟性", "容错性", "可恢复性"],
"可用性": ["易理解性", "易学性", "易操作性"],
"效率": ["时间特性", "资源利用率"],
"可维护性": ["易分析性", "易更改性", "可测试性"],
"可移植性": ["适应性", "易安装性", "可替换性"]
}
for attr, sub_attrs in quality_attributes.items():
print(f"{attr}: {', '.join(sub_attrs)}")
ISO/IEC 9126 与 ISO/IEC 25010 都是用于评估软件产品质量的国际标准,后者(ISO/IEC 25010)于2011年发布,取代了前者(ISO/IEC 9126),成为当前推荐使用的软件质量模型。它们在结构和内容上既有继承也有改进。
相同点:
- 核心目标一致:两者都旨在为软件产品质量提供一个系统化的评估框架。
- 多层级结构:均采用“质量特性 → 子特性 → 度量指标”的三层结构,便于定性和定量分析。
- 关注外部质量属性:主要从用户视角出发,衡量软件在运行时表现出的质量特征。
不同点:
| 对比维度 | ISO/IEC 9126 | ISO/IEC 25010 |
|---|---|---|
| 发布时间 | 1991年提出,2001年修订 | 2011年发布 |
| 质量特性数量 | 6个:功能性、可靠性、可用性、效率、可维护性、可移植性 | 8个:功能性、性能效率、兼容性、可用性、可维护性、可移植性、安全性、可靠性 |
| 新增特性 | 无 | 增加了安全性(Security)和兼容性(Compatibility)两个独立特性 |
| 效率相关命名 | 称为“效率” | 改为“性能效率”(Performance Efficiency),更强调响应时间和资源使用效率 |
| 安全性处理 | 包含在“功能性”下的子特性 | 提升为一级质量特性,反映现代系统对安全的高度重视 |
| 兼容性 | 属于“功能性”或“可移植性”的子项 | 独立为一级特性,涵盖共存性和互操作性 |
| 使用范围扩展 | 主要针对软件产品 | 扩展支持软件产品和软件服务(如SaaS) |
为何 ISO/IEC 25010 取代了 ISO/IEC 9126?
- 技术环境变化:随着网络应用、云计算、移动设备的发展,安全性和兼容性变得至关重要,原模型中将其作为子特性已不足以体现其重要性。
- 更清晰的分类:将关键质量属性提升为一级特性,使模型更具时代适应性和实用性。
- 术语现代化:“性能效率”比“效率”更准确地描述了系统的响应能力与资源消耗关系。
- 标准化演进需求:ISO 组织定期更新标准以保持其科学性、实用性和国际通用性。
# 示例:对比两个标准的质量特性
iso_9126 = ["功能性", "可靠性", "可用性", "效率", "可维护性", "可移植性"]
iso_25010 = ["功能性", "性能效率", "兼容性", "可用性", "可维护性", "可移植性", "安全性", "可靠性"]
print("ISO/IEC 9126 质量特性:", iso_9126)
print("ISO/IEC 25010 质量特性:", iso_25010)
print("新增特性:", set(iso_25010) - set(iso_9126))

ISO/IEC 25010取代9126的原因解析

7986

被折叠的 条评论
为什么被折叠?



