APP下载

核电厂安全级软件的独立验证与确认

2019-01-17樊晓东

中国设备工程 2019年9期
关键词:控系统核电厂阶段

樊晓东

(国核工程有限公司,上海 200233)

三代核电的代表堆芯APl000系列采用非能动安全理念,通过简化电厂配置,降低对能动装置的需求,进一步提高了核电厂的安全性。全厂唯一的安全级仪控系统—保护和安全监测系统(PMS)采用全数字化仪控平台,简化了控制逻辑,提高了集约化、智能化水平。为进一步提高核电运行的安全性、可靠性及经济性,核电厂仪控系统的主流趋势是从模拟系统向数字系统过渡。数字化仪控系统由于硬软件集成度高,系统质量验证的难度大为提高。其中软件准确性、可靠性保证主要依靠的是贯穿整个安全级软件生命周期的质量管理,主体工作为独立验证与确认(IV & V)。

1 安全级软件开发的质量管理

1.1 安全级软件的特点

以AP1000保护与安全监测系统为例,核电厂数字化保护系统实现反应堆事故停堆功能、专设安全触发功能以及1E级数据处理功能。安全级仪控系统的软件用于驱动硬件实现核电厂安全功能。根据设计要求,为保证可以对软件功能进行可靠验证,保护与安全监测系统中运行的软件必须采用明确的模块化功能结构,基于安全功能单元实现。为了便于验证与测试,每一个安全功能单元内部按照数据处理的不同逻辑以子模块的形式划分,一般情况下,每一个安全功能单元都要经过信号输入、初步处理、表决逻辑、优先级选择及数据控制等几个步骤,这些都需要通过软件来实现。软件是数字化仪控系统相较基于模拟技术实现的仪控系统的最大不同。软件错误仅靠系统集成后的外部功能测试是难以被完全识别的,因而软件设计者必须关注软件开发过程中的质量控制,与整个软件开发过程紧密结合、贯穿软件全生命周期的独立验证与确认活动是保证软件功能完备、具有高可信度、高质量水平的重要手段。

1.2 安全级系统软件IV & V活动

在基于核质保体系的管理框架下,针对安全级软件的IV & V要求严格按照既定程序对软件对象进行质量控制,是平行于整个软件开发工作中的长期独立的任务。IV & V工作必须覆盖软件设计、开发、测试、维护整个生命周期,以验证符合性且排除潜在问题,涵盖从最初的软件定义到后期的维护升级的全程,并且需要同时考虑软件本身以及其与整个系统的集成。

1.3 IV & V活动相关法规标准要求

保护与安全监测系统是在AP1000核电厂中唯一的安全级系统,集成了电厂所有的安全功能的控制功能,直接关系到整个核电厂的安全。原则上,软件开发包括IV & V活动必须遵循我国核安全法规相关规定以及被其背书的行业标准,这意味着每项具体的V & V活动均需对照相应的要求进行全面策划并精准执行。我国核安全法规HAF102中针对核安全级软件的开发明确提出了独立验证与确认要求,并在核安全法规配套的导则HAD102第16分卷中提供了指导性的参考模型。在实际运用中,HAD102/16因缺乏具体的实施细则指导,实践性较差,因此国内外厂家在开展软件IV & V活动过程中更多是使用成熟的行业标准,如IEC 60880—2006以及IEEE 1012—2004等。在AP1000安全级仪控系统软件开发过程中,相应的IV & V活动参照IEEE体系开展。

1.4 IV & V团队的组织要求

独立性是安全级软件IV & V工作的前提,只有确保相关活动在技术、财务以及行政上的独立性,才能使IV & V发挥作用,给出客观有效的结论。AP1000仪控系统供货商在软件开发实践中组建了在行政、财务和技术方面(指的是测试技术)独立于研发部门的V & V团队,以实现IEEE标准中对IV & V独立性的要求。事实上,IV & V团队在开展相关工作时需要与设计研发团队紧密合作,然而IV & V独立性要求又使得V & V团队必须与研发团队在业务上进行隔离,因此相关管理架构的制定一般需要由企业高级别管理者直接介入。

2 贯穿软件全生命周期的IV & V活动

