正像E/E/PE安全相关系统的开发有总体安全生命周期一样,软件也遵循有效的生命周期发展过程。图8.1展示了软件系统性能力和开发生命周期,即V模型。它是很多不同的软件开发模型之一。可以根据项目的安全完整性要求和复杂性对V模型进行步骤合并。V模型描述了一种自上而下的软件设计和测试程序。V模型中的每一方框的内容都需要确认和验证。下面简述V模型中各个程序框的工作内容。
软件安全要求规范:对软件的全部要求,包括系统启动、操作、维护、关闭、报警、旁路等,都需要清晰地整理成文档。软件安全要求规范的基本内容详见。如果没有软件安全要求规范或软件安全要求规范不完全,则有效的软件开发是很困难的。
软件架构:规定软件的整体结构,包括语言、主程序结构、子程序、主程序和子程序的相互作用、标准函数块、附加的或自定义的功能等,特别是安全完整性等级。
软件系统设计/模块设计:指软件的详细设计和开发。架构中的主要组件划分为个软件模块系统;各自的软件模块设计;编码。在小型软件开发项目中,软件系统设计和架构设计可整合在一起。
编码:软件的编码或者实际编制软件基于的语言和体系结构。根据要求,可能会有一个或多个程序。
模块测试:包括代码复审和软件模块测试,即测试并验证软件模块正确地满足其相关规范,是否能够执行预定功能且不执行非预定功能。
模块(软件)集成测试:根据软件系统集成测试规范中的要求,测试并验证所有软件模块和软件组件/子系统是否正确交互以执行其预定的功能而不执行非预定功能。
可编程电子集成测试:测试并验证软件是否正确集成到可编程电子硬件中,并能够兼容且实现安全完整性等级的要求。该步骤可以与软件集成测试合并。
确认:确认测试是为验证集成的系统满足所需的安全完整性等级,符合软件安全要求规范。
另外需要指出的是,软件验证是针对安全完整性等级要求的程度,测试和评估软件安全生命周期在给定的各个阶段的输出与输入的正确性和一致性。软件验证不对软件模块测试、软件集成测试、可编程电子集成和软件确认中的验证测试提出额外要求,但机械手控制系统软件部分尚须对下列内容进行验证:
① 软件安全要求;
② 软件架构;
③ 系统设计;
④ 模块设计;
⑤ 代码;
⑥ 数据;
⑦ 时间性能。