论文部分内容阅读
摘 要:在现代轨道运输设备中,系统中软件的含量不断增加,在软件的开发中,如何保证其可靠性与安全性成为一个较难处理的问题。根据目前国际上先进的EN50128标准体系,采用一套系统性、结构化的软件生命周期方法,可开发出有足够的安全性、可靠性置信度的软件。基于EN50128中的方法,建立针对供应商软件的质量管理体系,评价软件供应商的质量保证能力,并在软件项目评标活动中选择开发方。
关键词:EN50128;SIL;软件安全完整性;轨道运输设备;供应商;软件质量管理
引言:
在现代轨道运输设备中,以软件为核心的产品得到了广泛的应用。随着系统中软件成分的不断增加,使得系统对软件的依赖性越来越强,对软件可靠性、安全性的要求也越来越高。
现有的各种手段,包括质量保证方法(即免错手段与检错手段)与各种软件容错手段,并不能完全保证安全性要求。一般来说对于高可靠性要求的软件的开发应采取以下手段来保证软件质量:自上而下、结构化的方法、模块化方法、生命周期各阶段的验证、通过验证的构件以及构件库、清晰的文档及其可追溯性、可进行审计的文档、用户确认、第三方评估、配置管理与变更控制系统、合理的组织机构与人员素质。
CENELEC 制定了EN50128标准,认为,通过一系列标准化的方法,为软件指定SIL(Safety Integrity Level),根据SIL为软件的生命周期指定标准化的生命周期模型,并且在生命周期各阶段都指定了应采用的标准化的方法,如果软件的开发按照上述方法执行,那么可以认为软件对其相应的安全性需求有了足够的置信度。
1软件安全完整性等级(Software SIL)
1.1安全完整性(Safety Integrity,SI)
SI一般定义为:某安全相关的系统完成其承担的安全功能的能力。SI越高,该系统在执行其承担的安全功能时失败的可能性就越低。安全完整性可分为两部分:系统性失效完整性与随机失效完整性。欲实现期望的安全完整性,那么需同时保证系统性失效完整性与随机失效完整性。
为实现对SI的控制,采用了安全完整性等级(SIL)的概念。SIL的应用,在于将定性的方法(用于避免系统性失效)与定量的方法(用于控制随机失效)统一,以规避系统性失效无法量化的问题。
EN50129提供了一个SIL表,以表示SIL与安全目标的对应关系,如下表
应注意的是,SIL0并未包含在此表格中,这是因为在评估系统风险时存在不确定性,对于不确定性来说,应谨慎的为其指定一个低的安全完整性等级,即SIL0,而不应置之不理。系统获得了SIL0之后,即可纳入EN50128的安全软件开发体系。
1.2软件安全完整性等级
安全相关系统的中对软件安全完整性等级的分配,以及软件界面,都应在系统文档中得到识别。对于子系统中被细化分割的软硬件零件来说,安全完整性要求的分配可能会导致不同的SIL。此分配基于子系统中软硬件零件对安全相关功能作用的大小以及失效减免机制(包括不同SIL功能的分割)。
软件安全完整性等级应在系统级别进行确定和评价,基于系统安全完整性等级以及在系统中使用该软件的风险等级。对安全影响低于SIL1的软件零件最少应符合标准中SIL0等级的要求。
2软件质量管理
2.1概述
对供应商的软件质量管理,即为对供应商软件生命周期过程能力的评估。主要的具体工作在于对供应商软件生命周期文档的评审、系统安全相关文件的评审、软件开发体系的现场审核等。
2.2软件分类
一般来说,供应商软件可分为三类:
A:新开发或较大变更的软件:针对项目新开发或重用类似项目软件但需要进行变更以适用当前项目的软件
B:重用软件:已经在实践中获得证明的成熟软件,并且准备不加变更的应用到当前项目中
C:商用软件:即为COTS(commercial off-the-shelf)软件,此类软件由市场需求驱动而产生,并在实际的商务使用中得到广大用户的认可。
2.3A类软件的质量保证活动
供应商至少应通过ISO9001认证,并且应有定义完善的软件生命周期模型。生命周期模型至少应满足ISO/IEC90003的要求。如果软件与安全相关,那么生命周期模型应遵循EN50128.
软件的质量保证工作应当从投标阶段开始,贯穿整个项目的生命周期,根据不同的软件SIL执行不同的质量保证活动。
投标、开始阶段:1)分析、记录项目的软件质量保证需求2)持续记录、更新软件供应商文档的状态3)发布并更新项目的软件质量保证计划4)建立SWQA的状态表格
设计阶段:1)监控、跟踪内部或外部供应商的软件开发状态2)评审软件的计划与开发文档3)更新SWQA状态表格
实现阶段:1)监控、跟踪内部或外部供应商的软件开发状态2)评审软件确认报告4)评审软件评估报告5)执行SWQA审核6)检查软件交付项是否可接受7)更新软件状态表格8)编写最终的SWQA状态报告
维护阶段:至少应执行设计与实现阶段的SWQA活动
这些质量保证活动的重点,在于供应商文件的审核工作。根据不同的软件SIL所应要求评审的文件不同,根据不同的需求可有不同的选择,但推荐至少应评审在EN50128表格A.1中标记为HR的文件。
2.4B类软件的质量管理
应根据相关标准(EN ISO/IEC 17050-1等)提供软件的符合性报告,以证明软件可应用于目標系统。
2.5C类软件的质量管理
应提供软件的确认报告,以证明软件能胜任所承担的系统需求。
3总结
在各种敏捷方法横行的今天,结构化、文档化甚至形式化的开发方法在高可靠性要求的软件开发中依然起着不可替代的作用。
通用的质量管理模型(ISO9000,CMMI),为质量管理体系搭建了骨架,对质量保证活动的关键过程域进行了识别,而EN50128体系则是针对高可靠性、安全性软件开发提出要求,可在保证高质量的前提下,缩短软件的开发周期,为企业创造更高的效益。
参考文献
[1] EN50128-2011:铁路应用-通信、信号传输与处理系统-防护与控制系统软件.
[2] EN 50129-2003:铁路应用—通信、信号传输与处理系统—信号传输的安全相关电子系.
[3] EN 50126-1999:铁路应用-RAMS技术规格与保证.
[4] EN 61508-5-2010:E/E/PE的功能安全性- 安全相关系统 第5部分: 确定安全完整性等级的方法举例.
关键词:EN50128;SIL;软件安全完整性;轨道运输设备;供应商;软件质量管理
引言:
在现代轨道运输设备中,以软件为核心的产品得到了广泛的应用。随着系统中软件成分的不断增加,使得系统对软件的依赖性越来越强,对软件可靠性、安全性的要求也越来越高。
现有的各种手段,包括质量保证方法(即免错手段与检错手段)与各种软件容错手段,并不能完全保证安全性要求。一般来说对于高可靠性要求的软件的开发应采取以下手段来保证软件质量:自上而下、结构化的方法、模块化方法、生命周期各阶段的验证、通过验证的构件以及构件库、清晰的文档及其可追溯性、可进行审计的文档、用户确认、第三方评估、配置管理与变更控制系统、合理的组织机构与人员素质。
CENELEC 制定了EN50128标准,认为,通过一系列标准化的方法,为软件指定SIL(Safety Integrity Level),根据SIL为软件的生命周期指定标准化的生命周期模型,并且在生命周期各阶段都指定了应采用的标准化的方法,如果软件的开发按照上述方法执行,那么可以认为软件对其相应的安全性需求有了足够的置信度。
1软件安全完整性等级(Software SIL)
1.1安全完整性(Safety Integrity,SI)
SI一般定义为:某安全相关的系统完成其承担的安全功能的能力。SI越高,该系统在执行其承担的安全功能时失败的可能性就越低。安全完整性可分为两部分:系统性失效完整性与随机失效完整性。欲实现期望的安全完整性,那么需同时保证系统性失效完整性与随机失效完整性。
为实现对SI的控制,采用了安全完整性等级(SIL)的概念。SIL的应用,在于将定性的方法(用于避免系统性失效)与定量的方法(用于控制随机失效)统一,以规避系统性失效无法量化的问题。
EN50129提供了一个SIL表,以表示SIL与安全目标的对应关系,如下表
应注意的是,SIL0并未包含在此表格中,这是因为在评估系统风险时存在不确定性,对于不确定性来说,应谨慎的为其指定一个低的安全完整性等级,即SIL0,而不应置之不理。系统获得了SIL0之后,即可纳入EN50128的安全软件开发体系。
1.2软件安全完整性等级
安全相关系统的中对软件安全完整性等级的分配,以及软件界面,都应在系统文档中得到识别。对于子系统中被细化分割的软硬件零件来说,安全完整性要求的分配可能会导致不同的SIL。此分配基于子系统中软硬件零件对安全相关功能作用的大小以及失效减免机制(包括不同SIL功能的分割)。
软件安全完整性等级应在系统级别进行确定和评价,基于系统安全完整性等级以及在系统中使用该软件的风险等级。对安全影响低于SIL1的软件零件最少应符合标准中SIL0等级的要求。
2软件质量管理
2.1概述
对供应商的软件质量管理,即为对供应商软件生命周期过程能力的评估。主要的具体工作在于对供应商软件生命周期文档的评审、系统安全相关文件的评审、软件开发体系的现场审核等。
2.2软件分类
一般来说,供应商软件可分为三类:
A:新开发或较大变更的软件:针对项目新开发或重用类似项目软件但需要进行变更以适用当前项目的软件
B:重用软件:已经在实践中获得证明的成熟软件,并且准备不加变更的应用到当前项目中
C:商用软件:即为COTS(commercial off-the-shelf)软件,此类软件由市场需求驱动而产生,并在实际的商务使用中得到广大用户的认可。
2.3A类软件的质量保证活动
供应商至少应通过ISO9001认证,并且应有定义完善的软件生命周期模型。生命周期模型至少应满足ISO/IEC90003的要求。如果软件与安全相关,那么生命周期模型应遵循EN50128.
软件的质量保证工作应当从投标阶段开始,贯穿整个项目的生命周期,根据不同的软件SIL执行不同的质量保证活动。
投标、开始阶段:1)分析、记录项目的软件质量保证需求2)持续记录、更新软件供应商文档的状态3)发布并更新项目的软件质量保证计划4)建立SWQA的状态表格
设计阶段:1)监控、跟踪内部或外部供应商的软件开发状态2)评审软件的计划与开发文档3)更新SWQA状态表格
实现阶段:1)监控、跟踪内部或外部供应商的软件开发状态2)评审软件确认报告4)评审软件评估报告5)执行SWQA审核6)检查软件交付项是否可接受7)更新软件状态表格8)编写最终的SWQA状态报告
维护阶段:至少应执行设计与实现阶段的SWQA活动
这些质量保证活动的重点,在于供应商文件的审核工作。根据不同的软件SIL所应要求评审的文件不同,根据不同的需求可有不同的选择,但推荐至少应评审在EN50128表格A.1中标记为HR的文件。
2.4B类软件的质量管理
应根据相关标准(EN ISO/IEC 17050-1等)提供软件的符合性报告,以证明软件可应用于目標系统。
2.5C类软件的质量管理
应提供软件的确认报告,以证明软件能胜任所承担的系统需求。
3总结
在各种敏捷方法横行的今天,结构化、文档化甚至形式化的开发方法在高可靠性要求的软件开发中依然起着不可替代的作用。
通用的质量管理模型(ISO9000,CMMI),为质量管理体系搭建了骨架,对质量保证活动的关键过程域进行了识别,而EN50128体系则是针对高可靠性、安全性软件开发提出要求,可在保证高质量的前提下,缩短软件的开发周期,为企业创造更高的效益。
参考文献
[1] EN50128-2011:铁路应用-通信、信号传输与处理系统-防护与控制系统软件.
[2] EN 50129-2003:铁路应用—通信、信号传输与处理系统—信号传输的安全相关电子系.
[3] EN 50126-1999:铁路应用-RAMS技术规格与保证.
[4] EN 61508-5-2010:E/E/PE的功能安全性- 安全相关系统 第5部分: 确定安全完整性等级的方法举例.