构建航天软件研制新体系支撑“十四五”航天发展新跨越

2020-10-19 00:12/文
国防科技工业 2020年9期
关键词:评测十四五研制

程 胜 /文

软件是现代信息化武器装备的灵魂,是决定装备作战能力的关键要素,这在新一代航空航天装备中体现尤为突出。F-35“闪电”是美军在役最先进的第五代战斗机,属于典型的软件定义数字化战机。F-35硬件采用通用模块化设计,通过软件实现了战机的绝大部分功能。飞行软件源代码规模超过800 万行,软件研发投入超过108 亿美元,通过从Block1A 到Block3F 的6 次软件版本升级,大幅提高了环境感知、目标识别、武器控制、通信和导航、战机维护等功能的战技指标和智能化程度,使其具备了超一流的综合作战能力。美军后续还将通过软件升级持续增强F-35的作战能力。可以看出,在现代先进武器装备中,硬件犹如人的身体,软件犹如人的思想和灵魂,在同等身体条件下,人的能力主要取决于思想和灵魂,而装备的作战能力主要取决于软件。

在信息化和智能化时代,软件是定义装备功能和战技指标的主要手段,软件已成为装备的核心能力,软件水平将成为航天装备发展的核心竞争力。加快构建航天软件研制新体系,形成世界一流的航天装备软件研制能力,已经成为当前我国航天发展和航天强国建设的迫切需求。

本文所谈的航天装备软件主要指航天装备中的飞行控制、目标识别、故障诊断等嵌入式软件,以及支持航天装备测试、发射、在轨运行的地面任务软件。

国内外航天装备软件发展态势及挑战

国外航天装备软件发展态势

在现代武器装备和作战系统中,软件无处不在。软件控制着武器装备的运行,驱动整个作战系统的正常运转。软件已经从过去硬件或装备功能的辅助使能角色,转变成如今装备和系统核心能力的定义者。2009 年美国宇航局发表的《飞行软件复杂度》研究报告,对军用飞机、火星探测器、汽车的嵌入式软件发展情况分析后发现,近四十年来装备软件规模以指数级增长,发挥的作用越来越大,地位也更加突出。1960 年代F-4“鬼怪”战斗机的软件仅有1000 行源代码,实现了8%的系统功能。2000 年F-22 猛禽战斗机的软件超过250 万行,实现了超过80%的系统功能。1970 年代“海盗号”火星探测器软件不到1 万行,而2011 年发射的“好奇号”火星车超过了300万行。1990 年代通用汽车的车载软件是百万行规模,到2010 年已经超过1 亿行。随着现代装备智能化、体系化的发展趋势,装备功能将更加复杂,软件规模还将持续快速增长,其作用和地位将更加凸显。

装备软件规模快速增长的原因是什么?这与软件属性有直接关系。第一,软件具有非物质性特点,不受物理实体限制,容易编写和修改。第二,软件是弥补硬件不足和增强系统性能的“魔法棒”,软件可以通过跨专业系统级协同显著增强硬件和系统能力。例如,通过软件冗余算法,可以有效弥补硬件抗辐照能力不足,显著提升星载计算机可靠性;通过软件算法可大幅提高雷达系统的抗干扰能力。所以,设计师都会首选把功能分配给软件来实现。软件规模因此迅速增长,同时也使得软件复杂度陡增,给软件研制和测试验证工作带来巨大挑战。

所谓复杂度,是指人理解和验证一个事物的困难程度。软件是靠人开发的,如果复杂度超出了软件开发人员的理解能力,软件开发的危机就来了。事实上,这就是1968 年北约召开全球首次软件工程会议上提出的“软件危机”之情形:软件质量,进度失控,预算超支。《飞行软件复杂度》报告指出,“软件危机”的根源在于:我们对复杂软件的需求超出了软件研制团队的开发能力。当然,1968 年遇到的复杂问题,现在看来很简单,已经很容易解决。这主要得益于五十多年来软件工程技术取得的巨大进展。但是,现代智能化装备所需软件的规模和复杂度相比五十年前又增长了三个数量级,再次超出了当前的软件研制能力。

