梁 克, 王静华
(中国空间技术研究院 载人航天总体部,北京 100094)
载人航天器软件承担着计算、控制、通信等作用,其产品的质量对于确保航天器飞行任务的圆满完成至关重要。不论是执行我国首次交会对接任务的“天宫一号”目标飞行器和“神舟八号”飞船,还是未来支持航天员长期在轨驻守、开展军民空间应用和在轨服务技术试验的空间站,这些航天器软件研制具有技术新、难度大、周期长等特点。为了确保软件产品质量受控,需要研究出一种行之有效的软件研制技术管理方法。
本文以目标飞行器软件研制为例,对在目标飞行器载人飞船软件研制过程中探索出的一种精细化的软件技术研制管理方法进行介绍。
1)技术新、难度大
载人航天工程每前进一步,就需要我们自主攻关突破多项新技术[1]。软件产品为适应新的任务要求,会增加新的性能需求。另外,载人航天器的高可靠性和安全性,多舱段(航天器)信息系统和控制系统内外部接口多,工作模式复杂,都从系统层面对软件产品的协调性、匹配性提出更高要求。
比如,在交会对接任务中,船器对接和分离的时序配合、工作模式转换关系复杂,信号处理的协调性、实时性和可靠性等都成为软件设计的难点。
因此,满足日益复杂的任务要求和用户需求将成为软件技术开发的重点和难点。
2)新研软件配置项多
“神舟一号”到“神舟七号”载人飞船飞行任务与“天宫一号”目标飞行器相比有较大差异。“天宫一号”的主要任务目标是交会对接,需要完成交会对接技术试验验证;在组合体阶段,需要保证航天员的在轨工作、生活、试验的正常进行;最后建立在轨长期可靠运行的载人空间实验室。面临新的任务需求和目标要求,需要开发一系列的任务配置软件,这些软件与以往载人飞船的应用软件相比复杂、技术新、难度大。
3)软件系统设计方法不足
载人航天器软件产品涉及的分系统和研制单位多,目前系统、分系统和单机的各级需求分析与分解方法粗略、不系统,特别是各级关于可靠性和安全性的需求分析与分解往往滞后或不细化。这将导致需求分析不准确甚至偏离需求,出现上一级可靠性和安全性的需求在软件实现中落实不到位或者滞后,将对软件研制进度或验证充分性带来较大影响。
在软件的发展还不能很好地满足工程需求的情况下,制定切合实际的软件研制流程和计划,以求软件研制与工程研制进度的协调统一就显得格外重要。
4)产品保证能力与任务高要求不相适应
目标飞行器研制队伍年轻,人员的综合能力不强;新参研单位很多,每个单位软件开发能力和工程化基础水平参差不齐。另外,目标飞行器的研制和后续等多型号研制并举,人力和物力资源集中保障难度大。这些状况对软件产品研制过程各环节的工作质量和产品质量均会带来较大影响,急需探索一种有效的软件研制技术管理方法以控制可能带来的风险。
航天科技集团公司十分重视软件工程的实施,于2001年发布了“航天型号实施软件工程的技术规定”,并组织编写了《航天软件工程实施技术指南及范例》[2]。2005年及之后又发布了“航天型号软件工程化管理要求”(Q/QJA 30-2005)、“航天软件产品保证要求”(QJ3126A-2008)等航天标准,对软件实施工作提出了更具体的要求。目前航天型
号软件研制普遍采用的技术流程如图1所示[3]。
图1 航天型号软件研制技术流程Fig.1 Technical process of space software development
在目标飞行器软件研制中对原有的软件研制技术流程进行了改进,即以航天型号软件研制技术要求为基础,以型号研制阶段为依据,对图1所示的软件研制技术流程进行了细化、优化,既突出了每个阶段的研制工作重点,又强调了各类软件开发技术路径,要求明确、可操作性强。改进后的软件研制技术流程称之为精细化软件研制技术流程,如图2所示。
图2 精细化的软件研制技术流程Fig.2 Elaborate technical process of software development
初样阶段的软件研制重点有软件系统设计过程、软件需求的渐进迭代过程、设计编码测试过程和第三方初步测评过程和初样阶段的验收总结工作,以保证软件以稳定可靠的状态转入正样阶段。
正样阶段的软件研制重点有软件需求清理、并依据清理结果分类完成全部或部分(初样尚未完成的)软件工程化工作,以保证各类软件的各项研制任务圆满完成,达到航天型号软件研制技术要求所规定的交付条件。
精细化软件研制技术流程具体说明如下。
1)初样阶段
在初样阶段,总体与分系统、分系统与单机承制方通过一轮自顶向下、自下向上的迭代过程,完成系统级、分系统级和单机层面的分析,提炼出软件功能、性能、安全性等需求。软件研制单位与硬件研制方协同完成“单机系统分析及软硬件联合设计”,最终确定出软件配套表及软件配置项的安全等级。同时,总体制定软件工程化实施细则,指导软件研制单位的各项工作。
载人航天器初样阶段软件研制允许采用的开发模型包括“瀑布式”、“渐进式”和“类增量式”。软件研制方一旦选定了开发模型后,则按该模型规定的程序进行软件设计、编码和测试等工作。
软件在经过研制方充分测试后送交第三方测评,原则上,所有软件必须通过包括静态分析、人工走查、动态测试在内的所有第三方评测项目。
在转正样阶段之前,软件需要完成一项重要的测评项目,即结合型号研制流程完成系统级联试。
在型号由初样转正样期间,对各软件配置项进行初步验收和总结,检查研制单位软件研制技术流程实施情况。
2)正样阶段
型号转入正样阶段后,结合型号正样设计工作,总体组织分系统对软件需求、安全性等级等进行复核。进而以初样软件验收为基线,综合评估软件需求稳定性、初样阶段软件研制质量等情况,将软件产品分为3类。
I类:相对初样阶段验收基线,在后续过程中,需求没有任何更动的软件或者软件需求更动但不涉及代码更动(文档勘误)的软件。
II类:软件需求无任何更动,但代码有更动(设计优化等)的软件。
III类:需求和代码均变动。
同时,总体适时完善相应的管理要求。
I/II类软件的开发研制单位在初样工作基础上,完成后续的测试、评测、验收等工作。对于III类软件,分系统/软件研制单位在任务分析和系统设计的基础上,要求修订并重新下达任务书,或者重新进行软件需求分析,修订需求说明书;在此基础上,软件研制单位仍需要开展新一轮的设计、编码、测试、评测、交付验收工作;之后,才能进入I/II类软件开发流程。
对于关键等级高的软件,研制单位均需完成可靠性、安全性复查以及中断冲突分析,并通过专家评审。
为了保证系统测试的有效性,更好地控制系统测试中间的软件状态变化,在系统测试前完成配置项的验收及总结。
在系统级联试过程中发现的软件问题,严格按照要求[4]由总体组织相关分系统和软件研制单位完成相应的问题纠正、回归测试以及所涉及的配置管理工作。
各软件配置项的验收及总结完成且软件在系统测试中考核正确后,开展分系统软件验收及总结工作,重点审查分系统在软件研制过程中的工作以及配置项验收时待办事项的落实情况;同时结合系统测试,确认分系统所有软件状态。
根据目标飞行器软件工程化实施的效果,可总结本文给出的精细化软件研制技术管理方法具有如下特点。
1)软件研制工作阶段化
软件研制工作结合型号研制进度分阶段开展,可以更有效地实施软件研制的过程控制,规范其设计、开发和验证过程,提高研制单位软件工程化的工作质量。同时,随着型号工作的深入开展,对关键技术环节和影响成败的因素的理解更加深刻,软件研制工作的阶段化也有利于及时纠正软件需求中的偏离以及不细化等缺陷。
在目标飞行器软件研制过程中,型号转入正样研制阶段后总共有42%的软件发生了需求更动,并按照III类软件的要求完成了新一轮详细设计。通过正样阶段的工作,有效控制了由于交会对接任务所涉及的新产品多、技术难度大、成熟度低所带来的风险。
2)软件管理工作区别化
软件配置项尤其是新研软件的增多加大了总体、分系统等各级软件研制技术管理工作的负担。本文给出的方法将软件按照安全关键程度、需求稳定性、开发模型等进行分类,实现区别化管理,既能有效控制关键质量环节,保证了软件研制技术管理的实效性,又能使总体、分系统和软件研制单位各负其责,保证了软件研制技术管理的可操作性。
对于需求常发生变动且关键等级高的软件,其研制过程的关键质量控制点必须由总体组织专家评审;需求发生变动但关键等级不高的软件,由分系统组织专家评审,结论上报总体。
3)软件质量控制深入化
软件各质量控制点均采取总体、分系统、配置项三级控制策略,对软件质量进行层层把关,深入控制。同时为保证系统测试的有效性和充分性,软件配置项必须通过总体组织的验收后才能参加系统测试,使质量控制点前移。
目标飞行器软件配置项验收控制点的前移,保证了各软件配置项在系统测试前已完成开发方测试、分系统联试和第三方评测等各项测试工作,有效减少了软件系统测试期间的问题发生概率,使得软件的最终版本能够在系统测试中得到充分测试,降低了软件风险。
载人工程后续型号将面临对软件功能和配置的更多需求,这要求我们继续深入地研究载人航天器软件研制的特点,并对现有的软件研制技术管理不断细化和优化,以促进软件产品的开发管理水平、降低软件产品风险,不断提高载人航天器软件产品的成熟度。
(References)
[1]张柏楠, 戚发轫.中国载人航天技术的历史性跨越[J].航天器工程, 2008, 17(5): 1-6
Zhang Bainan, Qi Faren.Historic leap of China’ s human spaceflight technology[J].Spacecraft Engineering, 2008,17(5):1-6
[2]中国航天科技集团公司软件专家组.航天软件工程实施技术指南及范例[M].2005
[3]Q/QJA 30—2005 航天型号软件工程化管理要求[S],2005-10-21
[4]Q/QJA 10—2002 航天产品质量问题归零实施要求[S],2002-08-08