ISO/IEC 5055:软件代码质量的标尺

article/2025/11/9 22:22:51

本文分享自华为云社区《自动源代码质量度量(ISO/IEC 5055)》,原文作者:Uncle_Tom 。

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

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

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

  • ISO/IEC 2500n — 质量管理(Quality Management Division): 定义了由SQuaRE系列标准中的所有其他标准引用的全部公共模型、术语和定义。在针对特定应用情况使用适当标准方面的引用路径和高级的实用建议有助于所有类型的用户。这一分部还提供了用于负责管理软件产品需求和评价的支持功能的要求和指南。
  • ISO/IEC 2501n — 质量模式(Quality Model Division): 给出一个包括软件内部质量、 软件外部质量和软件使用质量的特性的详细质量模型。此外, 内部和外部的软件质量特性被分解细化成一些子特性,并且还提供了使用该质量模型的实用指南。
  • ISO/IEC 2502n — 质量测量(Quality Measurement Division): 包括软件产品质量测量参考模型、质量测量的数学定义及其应用的实用指南。给出了应用于软件内部质量、软件外部质量和使用质量的测量。定义并给出了构成后续测量基础的质量测量元素。
  • ISO/IEC 2503n — 质量需求(Quality Requirements Division): 帮助用户规定质量要求。这些质量要求可用在要开发的软件产品的质量需求抽取过程中或用作评价过程的输入。需求定义过程可映射到ISO/IEC 15288 中定义的技术过程。
  • ISO/IEC 2504n — 质量评估(Quality Evaluation Division): 给出了无论由评价方、需方还是由开发方执行的软件产品评价的要求、建议和指南。还给出了作为评价模块的测量文档编制支持。
  • ISO/IEC 25050 到 ISO/IEC 25099 保留用于 SQuaRE 扩展的国际标准和/或技术报告。
  • ISO/IEC 25000标准系列之间的关系

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

在软件质量模型的ISO/IEC 25010中定义了:使用质量模型和产品质量模型。这两个模型定义的特征与所有软件产品和计算机系统有关。这些特性和子特性为指定,测量和评估系统和软件产品质量提供了一致的术语。它们还提供了一组质量特性,可以将其与规定的质量要求进行比较,以确保完整性。
模型的范围不包括纯粹的功能属性,但确实包括功能适用性。尽管产品质量模型的范围旨在于软件和计算机系统,但是许多特征也与更广泛的系统和服务有关。

1.1.1. 使用质量模型

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

1.1.2. 产品质量模型

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

  1. 功能适应性(functional suitability):软件所实现的功能达到其设计规范和满足用户需求的程度,强调正确性、完备性、适合性等。
  2. 效率(efficiency):在指定条件下,软件对操作所表现出的时间特性(如响应速度)以及实现某种功能有效利用计算机资源(包括内存大小、CPU占用时间等)的程度,局部资源占用高通常是性能瓶颈存在;系统可承受的并发用户数、连接数量等,需要考虑系统的可伸缩性。
  3. 兼容性(compatibility),涉及共存和互操作性,共存要求软件能给与系统平台、子系统、第三方软件等兼容,同时针对国际化和本地化进行了合适的处理。 互操作性要求系统功能之间的有效对接,涉及API和文件格式等。
  4. 易用性(usability):对于一个软件,用户学习、操作、准备输入和理解输出所作努力的程度,如安装简单方便、容易使用、界面友好,并能适用于不同特点的用户,包括对残疾人、有缺陷的人能提供产品使用的有效途径或手段(即可达性)。
  5. 可靠性(reliability):在规定的时间和条件下,软件所能维持其正常的功能操作、性能水平的程度/概率,如成熟性越高,可靠性就越高;用MTTF (mean time to failure,平均失效前时间) 或MTBF(mean time Between failures,平均故障间隔时间)来衡量可靠性。
  6. 安全性(security),要求其数据传输和存储等方面能确保其安全,包括对用户身份的认证、对数据进行加密和完整性校验,所有关键性的操作都有记录(log),能够审查不同用户角色所做的操作。它涉及保密性、完整性、抗抵赖性、可核查性、真实性。
  7. 可维护性(maintainability):当一个软件投入运行应用后,需求发生变化、环境改变或软件发生错误时,进行相应修改所做努力的程度。它涉及模块化、复用性、易分析性、易修改性、易测试性等
  8. 可移植性(portability)软件从一个计算机系统或环境移植到另一个系统或环境的容易程度,或者是一个系统和外部条件共同工作的容易程度。它涉及适应性、易安装性、易替换性。

1.1.3. 质量模型的应用范围

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

  • 确定软件和系统要求;
  • 验证需求定义的全面性;
  • 确定软件和系统设计目标;
  • 确定软件和系统测试目标;
  • 确定质量控制标准,作为质量保证的一部分;
  • 识别软件产品和/或软件密集型计算机系统的接受标准;
  • 确定质量特征的度量以支持这些活动。