2000 年前后美国发生了以“火星天气轨道器”为代表的多起重大航天任务失败,经调查都是由于软件缺陷所致。正是这些惨痛的失败促使美国宇航局开展了飞行软件复杂度问题及应对措施的研究,并且启动了全面的软件工程能力提升行动。主要内容有:加强新技术研究和新工具研发;加强先进方法和工具的推广应用;加强软件架构研究和架构师培养等。经过多年努力,美国宇航局的软件研制能力再一次实现飞跃,很好地保障了以“好奇号”火星探测为代表的一系列复杂航天任务的成功实施。“好奇号”是当时世界上智能化程度最高、最为复杂的火星车,飞行软件规模达到空前的300 万行。但美国宇航局喷气推进实验室仅依靠35 人的软件开发团队,就按期高质量完成了全部软件开发。“好奇号”自从2011 年成功发射后,目前仍在火星上正常执行任务,期间基本没出现过软件问题,软件质量极高。这源自团队采用的先进软件开发技术和工具。“好奇号”的软件研制主要采用了模型驱动开发及形式化验证技术,其中75%代码都是通过模型驱动开发工具自动生成的。模型驱动开发和形式化验证等技术,已在美国宇航局的后续任务中得到了广泛应用。

美国宇航局“好奇号”火星车

美国太空探索公司是近年来国际航天界最闪耀的明星,成立的短短18 年来,通过大胆创新,创造了一系列航天奇迹,颠覆了传统航天产业:第一家成功发射液体商业火箭入轨、第一家发射商业货运飞船与国际空间站成功对接、第一家实现可重复使用火箭并投入商业发射、仅数年就成功研制目前全球最大运载量的火箭、第一家通过自研载人飞船将宇航员成功送往国际空间站的商业公司、发射建立全球最大星座“星链计划”。公司同时维持着至少3种大型运载火箭、2 型飞船、上千颗卫星的设计、制造、发射、运营等全部工作。其软件团队总共35 人,承担了至少上述6个型号飞行软件和地面软件的研制,以及发射支持、航天器在轨管理等工作。在太空探索公司近百次商业发射中,未发生过严重软件故障。据国外媒体报道,相同的任务交给波音等传统航天企业,至少得50 倍规模(1750 人)的团队才能完成。太空探索公司的软件开发效率和质量水平是颠覆性的。据其软件团队在网络上透露的信息,其主要秘诀有:①产品起点高,大量采用成熟先进的商业软硬件产品和技术;②软件复用度高,所有型号共用一套软件架构和平台;③团队水平高,成员都是有丰富经验的游戏软件工程师;④开发模式新,采用了基于敏捷理念的DevOp 模式。

美国太空探索公司“龙”飞船

可以看出,为解决航天复杂软件开发的问题,太空探索公司进行了颠覆性创新,而美国宇航局采用的是传统基础上的创新。

我国航天装备软件发展态势及挑战

近年来,在空间站工程、北斗导航工程、高分专项等重大航天工程的带动下,我国航天型号研制和发射任务都进入了高潮期。航天主要研制单位的任务量猛增数倍,尤其软件任务量增加更为显著。据统计,空间站工程的软件数量相比前期任务增加了近十倍。除了数量增加,软件规模也增长很快。很多重要软件规模急剧膨胀,复杂度陡增,如飞船GNC 软件代码规模已超过10万行。在软件人员无显著增加的情况下,软件开发面临巨大压力。这种任务形势给航天带来了艰巨挑战,软件问题增多,严重问题时有发生,软件已成为当前各级关注的突出风险。

中国长征5 号大型运载火箭

近两年来,国防科工局高度关注航天软件发展态势,组织航天相关单位进行了专题研究,还多次组织相关专家对航天软件问题进行了深入研讨。最后达成的共识是,当前航天型号软件问题频出的根源在于软件任务量和复杂度增长太快,现有软件研制体系已难以适应,亟须全面加强研制体系建设、提升软件研制能力。这与美国宇航局二十年前面临的局面类似。面临的问题和挑战有:①软件仍处于附属地位。对信息化智能化装备软件的作用认识不足,软件仍然是硬件附属,难以发挥软件定义系统的核心作用;②研制模式滞后。软件研制模式滞后于技术发展和形势发展,工具和手段落后;③标准化和产业化程度低。标准观念薄弱,标准难以有效贯彻,软件标准化和产品化程度低,难以复用和共享,低水平重复严重,难以形成分工协同的产业链协同发展格局;④技术进步慢。软件技术日新月异,但对新技术研究少,应用更少,滞后于时代发展;⑤研发投入少。软件基础技术和工具软件技术研发投入严重不足,基础薄弱;⑥自主软件工具缺。型号应用的绝大部分软件工具都是美欧产品,受制于人,尤其缺少与国产宇航处理器配套的自主可控软件工具,后续发展存在很大风险和隐患;⑦岗位认证缺。航天装备软件要求极高,对岗位技能有特殊要求,尤其是系统架构师、软件安全工程师、软件质量保证工程师等重要岗位必须熟练掌握相关技能,目前缺乏岗位认证,人员水平难以保证;⑧软件人员地位低。软件人员在型号中地位低,发展空间小,人才流失严重,引进外部人才困难。

构建航天软件研制新体系的举措

