肖安洪,杨大为,曾 辉,蒋 亮,陈晓凡
(中国核动力研究设计院核反应堆系统设计技术重点实验室,四川 成都 610041)
核反应堆仪控系统软件验证与确认过程研究
肖安洪,杨大为,曾 辉,蒋 亮,陈晓凡
(中国核动力研究设计院核反应堆系统设计技术重点实验室,四川 成都 610041)
仪控系统通过软件程序和硬件设备对核反应堆进行监测、运行以及安全保护,对核安全具有重要作用。为保证仪控系统中软件的安全性、可靠性,需要在软件生命周期过程中,开展验证与确认工作。论述了在核反应堆仪控系统软件开发过程中需要定义的验证与确认阶段,对每个阶段验证与确认的活动、输入、输出进行定义,以指导软件验证与确认工作的有效实施。
反应堆;仪控系统;软件;验证与确认
随着数字化的发展,软件的应用领域不断扩展,模拟仪控系统被数字化仪控系统取代是普遍趋势,因为数字化仪控系统具有如下优点:1)系统灵活,易维护,具有冗余、容错、故障安全等功能;2)使用通讯网络进行数据传输,提供数据传输的安全性和可靠性;3)系统逻辑运算能力强大,计算效率和精度高;4)成本低,安全性高。国外仪控系统的数字化研究较早,并推出了成熟的商业化产品,如西门子公司的TELEPERM XP、TELEPERM XS等,广泛应用于核电厂仪控系统。国内数字化仪控系统数字化研发进展相对缓慢,直到现在还未推出成熟的、具有自主知识产权的数字化仪控系统产品,严重制约了我国核行业的发展,对国家“核电走出去”战略也带来不利影响。造成这种困境的原因有两个方面:一方面是由于仪控系统是核反应堆的关键系统,国外对相关技术一直进行严密封锁;另一方面也是由于核反应堆安全的极端重要性,难以对数字化仪控系统中软件的安全性、可靠性提供值得信赖的保障,从而导致受制于人的现状。
为解决国内核反应堆仪控系统面临的困境,国内各大核电集团都开展了基于软件的数字化仪控系统产品的研发,中国广核集团已经在数字化仪控系统研发方面开展了大量工作,并已取得良好进展。中国核工业集团公司利用科研创新项目,也在开展数字化仪控系统的研发工作。数字化仪控系统研发能否成功的一大关键点便是仪控系统中的软件验证和确认工作,它关系到仪控系统是否满足核安全法规的要求[1]。本文阐述了在核反应堆仪控系统研发过程中需要开展的软件验证与确认工作阶段,明确每个阶段的任务、输入和输出,为提高软件的安全性、可靠性,满足核安全法规要求提供技术支持。
软件验证与确认作为软件工程中的重要环节,需要按照软件工程规范开展工作。因此,参考CMMI和GJB5000A体系建立软件验证与确认体系文件框架,指导软件验证和确认工作的开展,如图1所示。
体系文件框架由3个层次的文件组成,第一层次是过程文件,即软件验证与确认工作的顶层文件,包含验证和确认,以及相关的其他软件工程过程文件。第二层次是作业文件,即指导开展可追踪性分析、安全保密分析、软件测试等验证与确认活动的文件。第三层次是操作文件,即实施验证与确认活动所需要的验证工具操作指南、各类检查单以及异常(缺陷)报告单。
根据IEEE1012-2004标准要求,软件验证与确认可以在软件全生命周期过程中实施,也可以选取合适的过程实施[2]。在核反应堆仪控系统软件研发项目中,软件开发过程是保证系统安全性、可靠性的关键所在,因此针对软件开发过程实施软件验证与确认,既能满足软件安全性要求,也可以减少工作量。在软件开发过程中,软件验证与确认可以划分为如下阶段(过程管理贯穿整个过程),如图2所示。
2.1过程管理
管理活动应按照项目进度建立或更新软件验证与确认计划,以适应软件开发状态;持续地对验证与确认工作进行审查,对输出产品进行监督、控制和评价,详细要求在体系文件《项目监督与控制》中定义;定义并规范开发团队和验证与确认团队之间的工作接口,详细要求见体系文件《验证与确认团队和开发团队接口管理》;对验证与确认工作的配置管理进行计划,建立并维护基线,对配置项的出库、入库、变更进行评审和状态审核,详细要求在体系文件《配置管理》中定义;按照质量保证要求对验证与确认工作的管理过程、工作产品进行审核,发现不符合项时及时与相关人员进行沟通并督促解决,对于无法解决的不符合项要上报并跟踪其状态,详细要求在体系文件《过程与产品质量保证》中定义;对开展的验证与确认工作进行总结。
2.2软件验证与确认策划阶段
在软件验证与确认策划阶段,应根据核反应堆仪控系统的总体要求、开发计划等,编制软件验证与确认计划,其内容应与体系文件《软件验证与确认过程》中定义内容一致。
软件验证与确认计划需要通过评审,并在整个软件验证与确认工作过程中进行维护。
2.3系统需求评价阶段
仪控系统是软件、硬件结合的系统,结构和逻辑都十分复杂。为实现系统开发任务,需要将系统需求进行分解,在此阶段验证与确认活动的任务就是对系统需求分解的正确性、准确性和完整性进行评价。
2.3.1任务
1)关键性分析。
根据仪控系统的安全等级,确定其中的软件完整性等级,再确定采取的验证与确认活动。对于安全等级为1E级的系统,对应的软件完整性等级为4,因此应采取最严格的验证和确认活动。
2)可追踪性分析。
识别出所有需要由软件完整实现或部分实现的系统需求,验证这些系统需求可以追踪到系统需求规格书中的相应条目或核安全法规、导则、设计标准/规范、运行规定、业务规则等,建立需求跟踪矩阵中的系统需求条目和系统软件需求条目。可追踪性分析具体方法定义在体系文件《可追踪性分析作业指导书》中。
3)安全保密性分析。
评价系统软件需求规格书的安全保密性的需求,是否符合系统需求规格书的要求,是否符合法规和标准,是否具有可操作性和可测试性。
4)评审系统软件需求规格书。
组织评审系统软件需求规格书,以确认满足系统要求;确认系统接口间的约束条件、所提议方法的约束条件或限制条件[3]。
2.3.2输入
系统需求规格书;系统软件需求规格书;系统需求分析活动记录(需求追踪矩阵、需求评审记录)。
2.3.3输出
系统需求评价阶段工作报告;异常报告;需求追踪矩阵(系统需求与系统软件需求的映射)。
2.4软件需求评价阶段
软件需求来源于系统需求,确定了软件的功能、性能、外部接口等信息。在此阶段验证与确认的目标是确保软件需求的完备性、正确性、一致性和可测试性。
2.4.1任务
1)可追踪性分析。
检查软件需求与系统软件需求条目间的双向关系,以确定其双向追踪关系的正确性、一致性、完备性、准确性,更新需求跟踪矩阵。
2)审查软件需求。
审查软件需求的正确性、一致性、完备性、准确性、可读性、可测试性。可采用同行评审的方法对软件需求规格说明进行审查。
3)审查接口需求。
审查软件接口需求,以确认软件与硬件、用户、操作人员、其他系统间接口需求的正确性、一致性、准确性、可测试性。可采用同行评审的方法对软件接口需求进行审查。
4)配置管理评估。
依据开发配置管理计划和体系文件《配置管理》检查开发配置管理过程的完整性、充分性。
5)编写软件系统测试计划。
对软件系统测试过程进行策划,编制测试计划并通过评审。
2.4.2输入
软件需求规格说明;软件开发计划(含配置管理、质量保证计划)、软件需求分析活动记录;变更申请及变更记录;上一阶段工作报告及异常报告。
2.4.3输出
软件需求评价阶段工作报告;异常报告;需求追踪矩阵(系统软件需求与软件需求之间的映射),软件系统测试计划。
2.5软件设计评价阶段
此阶段对软件需求转化的部件及其详细设计进行验证,确保软件需求与设计的一致性。
2.5.1任务
1)可追踪性分析。
审查软件设计与软件需求条目间的双向关系,以确定其双向追踪关系的正确性、一致性、完备性、准确性。
2)软件设计审查。
审查软件设计的正确性、一致性、完备性、准确性、可读性、可测试性。可采用同行评审的方法对软件设计说明进行审查。
3)接口设计审查。
审查软件接口设计,以确认软件设计与硬件、用户、操作人员、软件、其他系统接口的正确性、一致性、完备性、准确性、可测试性。可采用同行评审的方法对软件接口设计进行审查。
4)编写软件集成测试计划。
编写集成测试计划,明确对软件部件的集成测试策略以及测试的通过准则,并通过评审。
2.5.2输入
软件设计说明;软件设计活动记录;变更申请及变更记录,上一阶段工作报告及异常报告。
2.5.3输出
软件设计评价阶段工作报告;异常报告;需求追踪矩阵(软件需求与软件设计之间的映射),集成测试计划。
2.6软件代码审查与部件测试阶段
本阶段工作是对软件代码进行审查,设计测试用例,开展软件部件测试。
2.6.1任务
1)可追踪性分析。
组织检查源代码部件与软件设计条目间的双向关系,以确定其双向追踪关系的正确性、一致性、完备性、准确性。
2)审查源代码、文档。
审查软件源代码、文档的正确性、一致性、完备性、准确性、可读性、可测试性。可采用代码审查、同行评审的方法对软件源代码、文档进行审查。
3)开展部件测试。
根据软件设计说明开展部件测试用例和测试流程设计,并通过评审,按测试流程执行部件测试用例,记录测试用例运行结果,发现缺陷并上报,并对缺陷处理情况进行跟踪。缺陷、异常处理流程如图3所示。
2.6.2输入
软件源代码;软件设计说明;软件需求规格说明;软件开发活动记录,变更申请及变更记录;上一阶段工作报告及异常报告。
2.6.3输出
软件部件测试说明,软件缺陷报告;需求追踪矩阵(软件设计—部件代码,部件代码—部件测试说明)。
2.7软件集成与系统测试阶段
本阶段按照集成测试计划、系统测试计划开展软件系统的集成测试和系统测试工作。
2.7.1任务
1)可追踪性分析。
分析集成测试用例与软件需求、系统测试用例与系统需求间的关系,以确定其双向追踪关系的正确性、完备性。
2)开展软件集成测试。
根据软件需求规格书设计集成测试用例和测试流程,并通过评审,执行集成测试,报告缺陷并进行跟踪处理。
3)开展软件系统测试。
根据系统软件需求规格书设计系统测试用例和测试流程,并通过评审,执行测试,报告缺陷并进行跟踪处理。
2.7.2输入
通过部件测试的软件代码;系统软件需求规格书;软件需求规格说明;软件设计说明;变更申请及记录。
2.7.3输出
集成测试说明;系统测试说明;软件缺陷报告;软件测试报告。
2.8软件交付确认阶段
软件交付确认是软件验证与确认工作在软件开发过程的最后一个阶段,该阶段应按照用户需求对软件系统进行最终确认,一般可采用工厂接受测试方法或现场接受测试方法。
在该阶段需要完成软件验证和确认报告,对整个工作过程进行总结。
本文通过对核反应堆仪控系统软件开展验证与确认过程的研究,形成软件验证与确认的体系流程,并运用在核电厂DCS平台软件的研制项目中,对提升软件质量,满足核安全法规、导则以及核行业相关标准对仪控软件的功能安全要求,发挥了不可忽视的作用。当然,该流程还有可以改进的空间,应当在项目具体实施的过程中,根据软件开发实际情况,针对不同领域软件的特性,对本文阐述的软件验证与确认过程进行适应性调整,然后实施。
[1] 国家核安全局. HAD12/16-2004 核动力厂基于计算机的安全重要系统软件[S]. 北京: 国家核安全局,2004.
[2] IEEE Computer Society. IEEE Std 1012-2004 IEEE Standard for Software Verification and Validation[S]. New York: IEEE,2004.
[3] IEC. IEC 60880: 2006 nuclear power plants-Instrumentation and control systems important to safety-Software aspects for computer-based systems performing category a functions[S]. GENEV: IEC,2006.
Research on software verification and validation process of reactor instrument and control system
XIAO Anhong, YANG Dawei, ZENG Hui, JIANG Liang, CHEN Xiaofan
(State Key Laboratory of Reactor System Design Technology,Nuclear Power Institute of China, Sichuan Chengdu, 610041, China)
The instrument and control system is important for nuclear security operation such as monitoring and operating and protecting the reactor in software and hardware. The safety and reliability of software need to verify and valid in the lifecycle of software. This paper expounds the defined phases of software verification and validation such as the activities, inputs and outputs within the development of instrument and control system software. This can instruct the verification and validation actions.
reactor, Instrument and control system; software; verification and validation
10.3969/j.issn.2095-509X.2015.05.017
2015-04-10
肖安洪(1981—),男,重庆人,中国核动力研究设计院工程师,主要从事核动力装置软件研发及高性能计算机技术应用工作。
TP311
A
2095-509X(2015)05-0073-05