道路车辆功能安全 ISO 26262标准(6-2)—软件级产品开发

news2024/10/21 9:35:39

写在前面

本系列文章主要讲解道路车辆功能安全ISO26262标准的相关知识,希望能帮助更多的同学认识和了解功能安全标准。

若有相关问题,欢迎评论沟通,共同进步。(*^▽^*)


1. 道路车辆功能安全ISO 26262标准

6. ISO 26262-6 软件级产品开发

四、软件单元设计和实现

这个子阶段的第一个目标是规定软件单元按照软件体系设计及相关的软件安全要求。第二个目的是实现所指定的软件单元。第三个目标是静态验证软件单元设计和实现。

根据软件体系结构设计,开发软件单元的详细设计,详细设计将被实现为一个模型或直接为源代码,根据建模或编码准则。在进行软件单元测试阶段之前,详细设计和开发是静态验证。如果代码是手工开发,在源代码级别实施相关的属性是可以实现。如果基于模型的开发与自动代码生成时,这些属性应用到模型,无需应用到源代码。

为了开发一个软件单元设计,实现软件的安全要求,以及所有非安全的要求。因此,在安全相关和非安全相关的要求都在这个子阶段的过程中处理。

软件单元的实现包括源代码的生成和编译成目标代码。

要求和建议

1. 本阶段应符合软件单元安全相关的要求。

2. 为确保该软件单元设计允许后续的开发活动获取正确和有效地进行所必需的信息,该软件单元的设计应采用下表 所列的符号说明。

Methods

ASIL

A

B

C

D

1a

Natural language

++

++

++

++

1b

Informal notations

++

++

+

+

1c

Semi-formal notations

+

++

++

++

1d

Formal notations

+

+

+

+

在基于模型的开发与自动生成代码的情况下,该方法为代表的软件单元设计作为基础的代码生成的模型。

3. 软件单元的规范应描述功能行为和内部设计,以达到必要的细节实施水平。例如,内部的设计可以包括使用寄存器和数据存储的限制。

4. 软件单元源代码级的设计与实现应采用如下表所列的的设计原理,达到以下属性:

  • 软件单元的子程序和函数的正确执行顺序基于软件架构设计
  • 软件单元之间的接口的一致性
  • 软件单元内部的数据流和控制流的正确性
  • 简约化
  • 可读性和可理解性
  • 鲁棒性
  • 软件修改的适用性
  • 可测试性

Methods

ASIL

A

B

C

D

1a

One entry and one exit point in subprograms and functions

++

++

++

++

1b

No dynamic objects or variables, or else online test during their creation

+

++

++

++

1c

Initialization of variables

++

++

++

++

1d

No multiple use of variable names

+

++

++

++

1e

Avoid global variables or else justify their usage

+

+

++

++

1f

Limited use of pointers

o

+

+

++

1g

No implicit type conversions

+

++

++

++

1h

No hidden data flow or control flow

+

++

++

++

1i

No unconditional jumps

++

++

++

++

1j

No recursions

+

+

++

++

5. 软件单元的设计与实施应按照 ISO26262-8:2011 第 9 条进行验证,并通过使用下表列出的验证方法来证明:

  • 遵守软硬件接口规范(根据 ISO26262-5:2011,6.4.10)
  • 软件安全要求分配给软件单元的实施的可追溯性
  • 源代码和设计规范的一致性
  • 源代码与编码指南一致性
  • 软件单元实现与目标硬件的兼容性

Methods

ASIL

A

B

C

D

1a

Walk-through

++

+

o

o

1b

Inspection

+

++

++

++

1c

Semi-formal verification

+

+

++

++

1d

Formal verification

o

o

+

+

1e

Control flow analysis

+

+

++

++

1f

Data flow analysis

+

+

++

++

1g

Static code analysis

+

++

++

++

1h

Semantic code analysis

+

+

+

+

五、软件单元测试

这个子阶段的目标是证明软件单元实现软件单元的设计规范和不含有不需要的功能。依据软件设计规范建立软件单元设计的测试流程,并依照流程来执行。

1. 该条款要求应符合如果软件单元是与安全相关的。

2. 软件单元测试必须按照 ISO26262-8:2011 第 9 条计划,规定和执行。

3. 在下表中列出的软件单元测试方法应适用于验证软件单元的实现:

  • 遵守软件单元设计规范
  • 遵守软硬件接口规范
  • 指定的功能
  • 不存在非计划的功能
  • 鲁棒性
  • 足够的资源支持功能

Methods

ASIL

A

B

C

D

1a

Requirements-based test

++

++

++

++

1b

Interface test

++

++

++

++

1c

Fault injection test

+

+

+

++

