软件V&V基于严重性分级的异常处理流程研究
2017-08-31北京广利核系统工程有限公司申高军张亚栋梁中起刘春明
★北京广利核系统工程有限公司 申高军,张亚栋,梁中起,刘春明
软件V&V基于严重性分级的异常处理流程研究
★北京广利核系统工程有限公司 申高军,张亚栋,梁中起,刘春明
软件V&V是核安全级软件开发过程中评估软件产品的一种系统性方法,与软件开发同步开展。通过软件V&V活动,辨识和解决异常,对软件开发中出现的偏离进行控制。本文结合安全级软件开发生命周期的特点,优化异常处理流程,软件V&V对每一阶段发现的异常问题进行影响评估,按后果严重性进行分级,确定异常关键等级。上一阶段关键异常的解决作为下一阶段软件开发结束的必要条件,前一设计阶段的关键异常全部解决后,下一阶段的设计活动才能结束。该异常处理流程可推进关键异常及时解决,防止向后续开发过程传递,有效减少开发后期的异常数量及修复成本。该流程已在某核电项目中得以实施,并取得良好效果。
安全级软件;验证与确认;异常处理流程
1 引言
随着核电事业的高速发展,在核电站仪控系统中,基于计算机的数字化技术已经逐步取代传统的模拟技术,并且应用于高可靠性要求的核电站安全保护系统中。数字化技术的应用提高了仪控保护系统认证的难度,如何有效保证安全级软件的安全性和可靠性是实现数字化保护系统的关键技术[1]。根据核电相关国际标准,采用独立的验证与确认(Verification and Validation)技术是保证安全级软件质量的重要举措和必要步骤[2]。
安全级软件V&V验证安全级软件产品是否符合它的预期要求和用户需求,贯穿于软件产品开发的整个生命周期,软件V&V活动与软件开发活动同步开展,按照IEEE1012对软件V&V过程要求,对应软件开发生命周期的系统设计、软件需求、软件设计、软件实现、软件集成各阶段,V&V活动分为概念V&V、需求V&V、设计V&V、实现V&V、测试V&V[3]。在V&V活动的每一阶段,要验证该阶段的产品输出是否符合本阶段的输入要求,识别验证对象中存在的异常,并进行分析和评估,确定异常后果的严重程度。一般来说,在开发阶段尽早发现并解决异常是有好处的,但是还应避免为解决不必要异常而中断开发过程。因此软件V&V与软件开发过程之间的匹配关系,各阶段异常的影响评估、以及关键异常问题的解决时机,对于提升软件产品质量,具有重要的作用。
基于核电站安全级DCS系统高安全性和可靠性的要求,加强软件开发过程的质量控制,软件V&V对每一阶段的异常进行影响评估,前一阶段关键异常全部解决后,下一个阶段设计工作才可以结束,保证关键异常不向开发后续阶段传递,减少后续阶段异常修复的数量和成本。
2 异常处理流程
软件V&V活动与软件开发活动同步开展,双方按照软件开发生命周期模型分阶段开展工作,每一阶段的开发活动结束后,将当前阶段的输出文档、编码和数据等提交V&V团队验证,V&V团队采取评审、分析和测试技术对开发过程的设计输出进行验证,确定当前阶段的设计输出是否满足设计输入要求,识别异常问题,对异常问题进行影响评估和关键性分级,并反馈给开发团队。
对于易导致严重后果影响的异常问题应在下一阶段设计工作结束前解决,保证该异常问题不会传递到下一阶段的设计输出中,防止异常问题向产品开发的后期传递而带来的产品质量的下降和异常修复成本的提高。对于后果轻微异常问题,开发团队可以根据进度安排,在适当的时候解决。
软件V&V与软件开发活动分阶段交叉开展,形成一定制约关系,设计阶段活动完成后提交V&V团队验证,此过程中,开发可开展下一阶段的活动,但只有在该阶段发现的关键异常问题全部解决后,开发团队才能结束下一阶段的设计活动,保证关键异常及时解决,防止向开发后期传递。
软件V&V中异常处理流程图如图1所示。
3 异常分析
通过对各阶段的输出产品如:需求说明书、设计说明书、逻辑图、代码等与输入基准要求对照检查,辨识出输出产品中的异常。对于辨识出的每个异常问题,建立一个异常记录档案,记录该异常处理的整个过程信息,如:异常编号、异常位置、异常处理过程执行人、异常描述、原因分析、影响分析、关键性等级、修复紧急度、解决方案、处理结果等内容,便于异常的追踪管理[4]。
图1 软件V&V中异常处理流程图
要分析异常对核电厂安全运行的影响,根据评估结果,确定异常的关键性及修复紧急度。对异常可能造成的核电厂安全运行后果进行系统定性或定量的评价[3]。这些后果可能包括任务失败、经济损失、财产损失、环境破坏或负面社会影响。
表1 异常影响分级
综合分析异常对核电厂安全运行影响后果的严重性,确定异常的关键性等级,具体如表1所示。根据关键性等级确定不同的修复紧急度要求。
对于不同关键性异常的修复紧急度要求如下:
(1)关键异常:对核电厂安全运行有灾难性和严重性影响的异常问题,应在下一阶段软件开发活动结束前解决。
(2)非关键异常:该异常对核电厂安全运行影响一般或轻微,且不影响软件开发的后续活动,可以根据项目进度需要,在产品交付用户前解决。
4 异常解决
V&V团队识别出异常并进行分析后,应给相应开发人员和管理人员进行报告,提示项目存在的风险,并为项目质量、进度和成本控制决策提供建议。
异常报告要选择恰当的时机,既要保证尽可能早地报告并及时解决异常,又要避免开发过程被不必要的通知中断,一般根据异常的修复紧急度要求分批进行报告。
异常的解决方案可能是复杂的、主观的和耗费时间的,可能导致文档集、软件或硬件的更改[6],主要通过输出产品的变更升级,使目前的异常在新版输出产品中得以解决。开发团队根据异常的修复紧急度要求,在下一阶段开发工作结束前,及时解决每项关键异常,保证关键异常不向开发后续阶段传递。对于没有及时解决的非关键异常,应继续进行跟踪,确保在产品交付用户前解决。
5 异常统计分析
异常会导致软件的开发不满足预定功能和质量要求,异常的积累会给产品质量、项目进度、项目成本带来极大的风险。因此V&V活动中一项重要任务就是,对验证过程中发现的异常进行分类统计,对异常出现的频次、关键性分布、影响范围、解决情况等进行统计分析,提示项目风险[7]。下面是基本的统计分析举例:
(1)统计每个输出验证对象检查项总数和该验证对象出现的异常项数,以及不同严重等级异常的数量,分析异常项占检查总项的比例,得出产品开发输出对输入基准的偏离程度,提示设计风险。
如表2所示为异常分类统计数据,可以得出异常项占检查项总数的比例为47/385,即该阶段设计偏离程度为12%,存在设计风险。参考图3异常分布柱形图,可以得知单个验证对象的设计偏离程度。
表2 异常分类统计表(示例)
图2 设计偏离分布图(示例)
(2)对异常的解决情况进行跟踪,统计每个关键性等级的异常项数和异常解决数,分析关键、非关键异常解决项数,如果关键异常项没有全部解决,需要提示开发团队,不得结束下一阶段的开发工作,防止该阶段的关键异常引入到下一阶段的工作中去。如图3所示,XXX.1,XXX.2的关键异常项没有全部解决,因此XXX.1,XXX.2的设计不得结束下一阶段的开发工作。
图3 关键异常解决情况图(示例)
6 应用实践
该异常处理流程,在某核电机组安全级DCS开发过程中得以应用。每阶段的异常问题经过分析评估,并确定关键性等级,设计团队按修复紧急度要求进行异常解决,在下一阶段设计工作结束前,将关键异常问题全部解决,防止关键异常向开发的后续阶段传递。减少了后续阶段异常的数量,降低了开发后期异常修复的成本。
表3 异常统计数据
7 结语
核安全级软件开发与V&V过程阶段同步执行,及时发现软件开发过程中产品的异常问题并进行报告,对软件在开发过程中出现的偏离进行控制,保证每一开发阶段的产品满足前一阶段的需求。基于异常的影响后果严重性确定其关键性等级,前一阶段的关键异常在下一阶段开发活动结束前必须全部解决,有效避免了关键异常向开发的后续阶段传递,大大减少了后续阶段异常的数量,降低了开发后期异常修复的成本。
图4 异常分布趋势图
[1] 李铎, 张良驹, 冯俊婷. 安全软件验证与确认中的单元模块测试技术[J]. 原子能科学技术 2008, 42( 6 ) : 552 - 556.
[2] RG1.168-2013, VERIFICATION, VALIDATION, REVIEWS, AND AUDITS FOR DIGITAL COMPUTER SOFTWARE USED IN SAFETY SYSTEMS OF NUCLEAR POWER PLANTS.
[3] IEEE1012-2004, IEEE Standard for Software Verification and Validation[S].
[4] 张冬伟, 李运坚, 李相建. 核电厂安全级DCS应用软件V&V缺陷分类体系研究与应用[R]. 中国核科学技术进展报告(第二卷)——中国核学会2011年学术年会论文集第10册(核情报(含计算机技术)分卷、核技术经济与管理现代化分卷), 2011.
[5] 李静霞, 于劲松. 核电站安全级DCS缺陷危害性分级的研究与应用[J]. 自动化博览, 2015, 32 ( 3 ) : 64 - 67.
[6] IEEE1059-1993, IEEE Guide for Software Verification and Validation Plans[S].
[7] IEEE1044-1993, IEEE Standard Classification for Software Anomalies[S].
Study on Software V&V Anomaly Procedures Base on Severity Classif i cation
Software Verification and Validation (V&V) is a disciplined approach to assessing software products throughout the product life cycle, and is carried out in parallel with software development. Software V&V activities identify and resolve anomalies, to control deviations in software development. Based on the characteristics of the software development lifecycle, the software V&V is used to evaluate the abnormal problems found in each stage, and the critical severity is determined according to the severity of the consequences. As a necessary condition for the end of the next stage of software development, after the key exception of the previous design stage is completely solved, the design activities of the next stage can be finished. The anomaly procedure can promote critical anomalies in a timely manner to prevent the follow-up to the development process to pass, effectively reduce the development of the late number of abnormal and repair costs. The process has been implemented in the Power Plant Project, and achieved good results.
Safety software; Verification and validation (V&V); Anomaly procedure
申高军(1982-),男,山西人,工程师,本科,现就职于北京广利核系统工程有限公司,任软件V&V主管工程师,主要研究方向为核安全级数字化仪控系统软件验证与确认(V&V)。