二十多年前,中国航天在重重质量危机中,率先提出了“抓评测促工程化”的战略,采取了两项关键举措:①改进开发过程,将软件作为独立产品纳入型号产品配套表,软件从不受控的程序员个人资产转变为受控的组织资产,实现对源头的把控;②建立第三方评测体系,软件出厂前必须经过独立评测把关,实现对末端的质控。通过抓住两头,软件工程化取得了立竿见影的效果,迅速扭转局面,实现了软件开发从个体“作坊式”向团队“工程化”的转变,支撑了航天二十多年的快速发展。

在新的历史时期,航天软件发展到了一个新阶段。当前所面临的软件形势,既是风险挑战,也是迈向更高台阶的发展机遇。只要各级高度重视,抓住问题本质,系统谋划,开拓创新,一定能抓住机遇,走出一条有中国特色的航天软件发展道路,实现航天软件水平的再次飞跃,有力支撑航天强国建设。具体举措有:

加强研究和学习,提高思想统一认识。组织航天专业软件力量,持续开展对国内外航天软件发展态势研究和分析,尤其是对以美国太空探索公司为代表的颠覆性创新力量的跟踪和研究。组织各单位对研究成果进行深入学习和交流,使各级领导和型号研制队伍充分认识和理解软件对未来航天发展的极端重要性和开发方法改进、提高的紧迫性;

优化研制体系,提高软件地位。智能化是航天装备发展的必然趋势,其核心是信息系统和软件。重新审视信息系统和软件在型号中的地位和作用,将其提升到总体地位。软件研制要从顶层型号需求分析和总体设计开始全面介入,需设置专职信息系统及软件副总师(不是管理岗位,而是软件系统架构师)负责型号总体信息和软件系统需求分析及架构设计。逐步从以机械结构为中心的传统体系,过渡到以信息系统和软件为中心的新体系,适应智能航天装备发展需要;

制定有效标准,着力贯彻落实。标准对于行业的健康发展具有举足轻重的作用。目前航天软件的标准程度不高,有效执行的软件标准极少。究其原因:①标准不可用。当前的标准主要由标准化机构编写而成,与实际应用结合不紧,可用性不高;②贯标意识不够。缺乏有效的贯标机制,标准意识普遍不强,缺少对标准的敬畏。不遵循标准带来的问题:①造成“小散弱”局面。不遵循统一标准,单位间难以形成相互支撑、良性互动的协同发展格局,只能各自封闭、难以发展;②造成行业落后。不遵循标准,行业缺乏透明性,难以与外部产业链对接,造成行业封闭、发展落后。反观国际一流企业,无不是标准的先行者和实践者。要实现航天软件的健康发展,一定要重视标准制定和贯彻。要采取两方面措施推动航天软件标准化:①应用单位主导标准制定。由专业研究机构和主要应用单位来主导标准制定,标准必须得到行业内主要应用单位的认可;②从顶层强制贯标。主管部门在下达研制任务时,将相关标准作为项目研发或产品研制的必要条件,从顶层推动标准贯彻;

坚定自主发展,加强工具研发。软件开发工具是研制现代复杂软件的核心工具手段,其作用犹如光刻机之于芯片制造,高端数控机床之于高端武器装备生产。软件开发工具水平决定软件研制水平。如果工具受制于人,航天装备软件也必将受制于人。生产工具是生产力水平的标志。航天所用的软件开发工具是航天装备软件研制能力的标志。当前软件开发模式正从以人工作业为主,自然语言文档为中心,瀑布开发模型为特征的传统模式,向以自动化作业为主,模型为中心,敏捷开发模型为特征的新模式转变。新的开发模式需要全新的软件开发工具,国内外航天领域也都处于模式转型和工具升级阶段。须抓住这次航天软件开发模式转型机遇,从国家层面集中力量开展新一代自主软件开发工具的研发和应用,争取在“十四五”期间取得突破,实现软件开发工具的自主保障,摆脱受制于人的局面。重点开展三方面研发:①模型驱动软件开发、形式化验证等技术研究,及针对航天领域的工具研发;②基于成熟商用软硬件技术的航天高可靠软件开发技术研究;③基于敏捷思想的航天软件研制模式研究及工具环境研发;

重视软件架构,加强基础建设。无论从美国宇航局的研究实践,还是从太空探索公司的成功经验,都可以看出优秀的软件架构对于高效研制高质量软件的重要作用。通过优秀的软件架构,可以确保软件整体的可靠性和可扩展性,进行最大程度的软件复用,大幅提高软件开发效率,保证产品质量。重点支持运载火箭箭载软件、航天器综合电子软件、地面支持系统软件的通用参考架构研究和软件研制,相关成果发布给全行业共享。同时在装备研制要求中,将软件架构选用纳入必要条件。通过研发支持和型号推广,推动航天装备软件架构的应用和发展;