1d

Resource usage test

+

+

+

++

1e

Back-to-back comparison test between model and code, if applicable

+

+

++

++

4. 为了使适当的测试用例按照第3条软件单元测试规范,测试用例应采用下表中列出的方法得出。

Methods

ASIL

A

B

C

D

1a

Analysis of requirements

++

++

++

++

1b

Generation and analysis of equivalence classes

+

++

++

++

1c

Analysis of boundary values

+

++

++

++

1d

Error guessing

+

+

+

+

5. 为了评估测试用例的完整性,并证明没有额外功能,在软件单元级别要求的覆盖范围应确定,结构范围应按照下表中列出的指标进行测定。如果实现的结构范围被视为是不够的,那么额外的测试用例应指定或提供理由。

Methods

ASIL

A

B

C

D

1a

Statement coverage

++

++

+

+

1b

Branch coverage

+

++

++

++

1c

MC/DC(Modified Condition/Decision Coverage)

+

+

+

++

6. 软件单元测试的测试环境应尽可能与目标环境密切对应。如果软件单元测试不在目标环境中进行,源代码和目标代码中的差异,以及测试环境和目标环境之间的差异,应在指定目标环境中额外的随后的测试阶段加以分析。

  • 在测试环境和目标环境之间的差异可以发生在源代码或目标代码,例如,由于不同的位宽度的数据字与该处理器的地址字。
  • 根据测试的范围内,应使用适当的软件执行单元的测试环境(如目标处理器,处理器仿真器或开发系统)。
  • 软件单元测试可在不同的环境中被执行,例如:

——模型在环测试

——软件在环测试

——处理器在环测试

——硬件在环测试

  • 对于基于模型的开发,软件单元测试,可以在模型级进行,在模型和对象代码之间的背对背比较测试之后。背对背的对比测试用于确保该模型的行为对于测试目标等同于自动生成的代码。

本文章是博主花费大量的时间精力进行梳理和总结而成,希望能帮助更多的小伙伴~  🙏🙏🙏

后续内容将持续更新,敬请期待(*^▽^*)

欢迎大家评论,点赞,收藏→→→

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2219940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode102. 二叉树的层序遍历(2024秋季每日一题 43)

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入…

白嫖正版xshell和XFTP

在哪里可以下载正版免费的xshell和XFTP,并且还能够获得官网免费持久更新 白嫖步骤 首先直接在浏览器搜索xshell官网 点进官网之后直接点击下载 接着点击免费授权页面 进入之后就可以免费下载了 下载安装完成后填写用户名和邮箱并提交,这里就以xshell为…

Veritas NetBackup 10.5 发布,新增功能概览

Veritas NetBackup 10.5 发布,新增功能概览 Veritas NetBackup 10.5 (Unix, Linux, Windows) - 领先的企业备份解决方案 The #1 enterprise backup and recovery solution. 请访问原文链接:https://sysin.org/blog/veritas-netbackup-10/ 查看最新版。…

EditPlus的安装软件包

解压并粘贴到C:\Program Files (x86)中 点击激活密匙,并一直同意 确认并选择默认的位置: 关闭并重新激活密匙 就好了 无需添加快捷方式: 只需要选择任意文件 并选择该应用打开一次即可 通过百度网盘分享的文件:EditPlus_5.0.611.zip 链接:https://pa…

在Debian 11/Debian 10上安装MySQL 5.7

本文借鉴 如何在 Debian 11/Debian 10 上安装 MySQL 5.7 |https://cn.linux-console.net/?p20728 下载安装存储库 安装 根据提示选择mysql5.7即可(会车键选择) wget https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.debsudo dpkg -i mysql-apt-config_0.8.16-1_a…

MFC工控项目实例二十四模拟量校正值输入

承接专栏《MFC工控项目实例二十三模拟量输入设置界面》 对模拟量输入的零点校正值及满量程对应的电压值进行输入。 1、在SenSet.h文件中添加代码 #include "BtnST.h" #include "ShadeButtonST.h"/ // SenSet dialogclass SenSet : public CDialog { // Co…

AWD初步学习

一般的AWD不提供外网环境, AWD比赛中一般准备语言环境,工具、exploit及相关脚本框架。 1.脚本环境 一般在/var/www/html目录的下面,需要提前PHP和常用的Web开发语言环境在本地进行配置,且统一语言尽量多配置环境,比如P…

基于stm32的4G模块点灯实验

led模块功能封装 #include "led.h" #include "sys.h"//初始化GPIO函数 void led_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开时钟__HAL_RCC_GPIOB_CLK_ENABLE();//调用GPIO初始化函数gpio_initstruct.Pin GPIO_PIN_8 | GPIO_PIN_9;gpio_inits…

