您的位置:首页 >科技 >

美国防部发布《用于持续交付作战能力的软件工程》指南|环球报道

2023-05-05 20:59:21    来源:互联网

作者:北京海鹰科技情报研究所 王立盟

2023年4月26日,美国国防部工程与研究办公室发布《用于持续交付作战能力的软件工程》指南,旨在为软件规划、开发过程提供指导,以适应快速变化的软件技术、软件工程实践、软件开发及软件采办需求,实现快速、安全和有效地持续交付作战能力。该指南是美国国防部软件工程和采办现代化战略的重要部分,主要内容包括政策和指南、技术现代化、挑战与最佳实践、软件度量标准、软件工程和人员能力、人工智能/机器学习等。


(资料图片仅供参考)

01政策与指南

2018至2022年间,美国国防部对软件工程相关领域政策及指南进行了修订,以推进软件获取、开发、运营和管理现代化。国防部软件工程政策和指南文件可分为总体战略、软件工程和采办、软件工程和技术现代化3个层面。

表1 美国防部软件工程相关政策及指南

图1 传统及现代软件开发方法及其特征

02技术现代化

软件技术正在软件寿命周期、开发过程、软件架构、部署和封装、软件基础设施5个方面发生变革。软件开发过程正在从传统的瀑布式向敏捷/DevSecOps开发方式转变,从有明确开始和结束日期的项目转变为持续开发、迭代,以最终满足用户需求的产品。敏捷/DevSecOps开发方式提供快速交付能力,可降低风险,采用微服务架构支持多个团队独立开发和部署,基于云的基础架构通过共享计算和网络资源有效提高可扩展性和灵活性。该指南对应用程序接口、容器化技术、容器编排技术、微服务架构、持续集成/持续交付管道等新兴软件技术进行了介绍。

图2 软件技术变革的5个方面

国防部数字工程战略(2018)列出了国防部数字工程倡议的5大战略目标,以促进数字化转型计划,分别是:规范化模型的开发、集成和使用,便于组织和项目决策;提供持久的权威真相源;集成创新技术来改进工程实践(大数据分析、认知、计算、数字到物理融合);建立支撑基础设施和环境,用于项目相关人员执行活动、协作和沟通;文化和人力资源的转型,在装备的整个生命周期的各个阶段采纳和支持数字工程。

03挑战与最佳实践

瀑布式开发方法通过文档和项目关键节点来管理软件开发过程,而敏捷/DevSecOps方法通过自动化开发、测试和部署来持续管理开发过程。该指南分析了在需求、体系结构、设计、编码、测试、系统集成及部署阶段所面临的挑战以及最佳实践,通过不断进行过程改进,实现快速、高质量软件交付。

04软件度量标准使用及经验教训

通过度量指标跟踪和监控软件开发过程,将有效降低软件开发风险,同时,客观指标将使各级决策者了解开发进展,并采取相应对策。指南讨论了适用国防部采办指令5000.87《软件采办路径操作》的软件采办路径指标、敏捷/开发运营流程及软件工厂,并建议采用一致的软件度量标准。从方案确定、开发流程、技术性能及任务有效性、软件质量、软件开发效率、核心基准指标、软件成熟度的评估和预测等方面定义了软件度量标准及应用。

图3 软件计划与实际开发时间

图4 软件开发计划与实际人员配置情况

05软件工程和人员能力

该指南指出,国防部必须识别、雇佣和培训为现代化作战开发软件的专业技术人员。国防部负责人事和战备的副部长被授权制定和实施政策,建立程序,提供指导方针,在此基础上建立了5项能力框架,将作为国防部基于能力的人事管理方法的基础。

图5 美国防部5项能力框架

06敏捷与DevSecOps软件开发合同

敏捷开发方法关注软件开发的共同目标以及明确定义的角色和责任,以实现软件开发各参与方持续的合作和参与,这种管理架构被称为“参与规则”,将有助于合同双方灵活合作,创造性地实现共同目标。Scrum模型为软件开发制定了明确的需求,包括关键的项目角色(如产品负责人、开发团队等)、关键的计划或会议(待办事项、项目回顾等)、关键的项目文档(如产品愿景、产品路线图等)。同时,从传统瀑布式到敏捷开发实践是逐渐过渡的,可通过敏捷合同级别和敏捷开发水平体现,空军的合同成熟度模型展示了敏捷合同成熟度各阶段的特征。

图6 敏捷合同成熟度模型

07人工智能与机器学习

该指南介绍了人工智能/机器学习的发展背景、首席数字和人工智能办公室(CDAO)如何促进人工智能的应用,以及人工智能软件发展愿景。指南指出,人工智能/机器学习在防御系统中发挥越来越重要的作用,软件工程实践将成为人工智能/机器学习开发和部署的关键使能因素。机器学习可提高软件性能,缩短代码编写时间,并支持功能扩展。但也存在易受到训练数据中偏差、不准确的影响,以及易受到对抗性攻击和环境欺骗等问题。

首席数字和人工智能办公室是加速人工智能能力交付的主要执行机构,通过国家任务计划(NMIs)和组件任务计划(CMIs)向国防部提供人工智能能力。作为整体软件架构的一部分,人工智能将嵌入到数据处理微服务层,以提供支持作战任务执行的能力。而加速人工智能能力交付,则需要构建所需的基础设施,如采用云服务、基础设施即服务(IaaS)架构、高性能计算等。

图7 人工智能/机器学习作为软件系统的组成部分

图8 人工智能应用模型

标签:

相关阅读