为了规范数字化核电厂安全级系统软件的独立验证与确认工作,美国核管会通过引用IEEE的相关标准推出了一些可被用于开发安全级软件的过程模型。AP1000保护与安全监测系统(PMS)的软件开发过程应用了其中的瀑布模型。相应的,其IV & V活动参照IEEE 1012—1988标准中的各项要求开展。瀑布模型将软件系统开发的生命周期过程分为定义阶段、需求阶段、设计阶段(也可以进一步拆分为概念设计、基础设计和详细设计)、开发阶段、测试阶段以及运维阶段。此模型通过将复杂的软件开发过程划分为承上启下、互相作用的几个阶段,以便开发团队根据不同的阶段制定开发计划以及相对应的IV & V计划,提高了管理效率。

2.1 定义阶段

项目定义阶段又称项目启动策划阶段,软件开发项目定义阶段主要工作内容为项目范畴定义、初步项目开展计划以及确定初始需求基线。从IV & V的角度来看,此阶段的主要任务是确定IV & V工作范围以及初步开展计划,主要有以下几个工作内容:①通过项目大纲确定IV & V的工作内容,制定软件IV & V计划;②确立IV & V团队与项目管理团队的联络接口以及管理关系;③审核初步需求基线,确定所有制定的系统要求与用户的需求文件(系统规格书)相符,所有的要求足够明确,可以通过测试或分析来验证。

2.2 需求核对阶段

需求核对阶段开展的基础是系统需求文件的发布,安全级软件项目需求文件一般以系统规格书的形式出现。其V & V活动主要是验证设计团队根据上级系统需求文件制定,细化的各类技术要求文件是否覆盖了系统设计规格书中所有的需求。从宏观层面看,软件需求包括软件功能逻辑需求、硬件对软件需求和软件集成需求。在开展此阶段工作时开发者需确认这3方面的需求是否满足系统需求说明,同时也要确保识别的需求可以通过某种方法进行有效的验证。因此需求验证的关键任务之一是要制定出一个可追溯的技术要求体系,建立所有技术要求与上级需求间的映射关系,从而便于验证与确认工作的开展。

2.3 系统设计阶段

系统设计阶段的软件IV & V工作主要是针对各模块的概要设计与详细设计的验证,通过审查、评估等活动,确认软件的设计实现了需求核对阶段所制定的软件功能要求,这不仅包括了功能性需求,同时也包括非功能性需要。在针对安全级软件设计文件进行审核的过程中,除了可以采用软件设计规范以及系统技术要求规范书进行审查外,还需依据核领域的国家法规和行业标准进行审查,以保证所设计的软件可以实现既定的核安全相关功能。

2.4 软件开发阶段

软件开发IV & V阶段的目标是验证软件设计是否准确地转化为成品代码、是否全面实现功能,同时还要核实是否引入了额外的可能会影响到所需求功能的代码。在此阶段IV & V活动的常见的实现形式为静态分析和人工代码走查,以确保源代码准确、有序及可被测试等特性,同时也需要对可追溯性进行验证。在针对代码进行审查后,需要根据每一项功能需求制定系统集成测试的测试案例以及相应的接受准则。

2.5 集成测试阶段

此阶段IV & V工作的重点是确认所有既定的功能要求已得到实现,并通过前一阶段制定的测试案例以及验收准则进行验证,即通常所说的系统集成测试。在集成测试过程中,一般通过独立运行每一个功能逻辑通道来验证软件与相应的硬件可以可靠实现所要求执行的功能。在验证与确认过程中,IV & V需关注软件对需求的符合性、覆盖性,即软件可以正确地实现系统需求,而又不引入新的不确定性。

2.6 维护升级阶段

维护升级阶段的V & V活动主要针对的是软件投用后的维护工作。软件开发工作的结束并不意味着软件生命周期的结束,由于功能扩展需要、设计变更需要,软件即使在开发完成投运后还是可能会有大量的修改或升级。此阶段IV & V的工作主要是确认软件的修改不会影响以往软件IV & V相关工作的有效性,同时对软件中新的功能要素进行补充的IV & V。

3 主要的IV & V验证与确认方法

在安全级软件研发过程中,审查、分析和测试是IV & V的3种主要方法。

3.1 审查