如何将LiDAR坐标系下的3D点投影到相机2D图像上

将激光雷达点云投影到相机图像上做数据层的前融合,或者把激光雷达坐标系下标注的物体点云的3d bbox投影到相机图像上画出来,都需要做点云3D点坐标到图像像素坐标的转换计算,也就是LiDAR 3D坐标转像素坐标。 看了网上一些文章都存在有错误或者…

Android 第5种启动模式:singleInstancePerTask

Android 第5种启动模式:singleInstancePerTask 随着 Android 版本的更新,应用启动模式逐渐丰富。在 Android 12 中,新增了一种启动模式——singleInstancePerTask。它是继 standard、singleTop、singleTask 和 singleInstance 之后的第五种启…

一起搭WPF架构之LiveCharts.Wpf的简单了解与安装

一起搭WPF架构之LiveCharts.Wpf的简单了解与安装 前言LiveCharts.Wpf介绍LiveCharts.Wpf的安装总结 前言 根据项目需求,我单独留了一个界面用于进行数据分析。数据分析的内容考虑是采用图表的形式将SQLite数据库中存储的数据进行绘制成图,以便数据分析。…

HTB:Broker[WriteUP]

目录 连接至HTB服务器并启动靶机 1.Which open TCP port is running the ActiveMQ service? 使用fscan对靶机开放端口进行扫描 使用nmap对靶机开放端口进行脚本、服务信息扫描 2.What is the version of the ActiveMQ service running on the box? 3.What is the 2023 …

windows下安装VirtualBox7.1.4

记录详细的安装过程与遇到的问题; 下载地址 virtualbox官网 清华镜像源下载 下载完成后文件: 双击打开; 报错了 意思是需要pc上先安装Microsoft Visual C 2019 https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redi…

C++ 中的线程、锁、条件变量。

线程 0.Linux中有POSIX标准的线程&#xff0c;Boost库中也支持线程&#xff08;比如thread_group 和 upgrade_lock &#xff09;&#xff0c;C11<thread>头文件中也提供了相应的API支持我们使用线程。它们三个&#xff0c;你学会一个&#xff0c;自然触类旁通。 1.创建…

Java-类与对象-下篇

关于类与对象&#xff0c;内容较多&#xff0c;我们分为两篇进行讲解&#xff1a; &#x1f4da; Java-类与对象-上篇&#xff1a;————<传送门:Java-类与对象-上篇-CSDN博客> &#x1f4d5; 面向对象的概念 &#x1f4d5; 类的定义格式 &#x1f4d5; 类的使用 …

特斯拉Optimus:展望智能生活新篇章

近日&#xff0c;特斯拉举办了 "WE ROBOT" 发布会&#xff0c;发布会上描绘的未来社会愿景&#xff0c;让无数人为之向往。在这场吸引全球无数媒体的直播中&#xff0c;特斯拉 Optimus 人形机器人一出场就吸引了所有观众的关注。从多家媒体现场拍摄的视频可以看出来&…

【C++】C++11新特性——右值引用,来看看怎么个事儿

&#x1f680;个人主页&#xff1a;小羊 &#x1f680;所属专栏&#xff1a;C 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 前言一、左值引用和右值引用二、右值引用和移动语义2.1 移动构造2.2 移动赋值2.3 STL容器插入接口2.4 左值右值相互…

【C++复习】经典笔试题

文章目录 八大排序快排过程 卡特兰数反转链表链表的回文结构左叶子之和另一棵树的子树归并排序类与对象编程训练杨辉三角字符串乘积二叉树前序遍历成字符串数组的交集二叉树的非递归前序遍历连续子数组的最大乘积 八大排序 插冒归稳定 快排过程 以 [3,4,6,1,2,4,7] 为例&#…

【计网笔记】以太网

经典以太网 总线拓扑 物理层 Manchester编码 数据链路层 MAC子层 MAC帧 DIX格式与IEEE802.3格式 IEEE802.3格式兼容DIX格式 前导码&#xff08;帧开始定界符SOF&#xff09; 8字节 前7字节均为0xAA第8字节为0xAB前7字节的Manchester编码将产生稳定方波&#xff0c;用于…

steam游戏模拟人生3缺少net framework 3.5安装不成功错误弹窗0x80070422怎么修复

模拟人生3在Steam上运行时提示缺少.NET Framework 3.5并出现错误代码0x80070422&#xff0c;通常意味着.NET Framework 3.5功能没有正确启用&#xff0c;或者安装过程中出现了问题。以下是解决这个问题的步骤&#xff1a; 1.启用Windows功能 按下Win R键&#xff0c;输入opti…