一
项目背景分析
(一)项目背景

现代软件日益复杂性增加软件更新的难度和成本。当前,软件通常难以应对需求或计算资源的变化,需要频繁更新软件才能将软件的功能维持在可接受水平,甚至产生难以负担的成本。若不使用物理不变量约束软件行为,对软件复杂性的限制就会更少。
目前软件开发方法难以很好解决软件复杂性问题。目前应对软件复杂性问题的软件开发方法主要有两种:“具体化”方法和敏捷软件开发方法。“具体化”方法是从一组等价选项中选择某个特定值或实例,以满足当前的开发工作需求。敏捷软件开发方法是通过多个短时间(2-4周)开发冲刺活动,最终向系统最终用户演示所开发的能力。

大型软件项目往往难以进一步升级。大型软件项目完成后,通常成为其软件相互依赖的特定版本。现实情况是,一些组织难以应对协议和应用程序编程接口的变化。在进行安全升级时,开发人员必须对旧版软件进行端口修复,进而增加工作负担。在升级系统时,为了保持最新特性和使用最新数据库,需要做大量的工作,要么完全重新设计软件,要么仔细地更改和测试数十到数百个相互依赖的接口。
(二)项目目标
IDAS项目将开发新的技术方法,用于捕获程序员的工程意图,支持国防部软件系统持续适应新情况。其目标是使开发和维护成本降低至少一个数量级。这种新方法能够快速实现代码合成/生成,使复杂软件系统持续适应需求和资源的变化。
(三)核心思想
IDAS项目将开发能够自动表征软件意图及其抽象约束的新方法,使软件意图及其抽象约束能与具体例示相分离开来,再针对特定实例进行调整。其核心理念:一是将问题描述(包括意图和约束)与任何特定的具体例示分离开来。这种问题描述模型必须在语义上可利用IDAS工具包,还能够捕获问题与方法之间的关系,最终生成能够解决和验证一个技术方案的软件。二是通过自动化方式生成或调整软件系统特定实例,适应新的需求,大幅减少软件维护工作,使工程师可以集中精力进行软件设计和添加新功能。
(四)技术要求
按照IDAS项目要求,研究人员将开发四个方面的工具和技术:一是捕获、学习和注释程序员意图和约束,与创建特定软件实例所需的具体决策分离开来;二是使用自动化技术和所捕获到的意图,生成或调整软件,大幅减少软件程序员的工作,使软件适应新的需求、平台和资源;三是验证新修改的软件能够满足客户/最终用户的功能需求;四是将这种意图定义的软件开发新模式集成到现有的敏捷开发流程中,以推广到更多的程序员使用。
二
初步研判
根据DARPA开展IDAS项目的相关发布,结合我们对美国防部软件开发与采办领域发展动向的跟踪研究,初步研判如下:
(一)美国防部现行的软件开发方法不太适应新要求
近年来,美国防部十分关注国防系统的软件开发、更新和维护问题。2016年8月,时任国防部采办、技术与后勤副部长肯德尔要求,针对国防系统的软件设计与采办问题进行专项研究。2018年2月,美国防科学委员会发布《国防系统软件设计与采办》报告,认为美国防部应转变软件开发与采办模式,以适应快速变化的威胁。同年,国防创新委员会按照《2018财年国防授权法》要求,针对国防部软件开发与采办有关问题进行了专项研究。总体来看,软件在武器系统中的重要性不断上升,国防系统软件复杂性越来越高,国防系统软件开发模式落后,导致一些重大采办项目往往出现软件问题。
从需求方面看,国防部更多依赖软件系统来实现功能、能力和安全,尤其是网络安全、日益增强的功能(尤其是人工智能和自主性)以及对网络化系统的迫切需求,使软件密集型项目越来越复杂,研发难度加大,如F-35战斗机武器系统平台、“宙斯盾”指控系统和后勤系统等。同时,要求在威胁不断变化的复杂环境下,通过快速持续的软件更新来维持技术优势,应对对手快速发展的能力。
从软件开发模式和方法方面看,当前的商业软件开发已取得很大进步,主要采用敏捷/迭代式开发方法;而国防承包商的软件开发项目大部分遵循上世纪70~90年代的传统瀑布式开发模式,还有一些大型项目被分解成多批次开发,大体上尚未采用商业界的迭代式开发方法,相对落后。此次DARPA启动该项目,是美国国防系统软件开发方法不太适应新要求的又一例证。
从重大项目软件开发的结果看,美国防部一些项目饱受软件开发问题困扰,导致严重的进度延期、成本超支,甚至在某些情况下造成项目取消。
(二)项目提出的软件开发方法有所创新
根据美国防科学委员会2018年研究报告的建议,国防部应将国防软件开发方式从传统瀑布式开发模式转向当前商业软件采用的迭代式开发方法。传统的瀑布式开发是一个线性过程,严格按照全面确定需求、编写软件、测试和发布的步骤逐个阶段推进软件开发,这种方法比较落后。迭代式开发则采用软件体系结构对功能进行模块化设计,通过多轮快速迭代方式允许后续变更,每轮迭代用一系列成熟的软件模块和工具,实现流水线式的软件开发。美国防科学委员会认为,迭代式开发方法适用于国防软件系统的研发、生产以及维护阶段,有助于在软件全寿命周期内持续更新,应对当前不断变化的威胁。但是,美国防部现行采办程序不太适用于迭代式软件开发。
DARPA则从管理软件复杂性问题及其解决方法入手,针对“具体化”方法和敏捷软件开发方法在未来需求变化未知时存在的技术负担和未来开发成本问题,基于自适应软件开发方法的研究进展,着重从意图定义的角度,启动了“意图定义的自适应软件”方法研究。其核心理念是将问题描述与任何特定的具体例示分离开来,自动表征软件意图及其抽象约束,再通过自动化方式生成或调整软件系统特定实例,更能适应需求和资源的变化,大幅减少软件维护工作。从当前国外自适应软件研究进展看,相比于商业界目前采用的迭代式软件开发方法,DARPA这一项目提出的软件开发方法在理论上有一些创新。
(三)项目的目标能否实现仍需进一步观察
DARPA这一项目已具备一定的理论和技术实践基础。首先,自适应软件开发研究取得重要进展。1999年12月,《自适应软件开发》获得美国软件开发杂志年度震撼大奖;21世纪初,敏捷开发方法学/自适应开发方法的研究和应用已进入主流社会,之后关于自适应软件的研究取得进展,从规则、体系结构、中间件、控制论、设计模式组合等角度开展自适应软件研究。其次,DARPA在自适应软件领域开展了研究。比如,DARPA早在1998年就将自适应软/硬件列入研究计划,当时主要是针对某个领域进行研究;2015年DARPA启动为期四年的“构建资源自适应软件系统”项目,寻求程序分析、编译器设计、虚拟机实现等领域的创新研究,其目的是获得可以构建长寿命、可生存、可扩展的自适应软件系统的工具。项目认为,准确理解应用程序的意图是关键,应用程序的意图是其特性之一。该项目寻求新方法,用于自动发现计算与所用资源之间的关系,实现优化算法。
但是,DARPA这一项目的目标能否实现,仍然存在不确定性。因为这不仅决定于技术方法,还有考虑采办政策等因素的影响。从项目目标看,DARPA这一项目的最终目标是通过开发能够捕获程序员意图的新方法,快速实现代码合成/生成,持续适应需求和资源的变化,使开发和维护成本降低至少一个数量级。从技术层面看,项目可行性研究虽然已经完成,但项目要求开发四个方面的工具和技术何时完成,尚未给出时间进度,在技术方面能否实现,仍然需要观察。从政策层面看,即使DARPA这一项目在技术上可行且可实现,其成果能否适用于美国防部现行采办程序,能否在国防部推广使用,也需要进一步观察。
来源 :综合网站/图片来自互联网
军事科学院军事科学信息研究中心
李加祥 冯云皓 佘晓琼 吴海
如需转载请注明出处:“国防科技要闻”(ID:CDSTIC)
综合分析
战略与规划
科技管理
国防创新
军民融合
人工智能
陆军
海军
空军
航天
网络空间
电子信息
核武器
高超声速
无人系统
精确打击
防空反导
新概念武器
基础科学
技术
先进动力
与能源
先进材料
与制造
生物与医学
战例与演习
试验鉴定
关注全球国防科技发展重大动向 分享国防科技信息优质产品和资源
军事科学院军事科学信息研究中心微信平台