安全软件的SIL设计(下)
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋基本要求(3/3)
z z
z
z
当软件被要求实现不同安全功能时,所有软件必须看 作属于最高的安全完整性等级 就可行性而言,设计必须包括执行证明测试和全部诊 断测试的软件功能,以便实现E/E/PE安全相关系统 的安全完整性需求 软件设计必须包括与所要求的安全完整性等级相称的 控制流和数据流的自监督,关于失效检测,必须选取 合适的动作 如果标准的或以前开发的软件是用作设计的一部分, 那么必须能够清楚地识别它。软件满足软件安全要求 规范软件的适用性应该加以证明
机械工业仪器仪表综合技术经济研究所
软件安全要求规范
▋要求(2/2)
z
z z z
如果在规定的E/E/PE安全相关系统的安全需求先前没 足够定义,在规定的软件安全需求中必须详细说明被 控设备的所有相关的运行模式 软件安全要求规范必须详细说明并为硬件和软件之间 的所有安全相关和有关约束提供文件 对被描述的E/E/PE硬件结构设计所要求的范围,软件 安全要求规范必须考虑软件的自监督等问题 软件安全要求规范必须陈述所要求的产品安全,但不 是计划,必须适当说明软件安全功能需求和软件安全 完整性的需求
机械工业仪器仪表综合技术经济研究所
软件安全要求规范
▋目标
z z z z
主要介绍IEC61508-3中有关软件安全要求规范 的内容,并结合了EN50128的相关内容 用软件安全功能需求和软件完整性需求详细说 明软件需求 详细说明每一个E/E/PE安全相关系统为了实现 所要求的安全功能所必需的软件安全功能需求 详细说明每个E/E/PE安全相关系统的软件安全 完整性,该安全完整性对分配给E/E/PE 安全相 关系统的每一安全功能达到规定的安全完整性 等级是必需的
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋软件结构目标
z
z
软件结构指的是软件系统的体系结构,它代表了软件 系统的整体性问题。软件体系结构的设计是整个软件 开发过程中关键的一步,软件体系结构的选择往往会 成为一个系统设计成败的关键 目标 (1)开发实现符合软件安全完整性等级要求的软件要求 规范所规定的软件结构 (2)审查由系统结构分配给软件的需求 (3)识别和评估硬件/软件安全交互作用的有效性 (4)如果事先没有规定,选择设计方法
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋对支持工具和编程语言的要求(2/2)
4.当3不能满足时,在软件体系结构设计描述过程中应记 录选用替代语言的理由,包括该语言用于本软件的合理性以 及安全软件设计和开发针对该语言的任何已识别出的缺点的 任何附加措施 5.必须开发编码标准并用于所有软件的开发,编码标准必 须包含在软件质量保证计划中 6.编码标准必须规定好的编程安全方法,排除非安全的语 言特征,并规定源代码文档编制的规程。最低限度必须把下 列信息包括在源代码文档中: a. 合法实体(如著作者、公司) b. 配置管理沿革 c . 描述 d . 输入和输出
安全软件设计和开发
▋对软件模块测试的要求 测试软件模块是否正确地满足它的测试规格说 明是一种验证活动,它是代码审查和软件模块 测试的组合 1.在软件设计期间必须按照规定测试每一个 软件模块 2.这些测试必须表明每一个模块实现了它的 预期功能并且没有实现不期望的功能 3.软件模块测试结果必须建立文档 4.必须规定测试失败所采用的改正动作过程
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋基本要求(2/3)
z z z z z
为了促进最终安全相关系统的这些特性的实现,在设 计活动期间必须考虑安全修改的可测性和限度 设计方法的选择必须具有能够增强软件修改的特征, 这样的特征包括模块化、信息隐蔽和压缩 设计陈述必须以确切定义的符号为基础或局限于确切 定义的特征 就可行性而言,设计必须把软件的安全相关部分减少 到最低限度 当软件被要求同时实现非安全和安全的两种功能时, 所有的软件必须看作安全相关的,除非在设计时,可 以论证两种功能间充分独立
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋对详细设计和开发的要求
1.下列消息应在设计开始以前是可用的:软件安全要求 规范;软件结构设计描述;软件安全确认计划 2.所编制的软件应该具有实现模块化、可测试性和安全 修改的能力 3.对软件结构设计描述中的每个主要部件/子系统,设 计的进一步求精必须以软件模块划分为基础(也就是软件 系统设计规格说明)。必须规定每个软件模块的设计和每 个软件模块所用的测试 4.应该规定合适的软件系统集成测试,以保证软件系统 满足在所要求的安全完整性等级上所规定的软件安全需求
机械工业仪器仪表综合技术经济研究所
可编程电子中软件结构和硬件结构的关系
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋目标
z z
z
z
z
创建一个软件结构,该结构满足相对于所要求的安全 完整等级的规定的软件安全需求 审查和评估软件需求,这个软件需求是由E/E/PE安全 系统按排到软件上的需求,这个系统包括E/E/PE硬件/ 软件对被控设备安全相互作用的重要性 选择一套合适的工具,包括语言和编译器,对所要求 的安全完整等级,覆盖帮助验证,确认,评价和改进 的整个安全生命周期 设计和实现软件,这个软件满足对于所要求的安全完 整性等级的规定的软件安全需求,能够分析和验证且 能安全地修改 验证达到的软件安全需求(所要求的软件安全功能和 软件安全完整性)
z
机械工业仪器仪表综合技术经济研究所
软件/硬件集成
z
要求(1/2)
(1) 在设计和开发阶段期间必须确定集成测试,以保证硬 件和软件的相容性 (2) 硬件和软件集成测试必须确定下列各项: a. 将系统分成集成等级 b. 测试用例和测试数据 c. 所用 的测试形式 d. 包括工具、支持软件和配置描述在内的 的测试环境 e. 判断测试完成的测试准则 (3) 硬件和软件的集成测试必须区分可以由开发者以自己 的假设所开展的活动和按用户要求进行的活动 (4) 硬件和软件的集成测试必须区分下列各项活动: a.将软件系统合并到目标可编程电子硬件 b.E/E/PE 集成,就是加上传感器和执行器这样的接口 c.EUC和 E/E/PE安全相关系统的完全集成
机械工业仪器仪表综合技术经济研究所
软件安全要求规范
▋要求(1/2)
z
z z z
为了可以设计和实现达到所要求的安全完整性,并且允许 进行功能安全评介,软件安全要求规范必须足够详细。其 详细程度随应用的复杂性而变化 软件开发者必须审核E/E/PE安全相关系统安全规范和安全 计划的所有信息,以保证需求被足够详细地说明 软件开发者必须制定在分配软件安全完整性等级上,解决 所有争论的进程 对被安全完整性等级所要求的范围,必须陈述和构造规定 的安全要求
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋软件结构的输入输出
z
输入文件 (1)软件要求规范 (2)系统安全规格说明 (3)系统结构描述 (4)软件质量保证计划 输出文件 软件结构规格说明
z
机械工业仪器仪表综合技术经济研究所来自安全软件设计和开发▋软件结构要求(1/3)
(1)必须由软件提供者和/或开发者制定建议性的软件 结构,并在软件结构规格说明中详细说明。 (2)软件结构规格说明必须考虑实现在所要求的软件安 全完整性等级上的软件要求规范的可行性。 (3)软件结构规格说明必须识别、评估和详细说明所有 软件/硬件交互作用的有效性。作为EN50126和 EN50129的要求,关于硬件和软件之间交互作用的初 步研究必须记录在系统安全规格说明中 (4)软件结构规格说明必须识别所有软件部件,并对这 些部件进行识别
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋对支持工具和编程语言的要求(1/2)
1.为了在整个软件生命周期保持所要求的软件安全等级必 须选择一套合适的工具,它包括设计方法、语言和编译器 2.在可以使用的时候,必须使用自动测试工具和集成开发 工具,必须考虑验证和确认的需要 3.为了达到软件安全完整性等级所要求的程度,所选择的 编程语言具有下列各项之一的翻译器/编译器: a. 有一个通过国家或国际标准确认证书的或通过评测认为 适合所用目的解释器/编译器 b. 被完整和明确定义或局限于具有明确定义的特性 c. 与应用的特性相适应 d. 具有易于识别编程差错的特性 e. 支持与设计方法相适应的特征
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋对编码实现的需求 1.源码必须是 a. 可读的、可理解的和可测试的 b. 满足规定的软件模块设计要求 c. 满足规定的编码标准要求 d. 满足在安全计划期间规定的所有相关的要 求 2.应该审查每个软件编码模块
机械工业仪器仪表综合技术经济研究所
机械工业仪器仪表综合技术经济研究所
软件/硬件集成
z
目标
a.将软件集成到预先规定的可编程电子硬件中 b. 将软件和硬件组合到安全相关可编程电子设备中,保 证它们的相容性,并满足预期安全完整性等级的要求 和系统安全规格说明
z
输入文档
a. 系统要求规范 b. 系统安全要求规范 c. 系统结构 描述 d. 软件要求规范 e. 软件需求测试规格说明 f. 软件结构规格说明 g. 软件设计规格说明 h. 软件模块 设计规格说明 i. 软件模块测试规格说明 j. 软件源码 和支持文档 k. 硬件文档 输出文档 a. 软件/硬件集成测试计划 b.软件/硬件集成测试 报告。
机械工业仪器仪表综合技术经济研究所
安全软件设计和开发
▋对软件集成测试的要求
1.在软件设计和开发期必须同时规定软件集成测试 2.所规定的软件集成测试必须规定下列各项:a.被分成可管理的集成集 合的软件的各个部分 b.测试用例和测试数据 c.所用的测试形式 d.测试环 境、工具、配置和程序 e.判断测试完成的测试准则 f.测失败所采用的改 正动作过程 3.必须按照规定的软件集成测试来测试软件。这些测试必须表明所有 软件模块和软件部件/子系统正确地交互作用,以实现它期望的功能并 且没有实现不期望的功能 4.软件集成测试结果必须建立文档,陈述测试结果,以及是否满足测 试准则的目标和准则。如果有失败,必须建立失败原因的文档 5.在软件集成期间,对软件的任何修改或变动必须进行影响分析,以 确定所有受影响的软件模块以及进行重新验证和重新设计的必要性