联锁系统应⽤软件的验证
姚亚平:中国铁道科学研究院通信信号研究所助理研究员
100081北京
齐志华:中国铁道科学研究院通信信号研究所助理研究员validation verification
100081北京
徐登科:中国铁道科学研究院通信信号研究所助理研究员
100081北京
张萍:中国铁道科学研究院通信信号研究所副研究员
100081北京
基⾦项⽬:铁道科学技术研究发展中⼼项⽬(J2012X001)
收稿⽇期:2012-10-17联锁系统应⽤软件的验证
姚亚平
齐志华徐登科张萍摘要:联锁系统应⽤软件是独⽴于系统安全平台进⾏站场联锁逻辑运算的⼀种具有特殊⽤途的通⽤软件。主要介绍了联锁系统应⽤软件的开发⽣命周期,并在对⽐EN50128:2011和EN50128:2001的基础上明确了联锁系统应⽤软件验证⼯作的⼀般要求,详细阐述了依据EN50128:2011标准对联锁系统应⽤软件及其开发进⾏SIL4等级安全认证过程中的各项验证活动。总结出⼀套适合铁路信号安全相关软件的通⽤开发验证模式,为以后其他安全相关软件的验证活动提供宝贵的技术积累和经验。
关键词:EN50128:2011;安全认证;验证;确认;联锁系统应⽤软件
Abstract :Interlocking system application software is one kind of general-purpose software dedicated to conducting interlocking logic calculation for control signaling equipment in stations or yards independent of system safety platform.We mainly introduce the development lifecycle of interlocking system applica-tion software and define the general requirements about verification activities for interlocking system appli-cation software based on the comparison between EN50128:2011and EN50128:2001,and elaborate the verification activities in the process of interlocking system application software development with SIL4based on the EN50128:2011.We also summarize one s
et of generic development verification mode suit-able for railway signaling safety-related software ,providing valuable technical accumulation and experi-ence for other safety-related software verification activities.
Key words :EN50128:2011;Safety Certification ;Verification ;Validation ;Interlock System Appli-cation Software
联锁系统应⽤软件是在参照EN50128:2011
国际安全认证相关标准制定的流程,按照安全完整
性等级4级(SIL4)的要求进⾏开发的。可适⽤于
多种安全平台,与之结合成为完整的车站计算机联
锁系统。
EN50128:2011标准是对既有EN50128:2001
进⾏修改补充产⽣的最新版本,主要针对软件的安
全提出相关的规范和设计标准。在该标准中,对铁路控制和防护系统的软件进⾏安全完整性等级划分,按照不同的安全完整性,对整个软件开发、检查、评估、测试、应⽤等过程,以及软件需求、测试计划、软件结构、软件设计开发、软件检验和测试、软硬件集成测试、软件确认等阶段及阶段内的活动提出相应的流程与措施要求。其中对整个软件开发⽣命周期的验证(verification )是依照该标准进⾏安全认证评估的⼀个重要环节。
1
联锁系统应⽤软件概述联锁系统应⽤软件可以应⽤于多种安全平台,通过与某种安全系统的平台软件进⾏数据交换获得相关的站场设备状态信息,并进⾏联锁逻辑运算,产⽣并向平台传递相应的联锁控制命令,控制站场设备对应的继电器,实现站场的计算机联锁控制。图1为联锁系统应⽤软件与安全平台及平台软件的
关系⽰意图。
—
1—2013年4⽉
铁道通信信号April 2013第49卷第4期RAILWAY SIGNALLING &COMMUNICATION Vol.49No.4
图1联锁系统应⽤软件与平台软件关系⽰意图
2联锁系统应⽤软件开发⽣命周期
在EN50128:2011标准中,将软件安全完整性等级(SIL )从0级到4级划分为5个等级。对于软件⽽⾔,软件失效后的危险性影响越⼤,软件应当被分配的安全完整性等级越⾼,这也就意味着软件开发时所应采取的安全保障技术和措施也就越复杂。因此,软件的安全完整性等级的⾼低,直接影响系统的安全性和资源的合理应⽤。EN50128:2011中并没有像对硬件设备定义安全完整性等级(SIL )那样直接给出相对应的THR ,也没有给出哪⼀类风险应选取哪⼀级别的软件安全完整性等级。因此对于联锁系统应⽤软件这样的跨平台使⽤软件应当从实际需求出发,并综合考虑软件应⽤的特性、安全性功能,以及社会经济等诸多因素。中国铁道部将联锁系统应⽤软件的安全完整性等级定为4级(SIL4),软件开发⽣命周期模型采⽤V 模型,⼤致划分为:软件计划阶段、软件需求阶段、软件结构设计阶段、软件模块设计阶段、
软件代码实现阶段、软件测试阶段、软件确认阶段、软件布置使⽤维护阶段等。
根据EN50128:2011标准,验证⼯作被贯穿
于整个软件开发的⽣命周期,⽤以验证软件开发⽣命周期内各个阶段及各个阶段间⼯作的可靠,保证软件开发⼯作是可控的、安全的。3验证⼯作的⼀般要求验证与确认都是安全认证评估的重要环节,但
在软件开发⽣命周期内它们的侧重点有所不同。验证⼯作可以通俗的理解为是否正确编制了软件,即
是否正确地做事,验证开发过程是否遵守已定义好的过程规范;确认⼯作可以理解为是否编制了正确的软件,即是否在做⽤户真正所需的软件产品。
进⾏软件验证,⾸先要确定验证⼈员。图2为
EN50128:2001标准与EN50128:2011标准中关于SIL4等级的⼈员独⽴性要求对⽐图。对⽐两个版本的EN50128标准,可以看出对于验证和确认⼯作从⼈员分配上进⾏了严格的区分,不再允许由⼀个⼈来同时进⾏验证与确认⼯作。
参照EN50128:2011标准的相关要求,在联
锁软件开发⽣命周期内,将验证和确认⼈员的分配进⾏了调整,产⽣了如图3所⽰的联锁软件开发团队组织关系图,确保了验证⼈员拥有⾜够的独⽴性,即:验证⼈员独⽴于软件系统开发⼈员,仅向确认⼈员汇报,不直接对项⽬经理负责,在技术⽅⾯具有否决权。4联锁系统应⽤软件的验证活动验证活动本⾝也是⼀种渐进的过程,从计划制定、需求产⽣阶段开始,在整个过程推进中不断的对产品、过程等进
⾏验证,直⾄最后对完成的产品进⾏最后的验证,并为产品的最终确认提供依据。
4.1制定验证计划阶段
验证计划包括:验证⼯作的⽬的和说明,验证—
2—铁道通信信号2013年第49卷第4期
图2EN50128
标准⼈员职责分配图
图3联锁软件开发团队组织关系图⼈员的资质要求,验证⼈员的职责及独⽴性要求,验证活动对开发过程的控制流程,各个阶段验证活动所需数据的获取及整理,描述验证活动所采取的关键技术和⽅法,验证的限制条件及活动环境等。4.2需求及风险分析阶段需求及风险分析阶段是围绕“需求是否科学、合理,风险分析是否全⾯,防护措施是否到位”展开的。这部分⼯作由专家、⽤户、项⽬经理、开发者、验
证和确认⼯作⼈员共同完成。实践表明,这⼀阶段的验证⼯作⾮常重要,未经科学合理验证的需求将给后期的开发造成很⼤的影响。也就是说,需求既不能遗漏⽤户的需求项,⼜不能过度提⾼⽤户需求项的精度和可信程度,否则都会给后期的软件开发带来巨⼤的影响。
需求阶段的验证是保证⽤户的需求转化为设计
之前能得到完全的理解,并保证需求包含以下的特性:明显、清楚、完整、⼀致、合理、可度量、可修改、可追踪、相关的需求明确。以“联锁系统应⽤软件跨平台”这条需求为例,在制定该需求时就要考虑到多种安全系统平台不同软件编译器间的差异,并明确该需求的限定条件,以及联锁软件与安全系统平台软件的接⼝。对于软件的接⼝,通过对⽤户需求进⾏形式化⽅法得到软件的UML 模
型,之后根据UML 模型的描述,利⽤形式化验证
⼯具对UML 模型进⾏需求验证,以确保该项需求设计的UML 模型的正确性。
4.3设计阶段
设计验证的⽬的是确定⽤户需求如何在设计中
得到具体的体现,可追溯性就从这⾥开始,该阶段的原始输⼊就是需求阶段的最终产物。参照EN50128:
2011标准,联锁系统应⽤软件开发⽣命周期中,该阶段的原始输⼊为:软件需求规范、软件安全需求规范。在设计阶段,验证活动的主要任务是:
1.验证需求中每⼀个需求项都在设计中得到
体现。验证⽅式是⽂档审查,从完整性、准确性、清晰性、可⾏性、合理性等⽅⾯进⾏全⾯的检查,评审相关⽂档的满⾜性和相关内容的可追溯性,形
—3—RAILWAY SIGNALLING &COMMUNICATION Vol.49No.42013
图4测试阶段划分图成相应的验证报告。
2.验证设计的细化过程及细化过程中产⽣的测试⽤例。设计过程是从结构设计到模块设计的⼀个逐步细化的过程。在验证过程中,对逐个需求、指标逐层跟踪分析,重点跟踪那些重要的需求,确保它们在模块设计阶段进⾏了有效的、正确的表⽰。该阶段采⽤的验证⽅式是审查、控制流分析和接⼝分析等。在验证过程中将产⽣验证报告和对应的模块测试⽤例及软件集成测试⽤例。
以验证“联锁软件跨平台”这条需求项为例,需要对软件的内部接⼝、外部接⼝等⽅⾯进⾏验证。当发现
模块设计需要修改时,则由开发⼈员在模块设计中修改,甚⾄可以返回结构设计进⾏修改。通过这样的过程确认,该项需求在设计时充分考虑到不同平台编译器的差异,并有了⾜够的防护措施或解决⽅案,并且有明确的测试⽤例对该设计进⾏测试。
4.4代码实现阶段
代码实现阶段是将模块设
计转化成对应代码集的过程,
该阶段的输出为源代码本⾝。
验证的⽬的是保证编制的代码
符合模块设计规范和编码规范,
确定代码的质量。本阶段验证
⼯作主要参照EN50128:2011
附录A 中表A.5、A.19中的要
求,借助Testbed ⼯具进⾏指标
测试,并填写代码审查单,如
表1所⽰。
表1
联锁系统应⽤软件代码审查单(部分)序号
验证项通过情况描述1
2
3
4
5
代码编写格式是否⼀致每⾏最多包含⼀条语句每个函数都有注解变量命名是否得当循环计节定义是否有意义6对于局部变量、全局变量、常数
是否按命名规则进⾏命名7…变量是否进⾏了初始化…为保证联锁系统应⽤软件代码的需求满⾜性,
代码实现的验证要求包括:1.验证代码已经100%覆盖了模块设计中的所有设计,并且没有冗余物;2.验证代码中注解、格式、参数等符合开发团队制定的编码规范及代码验证检查单;3.验证代码中变量声明及拼写与模块设计规范⼀致;4.通过静态测试验证代码边界值、数据流、控制流是否存在缺陷或错误。4.5测试阶段如图4所⽰,本阶段主要实现代码的集成、系统级的集成及连接与调试等。主要是对代码模块及代码模块的集成进⾏验证,验证的主要⼿段是进⾏模块动态(单元)测试及软件集成测试。值得注意的是:并不是仅在此阶段测试⼈员才进⼊项⽬中的。参照EN50128:2011标准,在联锁系统应⽤软件开发项⽬中,集成⼈员进⾏系统集成测试,测试⼈员进⾏单元(模块)动态测试和模块集成测试。本节所描述的测试阶段为单元(模块)动态测试和模块集成测试阶段。在联锁系统应⽤软件开发项⽬中,软件单元测试和集成测试由软件测试⼈员与软件设计⼈员共同完成。在测试过程中,参考EN50128:2011标准附录A 中A.13、A.14的要求,选取的技术和⽅法与软件各模块的安全完整性等级要求⼀致。测试采
⽤⽩盒测试为主,兼做部分⿊盒测试的⽅式,采⽤通过边界值分析、等价类和输⼊划分来执⾏测试⽤例。
(下转第7页)—
4—铁道通信信号2013年第49卷第4期
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论