随着信息化和网络化的发展,航空航天领域的装备已经发展成为软件密集型系统,软件负责完成航空装备的大部分功能。资料显示,以美国的F-22战斗机为例,由软件实现的功能已经达到80%以上,航空航天领域的软件规模和重要度与日俱增。
▲航空航天领域的软件特点
上述特点其实也是航空航天软件开发的难点所在。尤其是,大型复杂装备有众多配套单位,各单位承担的软件多以嵌入式小规模软件为主。然而嵌入式软件相比一般软件测试难度较大,急需一种能够在短周期内提升软件研制效率的开发模式。
敏捷(Agile)开发模型成为众多用户的选择。敏捷开发以用户需求进化为核心,采用迭代、循序渐进的方法进行软件开发,旨在加快产品交付速度和确保产品稳定性,以保证软件质量。敏捷开发中,软件项目在构建初期会被切分成多个子项目,各个子项目的成果都需经过测试,具备可视、可集成和可运行使用的特征。
换言之,就是把一个大项目分为多个相互联系但也可独立运行的小项目,并分别完成,且在此过程中,软件需要一直处于可使用状态。
敏捷真的适用于航空航天的项目管理吗?
航空航天领域软件开发的传统模型为下图所示的V模型:
▲航空航天领域V字形开发流程
从需求出发,可将飞机系统的构建分为以下几个阶段:
- 概念确定
- 系统定义与设计
- 系统开发与测试
- 系统部署及开始运行
▲图片来源:https://www.uniroma1.it/en/pagina-strutturale/home
这个繁重过程中的某些阶段可能需要数月甚至数年才能完成,且随时可能出现需求变更——后续流程都得再次更新。同时,出于安全考虑,所有飞机系统在完全投入使用之前,都必须经过漫长的认证周期,这就要求航空航天设备团队内部必须同步设计计划,加强团队内的协作。
敏捷开发模型几乎可以解决上述所有难题:
1. 敏捷开发要求所有团队内的相关方反馈被快速获取,航空航天设备团队可因此专注于根据计划迭代分配任务,弥补计划与执行之间的差距。
飞机计划往往庞大而复杂,如何将其转化为具体行动是较为常见的问题。常见的标准方法是通过冗长的甘特图来确定路线图,但这张无法实时更新的方法清晰度与透明度都比较低,无法确保每个团队都在按照同一路线努力。
在敏捷实践中,使用合适的看板工具就可以解决这一问题,团队内的各部门都可从头到尾跟踪进度,管理者也可以快速发现工作流程中的效率或者其他问题,并快速采取必要措施,及时作出回应。
2. 采用合适工具的敏捷开发模型可以解决航空航天领域硬件测试存在的问题。
航空航天领域嵌入式软件开发的最大挑战在于其开发和测试过度依赖硬件。与传统互联网产品或者PC上的应用软件不同,嵌入式软件受制于其专用于特定嵌入式系统的特性,往往需要连接目标硬件才能完成调试、测试工作。
传统的嵌入式软件快速迭代依赖于配套的测试硬件,而飞机硬件通常可复用性差、成本高昂。根据德勤研究数据,2020年航空航天项目的总成本超支将上升至51%。不仅存在经济压力,项目进度也会因此遭到严重延误。
不仅如此,嵌入式软件的测试环境搭建过程过于复杂,测试环境的搭建要求高、时间长,航空航天领域的嵌入式软件测试环境的占地面积还尤其大。
SkyEye,中文全称天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,可使航空航天团队快速搭建虚拟硬件模型,解决硬件成本高昂、复用性低等问题,同时保证产品质量。
▲基于可视化图形的硬件建模
SkyEye可为综合航空电子系统(ICP)提供多机多功能目标系统搭建的环境,采用分布式部署方式,通过多路传输数据总线把多种机载电子分系统交联在一起,实现信息的测量、采集、传输、处理、监控和显示功能,并完成飞行控制、发动机控制、导航、性能管理等任务。
▲SkyEye大规模航电系统仿真案例
3. 敏捷开发模式可更高效地处理硬件资源协调带来的团队争端。
当硬件资源稀缺时,工程师们将无法同时使用硬件测试环境,管理者需要在测试资源的调度上消耗更多的时间及精力。结合敏捷开发模式,SkyEye可与众多工具(如禅道、Jenkins、GitHub、极狐GitLab等)联合,打造全链路一站式平台,管理者可以更便捷地进行资源分配。
▲敏捷开发模式下的航空航天设备制造流水线
总的来说,结合合适的仿真工具,敏捷开发模式是可以在高度复杂的航空航天工业中找到合适的实施方案的,将有力缩短产品的交付周期。
实际的项目开展过程中,可根据软件工程化的实际情况形成适用于具体情况的本地化敏捷测试方法,并在工程实践中有效、充分地应用,对提升我国航空航天软件的研制效率有重要意义。