作者:北京海鷹科技情報(bào)研究所 王立盟
2023年4月26日,美國(guó)國(guó)防部工程與研究辦公室發(fā)布《用于持續(xù)交付作戰(zhàn)能力的軟件工程》指南,旨在為軟件規(guī)劃、開發(fā)過(guò)程提供指導(dǎo),以適應(yīng)快速變化的軟件技術(shù)、軟件工程實(shí)踐、軟件開發(fā)及軟件采辦需求,實(shí)現(xiàn)快速、安全和有效地持續(xù)交付作戰(zhàn)能力。該指南是美國(guó)國(guó)防部軟件工程和采辦現(xiàn)代化戰(zhàn)略的重要部分,主要內(nèi)容包括政策和指南、技術(shù)現(xiàn)代化、挑戰(zhàn)與最佳實(shí)踐、軟件度量標(biāo)準(zhǔn)、軟件工程和人員能力、人工智能/機(jī)器學(xué)習(xí)等。
01政策與指南
(資料圖片)
2018至2022年間,美國(guó)國(guó)防部對(duì)軟件工程相關(guān)領(lǐng)域政策及指南進(jìn)行了修訂,以推進(jìn)軟件獲取、開發(fā)、運(yùn)營(yíng)和管理現(xiàn)代化。國(guó)防部軟件工程政策和指南文件可分為總體戰(zhàn)略、軟件工程和采辦、軟件工程和技術(shù)現(xiàn)代化3個(gè)層面。
表1 美國(guó)防部軟件工程相關(guān)政策及指南
圖1 傳統(tǒng)及現(xiàn)代軟件開發(fā)方法及其特征
02技術(shù)現(xiàn)代化
軟件技術(shù)正在軟件壽命周期、開發(fā)過(guò)程、軟件架構(gòu)、部署和封裝、軟件基礎(chǔ)設(shè)施5個(gè)方面發(fā)生變革。軟件開發(fā)過(guò)程正在從傳統(tǒng)的瀑布式向敏捷/DevSecOps開發(fā)方式轉(zhuǎn)變,從有明確開始和結(jié)束日期的項(xiàng)目轉(zhuǎn)變?yōu)槌掷m(xù)開發(fā)、迭代,以最終滿足用戶需求的產(chǎn)品。敏捷/DevSecOps開發(fā)方式提供快速交付能力,可降低風(fēng)險(xiǎn),采用微服務(wù)架構(gòu)支持多個(gè)團(tuán)隊(duì)獨(dú)立開發(fā)和部署,基于云的基礎(chǔ)架構(gòu)通過(guò)共享計(jì)算和網(wǎng)絡(luò)資源有效提高可擴(kuò)展性和靈活性。該指南對(duì)應(yīng)用程序接口、容器化技術(shù)、容器編排技術(shù)、微服務(wù)架構(gòu)、持續(xù)集成/持續(xù)交付管道等新興軟件技術(shù)進(jìn)行了介紹。
圖2 軟件技術(shù)變革的5個(gè)方面
國(guó)防部數(shù)字工程戰(zhàn)略(2018)列出了國(guó)防部數(shù)字工程倡議的5大戰(zhàn)略目標(biāo),以促進(jìn)數(shù)字化轉(zhuǎn)型計(jì)劃,分別是:規(guī)范化模型的開發(fā)、集成和使用,便于組織和項(xiàng)目決策;提供持久的權(quán)威真相源;集成創(chuàng)新技術(shù)來(lái)改進(jìn)工程實(shí)踐(大數(shù)據(jù)分析、認(rèn)知、計(jì)算、數(shù)字到物理融合);建立支撐基礎(chǔ)設(shè)施和環(huán)境,用于項(xiàng)目相關(guān)人員執(zhí)行活動(dòng)、協(xié)作和溝通;文化和人力資源的轉(zhuǎn)型,在裝備的整個(gè)生命周期的各個(gè)階段采納和支持?jǐn)?shù)字工程。
03挑戰(zhàn)與最佳實(shí)踐
瀑布式開發(fā)方法通過(guò)文檔和項(xiàng)目關(guān)鍵節(jié)點(diǎn)來(lái)管理軟件開發(fā)過(guò)程,而敏捷/DevSecOps方法通過(guò)自動(dòng)化開發(fā)、測(cè)試和部署來(lái)持續(xù)管理開發(fā)過(guò)程。該指南分析了在需求、體系結(jié)構(gòu)、設(shè)計(jì)、編碼、測(cè)試、系統(tǒng)集成及部署階段所面臨的挑戰(zhàn)以及最佳實(shí)踐,通過(guò)不斷進(jìn)行過(guò)程改進(jìn),實(shí)現(xiàn)快速、高質(zhì)量軟件交付。
04軟件度量標(biāo)準(zhǔn)使用及經(jīng)驗(yàn)教訓(xùn)
通過(guò)度量指標(biāo)跟蹤和監(jiān)控軟件開發(fā)過(guò)程,將有效降低軟件開發(fā)風(fēng)險(xiǎn),同時(shí),客觀指標(biāo)將使各級(jí)決策者了解開發(fā)進(jìn)展,并采取相應(yīng)對(duì)策。指南討論了適用國(guó)防部采辦指令5000.87《軟件采辦路徑操作》的軟件采辦路徑指標(biāo)、敏捷/開發(fā)運(yùn)營(yíng)流程及軟件工廠,并建議采用一致的軟件度量標(biāo)準(zhǔn)。從方案確定、開發(fā)流程、技術(shù)性能及任務(wù)有效性、軟件質(zhì)量、軟件開發(fā)效率、核心基準(zhǔn)指標(biāo)、軟件成熟度的評(píng)估和預(yù)測(cè)等方面定義了軟件度量標(biāo)準(zhǔn)及應(yīng)用。
圖3 軟件計(jì)劃與實(shí)際開發(fā)時(shí)間
圖4 軟件開發(fā)計(jì)劃與實(shí)際人員配置情況
05軟件工程和人員能力
該指南指出,國(guó)防部必須識(shí)別、雇傭和培訓(xùn)為現(xiàn)代化作戰(zhàn)開發(fā)軟件的專業(yè)技術(shù)人員。國(guó)防部負(fù)責(zé)人事和戰(zhàn)備的副部長(zhǎng)被授權(quán)制定和實(shí)施政策,建立程序,提供指導(dǎo)方針,在此基礎(chǔ)上建立了5項(xiàng)能力框架,將作為國(guó)防部基于能力的人事管理方法的基礎(chǔ)。
圖5 美國(guó)防部5項(xiàng)能力框架
06敏捷與DevSecOps軟件開發(fā)合同
敏捷開發(fā)方法關(guān)注軟件開發(fā)的共同目標(biāo)以及明確定義的角色和責(zé)任,以實(shí)現(xiàn)軟件開發(fā)各參與方持續(xù)的合作和參與,這種管理架構(gòu)被稱為“參與規(guī)則”,將有助于合同雙方靈活合作,創(chuàng)造性地實(shí)現(xiàn)共同目標(biāo)。Scrum模型為軟件開發(fā)制定了明確的需求,包括關(guān)鍵的項(xiàng)目角色(如產(chǎn)品負(fù)責(zé)人、開發(fā)團(tuán)隊(duì)等)、關(guān)鍵的計(jì)劃或會(huì)議(待辦事項(xiàng)、項(xiàng)目回顧等)、關(guān)鍵的項(xiàng)目文檔(如產(chǎn)品愿景、產(chǎn)品路線圖等)。同時(shí),從傳統(tǒng)瀑布式到敏捷開發(fā)實(shí)踐是逐漸過(guò)渡的,可通過(guò)敏捷合同級(jí)別和敏捷開發(fā)水平體現(xiàn),空軍的合同成熟度模型展示了敏捷合同成熟度各階段的特征。
圖6 敏捷合同成熟度模型
07人工智能與機(jī)器學(xué)習(xí)
該指南介紹了人工智能/機(jī)器學(xué)習(xí)的發(fā)展背景、首席數(shù)字和人工智能辦公室(CDAO)如何促進(jìn)人工智能的應(yīng)用,以及人工智能軟件發(fā)展愿景。指南指出,人工智能/機(jī)器學(xué)習(xí)在防御系統(tǒng)中發(fā)揮越來(lái)越重要的作用,軟件工程實(shí)踐將成為人工智能/機(jī)器學(xué)習(xí)開發(fā)和部署的關(guān)鍵使能因素。機(jī)器學(xué)習(xí)可提高軟件性能,縮短代碼編寫時(shí)間,并支持功能擴(kuò)展。但也存在易受到訓(xùn)練數(shù)據(jù)中偏差、不準(zhǔn)確的影響,以及易受到對(duì)抗性攻擊和環(huán)境欺騙等問(wèn)題。
首席數(shù)字和人工智能辦公室是加速人工智能能力交付的主要執(zhí)行機(jī)構(gòu),通過(guò)國(guó)家任務(wù)計(jì)劃(NMIs)和組件任務(wù)計(jì)劃(CMIs)向國(guó)防部提供人工智能能力。作為整體軟件架構(gòu)的一部分,人工智能將嵌入到數(shù)據(jù)處理微服務(wù)層,以提供支持作戰(zhàn)任務(wù)執(zhí)行的能力。而加速人工智能能力交付,則需要構(gòu)建所需的基礎(chǔ)設(shè)施,如采用云服務(wù)、基礎(chǔ)設(shè)施即服務(wù)(IaaS)架構(gòu)、高性能計(jì)算等。
圖7 人工智能/機(jī)器學(xué)習(xí)作為軟件系統(tǒng)的組成部分
圖8 人工智能應(yīng)用模型