信息化、智能化时代,软件是定义航天装备功能和作战技术指标的主要手段。 软件是现代信息化航天装备的灵魂,软件水平将成为航天装备发展的核心竞争力。 加快构建新型航天软件开发体系,形成世界一流的航天装备软件开发能力,已成为我国当前航天发展的迫切需要。
1、国内外航空航天装备软件发展趋势及挑战
1 国外航天装备软件发展趋势
在现代航空航天设备中,软件无处不在。 软件控制航天设备的运行,驱动整个系统的正常运行。 软件已经从过去作为硬件或设备功能的辅助使能者,转变为如今设备核心能力的定义者。 根据NASA 2009年发布的《飞行软件复杂性》研究报告,过去40年主要飞行软件的规模每十年增加一个数量级,而软件复杂性则呈指数级增长。
20 世纪 70 年代的维京火星探测器拥有不到 10,000 行软件,而 2011 年推出的好奇号火星车拥有超过 300 万行软件。 随着现代装备智能化、系统化的发展趋势,装备的功能将更加复杂,软件规模将持续快速增长,其作用和地位将更加凸显。
2 我国航天装备软件发展趋势与挑战
近年来,在空间站工程、北斗导航工程、高清工程等重大航天工程带动下,我国航天模型研制和发射任务进入高潮。 各大航天研发单位的软件任务数倍激增。 据统计,空间站项目所需的软件量比之前的任务增加了近十倍。 除了数量的增加,软件规模也在快速增长。 许多重要软件的大小和复杂性急剧增加。 例如,航天器GNC软件的代码量已超过10万行。 在软件人员不大幅增加的情况下,软件开发面临着巨大的压力。 这种任务情况给航天带来了艰巨的挑战,软件问题增多,严重问题时有发生。 软件已成为各个层面关注的突出风险。
2、航天装备软件现状分析
装备软件快速增长的原因是什么? 这与软件属性直接相关。 首先,软件具有非物质性的特点软件体系结构设计实验报告,不受物理实体的限制,易于编写和修改。 其次,软件是弥补硬件缺陷、提升系统性能的“魔杖”。 软件可以通过跨专业的系统级协作显着增强硬件和系统能力。 由此,软件规模迅速增长,软件复杂度也急剧增加,给软件开发和测试验证带来巨大挑战。
所谓复杂性,是指人们理解和验证某事物的困难程度。 软件是由人开发的。 如果复杂程度超出了软件开发人员的理解,软件开发就会出现危机。 《飞行软件复杂性》报告指出,“软件危机”的根本原因是我们对复杂软件的需求超出了软件开发团队的开发能力。
2000年前后,美国发生了多起以“火星天气轨道器”为代表的重大太空任务失败事件。 经查,均是软件缺陷造成的。 正是这些惨痛的失败,促使NASA开展飞行软件复杂性问题及对策研究,包括加强新技术、新工具的研究,加强先进方法和工具的推广应用,加强软件架构研究和架构师培训。 等待。 经过多年努力,NASA的软件开发能力再次实现跨越,很好地保证了以“好奇号”火星探测为代表的一系列复杂太空任务的成功实施。
“好奇号”是当时世界上最智能、最复杂的火星探测器,但 NASA 喷气推进实验室仅依靠 35 人的软件开发团队就如期高质量地完成了所有软件开发。 自2011年推出以来,基本上没有出现任何软件问题。 “好奇号”的软件开发主要采用模型驱动开发、形式化验证等先进技术和工具。 75%的代码是通过模型驱动的开发工具自动生成的。 模型驱动开发、形式化验证等技术在NASA后续任务中得到了广泛应用。
三、构建新型航天软件开发体系的措施
20多年前,中国航天集团公司在多重质量危机中率先提出“以评价促工程”战略,并采取了两项关键举措:①改进开发流程,将软件作为独立产品纳入国家质量体系。型号产品配套清单。 软件从程序员不受控制的个人资产转变为受控制的组织资产,实现对源头的控制; ②建立第三方评价体系。 软件出厂前必须经过独立评估,以实现最终质量控制。 抓住两端软件体系结构设计实验报告,软件工程立竿见影,迅速扭转了局面,实现了软件开发从个人“作坊式”向团队“工程化”的转变,支撑了航天航空20多年的快速发展。
新的历史时期,航天软件发展到了新阶段。 当前我们面临的软件形势,既是风险挑战,也是向更高层次发展的机遇。 只要各级高度重视,抓住问题本质,系统谋划,开拓创新,就一定能够抓住机遇,找到一条中国特色航天软件发展道路,实现又一次飞跃。提升航天软件水平,有力支撑航天强国建设。 具体措施包括:
优化开发体系,提升软件地位。 智能化是航空航天装备发展的必然趋势,其核心是信息系统和软件。 重新审视模型中信息系统和软件的地位和作用,并将其提升到整体地位。 软件开发需要从顶层模型需求分析和总体设计开始全面参与。 需要设置专职的信息系统和软件副总工程师(不是管理职位,而是软件系统架构师),负责整体模型信息和软件系统的需求分析和架构设计。 逐步从以机械结构为中心的传统体系过渡到以信息系统和软件为中心的新体系,以适应智能航天装备的发展需求。
制定有效的标准并努力实施。 标准对行业健康发展具有决定性作用。 实现航天软件健康发展,必须重视标准的制定和实施。 推进航天软件标准化应采取两方面措施:①应用单位牵头制定标准。 专业研究机构和主要应用单位牵头制定标准,标准必须得到行业主要应用单位的认可; ② 自上而下强制执行标准。 主管部门在下达研发任务时,将相关标准作为项目研发或产品开发的必要条件,从顶层推动标准的实施。
坚决自主开发,加强工具研发。 软件开发工具是开发现代复杂软件的核心工具和手段。 它们的作用就像用于芯片制造的光刻机和用于生产高端武器装备的高端数控机床。 生产工具是生产力水平的标志。 当前的软件开发模式正在从以手工作业为主、以自然语言文档为中心、以瀑布式开发模式为特征的传统模式,转变为以自动化作业为主、以模型为中心、以敏捷开发。 新的开发模式需要新的软件开发工具。 要抓住这次航天软件开发模式转变的机遇,集中精力进行新一代自主软件开发工具的研发和应用:①模型驱动的软件开发、形式化验证等技术研究,以及航空航天领域的工具开发; ② 基于成熟商业软硬件技术的高可靠性航天软件开发技术研究; ③基于敏捷思维的航空航天软件开发模型及工具环境开发研究。
注重软件架构,加强基础设施建设。 通过优秀的软件架构,可以保证软件的整体可靠性和可扩展性,最大限度地提高软件复用性,大大提高软件开发效率,保证产品质量。 重点支持运载火箭软件、航天器综合电子软件、地面保障系统软件通用参考架构的研究和软件开发。 同时,软件架构的选型也被作为必要条件纳入到设备开发需求中。 通过研发支撑和示范推广,推动航天装备软件架构的应用和发展。
共建软件生态圈,共同成长。 生态链是维持行业健康发展的关键。 现代智能航天装备软件已经是一个复杂的软件系统。 除了完成特定任务的应用模块外,还包括硬件驱动程序、操作系统、数据库、科学计算库、网络协议库、消息通信库、导航与制导算法库、机器学习等。 库等复杂的可复用专业软件需要大量的研发、升级和维护投入。 建立软件生态圈,各单位必须站在行业发展的高度,相互支持、优势互补,以开放共赢的心态携手做大做强。 生态链的建立需要政府部门的政策引导和激励:①制定航天软件技术和产品标准并公开发布; ②建立《航天软件产品合格清单》,对申请产品进行全面验证,符合要求的纳入清单; ③ 发布合格名单,入选名单产品将作为示范任务的必要条件; ④为鼓励自主产品的开发和应用,对产品开发单位和应用单位给予一定的补贴。
加强技能培训,实行持证就业。 在软件开发中,人起着决定性的作用。 如果软件人员不掌握必要的技能,就不可能高效率、高质量地完成产品开发。 航空航天软件的质量和安全要求比一般商业软件更加严格。 软件人员除了具备通用的软件开发技能外,还要求精通航天领域知识、航天软件开发规范等知识,以及软件安全分析与设计、软件可靠性分析与设计等技能。 为保证人员符合岗位要求,必须建立人才培训和认证制度:①委托航空航天专业机构与工业大学合作开展人才培训和认证; ②以取得认证的人员身份作为《航空航天装备研究生产许可证》审查项目的软件开发资格。
完善评价体系,确保关卡功能。 软件第三方软件测试是保证航天软件质量的关键环节。 多年来建立的软件评价体系,对保证航天软件质量发挥了巨大作用。 为了有效发挥第三方评价的作用,软件评价体系还需进一步完善:①完善评价资质标准,对人员规模、持证人员数量、工具条件等提出更高要求; ②建立独立的验证和确认机制,增强软件整个生命周期的质量控制,对整体项目直接负责; ③加强统一的航天软件产品质量数据库建设,持续收集航天装备软件质量信息,作为评价机构评价的重要依据,为质量主管部门提供科学决策支持。
关于作者:
程胜研究员,中国载人航天工程软件工程与数字技术开发管理中心主任,中国航天科技集团神软公司科学技术委员会副主任,中国载人航天工程软件专家组副组长,中国航天科技集团软件专家组成员。
历史文章
让软件更加安全可靠
让测试更加可信、高效