1.2. 系统和软件产品质量的度量(ISO/IEC 25023)

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

为了补充ISO/IEC 25023中的度量级别,于是有了ISO 5055。

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

软件产品的质量可能导致产品产生不可接受的运营风险或过度成本。因此在源代码级别建立质量检测措施的标准是非常重要的,但目前的ISO/IEC 25000系列标准中,用于控制软件产品质量的源代码级别只提供一小部分措施。 这就促成了ISO/IEC 5055的标准制定,通过这个标准来检测和统计违反源代码中的良好架构和编码实践的违规行为,以便能对软件产品质量做出评估。

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

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

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

ISO/IEC 5055 参照了CISQ Quality Measures (2020)的质量评估标准,并已在CWE 4.2版本中引入了CWE的缺陷枚举中,并创建了CWE-1305 Quality Measures (2020)。有关CWE-1305缺陷视图可参考前期的《话说CWE 4.2的新视图》, 以及《话说CWE 4.3的新视图 - 数据保护检查》中有关CISQ的另一个数据保护视图CWE-1340 CISQ Data Protection Measures。

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

3. 总结

  • ISO/IEC 5055对ISO/IEC 25000 在软件质量从源码角度检测和评估软件质量提供了补充;
  • ISO/IEC 5055为软件架构、源码质量的自动检测提供了规范化的检查方向和依据;
  • ISO/IEC 5055为细化了静态检测工具在保障源码质量个过程中具体的检查内容和需要发现的缺陷;
  • ISO/IEC 5055为开发人员能够在关键缺陷导致操作问题之前发现并消除这些缺陷;
  • ISO/IEC 5055还为管理层提供了明确指标,以明确软件应用程序给业务带来的风险。

4. 参考

  • 系统和软件质量要求和评估(ISO/IEC 25000)
  • 系统和软件质量模型(ISO/IEC 25010)
  • 系统和软件产品质量的度量(ISO/IEC 25023)
  • 自动源代码质量度量(ISO/IEC 5055)
  • CISQ 代码质量标准
  • Common Weakness Enumeration(CWE)

 

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


http://chatgpt.dhexx.cn/article/Ito8WjbQ.shtml

相关文章

ISO-15031/ISO-15765 诊断说明

注:15765诊断可参考15031,两者诊断逻辑相同 1: ISO15031 目录说明 ISO15031-1: 这里边介绍的是一般信息和用例定义; ISO15031-2: 术语、定义、缩写词和首字母缩写词[技术报告] ISO15031-3: 这里边主要介绍了诊断连接器及相关电路&#xff1…

UDS——ISO15765

目录 一、前言 二、术语 三、网络层报文 四、网络传输 五、网络层地址格式 六、错误识别和处理 一、前言 ISO15765-2定义了诊断模型中TP网络传输层对于不同CAN报文格式单帧和多帧的处理方式。ISO15765目的是为了解决ISO 11898协议中定义的经典CAN数据链路层与ISO 14229协…

法规标准-UN R152标准解读

UN R152是做什么的? UN R152 全名为关于M1和N1型机动车高级紧急制动系统(AEBS)型式认证的统一规定,是联合国对于M1和N1型车辆AEBS系统认证的要求说明,当满足其要求内容时,才可通过联合国的认证&#xff0c…

法规标准-ISO 17361标准解读

ISO 17361是做什么的? ISO 17361全称为智能交通系统-车道偏离警告系统性能要求和测试程序,其中主要描述了LDWS系统的功能要求及测试要求 ,由于GB/T 26773与此文档内容相同,故不再对其重复解读 系统功能 车道偏离警告系统的功能…

ISO15765协议

ISO 15765 网络层协议分析 ISO 15765 网络层的功能主要有: (1)为上层的应用层提供接口服务。 (2)进行内部操作。为上层服务提供接口从而实现数据交流;主要有为对等实体间的通信提供分段、重组和流控制这几…

去哪查阅ISO国际标准?

ISO官网 访问ISO官网,不需要翻墙,只要懂点英文就行。 ISO官网地址:https://www.iso.org/(可进行全面了解、购买付费内容) ISO部分公开标准下载地址:https://standards.iso.org/ittf/PubliclyAvailableSt…

法规标准-ISO 20900标准解读

ISO 20900是做什么的? ISO 20900全名为智能交通系统-部分自动泊车系统(PAPS)-性能要求和试验程序,其中主要是对PAPS系统的功能要求、性能要求及测试步骤进行了介绍 PAPS类型 I类型PAPS系统反应 II类型PAPS系统反应 一般要求 运行期间的最大速度 系统…

国际标准 ISO 11898 解读