打造软件生态,共同发展壮大。生态链是维系行业健康发展的关键。通过生态链,才能实现各执所长,分工协作,建立体系,形成合力,做大做强。现代智能化航天装备软件已经是复杂软件系统,除了完成特定任务的应用模块,还包括硬件驱动程序、操作系统、数据库、科学计算库、网络协议库、消息通信库、导航制导算法库、机器学习库等,这些都是复杂的可复用专业软件,研发及升级维护投入很大,不可能每家单位都自己解决。目前一些单位封闭起来试图自建体系,结果是低水平重复,浪费国家资源,行业整体水平难以发展。要建立软件生态,各单位要站在行业发展高度,以开放共赢的心态,相互支撑,优势互补,共同做大做强。产业链强,行业必强,反过来会吸引更多优势力量参与,推动行业不断走向繁荣。生态链建立需要政府主管部门的政策引导和激励,主要措施有:①制定发布标准。制定航天软件技术及产品标准,公开发布;②建立“航天软件产品合格名录”。对申请产品开展全面验证,符合要求的纳入名录;③纳入型号选型。发布合格名录,并在型号任务中将选用名录产品作为必要条件,推动产品应用;④鼓励研用。在产品推广前期,为鼓励自主产品研制及应用,对于被采购的产品,给予产品研制单位和应用单位一定补贴。通过开放机制、应用衔接、资金支持,打通生态链上下游,形成良性循环,必将培育出支撑航天装备软件发展的生态链;

强化技能培训,落实持证上岗。软件开发中,人起决定性作用。如果软件人员不掌握必要的技能,就不可能高效率、高质量完成产品开发。航天软件对质量和安全性的要求比一般商业软件更严苛,要求软件人员除掌握一般的软件开发技能外,还要求熟练掌握航天领域知识、航天软件研制规范等知识,以及软件安全性分析和设计、软件可靠性分析和设计等技能。特别是一些关键软件的开发岗位,尤为必要。为确保人员满足岗位要求,要建立人员培训及认证体系。具体措施如下:①开展人员培训和认证。委托航天专业机构联合行业高校,开展人员培训和认证工作;②纳入承研资格评定要求。将通过认证人员情况作为“武器装备科研生产许可证”软件开发资格的审查项;

完善评测体系,确保把关作用。软件第三方软件测试是确保航天软件质量的关键把关环节。多年来建立的软件评测体系对保证航天软件的质量发挥了很大作用。但随着航天发展,软件评测的质量把关作用越来越不明显。原因有:①独立性不足。第三方评测的基本要求是,评测单位在管理、技术、经费方面必须独立于研制单位。只有如此,评测才能起到客观把关作用。目前航天大多数研究院都建立了各自的评测机构,软件评测都是内循环,已失去独立性;②机构“小散弱”矛盾突出。绝大多数评测机构的人员规模只有几十人,极少数超过百人,力量分散,规模小。近年来评测任务增长超过十倍,软件的规模和复杂度剧增,评测单位难以应对,评测质量降低;③评测质量缺少监督。软件评测缺少有效监督,质量无法保证。例如,对于一个数万行的飞控软件,美国霍尼韦尔公司要用数百万规模的测试用例。而针对同等规模的飞控软件,咱们的评测机构只用了几百个测试用例,评测质量堪忧。为切实发挥第三方评测作用,需进一步完善软件评测体系,措施如下:①严控评测资格。提高评测资格标准,对人员规模、持证人员数量、工具条件等提出更高要求,重新审定资格,淘汰不合格机构;②确保评测独立性。对评测独立性提出明确规定,对违反规定的严厉处罚;③建立监管机构。制定评测质量监管和责任追究制度,依托独立于所有研制单位的专业软件机构建立“软件独立评估中心”,定期对评测单位的评测质量进行复测复查,曝光不合格情况并进行处罚;④加强统一的航天软件产品质量数据库建设,持续采集航天装备软件质量信息,作为对评测机构评价的重要依据。同时,利用形成的软件质量大数据,可以分析软件质量趋势,为质量主管部门提供科学决策支撑。

猜你喜欢
评测十四五研制
血管吻合试验台的研制及试用
一种氧气瓶氧气吸入器的研制与应用
次时代主机微软XSX全方位评测(下)
次时代主机微软XSX全方位评测(上)
某横向军品项目快速集成研制的创新实践
高校“十四五”规划中学科建设要处理好五对关系
“十四五”规划研究的新坐标新方位
中辉大鹏数字电视公司“十四五”发展规划
哈尔滨机场雷暴分析预报系统的研制及应用
MI评测产品排行榜