先进堆芯测量系统安全级用户软件V&V过程探讨
2014-04-14余俊辉霍雨佳
余俊辉 何 鹏 霍雨佳 陈 静
(中国核动力研究设计院 设计所,四川 成都 610041)
先进堆芯测量系统作为中国自主化三代核电站的一个关键系统,其中一个重要部分,水位温度测量部分简称ICCMS,需要在事故及事故后执行燃料组件出口温度及压力容器水位测量功能,系统所使用的用户软件质量将直接影响到系统能否正常执行其必要的安全功能,而目前软件V&V是公认的保证软件安全性与可靠性的有效手段。因此在一个安全级软件的开发过程中,需要根据相关法规和标准的要求,根据系统用户软件的特点,制定合理的V&V方案和技术路线,来确保软件的质量满足要求。
1 安全级软件V&V总体要求
数字化系统与传统模拟系统的故障失效机理有很大不同,大部分软件的故障是在设计阶段引入的,因此软件的故障具有潜在性。另外,由于软件是无法证明不含错误的,因此软件的质量只能靠严格的开发过程和必要的验证和确认(V&V)来保证。
1.1 标准分析
IEEE、IAEA、和IEC等机构发布了多个标准对软件V&V的要求进行了说明,IEEE std7-4.3.2作为IEEE Std 603的扩展和补充,经过NRC的确认成为了安全级系统软件标准。IEC60880是国际公认的安全级软件的设计标准,其中部分涉及V&V的基本要求和一般方法。IAEA从质量保证、安全设计和软件要求三方面层层递进说明了保证软件质量的重要性,同时其也声明IAEA NS-G-1.1的内容与IEEE std 1012在内容上是一致的。IEEE1012关于V&V的要求较为完整,其根据软件的重要性程度分为了4个等级。
我国目前还没有发布关于安全级软件V&V的相应标准,但已将IEEE7-4.3.2等效为国家推荐标准GB/T13629,将IAEA NS-G-1.1等效为我国核安全导则HAD 102/16,因此,也就承认IEEE1012作为V&V的标准。
1.2 V&V标准要求
在核电厂安全级软件V&V活动中,国内广泛采用的是IEEE Std 1012,根据该标准的要求一个完整的V&V应该包括获取阶段V&V、概念阶段V&V、需求阶段V&V、设计阶段V&V、实现阶段V&V、测试阶段V&V和安全阶段V&V。其中关键阶段包括了需求、设计和实现三个阶段。
其中需求阶段V&V需要明确软件的具体需求,通过验证来明确软件功能、软件外部接口、维护要求和性能等要求。设计阶段V&V要求通过评审软件设计文件,对系统功能转化为成软件设计体系和部件的过程进行严格的验证和确认,以此来保证软件设计的正确性、一致性、完成性等。实现阶段V&V要求对设计转化为软件代码或软功能图进行验证和确认,同时对软件进行可追踪性分析。
2 先进堆芯测量系统用户软件V&V过程
2.1 系统介绍
先进堆芯测量系统属于核电厂事故后监测系统的一部分,为安全级系统,对反应堆的安全运行具有重要的作用。该系统用户软件的开发环境采用图形化的安全级软件开发工具SCADE进行开发,该系统的主要功能如下:
(1)处理来自燃料组件出口的热电偶温度信号,计算出平均温度、最高温度和区域温度最高差值等信息。
(2)根据堆芯温度以及反应堆压力计算堆芯过冷裕度。
(3)堆芯水位信号的采集和处理,并给出关键点水位的报警信息。
(4)系统故障监测和故障报警。
2.2 V&V准备
在进行具体的V&V活动之前首先要了解软件的设计特点,先进堆芯测量系统用户软件采用的是SCADE软件,是一款图形化的安全级软件开发工具,软件在设计完成后会通过经过安全级验证的工具模块自动的将SCADE模型转换为C代码,避免了手工编码。
关于软件级别的划分,对应于IEC 60880应划分为A级,即核电厂安全重要仪表和控制系统执行A类功能的计算机软件,而对应于标准IEEE 1012应划分为4级,即该级别软件必须正确执行其功能,否则会导致严重的后果且无法缓解。
根据IEEE Std 1012-2012的要求,在V&V正式活动开始前要制定软件V&V计划(SVVP),该文档是开展各项V&V活动的依据和指南,其中主要包括V&V活动组织结构、V&V具体方法、过程,V&V过程中使用的工具等。图1给出了SVVP中定义的本系统用户软件的V&V模型。
图1 用户软件V&V模型
2.3 需求阶段V&V
需求阶段V&V活动主要是从准确性、完整性、可读性和可追溯性等方面对需求文档进行验证,关键是要验证软件需求是否完整和准确的覆盖了系统设计时分配给软件的功能。本阶段V&V活动主要是采取如文档审查和评审等人工验证(Verify)的手段,并且通过功能矩阵来保证系统功能的全覆盖。
需求阶段V&V活动的输入文件包括了 《ICCMS数据处理柜用户软件研制任务书》和《ICCMS数据处理柜用户软件需求说明书》输出文件包括了V&V问题报告单、《ICCMS数据处理柜用户软件V&V阶段报告(需求)》和V&V独立验证模型。
2.4 设计阶段V&V
软件设计的目的是将需求信息转换为软件层次的实现,设计阶段V&V主要是证明软件需求是否被正确完整体现在软件设计中,确保软件的设计能够正确实现系统的功能需求和性能需求。
设计阶段V&V活动的输入文件包括 《ICCMS数据处理机柜软件需求说明书》、《ICCMS数据处理机柜软件设计说明书》和V&V独立验证模型。输出文件包括了V&V问题报告单和《ICCMS数据处理柜用户软件V&V阶段报告(设计)》。
另外,在本阶段V&V团队与设计团队分别根据需求文件分别开发了设计模型和V&V模型,该开发过程采用的是背靠背的方式。主要验证手段与需求阶段类似,但是不同的是需要根据SCADE自身的编码规则对软件进行审查,以评估其是否符合编码规范。
2.5 实现阶段V&V
实现阶段V&V的主要活动是软件功能测试、模型对比测试以及覆盖率测试。软件实现阶段的主要内容是进行软件的功能测试,,其主要目的是确认软件实现的功能与上游设计输入的一致性。因此在这一阶段的主要任务是设计测试用例(Test Case),本项目针对每一个功能设计了一组测试用例,通过测试用例的测试结果来说明软件实现的功能是否一致。
模型对比测试,是将相同的Test case应用到设计模型和V&V模型中,将两个模型的输出结果进行对比,对于输出结果不一致的情况进行分析并形成报告单。最后对软件进行覆盖率测试,保证软件的测试达到100%全路径覆盖。
3 关键技术
标准中关于V&V只是一个总体的要求,由于软件不可能进行无穷尽的测试,因此只能根据具体软件开发过程以及软件自身的特点来制定尽可能合理的V&V计划。本系统用户软件的V&V活动制定过程中除了满足标准的相关要求外,还形成了一些独有的V&V方法和策略,对提高本系统应用软件的质量起到了积极的作用。
3.1 背靠背开发
在需求阶段,经过V&V团队验证的软件需求规格书是软件设计阶段的唯一正式设计输入。软件设计团队和V&V团队均以该文件为输入根据分别建立设计模型和V&V模型,其中设计模型为最终用户软件所使用的模型,而V&V模型只用来定义预期的输出。在设计阶段要对两个模型进行人工比对,对比后两个模型不一致的部分可以两类,一类问题主要是由双方对需求规格书的理解不一致或者双方的人因错误造成的,这类问题必须进行对错误的模型进行修改。另一类是两个模型使用的基础模块不一致,但通过人工验证认为其实现的功能是一直的,对于这类问题则不需要修改。在实现阶段需要将相同的测试用例分别输入两个模型中,最后对输出结果进行核实,图2是两个模型输出一致的情况,从图中可见两个模型的输出一致且重合成为一条线。图3是两个模型输出不一致的情况。
图2 输出曲线一致
图3 输出曲线不一致
通过上述描述可知,背靠背的验证方式对提升软件的质量存在明显的优势,首先两个团队独立开发模型,这种多样化的设置可以大大避免人因的共模错误,另外双方通过背靠背的方式对需求文件进行解读,视同为对需求文件进行了二次验证,需求错误的减少可以将软件错误处理在萌芽阶段,很好的提高了V&V的效率。
3.2 全路径覆盖测试
虽然在标准中对于图形化软件的全路径覆盖测试并没有详细的要求,但是全路径覆盖测试仍然是评估软件质量以及通过核安全当局审查的有效手段,但是由于图形化软件的固有特点,人工很难完成对于软件的全路径覆盖测试。
借助于SCADE的MCDC工具,本软件V&V活动中实现了全路径的覆盖测试,该工具是基于MC/DC覆盖率准则制定的,其定义为:每个入口点和出口点至少要唤醒一次,判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次,并且每个条件都能单独影响判定结果。基于该准侧,本系统用户软件的测试覆盖率达到了89.89%(见图4),其中剩余的10.1%是常数节点相关部分无需覆盖,因此可以认为达到了100%全覆盖测试。
图4 覆盖率测试结果
3.3 功能追踪
软件是否完整、正确的反应了系统需求规格书中规定的软件功能是软件V&V活动的重要内容。本项目采取了基于基线的功能追踪矩阵对软件功能进行验证。基本思路是从需求阶段开始建立功能代码,以该代码为唯一功能识别符在后续的设计阶段、实现阶段以及集成测试阶段对相关功能进行追踪。
唯一功能识别符的采用以及功能矩阵的应用能够保证系统功能完整的体现在软件中,另外在背靠背的开发过程中能够保证双方对功能验证的一致性。
4 结论
安全级软件的开发过程需要有相应的V&V流程来保证软件的质量与可靠性,这已经是业内以及核安全监管当局的共识。通过先进堆芯测量系统用户软件V&V活动的进行,一套完整的安全级软件V&V流程被建立。本文在分析相关V&V标准要求的基础上,对先进堆芯测量系统的V&V流程进行了讨论。该流程在每个阶段严格遵守相关的法规和标准,在不同阶段均开展了相应的V&V活动。同时,根据软件自身的特点,通过背靠背开发、全路径覆盖测试和功能追踪等方法的应用对先进堆芯测量系统软件进行了完整的V&V活动,有效的保证了软件的质量和可靠性。
[1]IEEE Std 1012,IEEE Standard for Software Verification and Validation[S].
[2]刘真,孙永滨,李季学.核电厂数字化安全仪控软件的V&V实现[J].核科学与工程,2010,12,30-13.
[3]杨岐.核电厂数字化仪表与控制系统的应用现状与发展趋势[J].核动力工程,1998,19(2)-129.
[4]何正熙,李白,吴峻,等.秦山二期扩建工程堆芯冷却检测系统设计[J].核动力工程,2008,29(1):5-9.