航天器软件风险集成管理方法
2015-10-28陈乘新梁克王静华郭娟
陈乘新 梁克 王静华 郭娟
(中国空间技术研究院载人航天总体部,北京 100094)
航天器软件风险集成管理方法
陈乘新 梁克 王静华 郭娟
(中国空间技术研究院载人航天总体部,北京 100094)
为确保航天器软件产品功能、性能符合任务需求,安全、可靠地完成飞行任务,需要对其进行风险管理。文章首先介绍了软件风险管理理论研究现状;然后结合航天器软件强实时性、高可靠性和安全性、维护困难等问题,提出了基于系统集成思想的软件风险控制方法;最后以某航天器为例介绍了该套方法的应用成果。研究结果可为识别航天器软件风险,提高软件产品质量提供参考。
航天器;软件风险;风险识别、分析与控制
1 引言
软件风险是指软件项目管理与开发过程中出现的不确定事件,并可能给项目计划和系统质量带来危害或损失。为确保项目成功,需在软件研制过程中开展风险管理工作,标识出可能出现的风险,并对风险进行度量和评估,制定出相应的缓解措施及应急措施,以减少和降低风险对软件研制过程的影响[1]。
国外对软件风险管理进行了卓有成效的研究,出现了Boehm模型、持续风险管理(Continuous Risk Management,CRM)模型和组织变革开放系统(Leavitt)模型为代表的风险管理体系[2-8]。相比之下国内特别是航天器领域对软件风险管理的研究处于起步阶段,尚未形成一套完整的风险管理方法,随着航天器电子系统功能需求的不断增长,硬件设备集成、综合及小型化技术的发展,软件复杂度和规模不断提高,研制过程中面临的风险也越来越大,亟需开展符合航天器软件研制特点的风险管理方法研究。
本文首先介绍了软件风险管理理论的研究现状,然后针对当前我国航天器软件风险管理中存在的薄弱环节进行了分析,最后提出了符合航天器软件研制特点的风险管理方法,并以某航天器为例给出了实施过程和效果。
2 软件风险管理理论概述
软件风险管理就是在对风险的不确定性及可能性等因素进行考查、预测、收集、分析的基础上,制定出来包括识别风险、分析风险、积极监控风险和妥善处理风险等一套系统而科学的管理方法,其研究目的是找出这些导致不良后果的风险,并使其对产品的不良影响最小化。典型的风险管理模型如下:
(1)Boehm模型:Boehm模型通过公式R=P× L对风险进行定义,其中R代表风险或风险带来的影响,P表示风险发生的概率,L表示风险发生的危害程度[9]。Boehm思想的核心是对10大风险因素列表,Boehm根据每种风险因素的特点制定了一系列风险管理措施。Boehm模型倾向于传统的项目风险管理理论,认为风险管理包括风险评估和风险控制两大阶段,其中风险评估包括风险辨识、风险分析和风险排序,风险控制是指编制风险管理计划、风险解决和风险监督。
(2)CRM模型:卡内基-梅隆大学软件工程研究所(SEI)的CRM模型风险管理原则是不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性[10-11]。CRM模型将风险管理划分为5个步骤,即风险识别、分析、计划、跟踪和控制。对每一个风险要素都要按照这5个步骤进行管理,强调风险管理是一个在项目开发过程中反复持续进行的活动序列。
(3)Leavitt模型:Leavitt模型将形成各种系统的组织划分为4个组成部分,即角色、结构、技术和任务。这4个组成部分和软件开发的各因素可以很好地对应:角色覆盖了所有的项目参与者,例如软件用户、项目经理和设计人员等;结构表示项目组织和其他制度上的安排;技术则包括了开发工具、方法、软硬件平台等;任务描述了项目的目标和预期结果[11]。Leavitt模型的关键思路是模型的各个组成部分是密切相关的,一个组成部分的变化会影响其它组成部分,该模型实际上提出了一个框架,可以系统地将软件风险相关信息组织起来。
通过对主流的风险管理理论综合比较分析,本文总结软件风险管理的核心内容主要体现在以下3个方面:
(1)将风险管理与软件研制活动紧密结合,即关注软件研制各个方面的风险管理,如技术、进度、质量等,确保全面识别风险要素。
(2)重视软件风险分类管理,对识别的风险进行分析和排序,保证有限的资源用到级别较高的风险上。
(3)将风险管理视为一个持续管理过程,在软件项目全生命周期内不断识别风险、评估风险和控制风险,确保各类风险始终可控。
3 我国航天器软件风险管理存在的不足
1)缺乏风险要素识别方法
软件风险管理应注重风险要素识别的系统性和全面性,应结合软件研制活动相关的各个方面,如软件规模、复杂程度、用户特性、过程定义、环境、技术难度、进度、人员及经验等开展风险识别工作,确保风险要素识别无遗漏。
航天器软件风险管理未形成系统性的风险要素识别方法,目前主要通过软件故障树分析(SETA)、软件故障模式与对策(SEMEA)和遵循可靠性安全性设计准则来指导软件可靠性安全性设计;对首次承担航天软件研制任务的单位和人员进行识别,开展相应的培训检查等工作。由于过于依赖以往经验,缺乏风险要素的识别方法,容易造成风险要素识别不全。
2)未建立风险分类管理机制
软件风险应注重分类管理,软件风险根据影响范围可以分为系统性风险、分系统性风险和配置项级风险,如分系统间接口协议可靠性设计不足、系统工作模式组合和转换的可调整性不足等属于系统级风险;分系统架构设计冗余度不足、分系统工作模式和任务不明确属于分系统级风险;未按照编程规范开展编程工作、成员缺乏编码知识属于配置项级风险。
航天器软件风险管理未形成分级管理的机制,航天器总体和分系统往往将精力主要放在配置项级风险的管控上,如通过需求审查、测试审查和第三方测试验证等手段来确保配置项风险可控等;对系统和分系统工作模式、设计架构、接口协议等风险关注不够,由于资源投入不均,容易造成风险管理效果不佳。
3)风险管理持续性不够
软件风险管理应注重持续性,某种类型的风险完成闭环,在后续某个阶段可能再次出现,故需要定期识别风险要素,确保及时识别和控制风险。如软件需求阶段才可能出现的系统需求遗漏风险,在进入软件设计阶段后由于飞行任务的变化可能再次出现。
航天器软件风险管理未形成定期识别风险的机制,目前主要在航天器研制初期进行软件全生命周期风险要素的识别和管理策划,在航天器研制过程中跟踪和控制风险,并及时关闭风险。由于关闭的风险可能再次打开,未定期进行风险识别容易造成风险最终发生。
4 采取集成风险管理方法解决当前问题
针对前文中分析的当前航天器软件风险管理存在的不足,文章基于软件风险管理理论,从航天器系统角度提出了集成风险管理方法,对航天器系统、分系统和配置项各级软件风险管理统一策划,通过分级负责、各司其职的方式共同管控风险。该方法核心思想是全面识别风险,确保风险要素无遗漏;分类管理风险,确保风险各级管控有效;定期分析风险,确保风险管理持续改进。具体内容如下。
1)通过基于目标导向的风险识别方法保证全面识别风险要素
该方法在软件故障树分析基础上结合航天器软件强实时性、高可靠性和安全性、维护困难等特点提出,所谓基于目标导向的风险识别方法就是从软件项目的研制目标入手,推导影响项目的风险要素,并进一步分析风险间的关系,最终达到对整个项目的风险要素及其关系的识别[11],风险识别具体过程如图1所示。
该方法的特点是将软件的研制目标按照阶段进行划分,并判断各阶段研制目标是否可度量,若不可度量则进行细化分解,直到所有的细化目标都可度量。在可度量的细化目标基础上分析所有影响它的风险要素,并判断风险要素是否可评估,若不可评估则细化分析该风险要素与影响它的其它风险关系,构建风险关系链,直至得到的所有风险要素均可评估,通过该方法可以确保风险要素全面识别。
2)通过基于分类思想的风险分析方法保证风险各级管控有效
完成风险识别后,从航天器系统角度将识别的风险分为系统级风险、分系统级风险和配置项级风险,如软件系统分析与设计阶段总体未明确编译器选择范围,导致研制单位采用未进行可靠性安全性验证的编译器风险为系统级风险,分系统软件相关的安全关键系统工作模式分解不到位风险为分系统级风险;软件需求阶段软件开发计划中未给出阶段评审和配置管理的计划风险为配置项级风险。完成风险分级后,各级配合开展风险计划、风险监控和风险应对3个步骤的风险控制工作,风险分类和管控具体过程如图2所示。
图1 基于目标导向的风险识别方法Eig.1 Risk identification method based on target-oriented
图2 基于分类思想的软件风险控制过程Eig.2 Risk control process based on classification
该方法在将风险划分为系统级风险、分系统级风险和配置项级风险的同时,将软件按照关键等级、继承性、规模、客户关系等进行排序,将其分为核心、重要和一般软件,列为核心软件的其对应的分系统和配置项级风险应在本级管控的基础上提交上一级(配置项上一级为分系统、分系统上一级为系统)审查;列为重要软件的其对应的分系统和配置项级风险应将本级审查结果报送上一级。
3)建立定期风险分析和持续改进机制
软件风险控制是个逐步迭代的过程,在软件研制的全生命周期内需要及时对风险进行总结,对识别的风险控制措施有效性进行总结;对识别的新的风险进行分级分类,执行相应的控制措施。通过定期风险分析和持续改进,保证软件产品功能、性能符合任务需求,安全、可靠地完成飞行任务。
5 某航天器风险管理实践
执行交会对接任务的某航天器技术难度大、质量要求高、任务周期短,为了确保飞行软件可靠运行,该航天器运用了集成风险管理方法,实现了风险管理与软件工程化工作的系统融合,有效规避或降低了软件研制过程中的技术、质量和进度风险,保证软件产品质量满足要求。本节以该航天器软件需求分析阶段的软件风险管理为例,给出了实践结果。
1)软件风险要素识别
航天器软件需求分析阶段系统目标是确保航天器总体对软件系统需求分解到位,落实到分系统间接口协议等文件中;分系统工作目标是将系统级和分系统级软件需求细化分解到位,落实在软件研制任务文档中;配置项工作目标是将软件需求分配,落实在软件需求分析文档中。系统、分系统和配置项依据基于目标导向的风险识别方法协同工作,通过目标—可度量目标—基于可度量目标的风险—可评估风险4个步骤,识别出了24项可评估风险,具体见表1。
表1 软件需求分析阶段风险列表Table 1 Risk factors table in software requirments analysis phase
2)软件风险分类管控
识别的24项风险中包括系统级管控风险7项、分系统级管控风险6项和配置项级管控风险11项。其中核心软件和重要软件的配置项管控风险及相关的分系统管控风险还应提交上一级审查或报送审查结果。通过系统、分系统和配置项3个层次的风险管理体系的相互配合,对风险可能发生的时机进行分析、及时监控和应对,确保风险可控,软件需求分析阶段识别的风险分类、应对时机和应对对策具体见表2。
表2 风险应对时机和对策Table 2 Table of risk response opportunity and method
3)软件风险定期分析和持续改进
将软件需求风险控制分为航天器研制初样初期、初样转正样、正样阶段后期(出厂前)3个阶段。初样初期开展软件需求风险管理策划工作,识别风险要素并进行分类,系统、分系统和配置项各司其职共同完成风险管理工作;初样转阶段暨正样阶段初期,对初样阶段识别的风险控制情况进行总结,结合正样系统和分系统详细设计报告等各方面信息,识别薄弱环节,完成需求风险的再识别;正样阶段后期对识别的需求风险要素控制情况进行总结,结合软件产品验收和总结、第三方评测总结、系统综合测试与例行试验阶段小结等各方面信息,完成需求风险要素的再识别和分析工作。
4)实践效果
该航天器系统、分系统和配置项通过集成风险管理方法在出厂前发现需求遗漏、接口欠细化问题达23项,对发现的需求风险均开展了更改影响域分析,最终落实到软件需求规格说明等文档和程序中,确保了交会对接飞行任务的成功。
6 结束语
通过某航天器软件风险管理的实践经验,要将软件风险管理落到实处,应采用集成风险管理方法,通过全面地分析风险,及时识别出软件全生命周期的风险点,提出切合实际和有效的控制措施与方法,切实提升各环节的工作效果,具体到软件全生命周期应注意以下几点:
(1)加强系统策划。在项目启动初期应开展风险管理策划,明确风险管理实施的目标、策略、方法和机制,要将风险策划的内容充分融入整个航天器研制和管理过程,保证各阶段技术、质量和进度目标实现与系统工作要求的一致性。
(2)注重分类协同。要精细化软件风险管理方法,关键是要体现分类思想,涵盖全面,突出重点,做到各司其职,共同负责,对于识别出来的风险突出问题,充分设置产品保证或质量控制关键节点,明确审查确认要求。
(3)持续改进。要定期进行风险要素的再识别和再分析,不断总结工程实践中的经验,不断实用新技术来降低风险,如建设并推广使用可支持单机级、分系统级乃至系统功能级方案比较的仿真环境等。
(
)
[1]薛四新,贾郭军.软件项目管理[M].北京:机械工业出版社,2004 Xue Sixin,Jia Guojun.Software project management[M].Beijing:China Machine Press,2004(in Chinese)
[2]冯楠.软件项目管理理论与模型研究[D].天津:天津大学,2007 Eeng Nan.Research on theory and model of software project management[D].Tianjin:Tianjin University,2007(in Chinese)
[3]田杰,吕建新,徐峰.软件工程化管理中的风险管理[J].微计算机信息,2007,23(24):13-15 Tian Jie,Liu Jianxin,Xu Eeng.Risk management of software engineering management[J].Micro Computer Information,2007,23(24):13-15(in Chinese)
[4]简林安.风险型决策在软件风险研究中的应用[J].微计算机信息,2008,24(24):220-222 Jian Lin'an.The application of risky division on the research of software risk[J].Micro Computer Information,2008,24(24):220-222(in Chinese)
[5]张云峰.软件开发项目风险模型分析[J].电脑知识与技术,2009,5(22):6238-6239 Zhang Yunfeng.Software development project risk analysis[J].Computer Knowledge and Technology,2009,5(22):6238-6239(in Chinese)
[6]刘明友,帅建锋.基于CMMI的软件项目风险管理研究[J].电脑知识与技术,2013,9(1):63-66 Liu Mingyou,Shuai Jianfeng.Study on software risk management based on CMMI[J].Computer Knowledge and Technology,2013,9(1):63-66(in Chinese)
[7]沈桂兰,李玉霞.基于风险矩阵的软件项目的风险评估[J].信阳师范学院学报:自然科学版,2012,25(3):407-441 Shen Guilan,Li Yuxia.Risk assessment for software project using by risk matrix[J].Journal of Xinyang Normal University Natural Science Edition,2012,25(3):407-441(in Chinese)
[8]刘艳秋,周驰.评估项目风险中协调偏好的DEA方法[J].控制工程,2012,19(4):676-680 Liu Yanqiu,Zhou Chi.A coordinate preference dea method of project risk assessment[J].Control Engineering of China,2012,19(4):676-680(in Chinese)
[9]Boehm B W.Software risk management[M].Washington D.C.:IEEE Computer Society Press,1989
[10]张帆.软件项目风险管理和控制研究[D].大连:大连海事大学,2010 Zhang Ean.Research on software risk management[D].Dalian:Dalian Maritime University,2010(in Chinese)
[11]梁涛.风险关系研究的软件项目风险管理[D].西安:西北工业大学,2006 Liang Tao.Software risk management based the goalrisk[D].Xi'an:Northwestern Polytechnical University,2006(in Chinese)
(编辑:李多)
Integration Management Method of Spacecraft Software Risk
CHEN Chengxin LIANG Ke WANG Jinghua GUO Juan
(Institute of Manned Space System Engineering,China Academy of Space Technology,Beijing 100094,China)
To ensure that spacecraft software product meets the mission requirements,and the mission can be saftly and reliably accomplished,risk management is required.The paper describes the research status of software risk management theory,and by considering the spacecraft software's strong real-time,high reliability,high security,difficult maintenance and other characteristics,proposes a set of risk control method based on system integration.The application of the set of method is introduced to a spacecraft.The paper provides a reference for identifying spacecraft software risk and improving software product quality.
spacecraft;software risk;risk identification,analysis and control
V57
A DOI:10.3969/j.issn.1673-8748.2015.03.018
2015-03-09;
2015-04-15
陈乘新,男,硕士,工程师,从事航天器软件工程化管理工作。Email:lisi-0528@163.com。