对软件研发过程各阶段产生的文档以及产品的审查,主要包括各阶段任务输入输出文件。常见的审查对象如系统需求规范书、软件功能说明书、需求矩阵、第三方工具认证文件、设计规范、代码文本、测试大纲、测试规程、工厂测试报告、回归分析报告、阶段总结报告,任务报告等。审查工作的有效性取决于IV & V团队的能力与经验,常用的手段为核对表。IV & V团队中高级别管理人员会在核对表中逐项列出要求审查人员关注的要素,并对审查结果进行复核。核对表适用于所有IV & V任务。

3.2 分析

(1)需求跟踪。需求跟踪分析的作用是确保所有较低层次的需求(含延伸需求、隐性需求和集合需求)和要求与高一层次的需求相对应,确保所有上级需求均通过低层次的要求的满足得到了实现。需求可跟踪性分析一般通过需求跟踪矩阵的工具实现,通过在矩阵中记录各个阶段的需求以及其与需求源之间的关系。

(2)问题跟踪系统。问题跟踪系统(RITS)是一种类似不符合项管理流程的工具,用于记录与跟踪所有在IV & V审核分析以及系统测试过程中发生的问题,包括问题整改以及关闭验证。软件研发过程中产生的问题从本质上说就是需求的不满足。问题跟踪系统与需求跟踪矩阵作用互补,主要用于软件开发后期及测试阶段,对尚未得到满足的需求以及技术要求进行跟踪处理。

(3)风险/影响分析。风险/影响分析是对某一阶段或任务进行定性分析、定量分析、评价和规划风险应对,避免软件开发前期过程中的潜在隐患进一步扩大进而演变成后期无法解决的问题,及时地采取保守措施或是建立监控机制,从而有效管控风险。风险/影响分析矩阵是最常用的工具,目前已有较多的第三方软件提供具备相应功能的管理平台。风险/影响分析结论是软件开发决策以及项目管理的重要参考依据。

3.3 测试

用于实现特定功能的软件都需要通过测试进行验证。对于安全级软件,其测试必须覆盖所有的功能分支,即测试案例应保证使每一个软件模块内的所有分支均至少得到一次验证。另外,除了针对功能进行的测试外,也需要设计一定的框架测试以确保程序中不包含不需要的额外功能,并对非功能性的软件要求(如稳定性)进行验证。系统测试采用从下至上的方式。先进行低层次部件级测试,然后再逐层开展高一级的测试。

(1)软件子模块测试。软件子模块测试是对系统中的一个处理器或控制节点的软件功能进行的独立测试。软件子模块测试主要目的是根据软件子模块的单一功能要求对一定范围内的代码集合进行功能测试,包括软件模块响应时间,确保底层的功能符合性。

(2)通道集成测试。通道集成测试在硬软件集成后开展,通常以一组机柜或单一功能通道为单位,先测试每个机柜,然后将执行某一类特定功能回路相关的所有机柜连接起来进行整个功能通道的测试。机柜的输入和输出间关系是通道集成测试对象,包括一定范围内系统内部的通信、通道级的响应时间等。

(3)系统集成测试。系统集成测试在仪控系统集成完成后开展,对所有机柜以及功能通道之间的通信、数据传递、控制逻辑、冗余特性、负荷裕度、容错性能、鲁棒性进行整体验证,并测试系统级应用整体响应时间、人机接口界面(包括操控性)与外部仪控系统的接口通讯等。

4 结语

不同于常规核电设备,安全级仪控系统软件需要通过专门的独立验证与确认活动来确保软件质量。对核安全级软件IV & V,核电技术领先的发达国家已建立了较为完善的法规标准体系、具备较高的可操作性,因此深入研究国外现有成熟的IV & V管理体系,并参照制定适合我国的核电厂数字化仪控系统IV & V标准体系具有十分重要的现实意义。

猜你喜欢

控系统核电厂阶段
重水堆核电厂压力管泄漏的识别与处理
核电厂起重机安全监控管理系统的应用
关于基础教育阶段实验教学的几点看法
关于DALI灯控系统的问答精选
联调联试中列控系统兼容性问题探讨
我国运行核电厂WANO 业绩指标
数字电视播控系统关键技术探究
在学前教育阶段,提前抢跑,只能跑得快一时,却跑不快一生。
基于Arduino的智能家居灯控系统设计
核电厂主给水系统调试