顏樂鳴, 劉從越, 陳申平
中國(guó)電子科技集團(tuán)公司第七研究所, 廣州 510310
近年來,在航天、航空、通信電子等領(lǐng)域,系統(tǒng)需求復(fù)雜度和技術(shù)復(fù)雜度均不斷提升,越來越多的復(fù)雜系統(tǒng)隨之誕生.隨著“軟件定義裝備”時(shí)代的到來,這些系統(tǒng)的核心功能多由軟件實(shí)現(xiàn).系統(tǒng)功能的日漸復(fù)雜使得這些系統(tǒng)中的軟件也在向復(fù)雜系統(tǒng)演變,軟件已成為復(fù)雜系統(tǒng)的核心和靈魂,也是系統(tǒng)可信性和質(zhì)量的關(guān)鍵影響因素.
目前,一般系統(tǒng)工程和軟件工程是復(fù)雜系統(tǒng)軟件研制和管理的主流方法,通過系統(tǒng)分解將復(fù)雜問題轉(zhuǎn)化為相對(duì)簡(jiǎn)單的問題進(jìn)行處理,未考慮復(fù)雜系統(tǒng)的主要特征,存在一定局限性. 本文引入系統(tǒng)科學(xué)中的復(fù)雜性科學(xué)、網(wǎng)絡(luò)科學(xué)等理論以及敏捷方法和知識(shí)工程等技術(shù),對(duì)現(xiàn)有軟件工程方法進(jìn)行擴(kuò)展,建立一種復(fù)雜系統(tǒng)軟件生命周期模型.還將軟件分析設(shè)計(jì)的關(guān)注焦點(diǎn)從系統(tǒng)分解上升到系統(tǒng)整體,并建立與之相適應(yīng)的技術(shù)管理機(jī)制,以有效應(yīng)對(duì)開放性、涌現(xiàn)性、自組織性等復(fù)雜系統(tǒng)特征.
錢學(xué)森現(xiàn)代科學(xué)技術(shù)體系從橫向上看有11個(gè)大科學(xué)技術(shù)部門,分別是自然科學(xué)、社會(huì)科學(xué)、數(shù)學(xué)科學(xué)、系統(tǒng)科學(xué)、思維科學(xué)、行為科學(xué)、人體科學(xué)、軍事科學(xué)、地理科學(xué)、建筑科學(xué)、文藝?yán)碚揫1]. 作為科學(xué)技術(shù)體系中的一個(gè)部門,系統(tǒng)科學(xué)是研究系統(tǒng)的結(jié)構(gòu)、環(huán)境與功能關(guān)系,探索系統(tǒng)的演化與調(diào)控規(guī)律的科學(xué)[2]. 系統(tǒng)科學(xué)的發(fā)展經(jīng)歷了現(xiàn)代系統(tǒng)理論階段、自組織理論階段和復(fù)雜性科學(xué)階段[3].
文獻(xiàn)4依據(jù)錢學(xué)森現(xiàn)代科學(xué)技術(shù)體系,將系統(tǒng)科學(xué)分為3個(gè)層次,分別為:工程技術(shù)、技術(shù)科學(xué)和系統(tǒng)學(xué)[4].如圖1所示,系統(tǒng)工程是工程技術(shù)中的一個(gè)學(xué)科,而系統(tǒng)學(xué)是系統(tǒng)科學(xué)的基礎(chǔ)科學(xué),奠定了系統(tǒng)科學(xué)中工程技術(shù)和技術(shù)科學(xué)的理論基礎(chǔ).近年來發(fā)展起來的網(wǎng)絡(luò)科學(xué)和復(fù)雜性科學(xué)也屬于系統(tǒng)學(xué)的范疇.
以下簡(jiǎn)要介紹本文使用的3種系統(tǒng)科學(xué)相關(guān)方法和理率.
圖1 系統(tǒng)科學(xué)的層次結(jié)構(gòu)Fig.1 Hierarchical structure of systems science
錢學(xué)森于上世紀(jì)80年代提出的綜合集成法是我國(guó)系統(tǒng)科學(xué)領(lǐng)域極為重要的研究成果.該方法在整體論和還原論辯證統(tǒng)一的思想指導(dǎo)下,將定性方法和定量方法相結(jié)合,相互促進(jìn)去尋找解決問題的適當(dāng)框架,并對(duì)框架進(jìn)行數(shù)學(xué)驗(yàn)證[5].
綜合集成法與人工智能和知識(shí)工程相結(jié)合后,通過對(duì)眾多專家的經(jīng)驗(yàn)進(jìn)行整理和綜合分析及數(shù)學(xué)建模和驗(yàn)證,以有效解決復(fù)雜系統(tǒng)研制中存在的問題[6].目前已在我國(guó)復(fù)雜作戰(zhàn)系統(tǒng)的建模和實(shí)驗(yàn)工作中應(yīng)用,但尚未在軟件的研制和管理過程中應(yīng)用.
復(fù)雜性科學(xué)以復(fù)雜系統(tǒng)作為研究對(duì)象,試圖超越還原論,找到更有效的方法來揭示并描述復(fù)雜系統(tǒng)的運(yùn)行規(guī)律.到目前為止,復(fù)雜性科學(xué)尚未形成統(tǒng)一的、系統(tǒng)性的完整理論,有些概念也相互重疊,但現(xiàn)有理論對(duì)復(fù)雜系統(tǒng)的分析設(shè)計(jì)和驗(yàn)證仍具有一定的指導(dǎo)作用.
除復(fù)雜性科學(xué)之外,網(wǎng)絡(luò)科學(xué)也是系統(tǒng)學(xué)中的一個(gè)重要學(xué)科.網(wǎng)絡(luò)科學(xué)是專門研究復(fù)雜網(wǎng)絡(luò)系統(tǒng)的定性和定量規(guī)律的一門嶄新的交叉科學(xué)[7],近年來,越來越多的專家和組織致力于復(fù)雜網(wǎng)絡(luò)的研究.
復(fù)雜系統(tǒng)具有如下典型特征[8-9]:
(1) 整體性
系統(tǒng)要素之間的非線性作用是復(fù)雜系統(tǒng)存在的內(nèi)在原因,也是構(gòu)成系統(tǒng)主要特征的基礎(chǔ).單個(gè)要素遵循相對(duì)簡(jiǎn)單的原則,但是,眾多要素的共同作用則導(dǎo)致系統(tǒng)產(chǎn)生復(fù)雜、不斷變化且難以預(yù)測(cè)的行為模式.
(2) 自組織性(也稱動(dòng)態(tài)性、時(shí)變性)
復(fù)雜系統(tǒng)內(nèi)外部關(guān)系之間的相互作用非常復(fù)雜,使系統(tǒng)處于無(wú)序和有序、平衡態(tài)和非平衡態(tài)相互轉(zhuǎn)化的持續(xù)運(yùn)動(dòng)和變化中.因此,系統(tǒng)分析設(shè)計(jì)時(shí)不僅要描述獨(dú)立事件隨時(shí)間的變化,還要描述系統(tǒng)整體狀態(tài)隨時(shí)間的變化.
(3) 開放性
復(fù)雜系統(tǒng)不是封閉系統(tǒng),而是與其所處的復(fù)雜環(huán)境進(jìn)行大量復(fù)雜信息交互的開放系統(tǒng).系統(tǒng)與內(nèi)外部環(huán)境的接口和信息交互是動(dòng)態(tài)變化的,會(huì)因系統(tǒng)或其要素之間交互的屬性而突然涌現(xiàn),因此無(wú)法完全預(yù)先設(shè)計(jì).
(4) 涌現(xiàn)性
復(fù)雜系統(tǒng)中通常存在多種不同類型的要素,這些要素既相互獨(dú)立又相互依存,構(gòu)成錯(cuò)綜復(fù)雜的關(guān)系.涌現(xiàn)式屬性產(chǎn)生于系統(tǒng)要素之間的交互,這些屬性無(wú)法預(yù)測(cè),也無(wú)法從要素屬性推導(dǎo)出來,因此增加了復(fù)雜系統(tǒng)的不確定性和不可預(yù)測(cè)性.涌現(xiàn)性是系統(tǒng)層面的屬性,與部件無(wú)關(guān),只存在于系統(tǒng)部件或行為的關(guān)系及交互之中.涌現(xiàn)性主要取決于設(shè)計(jì)的魯棒性、系統(tǒng)的內(nèi)外部通信以及系統(tǒng)的自我學(xué)習(xí).
目前,復(fù)雜系統(tǒng)軟件的研制和管理主要采用基于一般系統(tǒng)工程和軟件工程的方法,即根據(jù)系統(tǒng)整體邏輯框架,構(gòu)建結(jié)構(gòu)化的系統(tǒng)工程流程,用于控制各個(gè)工程技術(shù)、領(lǐng)域設(shè)計(jì)和驗(yàn)證過程,讓系統(tǒng)所有構(gòu)成元素相互配合與協(xié)調(diào),得到成本最低、技術(shù)最優(yōu)、時(shí)間最少、運(yùn)行最穩(wěn)的工程研制過程[10].此類方法具有如下3個(gè)特征[11]:
1)系統(tǒng)性,提供一系列必須完成的順序步驟(有時(shí)是嚴(yán)格的線性形式);2)分解性,將系統(tǒng)整體分解為模塊;3)說明性,提供詳細(xì)的應(yīng)用方向.
這類方法可用于簡(jiǎn)單系統(tǒng)的分析設(shè)計(jì),但難以應(yīng)對(duì)復(fù)雜系統(tǒng)的涌現(xiàn)性、開放性、自組織性等基本特征所帶來的系統(tǒng)層面問題,因此用于復(fù)雜系統(tǒng)軟件研制和管理時(shí)存在一定局限性,會(huì)導(dǎo)致軟件存在質(zhì)量和安全隱患.
本文根據(jù)復(fù)雜系統(tǒng)具有的整體性、自組織性、開放性和涌現(xiàn)性等基本特征,在現(xiàn)有系統(tǒng)工程和軟件工程方法的基礎(chǔ)上,引入綜合集成法、知識(shí)工程和敏捷方法,建立了一種適用于復(fù)雜系統(tǒng)的生命周期模型,并結(jié)合網(wǎng)絡(luò)科學(xué)、復(fù)雜性科學(xué)等系統(tǒng)學(xué)理論,提出了復(fù)雜系統(tǒng)軟件分析設(shè)計(jì)方法的擴(kuò)展思路,以有效應(yīng)對(duì)復(fù)雜系統(tǒng)的特征.
該模型的主要構(gòu)建思路如下:
(1)將軟件工程與綜合集成法和知識(shí)工程相結(jié)合
將綜合集成法的計(jì)算機(jī)體系、專家體系和知識(shí)體系以及主要步驟與軟件工程技術(shù)活動(dòng)相結(jié)合,并通過知識(shí)工程建立這三類體系之間的平臺(tái),實(shí)現(xiàn)知識(shí)的高效獲取、存儲(chǔ)、共享、應(yīng)用和更新.
(2)將系統(tǒng)學(xué)與軟件工程相結(jié)合
系統(tǒng)學(xué)方法主要用于軟件的頂層需求分析和頂層架構(gòu)設(shè)計(jì)等宏觀層面,實(shí)現(xiàn)需求和體系結(jié)構(gòu)隨時(shí)間的不斷演變;軟件工程則主要用于軟件生命周期模型的定義和管理、設(shè)計(jì)實(shí)現(xiàn)等微觀層面.通過整體論與還原論的結(jié)合和優(yōu)勢(shì)互補(bǔ),在規(guī)范軟件研制過程的同時(shí)有效應(yīng)對(duì)涌現(xiàn)性、開放性等相關(guān)問題.
(3)將開發(fā)與運(yùn)行維護(hù)相結(jié)合
綜合DevOps和DODAF 2.0的理念,通過對(duì)分析設(shè)計(jì)建模的要求來綜合考慮并平衡顧客、開發(fā)、運(yùn)維等不同維度的需求.DevOps通過短周期迭代來實(shí)現(xiàn)軟件產(chǎn)品的增量式開發(fā)、驗(yàn)證、發(fā)布和運(yùn)行維護(hù)[12].DODAF 2.0中的體系結(jié)構(gòu)設(shè)計(jì),從縱向的時(shí)間軸上不僅反映當(dāng)前的系統(tǒng),還考慮未來的系統(tǒng)演變,即要建立基線視角和未來視角,以及從基線視角到未來視角的演進(jìn)路線;從橫向上則綜合考慮能力、運(yùn)行、服務(wù)、系統(tǒng)等多維視角[10].
圖2描述了基于系統(tǒng)科學(xué)和敏捷方法的復(fù)雜系統(tǒng)軟件生命周期模型的基本架構(gòu).本模型以用戶需求和上層系統(tǒng)策劃作為輸入,通過多輪時(shí)間盒驅(qū)動(dòng)的短周期迭代(通常小于一個(gè)月)快速、增量地發(fā)布軟件產(chǎn)品.每次迭代的活動(dòng)和完成準(zhǔn)則可根據(jù)軟件的特殊要求來靈活定義,既可以是一次完整的分析、設(shè)計(jì)、編碼、驗(yàn)證、發(fā)布、運(yùn)行和維護(hù)過程,也可以只包括其中的部分技術(shù)活動(dòng).
模型由總體策劃階段和多次迭代組成,每個(gè)迭代均視為生命周期中的一個(gè)階段,圖3描述了模型中多次迭代內(nèi)的活動(dòng).迭代內(nèi)既包含軟件開發(fā)、驗(yàn)證、運(yùn)維等技術(shù)活動(dòng),也包含策劃、監(jiān)控等管理活動(dòng).需求管理活動(dòng)則貫穿軟件研制全生命周期,結(jié)合短周期迭代,及時(shí)獲取顧客需求及顧客對(duì)軟件產(chǎn)品的反饋,從而實(shí)現(xiàn)對(duì)所有需求的及時(shí)、有效管控.此外,測(cè)量分析、配置管理和質(zhì)量保證等技術(shù)管理活動(dòng)也貫穿全生命周期,以充分利用采集和分析的信息進(jìn)行決策,確保過程質(zhì)量和技術(shù)狀態(tài)受控.
在第一次迭代前進(jìn)行總體策劃,確定階段及主要活動(dòng)進(jìn)度,明確每次迭代的完成準(zhǔn)則,并對(duì)策劃內(nèi)容進(jìn)行評(píng)審.每次迭代啟動(dòng)之初,先進(jìn)行本次迭代的策劃,即階段策劃.迭代內(nèi)部通常以每日例會(huì)的形式對(duì)階段策劃的執(zhí)行情況進(jìn)行監(jiān)控.每次迭代結(jié)束后,采用階段評(píng)審、里程碑評(píng)審等形式對(duì)總體策劃的執(zhí)行情況進(jìn)行監(jiān)控.
圖2 復(fù)雜系統(tǒng)軟件生命周期模型Fig.2 Software life cycle model of complex systems
圖3 迭代活動(dòng)圖Fig.3 The activity of iteration
綜合集成法和知識(shí)工程也貫穿軟件的全生命周期,既可用在迭代內(nèi)部,也可跨多個(gè)迭代使用.本文將綜合集成法的具體做法、敏捷方法、知識(shí)工程以及系統(tǒng)學(xué)理論相結(jié)合來實(shí)現(xiàn)顧客需求向系統(tǒng)模型的轉(zhuǎn)換:第一步是利用知識(shí)工程和大數(shù)據(jù)來整理并提煉顧客需求和領(lǐng)域?qū)<业慕?jīng)驗(yàn),然后自上而下定義系統(tǒng)的顧客需求和技術(shù)需求;第二步是運(yùn)用進(jìn)化算法和機(jī)器學(xué)習(xí)算法等人工智能方法以及復(fù)雜性科學(xué)、網(wǎng)絡(luò)科學(xué)等理論進(jìn)行系統(tǒng)建模和仿真;第三步是結(jié)合敏捷方法,對(duì)系統(tǒng)模型和軟件代碼進(jìn)行領(lǐng)域?qū)<覅⑴c的反復(fù)驗(yàn)證,并通過快速反饋不斷優(yōu)化系統(tǒng)模型.
該模型具有如下特點(diǎn):
(1)持續(xù)、增量地實(shí)現(xiàn)軟件需求
為適應(yīng)復(fù)雜系統(tǒng)軟件因不可預(yù)測(cè)而帶來的需求不確定度高且變更頻繁的特點(diǎn),采用迭代增量模式.在項(xiàng)目啟動(dòng)初期,無(wú)需確定所有需求,也無(wú)需明確與系統(tǒng)和硬件設(shè)計(jì)相關(guān)的所有需求細(xì)節(jié),只需根據(jù)已明確的需求建立初始功能基線,并從顧客視角確定每項(xiàng)需求的優(yōu)先級(jí).基于需求優(yōu)先級(jí)進(jìn)行項(xiàng)目總體策劃,先完成高優(yōu)先級(jí)的需求以及對(duì)系統(tǒng)質(zhì)量至關(guān)重要的設(shè)計(jì)約束和通用質(zhì)量特性等總體要求,并在后續(xù)迭代中與新增需求一起反復(fù)進(jìn)行驗(yàn)證,從而確保關(guān)鍵需求的質(zhì)量.每次迭代的輸出均是上次迭代輸出的增量,并吸納前續(xù)迭代中獲取的來自各方的反饋來持續(xù)完善及細(xì)化需求,持續(xù)改進(jìn)和交付軟件產(chǎn)品.因此功能基線和分配基線也在不斷演變.
(2)覆蓋技術(shù)過程和技術(shù)管理過程
ISO/IEC/IEEE15288:2015 《Systems and software engineering ——System life cycle process》(系統(tǒng)生命周期過程應(yīng)用指南)[13]和ISO/IEC 12207:2017 《Systems and software engineering ——Software life cycle process》(軟件生命周期過程應(yīng)用指南)[14]兩項(xiàng)國(guó)際標(biāo)準(zhǔn)均將生命周期中執(zhí)行的活動(dòng)劃分為四類過程:協(xié)定過程、組織的項(xiàng)目使能過程、技術(shù)管理過程和技術(shù)過程.其中,技術(shù)管理過程和技術(shù)過程是項(xiàng)目研制過程中最核心的兩類活動(dòng),且通常并行或迭代進(jìn)行.
本模型中的迭代不僅覆蓋軟件分析、設(shè)計(jì)、編碼及驗(yàn)證等技術(shù)活動(dòng)以及發(fā)布、部署和運(yùn)維等保障活動(dòng),還覆蓋了項(xiàng)目策劃、項(xiàng)目監(jiān)控、配置管理和測(cè)量分析等技術(shù)管理活動(dòng),且策劃的重點(diǎn)由預(yù)定義計(jì)劃轉(zhuǎn)為對(duì)變化的及時(shí)管理和控制,既聚焦用戶需求的實(shí)現(xiàn),又關(guān)注過程活動(dòng)要素,以實(shí)現(xiàn)對(duì)需求、過程和產(chǎn)品的有效控制.
(3)實(shí)現(xiàn)軟件開發(fā)、測(cè)試和運(yùn)維的高度集成
DevOps通過軟件開發(fā)人員和維護(hù)人員之間的頻繁溝通、緊密協(xié)作和高度集成,以加快軟件交付進(jìn)度,提升交付產(chǎn)品質(zhì)量[12].本模型基于DevOps的理念,允許在一次迭代中進(jìn)行軟件的開發(fā)、測(cè)試和運(yùn)行維護(hù),并明確維護(hù)人員與開發(fā)人員之間的溝通機(jī)制.
此外,系統(tǒng)建模時(shí)綜合考慮設(shè)計(jì)維度和運(yùn)行維度以建立系統(tǒng)的完整多維視圖.設(shè)計(jì)維度反映預(yù)定性能目標(biāo)的滿足情況,運(yùn)行維度反映軟件交付用戶后的運(yùn)行情況.這兩個(gè)維度與業(yè)務(wù)目標(biāo)緊密結(jié)合,實(shí)現(xiàn)軟件開發(fā)和運(yùn)維的相互促進(jìn)相互補(bǔ)充,并通過迭代不斷增量或優(yōu)化,達(dá)到縮短開發(fā)周期、增加部署頻率、保證發(fā)布軟件質(zhì)量的目的.
分析和設(shè)計(jì)是軟件生命周期中最重要的兩項(xiàng)活動(dòng),對(duì)軟件可信性和質(zhì)量起決定性影響.但是,現(xiàn)有的軟件分析設(shè)計(jì)方法未充分考慮復(fù)雜系統(tǒng)的特征,存在質(zhì)量隱患.為此,本模型運(yùn)用系統(tǒng)學(xué)理論對(duì)復(fù)雜系統(tǒng)軟件的分析設(shè)計(jì)方法提出如下擴(kuò)展思路:
(1)開放性分析設(shè)計(jì)
復(fù)雜系統(tǒng)需要與其所處的復(fù)雜外部環(huán)境進(jìn)行大量信息交互,且接口和交互的信息是動(dòng)態(tài)變化的,無(wú)法完全預(yù)先設(shè)計(jì).環(huán)境變化將導(dǎo)致系統(tǒng)功能發(fā)生變化,進(jìn)而改變體系結(jié)構(gòu).系統(tǒng)越開放,系統(tǒng)應(yīng)對(duì)變化和產(chǎn)生新秩序的能力就越強(qiáng).在復(fù)雜系統(tǒng)中,隨機(jī)擾動(dòng)和小事件往往起到?jīng)Q定性作用,會(huì)對(duì)系統(tǒng)產(chǎn)生重大影響,無(wú)窮多的小因素大大增加了復(fù)雜系統(tǒng)建模的難度.因此應(yīng)加強(qiáng)系統(tǒng)外部接口的分析設(shè)計(jì),特別是分析接口中的各種變量對(duì)系統(tǒng)可能產(chǎn)生的非線性影響.
(2)魯棒性分析設(shè)計(jì)
常規(guī)的風(fēng)險(xiǎn)管理難以有效應(yīng)對(duì)涌現(xiàn)性相關(guān)風(fēng)險(xiǎn),而系統(tǒng)的反饋機(jī)制決定了系統(tǒng)的魯棒性反饋對(duì)于系統(tǒng)進(jìn)化來說尤為重要,利用反饋信息不斷優(yōu)化自身的進(jìn)化算法具有天然的反脆弱性.因此系統(tǒng)設(shè)計(jì)時(shí)必須考慮建立快速有效的信息反饋機(jī)制,并采用進(jìn)化算法來提升系統(tǒng)設(shè)計(jì)的魯棒性.短周期的迭代試錯(cuò)也有助于系統(tǒng)設(shè)計(jì)的持續(xù)快速優(yōu)化,從而提升適應(yīng)性和反脆弱能力.
(3)系統(tǒng)層級(jí)劃分及內(nèi)部通信設(shè)計(jì)
對(duì)復(fù)雜系統(tǒng)各個(gè)層級(jí)而言,要素之間的關(guān)系比要素本身的特征更重要.每一層內(nèi)部及不同層之間的接口設(shè)計(jì)是涌現(xiàn)性和整體性設(shè)計(jì)的重要部分.因此,應(yīng)結(jié)合復(fù)雜性科學(xué)和網(wǎng)絡(luò)科學(xué)的理論來對(duì)軟件架構(gòu)進(jìn)行建模,并對(duì)不同層級(jí)間以及同層要素間的接口進(jìn)行分析設(shè)計(jì).此外,還應(yīng)充分分析自組織性所引發(fā)的需求和體系架構(gòu)隨時(shí)間變化的規(guī)律,考慮系統(tǒng)的多要素、多變量以及相互間的依賴關(guān)系,作為軟件架構(gòu)設(shè)計(jì)的基礎(chǔ).
(4)體系的自我學(xué)習(xí)和演化分析設(shè)計(jì)
復(fù)雜系統(tǒng)的自我學(xué)習(xí)和自我演化能力決定了體系的涌現(xiàn)性和自組織性,系統(tǒng)必須對(duì)內(nèi)外部環(huán)境持續(xù)進(jìn)行掃描和分析,識(shí)別影響體系性能的涌現(xiàn)式趨勢(shì)和條件,并通過機(jī)器學(xué)習(xí)、遞歸算法以及正反饋機(jī)制,確保體系能自適應(yīng)地應(yīng)對(duì)涌現(xiàn)出的特征.體系結(jié)構(gòu)的自我演化則要求對(duì)體系結(jié)構(gòu)的演化歷史進(jìn)行記錄,并通過對(duì)體系結(jié)構(gòu)演變和體系內(nèi)外部環(huán)境的綜合分析,來設(shè)計(jì)未來的體系結(jié)構(gòu).系統(tǒng)的學(xué)習(xí)功能包括識(shí)別非預(yù)期的結(jié)果、形式、結(jié)構(gòu)或?qū)傩裕幚韺?duì)系統(tǒng)及其子系統(tǒng)有意義的結(jié)果,以及增加適當(dāng)?shù)捻憫?yīng)[11].應(yīng)結(jié)合知識(shí)工程,通過多次迭代獲取與軟件分析、設(shè)計(jì)、驗(yàn)證和確認(rèn)等活動(dòng)相關(guān)的知識(shí),并建立知識(shí)的表示和使用機(jī)制來實(shí)現(xiàn)系統(tǒng)的學(xué)習(xí)功能.
(5)提升系統(tǒng)分析設(shè)計(jì)的預(yù)測(cè)性
復(fù)雜系統(tǒng)的規(guī)律可以事后總結(jié),但基本不具備可預(yù)測(cè)性,最多只能對(duì)短期、局部進(jìn)行預(yù)測(cè).本模型除采用綜合集成法充分利用專家的經(jīng)驗(yàn)和建議得到相對(duì)準(zhǔn)確的先驗(yàn)概率,再結(jié)合機(jī)器學(xué)習(xí)算法來建立系統(tǒng)模型以預(yù)測(cè)系統(tǒng)未來的需求和結(jié)構(gòu)變化外,還通過短周期迭代來及時(shí)處理短期和局部的預(yù)測(cè),并結(jié)合風(fēng)險(xiǎn)管理加強(qiáng)技術(shù)風(fēng)險(xiǎn)的識(shí)別和分析,以應(yīng)對(duì)復(fù)雜系統(tǒng)的不確定性.
本文基于系統(tǒng)科學(xué)相關(guān)理論方法、知識(shí)工程及敏捷方法,對(duì)一般系統(tǒng)工程和軟件工程方法進(jìn)行擴(kuò)展,建立了一種適用于復(fù)雜系統(tǒng)軟件的生命周期模型,并提出了軟件分析設(shè)計(jì)的擴(kuò)展要求,以保證軟件的可信性和質(zhì)量.
后續(xù)將在現(xiàn)有研究基礎(chǔ)上,繼續(xù)開展系統(tǒng)學(xué)理論,以及知識(shí)工程、敏捷方法、DevOps等工程技術(shù)方法在復(fù)雜系統(tǒng)研制和運(yùn)維中的應(yīng)用研究,特別是在軟件可信性設(shè)計(jì)中的應(yīng)用,并將在工程型號(hào)項(xiàng)目中對(duì)研究成果進(jìn)行驗(yàn)證,根據(jù)項(xiàng)目反饋對(duì)模型進(jìn)行不斷完善和優(yōu)化,提升模型的實(shí)用性和適應(yīng)性.