军事:中国载人航天软件20年:手工生产曾严重威胁系统(2)
从不理解到离不开,载人航天软件开发实现“蜕变”
发射仅仅37秒,火箭就偏离飞行路径,解体并爆炸!1996年,法国阿里亚那 5号火箭的发射失败给大家敲响了警钟。调查显示,这是因为控制惯性导航系统的计算机向控制引擎喷嘴的计算机发送了一个无效数据。
软件是硬件的灵魂,但有时也是魔鬼。这件事让大家惊出一身冷汗!载人航天不仅关乎国家尊严、民族进步,还关乎航天员的生命安全。绝不能因软件出现问题而导致任务失败!
软件工程化是一套科学的管理流程,关键在于实施。国外的多次航天发射失利,主要原因就在于软件工程化实施不够到位。为此,工程将软件工程化工作纳入到行政指挥线、技术指挥线和工程管理线的三线管理中,由上至下推动软件工程化工作执行。
“刚开始推广时,遇到很多困难,最大的就是不习惯。”陈炳忠回忆说。软件工程化管理要求步骤多、文档多,“繁琐”的规则引起大家的不理解。一些程序员抵触地说:“以前的编程方法不是好好的吗?为什么要这么做?太浪费时间了。”同时,谁也没有软件工程化的经验,文档应该怎么写,流程应该怎么走,谁心里也没数。
为尽快推广软件工程化,载人航天工程开始了边摸索、边学习的实施过程。
最初的探索是从“三分离”和“双岗制”开始的,规定任何软件都不能仅由一个人编写,要把设计、编程和测试分开,以保证软件系统的透明性和可控性。在此基础上,按照软件工程化的要求开发新的软件,最后再形成比较完备的设计和开发体系。
《载人航天工程软件工程化技术文件》《载人航天工程软件研制工作管理要求》内容十分具有前瞻性,规定了软件开发的流程,每个阶段要提供什么文档,每个阶段要做什么评审,软件要按什么标准去测试,测试要提供什么文档,要达到什么指标等。
根据这套文件,载人航天工程将软件按照重要程度进行等级管理,重点抓A、B级软件的质量,有针对性地抓了软件需求分析、软件配置管理、单元测试以及第三方评测等关键环节的工作;针对载人飞行任务,突出工作重点,集中精力抓好对航天员安全和任务成败等具有重要影响的软件开发和测试;安排专款改善软件和测试条件,建立专门的软件测评中心,合理组织和配备软件开发人员,明确职责,严格把关,取得了明显成效。
经过几年磨合,从不习惯到习惯,到再也离不开,这种最初被认为“影响效率”的工程化软件管理方式,最终促进了载人航天工程软件系统可靠性、安全性的大幅提升!
领头前行,带动航天领域软件工程化发展
7.69%!这是神舟六号软件质量问题占全部质量问题的比例,而在3年前的神舟三号中,这个比例高达31.25%。更为可喜的是,无论走查还是第三方测试,问题明显逐年降低,神舟七号和交会对接软件质量问题仅约5%。
这些数据充分体现了软件工程化带来的好处!
“发射一次,前进一步!”这是世界航天史上新的奇迹,也是中国载人航天工程软件工程化发展的辉煌历程!
