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