
5万行计算机代码被分解成更小的部分或“模块”,测试了200多万次——最近一次统计。每天都有一项任务在进行测试:将搭载宇航员的宇宙飞船送入月球并返回地球。
5万行代码听起来可能很多,美国宇航局的丹·米切尔也这么认为。他在阿拉巴马州亨茨维尔马歇尔太空飞行中心的团队。他为阿尔忒弥斯1号进行了编程,并正在为2024年11月发射的阿尔忒弥斯2号准备代码。
但这次的准备工作更重要——生命将受到威胁,因为这是第一次有宇航员参加的任务。
这可能听起来像很多代码,但今天的汽车,尤其是自动驾驶汽车,拥有“比太空发射系统多得多的软件”。商用飞机和现代战斗机也是如此,”米切尔在最近的一次采访中说。
“我们有一个非常明确的信息的优势,”米切尔谈到程序员时说。“这不是一项容易执行的任务,但它是明确的。”
米切尔是火箭飞行软件设计负责人。他领导着一个由50名软件和硬件专家组成的团队,在NASA马歇尔系统集成实验室(也被称为SIL)工作。该团队还与波音公司等商业伙伴合作。
简单地说,火箭有很多移动和稳定的部件,包括推进系统、发射中止系统、货物舱、服务舱、制导系统和乘员舱。“飞行软件涉及所有这些,”米切尔说。

米切尔的团队刚刚完成了阿尔忒弥斯2号软件的最终测试,并且“正在进行测试后分析,以确保它确实如预期的那样运行。”
对于像软件工程师汉娜·霍普金斯这样的团队成员来说,这种感觉是不可替代的。她的工作是为起飞和着陆模拟编写代码。有了这些技能,她可以在很多地方工作。相反,她正在使用一个模拟,她说“可以在飞行前40小时模拟整个核心级飞行部分,所以在我们处理核心级之前大约10分钟。”
这意味着要考虑地面操作员在做什么,关于油箱加油,关于飞行和助推器的部署。“我们必须全面了解火箭应该做什么以及它正在做什么,”她说。“考虑到所有这些因素。”
“成就和骄傲,”霍普金斯说。这一点以及“与我一起工作的软件开发人员社区”让她留在了NASA-Marshall。“我知道我是第一位女性和第一位有色人种登上月球的一部分,”她说。
Hopkins知道“代码行数并不能代表事物的复杂性。”她并不参与飞行软件的开发,但她觉得“这是一种骄傲,因为它有5万行代码....”对我来说,他们用5万行代码就能完成的事情确保了车辆不会做一些过于复杂的事情。”
“有句老话说,用代码行数来衡量软件项目的进度,就像用飞机的重量来衡量飞机的重量一样,”Mitchell说。
阿尔忒弥斯的赌注很高。一次失败可能会威胁到NASA的整个火箭计划和重返月球计划。霍普金斯说:“但是把人放在这上面会增加很多风险。”
当软件编写和检查完成后,团队将其带入Marshall的SIL测试区域。这是一个高大的圆柱形结构,飞行计算机和连接线安装在一个框架中,这个框架的大小和形状与太空发射系统火箭相同。
然后,将发动机软件与用于真正核心级、猎户座太空舱和地面系统的相同软件连接起来进行测试。米切尔说:“这次测试是为了让在这些盒子里运行的航空电子设备和软件认为它实际上已经在肯尼迪航天中心准备发射,然后在我们发射时实际飞行。”
模拟器可以模拟40小时的飞行,并且必须能够考虑从地面操作员正在做什么到加油到助推器点火的所有事情——“火箭应该做什么,它正在做什么,”霍普金斯说。我们的目标是尽可能像飞行一样进行测试。
对于第一次SLS发射,他们的模拟非常接近。米切尔说:“我们对模拟与实际发射性能的对比非常满意。”“这给了我们很大的信心,首先,我们有一个非常好的测试环境,不仅对飞行软件,而且对综合系统,”米切尔说,“但它给了我们很大的信心进入阿尔忒弥斯2号,我们将有机组人员在车辆上。这对我们来说是一个重要的里程碑和标志。”
并不是团队做的每件事都很重要。程序员可以按比例缩小模拟器(被编程为像其他计算机一样工作的计算机)来模拟SLS飞行器、火箭和太空舱。米切尔称其为“具有挑战性,但非常有趣。”
马歇尔大学的团队在计算机领域几乎可以做任何事情,米切尔表示同意。为什么会这样呢?“每个人都有不同的动机,”他说,“但这是一项宏大的活动,对吧?能够将车辆和团队送入太空并尽我们所能探索这一前沿领域仍然是一个谜。
米切尔说:“这在很大程度上仍然是一个前沿领域,我们人类还没有离开我们的星球。”“所以,我认为参与其中是一种荣誉和神秘。”










