IEC 61508(电气/电子/可编程电子安全相关系统的功能安全)是一种通用功能安全标准,适用于所有使用可编程设备控制那些需要或可能需要考虑安全的系统的功能。
IEC 61508适用的系统可能对用户或不同的安全要求具有不同的风险等级。 为了适应这一要求,IEC 61508具有四个安全完整性等级(SIL 1 - 4),SIL 4代表具有最严格安全要求的项目。
针对公司和个人的目的诉讼适应性现在风险越来越大。 IEC 61508是律师用来解释法律的技术标准。 在欧洲相关法律是通用产品安全指令2001/95 / EC(GPSD),它声明,产品制造者有责任以符合“最先进技术”开发原则的方式开发安全关键产品。 “最先进技术”仅指普遍接受的最佳实践,这些实践在电子安全相关系统中,体现在IEC 61508:2010(或前面提到的继承于它而专注于特定行业的标准)。 如果公司未采用公认的行业惯例,他们就不能使用“最先进的”法律辩护来对抗此类诉讼。
IEC 61508,第3部分附录A建议软件工具经过合格鉴定。 QA Systems的工具已经经过SGS-TÜV GmbH的分类和认证,SGS-TÜV GmbH是一家独立的功能安全方面的第三方认证机构,由Deutsche Akkreditierungsstelle GmbH (DAkkS)授权。每个工具都被归类为工具置信度(TCL)1的水平,根据IEC 61508:2010,直至安全完整性等级(SIL)D,可用于开发安全相关软件。
Cantata已被鉴定为符合IEC 61508-3子条款7.4.4要求的T2级工具。如果对工具的使用遵循了相关版本的安全手册、安装手册、用户手册和本标准简报,那么就可鉴定为适用于开发安全相关软件,根据IEC 61508,直至最高安全完整性等级(SW-SIL 4)。
用户可获得IEC 61508的工具认证套件,简化认证途径。套件包含了证明我们的工具符合IEC 61508建议以及如何帮助实现合规性而所需的一切。
有关工具认证工具包的更多信息,请联系我们。
IEC 61508第3节表A.5建议软件模块测试和集成。 Cantata测试工具使开发人员能够自动化完成单元和集成测试,并在主机本机和嵌入式目标平台上验证符合IEC 61508的代码。
Cantata通过自动化完成以下内容帮助加速符合标准的动态测试要求:
测试框架生成
测试用例生成
测试执行
结果诊断和报告生成
我们的IEC 61508标准简报追踪了IEC 61508的要求,确定了Cantata支持的范围,并确定了Cantata如何支持这些要求。
有关Cantata的更多信息,请联系我们。
下表总结了IEC 61508 SIL的动态测试建议以及Cantata对它们的支持:
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
1.&2. 适合(强类型)的编程语言 | HR | HR | HR | HR | 是 |
3. 语言子集 | --- | --- | HR | HR | 是 |
4a/b. 认证工具...... | R/HR | HR | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
3. 保护性编程 | --- | R | HR | HR | 是 |
4. 模块化方法 | HR | HR | HR | HR | 是 |
5. 设计和编码标准 | R | HR | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
1. 概率测试 | --- | R | R | R | 是 |
2. 动态分析和测试 | R | HR | HR | HR | 是 |
4. 功能和黑盒测试 | HR | HR | HR | HR | 是 |
5. 性能测试 | R | R | HR | HR | 是 |
7. 接口测试 | R | R | HR | HR | 是 |
9. 前向可追溯性 | R | R | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
1. 功能和黑盒测试 | HR | HR | HR | HR | 是 |
2. 性能测试 | R | R | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
1. 概率测试 | --- | R | R | HR | 是 |
4. 功能和黑盒测试 | HR | HR | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
2. 重新验证已更改的模块 | HR | HR | HR | HR | 是 |
3. 重新验证受影响的软件模块 | R | HR | HR | HR | 是 |
5. 软件配置管理 | HR | HR | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
3. 静态分析 | R | HR | HR | HR | 是 |
4. 动态分析和测试 | R | HR | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
1. 使用编码标准 | HR | HR | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
1. 边界值分析 | R | HR | HR | HR | 是 |
2. 猜错法 | R | R | R | R | 是 |
3. 错误注入 | --- | R | R | R | 是 |
4. 从基于模型的测试用例生成开始执行测试用例 | R | R | HR | HR | 是 |
6. 等价类和划分测试 | R | R | R | HR | 是 |
7. a) 结构化测试覆盖(入口点) | HR | HR | HR | HR | 是 |
7. b) 结构化测试覆盖(语句) | R | HR | HR | HR | 是 |
7. c) 结构化测试覆盖(分支) | R | R | HR | HR | 是 |
7. d) 结构化测试覆盖(条件,MC / DC) | R | R | R | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
2. 从基于模型的测试用例生成开始执行测试用例 | R | R | HR | HR | 是 |
4. 等价类和输入划分测试,包括边界值分析 | R | HR | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
2a. 有限状态机(FSM) | --- | R | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
2. 响应时间和内存限制 | HR | HR | HR | HR | 是 |
3. 性能要求 | HR | HR | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
4a. 有限状态机 | R | R | HR | HR | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | Cantata |
---|---|---|---|---|---|
1. 软件模块大小限制 | HR | HR | HR | HR | 是 |
2. 软件复杂性控制 | R | R | HR | HR | 是 |
3. 信息隐藏/封装 | R | HR | HR | HR | 是 |
4. 参数数目限制 | R | R | R | R | 是 |
5. 一个入口/出口 | HR | HR | HR | HR | 是 |
图例
强烈建议 HR
建议 R
IEC 61508的第3部分涉及安全相关系统的软件要求,要求使用更好的开发过程,包括使用MISRA等编码标准来进一步提高软件质量。 其中包括几个表,定义了为了符合标准而必须考虑的方法。
下表总结了QA·C与MISRA-C(以下称为“QA·C”)和QA·C++与MISRA-C ++(以下称为“QA·C++”)在哪里可用于确保和证明符合性。 相关的安全手册还包含了与记录和引用结果和验证有关的所有必要要求。
针对IEC 61508的QA-C,QA-C++和QA-MISRA的更多信息,请联系我们。
引用 | QA-C | QA-C++ |
---|---|---|
6.2 要求 | ||
6.6.2 功能安全计划 | 是 | 是 |
引用 | QA-C | QA-C++ |
---|---|---|
10.1 软件安全要求规范 | - | - |
10.2 系统安全中软件方面的验证计划 | - | - |
10.3 软件设计与开发 | - | - |
●支持的工具和编程语言:选择一组合适的工具 | 是 | 是 |
10.4 可编程电子集成 | - | - |
10.5 软件操作和修改程序 | - | - |
10.6 系统安全验证的软件方面 | - | - |
引用 | QA-C | QA-C++ |
---|---|---|
7.4.4.2 应选择软件离线支持工具作为软件开发活动的连贯部分 | 是 | 是 |
7.4.4.10 选择的软件或设计表示(包括编程语言)应: | ||
b) 仅使用定义的语言功能 | 是 | 是 |
d) 包含有助于检测设计或编程错误的功能 | 是 | 是 |
7.4.4.12 应根据适当的编程语言/编码标准使用用于开发所有安全相关软件的编程语言 | 是 | 是 |
7.4.4.13 编程语言编码标准应指定良好的编程实践,禁止不安全的语言特性(例如未定义的语言特性),促进代码可理解性 | 是 | 是 |
7.9 软件验证 | 是 | 是 |
7.9.2.12 代码验证 | 是 | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|
14. 静态资源分配 | --- | R | HR | HR | 是 | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|
1. 适合的编程语言 | HR | HR | HR | HR | 是 | 是 |
2. 强类型编程语言 | HR | HR | HR | HR | 是 | 是 |
3. 语言子集 | --- | --- | HR | HR | 是 | 是 |
4a. 认证工具和认证的编译器 | R | HR | HR | HR | 是 | 是 |
4b. 工具和编译:增加使用的信心 | HR | HR | HR | HR | 是 | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|
3. 保护性编程 | --- | R | HR | HR | 是 | 是 |
5. 设计和编码标准 | R | HR | HR | HR | 是 | 是 |
6. 结构化编程 | HR | HR | HR | HR | 是 | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|
3. 静态分析 | HR | HR | HR | HR | 是 | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|
1. 使用编码标准来减少错误的可能性 | HR | HR | HR | HR | 是 | 是 |
2. 没有动态对象 | R | HR | HR | HR | 是 | 是 |
3a. 没有动态变量 | --- | R | HR | HR | 是 | 是 |
4. 限制使用中断 | R | R | HR | HR | - | 是 |
5. 限制使用指针 | --- | R | HR | HR | 是 | 是 |
6. 有限的递归使用 | --- | R | HR | HR | 是 | 是 |
7. 高级语言的程序中没有非结构化控制流 | R | HR | HR | HR | 是 | 是 |
8. 没有自动类型转换 | R | HR | HR | HR | 是 | 是 |
技术/措施 | SIL1 | SIL2 | SIL3 | SIL4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|
3. 控制流分析 | R | HR | HR | HR | 是 | 是 |
4. 数据流分析 | R | HR | HR | HR | 是 | 是 |
7. 符号化执行 | --- | --- | R | R | 是 | 是 |
图例
强烈建议 HR
建议 R