从 1993 第一个版 CAN 国际标准(ISO 11898:1993 和 ISO 11519-2)发布至今,ISO 11898 逐渐被分割整合成了相互独立的 6 个部分。分别以 Part 1 ~ Part 6 来标识。在旧版本(2003年之前)中 ISO 11898 是通信速度为 5kbps - 1Mbps 的 CAN 高速通信标准。规范中同时定义了 数据…

ISO 14229、ISO 15765、ISO 11898的区别

文章目录 前言ISO 11898ISO 14229ISO 15765ISO 26262ISO 27145-4 前言 最近在做车载诊断相关的工作,对于ISO 14229一点都不熟悉,开发起来进度很慢,也非常痛苦。分不清ISO 14229、ISO 15765、ISO 11898之间有啥联系和区别。下面简单介绍一下这…

ISO15031 DTC

好久不更新了,本来像分享 许飞的 父亲的散文诗 这首歌的,然而QQ音乐找不到原唱,还是算了。因为翻唱听不出鼻子一酸的味道。也许不久的将来,我也会成为某人的父亲,也会做这么一首诗,也会给自己两拳。 正文…

ISO11898/ISO14229/ISO14230/ISO15031/ISO15765标准对比简介

各行各业都有很多的国际标准和规范,汽车行业也不例外,经常遇到一套一套的标准和规范,什么ISO11898,ISO14229,ISO14230,ISO15031,ISO15765等等,这些标准规范到底是干啥的,…

手把手教会你CAN原理和电路设计

目录 1 CAN是什么 2 CAN的特点和基本概念 2.1 CAN的特点 2.2 CAN的基本概念 3 CAN协议 3.1 IOS标准 3.2 CAN协议 4 CAN原理图设计 4.1 ISO1050--TI CAN收发器应用 4.1.1 特性和功能框图 4.1.2 引脚定义和电气特性 4.1.3 CAN总线状态和芯片应用要点 5 CAN资料…

手机忘记密码解锁的 6 大软件方法

您可能想要解锁手机的原因有很多。也许您正在海外旅行并想使用当地的 SIM 卡,或者您可能刚买了一部二手手机并且需要删除之前所有者的个人数据。您可能想知道如何获得可以免费解锁任何手机的软件。Android 用户可以使用他们的指纹、面部识别或 PIN。您也可以通过快速…

android数据格式化,手机格式化了?教你找回安卓手机数据

原标题:手机格式化了?教你找回安卓手机数据 手机格式化了,怎么恢复数据?在使用手机过程中,有时候为了更好的体验,我们通常会选择刷机或恢复出厂设置等对手机进行格式化处理,那么格式化后的手机数据可以恢复吗&#xf…

值得收藏的 5 款iPhone 数据恢复软件

在恢复已删除或丢失的 iPhone 文件时,通常有两种解决方案:检查是否有备份,使用 iPhone 数据恢复软件。 虽然前者听起来很简单,而且您可能已经检查过但没有备份。那么你最后的选择是尝试 iPhone 数据恢复工具。 市场上有许多工具都…

android内录音软件,安卓内录声音软件(能内录音频的手机软件)

今天和大家分享4款不错的手机录音软件p,无论你是学生党,还是上班族,总有一款适合你。 一、录音宝 录音宝是一款支持实时录音和录音转文字的手机录音软件、录音专家、录音机及录音转文字助手,支持录音后转写成文字、导入外部语音文件转换成文字,准确迅速,操作简单! 录音宝…

两部手机怎样才能把数据都传过来_新旧手机怎样互传数据?

原标题:新旧手机怎样互传数据? 手机是人们工作、学习和生活中必不可少的工具,很多人的手机使用一段时间之后都会换新的,新手机虽然好用,但是旧手机里面的东西也很有价值。要想用新手机的同时保留旧手机的数据&#xff…

手机测试磁场的软件,男子用手机软件检测出自家卧室床上电磁辐射爆表

↑用手机软件在房间里检测的数据 随后,李先生又将手机放置在电脑旁,数值为60μT,在李先生父母的床上,辐射值又达到了100μT,李先生再次将手机移动到客厅,数值又变为了40μT,李先生告诉记者&…

苹果手机如何只用数据线修改定位

苹果手机如何修改定位,只需用到一款简单的虚拟定位软件——iFakeLocation,直接在电脑安装,连接手机即可修改定位,支持最新的ios系统,上手简单,一分钟搞定。 工具/原料 windows电脑 苹果手机或者iPad 数据线…

python爬取app数据_如何进行手机APP的数据爬取?

Python爬虫手机的步骤: 1. 下载fiddler抓包工具 2. 设置fiddler 这里有两点需要说明一下。 设置允许抓取HTTPS信息包 操作很简单,打开下载好的fiddler,找到 Tools -> Options,然后再HTTPS的工具栏下勾选Decrpt HTTPS traffic&a…