核电软件过程质量管理实施
2019-05-13张曌寰卢宗健宫兆虎
张曌寰 卢宗健 宫兆虎
【摘 要】核电软件的研发具有可靠性要求高、研发周期长、流程复杂、开发人员多等特点,对质量的要求非常高。另外核电软件的质量与核电工程设计以及核电的运维等相关活动关系密切。故而,针对核电软件实施过程质量管理对于监控软件产品的质量,确认软件产品是否符合使用需求以及开发标准起到了至关重要的作用。
【关键词】核电软件;NESTOR;质量管理;质量控制
中图分类号: TP311.53 文献标识码: A文章编号: 2095-2457(2019)08-0213-004
DOI:10.19694/j.cnki.issn2095-2457.2019.08.094
0 引言
核电软件技术的研发,具有可靠性要求高、研发周期长、流程复杂、开发人员多等特点,质量隐患潜在风险较大。在核电工程设计软件研发历史上,曾经存在软件研发不成体系、流程不规范、研发团队零散缺乏有效管理机制、开发人员、V&V人员以及质量管理人员相互不独立等问题,导致软件研发质量难以得到保证。同时,由于缺乏研发流程规范及工程应用与运行管理手段,对核电工程设计等相关科研工作的质量也造成一定的风险。因此,在软件项目开发起始阶段,建立有效的软件过程质量管理体系,制定一套完整的软件开发质量保证计划,对保证核电工程设计软件的研发的质量具有重要意义。
在中核集团龙腾自主创新科研项目的支持下,由中国核动力研究设计院牵头,中国核电工程有限公司、中核武汉核电运行技术股份有限公司参与共同研发出了体系的核电工程设计分析软件包,打包命名为NESTOR(Nuclear Power Plant Engineering Software Technology Research Project))。NESTOR软件包包含了核电设计与分析所需要的相关专业软件技术,涉及核反应堆物理设计、屏蔽与源项设计、热工水力与安全分析、燃料元件相关设计、系统与设备设计、仪控设计、软件共性技术等相关领域。NESTOR软件项目以核安全导则中关于软件研发过程的质量保证及规范要求为遵旨,结合GJB5000A、CMMI等软件工程化的指导方针,建立了适合核电工程设计及软件研发的创新性的过程质量管理体系,并在该项目中实施并推广。本文针对NESTOR软件包的软件过程质量管理实施流程进行了概要论述。
1 NESTOR项目质量管理的相关要求
项目的质量管理工作包括把质量管理体系及相关规范标准应用于项目策划、过程管理、质量控制等相关活动,以保证项目实现最终目标的各个过程满足相关要求。同时,项目的质量管理活动也是一种支持过程的持续改进活动。过程和质量保证的目的是客观评价软件项目的软件过程和工作产品,为项目管理人员和项目组成员对项目过程及构造的产品提供客观、深入的了解,以支持交付高质量的产品。[1]
NESTOR项目的质量管理过程主要包括质量管理策划、过程质量管理以及质量控制等活动。质量管理相关活动应覆盖相关软件研发全生命周期,覆盖需求管理、模型研究、软件设计、V&V流程等各个环节,通过监督项目研发团队是否遵循设定的过程路线实施过程活动并且客观验证工作产品与标准、规程、要求间的符合情况,使得项目产品的生产过程受控以提高产品交付的用户满意度,也为管理者对软件项目的过程和产品提供适当的可视性。
2 NESTOR软件质量管理活动具体实施
2.1 质量管理体系建设及策划
开展质量管理的策划工作,主要目的是识别NESTOR项目及其最终交付成果的质量要求及规范标准,并且通过书面的形式描述如何证明NESTOR项目符合质量要求及规范标准的过程管理情况。为了有效地实施质量管理,NESTOR项目制定并实施一整套质量管理性程序作为规划的支持性文件。这些程序对各项质量活动的方法、步骤、组织形式、责任和管理制度等作明文规定。同时,为更好的实施管理程序,监督工作计划和进度,针对每项具体工作制定了工作程序、细则,以及适当的定性或定量的验收准则。据此,NESTOR项目专门编制了《项目质保大纲》、《NESTOR项目过程质量计划》以及各软件产品《软件质量保证计划》等相关质量策划文档,相关文档对软件研发有关部门和设计人员、管理人员的职责、权限及具体的任务分工,以及各种旨在保证设计与服务质量的控制、验证要求进行了明确的阐述。核电工程设计软件开发过程遵循HAF003以及开发团队所在院所质量保证体系,同时依据国家核安全局《核动力厂安全分析用计算机软件开发与应用(试行)》中关于质量保证的要求对软件开发过程中的质量控制情况进行规范、约束和监督。
2.1.1 组织机构及人员职责分工
NESTOR项目的质量管理组织机构图如下图1所示,不同的角色按照對应的职责分工承担/负责相应的质量活动。其中,质量活动的策划、管理以及监督控制主要由组织级质量保证工程师(组织级QA)以及软件质量保证工程师(PPQA)组织。PPQA负责编制软件质量保证计划并对策划过程和策划输出的工作产品进行审核,而组织级QA则负责组织级质量保证活动方案编写与实施,并监督和检查PPQA的质量活动,包括对策划过程和策划输出的工作产品的审核记录进行监督。
2.1.2 制定专用规范及细则
除质量策划文件以外,NESTOR项目还依据核电工程设计软件研发的各个环节,建立了一系列的研发过程规范,规范由项目部批准后应用于本项目所承担的所有核电软件研发中,制定的核电软件研发过程规范见表1。
为了避免软件研发及理解人员对规范理解的不一致或疏漏造成的质量风险,NESTOR项目还组织了多次关于软件研发规范的培训与经验反馈。随着软件研发规范化的持续推进,研发人员设计开发的风格逐渐统一,研发不符合项日益减少,软件质量得到显著提高,同时研发流程也逐渐趋于稳定。此外,随着研发工作推进,相关规范也在结合实际工作情况而进行持续完善优化,更好的促进研发能力的提升。
2.1.3 人员资格管理及培训
所有从事本项目设计的技术人员和管理人员均根据从事特定设计工作所要求的学历、经验和业务熟练程度通过了不同级别的资格鉴定,根据已取得的相应的资格开展相应的工作,同时软件验证与确认工作需由取得相应资格且独立于开发团队的人员进行,人员资格鉴定工作实行动态管理。从事本项目的人员按相应程序的规定考核合格并取得相应资质且保持足够的业务熟练程度,有能力从事所承担的工作并理解其活动所产生的安全后果,根据相关程序的要求履行其质量职责。
结合软件研发项目安排,相关职能部门组织对从事开发及管理活动的各类人员均进行了相应的专业技术培训、质保培训,以确保各类各级人员保持足够的业务熟练程度和质量意识。
2.2 过程质量管理活动
项目的过程质量管理活动是关注整个项目全生命周期的质量过程,在管理质量的过程期间则重点关注识别质量策划中所规定的质量要求,将质量要求设定为测试与评估的目标并贯穿整个项目研发的生命周期过程,以确认是否能够达到质量要求。
NESTOR软件的研发模型采用瀑布式模型,过程划主要分为需求分析、模型研究、设计、编码、测试、验证、研制总结,共7个阶段进行。其中,需求分析、模型研究、验证等工作由核电工程设计专业团队来开展,而设计、编码、测试等工作由软件专业开发、测试团队来开展,各团队间互有接口,协调开展工作。V&V工作以及QA相关工作贯穿了软件研发的全过程。
2.2.1 需求分析
核电工程设计人员经过深入细致的地调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定软件需要做什么。在需求分析阶段即需要建立需求追溯矩阵,并在后续的开发过程中动态维护管理,确保软件的最终功能满足相关用户需求,保证软件产品质量。
2.2.2 理论模型研究
核电工程设计人员通过对核电软件理论模型及计算方法进行分析、评价,明确模型及算法的出处,以从软件理论模型及计算方法层面来保证核电软件质量,理论手册的编写需要满足相关规范要求。
2.2.3 软件设计
软件专业开发人员根据核电软件需求的出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案,设计说明书的编写也需要满足规范要求。
2.2.4 软件编码
开发人员将核电软件详细设计得到的处理过程的描述按照制定的C/C++、JAVA等计算机语言编码规范形成稳定、易编辑的源程序代码。所编程序做到结构清晰、简单易懂,具有良好的可测试性,尽量使用标准库函数和公共函数,注释清晰明了。
2.2.5 软件测试
为了进一步提高所开发核电软件测试环节的全面性和客观性,由未参与软件开发的第三方进行专业的测试,测试团队包括开发团队内部测试V&V团队、高校测试组以及专业测试公司,针对开发的核电软件根据测试规范开展了独立的测试和验证,及时修复发现的BUG,通过清晰和责任明确的缺陷处理流程,确保软件的高质量开发。
2.2.6 软件验证
软件研制完成后,为了证明所研发的软件是否实现了预期的目标,软件开发团队采用第三方验证的方式对所开发软件的正确性进行确认,即让未参与软件开发工作的未来可能的用户方通过确认用例对软件进行验证,确认用例包括基准题、实测数据(试验数据或电厂运行数据)等。通过专业的第三方验证,可以有效的提高软件计算的精度以及保证软件的正确性。
2.2.7 研制总结
对软件研制过程的需求分析、理论模型研究、设计、编码、测试、验证等各环节的开发过程进行总结,确保各环节均满足相应开发过程规范和质量保证的要求。
3 质量控制活动实施
质量控制的目的是为了评估绩效,确保项目输出完整、正确且满足项目任务预期而监督和记录质量管理活动执行结果的过程。NESTOR的实施过程质量控制以确定项目的各阶段输出是否达到预期目的,以及这些输出是否满足预期的标准、技术指标以及相关规范,质量的控制活动也是贯穿整个项目周期的。[2]
3.1 研发过程控制
软件研发过程控制主要覆盖确定设计要求、基线控制、设计接口控制、设计验证、设计变更、设计输出、测试等环节。
确定设计要求确定设计要求的设计输入是开展软件研发的基础和依据,包括软件研发所依据的合同、任务书、法规、标准、功能要求和性能要求。开发过程中,建立软件基线分别对代码设计过程和技术文档管理过程进行控制。各开发团队之间互相索取或提供设计接口资料时也应按照相关质量规定进行。
设计验证是审查、确认或证实设计的过程,以保证设计满足所有的设计要求,包括設计输入要求、设计过程的计划和实施情况等。设计验证由未直接参与相关开发工作且熟悉软件需求、能覆盖软件包开发各项技术的各有关方面的专家组成的审查组进行了认真地审查,以确保设计输出的完整性、正确性、统一性。
设计变更指与需求分析、设计、编码等活动相关的设计输出发布后对上述活动进行的变更。
软件的设计输出为软件档案资料,包括软件可执行程序代码、程序源代码、设计文档。对软件源程序代码进行的设计管理重点侧重于代码测试、验证、归档过程中的配置管理。将代码、文档、测试、验证、归档过程中产生的各种软件设计输出纳入配置管理系统进行管理,需要时仅能从配置管理系统中索取所需资源。软件开发过程中产生的设计输出满足需求,校审、设计验证、QA核查、归档过程中发现的问题已进行了纠正。
软件包相关的测试工作由具有相关资质的第三方专业团队进行,测试团队根据软件测试的规范要求,按照测试计划对软件进行了测试,确保软件研发过程中的所有缺陷均按上述流程进行了有效控制,并得以关闭。第三方测试应对软件源代码结构、可读性、格式与规范符合程度、计算结果符合全情况、输出内容与设计要求符合情况、软件功能项符合情况等做出评定。
3.2 文件控制
实施文件控制的目的是使文件的使用者始终能使用到适用的正确文件。文件的编制、审查和批准按文件控制规定的要求进行。
为保证在设计过程中使用适当的文件,在每一设计阶段的设计活动完成后,及时发布和分发有关的设计文件。发布的文件具有文件名称、编号、发文单位、发布日期和版本等统一标识。各設计阶段的文件应按照相关规范编制,确保结构清晰、内容全面、过程可控、结论严谨。
3.3 配置管理
软件在开发过程中按照配置管理的要求进行了管理和控制,在开发过程中产生的工作产品均存放在配置库中。开发人员通过使用配置管理工具将工作产品提交到配置库,配置库全面记录了开发过程的历史和状态。
3.4 纠正措施
在纠正措施方面也需要依据管理要求,对开发过程中、设计文档、设计验证等审查过程中发现的问题等导致质量下降的情况采取措施进行纠正,相关措施包括组织专题研讨、专家咨询、问题总结以及针对性培训等。
3.5 软件质量保证审核及不符合项处理
PPQA根据NESTOR软件研制所具备的软件开发和管理能力、所处的软件阶段定制出项目的过程活动QA检查单、填写检查结果,并通报给项目组各成员;同时识别出不符合项,并依据要求对不符合项进行处理。识别出不符合项后,首先与相关责任人进行沟通、确认,并填写软件不符合项记录表;相关责任人对不符合项进行分析和纠正;质量保证工程师对不符合项进行跟踪、验证直至关闭。组织级QA对以上相关活动进行监督检查。
4 结语
软件过程质量管理工作是贯穿核电工程设计软件开发的全过程,对监控软件产品的质量,确认软件产品是否符合使用需求以及开发标准起到了至关重要的作用。NESTOR项目针对核电工程软件特点创建了完整的过程质量管理体系,建立了覆盖软件研发全生命周期流程的一系列开发规范,使得NESTOR软件项目的研发过程可视、可控、可管理,研发的软件成果可信、可靠和高质量。随着NESTOR项目的实施以及工程化应用,该过程质量管理体系也在持续优化中。
【参考文献】
[1]姜霄雪,严建平,蒋剑伟.基于CMMI的过程和产品质量保证过程研究与应用[J].广东通信技术,2017,37(04):77-79.
[2]现代软件工程[M].清华大学出版社,张晓龙,2011.