华为云社区《自动源代码质量度量(ISO/IEC5055)》

​本号为华为云开发者社区官方运营号,提供全面深入的云计算前景分析、丰富的技术干货、程序示例,分享华为云前沿资讯和趋势

本文分享自华为云社区“自动源代码质量测量(ISO/IEC5055)”,原作者:Uncle_Tom。

ISO 5055 是第一个直接根据内部结构衡量软件质量(例如安全性和可靠性)的 ISO 标准。该标准根据统计安全性、可靠性、可维护性和性能效率方面的软件缺陷来衡量软件的结构质量。基于 ISO 5055,开发人员能够在关键缺陷导致操作问题之前发现并消除它们;工具检验供应商能够明确软件质量检验的方向;为管理层提供明确的指标,以识别软件应用程序给业务风险带来的好处。

1. 系统和软件质量要求和评估(ISO/IEC 25000)

ISO/IEC 25000 系列标准,也称为 SQuaRE(系统和软件质量要求和评估),包含用于评估软件产品质量的框架。ISO/IEC 25000系列主要包括以下部分:

1.1. 系统和软件质量模型(ISO/IEC25010)

在 ISO/IEC 25010 的软件质量模型中定义:使用质量模型和产品质量模型。这两个模型定义的特征与所有软件产品和计算机系统相关。这些特性和子特性为指定、测量和评估系统和软件产品的质量提供了一致的术语。它们还提供了一组质量特性,可以与指定的质量要求进行比较易用性测试 文档测试,以确保完整性。

该模型的范围不包括纯粹的功能属性,但确实包括功能适用性。尽管产品质量模型的范围是针对软件和计算机系统的,但许多特征也与更广泛的系统和服务相关。

1.1.1. 使用质量模型

使用质量模型由五个特征组成,其中一些特征进一步细分为子特征,这些特征与产品在特定用途下使用时的交互结果有关。该系统模型适用于完整的人机系统,包括使用中的计算机系统和使用中的软件产品。

1.1.2. 产品质量模型

产品质量模型由与软件的静态属性和计算机系统的动态属性相关的八个属性(进一步细分为子属性)组成。该模型适用于计算机系统和软件产品。

1. 功能适用性:软件实现的功能满足其设计规范和满足用户需求的程度,强调正确性、完整性和适用性。

2. 效率:在特定条件下,软件对操作表现出的时间特性(如响应速度)以及计算机资源(包括内存大小、CPU使用时间等)被有效利用的程度,以达到一个某些功能,高本地资源占用通常是性能瓶颈;系统所能承受的并发用户数和连接数取决于系统的可扩展性。

3. 兼容性是指共存和互操作性。共存要求软件与系统平台、子系统、第三方软件等兼容,并进行适当的国际化和本地化处理。互操作性需要系统功能之间的有效接口,涉及API和文件格式等。

4.可用性:对于一个软件来说,用户学习、操作、准备输入和理解输出的程度,如安装简单方便、使用方便、界面友好、适合不同特点的用户,包括残疾人和有缺陷的人使用产品的有效方式或手段(即可访问性)。

5. 可靠性:软件在指定时间和条件下能够保持其正常功能操作和性能水平的程度/概率。例如,成熟度越高,可靠性越高;使用 MTTF(平均故障时间,平均故障前时间)或 MTBF(平均故障间隔时间,平均故障间隔时间)来衡量可靠性。

6. 安全易用性测试 文档测试,需要它的数据传输和存储来保证它的安全,包括用户身份认证、数据加密和完整性验证,所有关键操作都被记录(日志),以便能够查看不同用户角色所做的操作. 它涉及机密性、完整性、不可否认性、可验证性、真实性。

图片[1]-华为云社区《自动源代码质量度量(ISO/IEC5055)》-老王博客

7. 可维护性:当软件投入运行,需求发生变化,环境发生变化,或者软件发生错误时,做出相应修改的努力程度。它涉及模块化、可重用性、易于分析、易于修改、易于测试等。

8. 可移植性 软件从一个计算机系统或环境移植到另一个计算机系统或环境的难易程度,或系统在外部条件下工作的难易程度。它涉及适应性、易于安装和易于更换。

1.1.3. 质量模型的适用范围

质量模型的应用范围包括与软件和软件密集型计算机系统的获取、需求、开发、使用、评估、支持、维护、质量保证和控制和审计有关的所有方面,从而支持软件和计算机系统的应用。软件密集型计算机系统。规范和评估。例如,开发人员、收购方、质量保证和控制人员以及独立评估人员(尤其是那些负责指定和评估软件产品质量的人员)可以使用这些模型。可以从使用质量模型的产品开发过程中受益的活动包括:

1.2. 系统和软件产品质量测量 (ISO/IEC25023)

ISO/IEC 25023 描述了如何应用 ISO/IEC 25010 中定义的软件质量模型的 8 个特征来衡量软件产品的质量。但 ISO/IEC 25023 中定义的措施主要是在行为层面而不是在源代码中的特定质量问题层面衡量质量。

为了补充 ISO/IEC 25023 中的公制级别,创建了 ISO5055。

2. 自动源代码质量度量 (ISO/IEC 5055)

软件产品的质量可能导致产品产生不可接受的操作风险或过高的成本。因此,在源代码级别建立质量检查措施的标准非常重要,但在当前的 ISO/IEC 25000 系列标准中,仅在源代码级别提供了少数用于控制软件质量的措施产品。这导致了 ISO/IEC 5055 标准的开发,该标准检测和计算源代码中违反良好架构和编码实践的情况,以便评估软件产品质量。

同时,在 ISO/IEC 5055 中更新这些措施的主要目标是使它们适应嵌入式软件,这对于越来越多的嵌入式设备和物联网尤其重要。传统上在 IT 应用程序中实现的功能现在正在转移到嵌入式芯片上。嵌入式软件在本规范中没有单独处理,因为已发现本文档中指定的措施中包含的弱点适用于所有形式的软件。

ISO 5050 提供了一套工程规则,通过影响业务的四个关键因素来评估软件系统的内部结构:安全性、可靠性、可维护性和性能效率。这些因素确保了产品成为一个值得信赖、可靠和可扩展的软件系统。金融机构、政府、电信、制造商、系统集成商和其他人可以利用 ISO 5055 来避免软件产品造成的服务中断、声誉损害或过高的 IT 成本。他们还可以使用它来客观地向监管机构、董事会或利益相关者展示关键系统的结构状态。

ISO 5055 规则允许通过软件分析平台自动检测严重的结构缺陷。

​ISO/IEC5055参考了CISQ质量测量(2020))的质量评估标准,在CWE4.2版本中引入了CWE缺陷枚举,并创建了CWE-1305质量测量(2020). CWE-1305的缺陷视图请参考之前的“Said CWE 4.2 New View”,以及“Said CWE 4.3 New View – Data Protection Check”另一种数据保护在 CWE-1340 CISQ 数据保护措施中查看 CISQ。

​注:部分图片引自2021/04/22北京“CISQ网络研讨会:自动化代码质量评估的ISO 5055国际标准”Bill Curtis博士的主题演讲ppt。

3. 总结4. 参考

点击关注,第一时间了解华为云新技术~

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论