金航數(shù)碼科技有限責(zé)任公司 季洪新 陶福星 馬洪波
近幾十年來,從互聯(lián)網(wǎng)到物聯(lián)網(wǎng),從多應(yīng)用的電動(dòng)車到無人駕駛汽車等,一切的變革無不和數(shù)字電子技術(shù)的變革密切相關(guān),極大地改變了民用系統(tǒng)裝備的應(yīng)用方式,應(yīng)用的價(jià)值從簡(jiǎn)單的電子控制領(lǐng)域逐漸轉(zhuǎn)向了復(fù)雜數(shù)字電子控制領(lǐng)域,復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)越來越成為效能倍增的關(guān)鍵點(diǎn),而如果能在復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)構(gòu)建前就能驗(yàn)證其功能和非功能屬性,這樣會(huì)極大助力裝備的研發(fā),針對(duì)上述變化發(fā)展背景,基于復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)的架構(gòu)設(shè)計(jì),開展以架構(gòu)設(shè)計(jì)方法為指導(dǎo),針對(duì)復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)基于模型的架構(gòu)設(shè)計(jì)方法、復(fù)雜裝備系統(tǒng)模型化表達(dá)規(guī)范等研究工作尤為重要,本文提出了一種基于功能架構(gòu)、邏輯架構(gòu)、物理架構(gòu)的模型的復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)架構(gòu)設(shè)計(jì)方法,以開展具體的復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)的架構(gòu)設(shè)計(jì)工作。
復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)目前廣泛應(yīng)用于航空電子、航天器、汽車控制等諸多領(lǐng)域,這類系統(tǒng)具有資源受限、實(shí)時(shí)響應(yīng)、容錯(cuò)、專用硬件等特點(diǎn),對(duì)系統(tǒng)的非功能屬性(如實(shí)時(shí)性、可靠性、安全性等)有較高的要求,這類系統(tǒng)變得越來越復(fù)雜,相應(yīng)的開發(fā)周期和開發(fā)成本也大幅度提高。傳統(tǒng)的復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)開發(fā)已經(jīng)不能滿足當(dāng)前的需求,為此,引入了模型驅(qū)動(dòng)體系結(jié)構(gòu)(Model Driven Architecture,MDA),使設(shè)計(jì)研發(fā)過程從傳統(tǒng)的以代碼為核心提升到以架構(gòu)設(shè)計(jì)的模型為核心。用戶可以在模型階段就對(duì)系統(tǒng)的架構(gòu)設(shè)計(jì)進(jìn)行分析和驗(yàn)證,這樣可以大大縮短系統(tǒng)的開發(fā)周期,節(jié)約開發(fā)成本[1]。
復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)功能架構(gòu)是表示實(shí)現(xiàn)復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)目標(biāo)的功能與功能之間的關(guān)系。功能架構(gòu)從復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)需求出發(fā),不考慮具體的實(shí)現(xiàn)方式,從這個(gè)角度逐步展開,使得最終的系統(tǒng)不會(huì)偏離最初的目標(biāo)。
1.1.1 建立功能架構(gòu)
(1)功能元素分配。功能元素分配的目的是以系統(tǒng)用例分析為主要輸入,并結(jié)合分析結(jié)果從中識(shí)別并且定義出系統(tǒng)功能元素。
(2)建立功能層級(jí)模型。在完成系統(tǒng)功能分解之后,需要對(duì)各個(gè)功能進(jìn)行分析,將其轉(zhuǎn)化成基于系統(tǒng)功能層級(jí)的架構(gòu)模型。系統(tǒng)功能模塊的劃分原則是:高內(nèi)聚、低耦合。
(3)建立功能流描述模型。在確定了系統(tǒng)各功能元素之后,需要對(duì)各個(gè)功能元素的邏輯功能流進(jìn)行分析描述。
1.1.2 功能架構(gòu)接口分析
(1)描述功能交互。描述功能交互主要目的是通過分析系統(tǒng)各功能元素之間的交互進(jìn)而識(shí)別各個(gè)功能元素與外部的接口。
(2)描述功能接口組成。通過功能元素接口交互分析可得出各功能元素的外部交聯(lián)關(guān)系,基于這些交聯(lián)關(guān)系,可以用來定義系統(tǒng)各功能元素的接口,形成功能接口組成模型。
1.1.3 功能架構(gòu)動(dòng)態(tài)行為驗(yàn)證
在完成了系統(tǒng)功能架構(gòu)元素接口分析之后,需要對(duì)系統(tǒng)功能架構(gòu)進(jìn)行分析和驗(yàn)證,其目的主要是為了對(duì)系統(tǒng)功能架構(gòu)中各功能元素進(jìn)行進(jìn)一步分析,并在進(jìn)入邏輯架構(gòu)設(shè)計(jì)之前對(duì)功能架構(gòu)做一次綜合評(píng)價(jià),這樣可以使得邏輯架構(gòu)的設(shè)計(jì)建立在一個(gè)相對(duì)穩(wěn)定的功能架構(gòu)之上。常用方法是針對(duì)功能架構(gòu)中的每一個(gè)功能元素建立對(duì)應(yīng)的動(dòng)態(tài)行為模型,并通過動(dòng)態(tài)行為模型的仿真運(yùn)行對(duì)系統(tǒng)功能架構(gòu)進(jìn)行驗(yàn)證,以確保系統(tǒng)功能架構(gòu)的合理性。
1.1.4 識(shí)別功能架構(gòu)的衍生需求
在進(jìn)行功能架構(gòu)的設(shè)計(jì)過程中,隨著復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)人員對(duì)功能的分解和性能的分配,有可能會(huì)產(chǎn)生出新的需求。對(duì)于新產(chǎn)生的需求需要設(shè)計(jì)人員進(jìn)行識(shí)別,并且對(duì)其進(jìn)行定義、驗(yàn)證與確認(rèn),最終將新產(chǎn)生的需求錄入系統(tǒng)需求庫中。
1.2.1 建立邏輯架構(gòu)
(1)邏輯實(shí)體定義。邏輯實(shí)體定義就是為功能架構(gòu)中的功能或者功能組設(shè)計(jì)對(duì)應(yīng)的邏輯實(shí)體。
(2)邏輯架構(gòu)對(duì)功能架構(gòu)的追溯。根據(jù)功能架構(gòu)確定的功能集,定義邏輯實(shí)體,需要?jiǎng)?chuàng)建邏輯實(shí)體到功能集合的追溯關(guān)系,確保邏輯實(shí)體對(duì)功能架構(gòu)的功能集合全覆蓋,同時(shí)也確保邏輯架構(gòu)設(shè)計(jì)的可追溯性。
(3)性能指標(biāo)分配。在完成邏輯架構(gòu)對(duì)功能架構(gòu)追溯后,應(yīng)對(duì)分配到邏輯實(shí)體的功能需求定義性能指標(biāo)。
1.2.2 邏輯架構(gòu)接口分析
(1)描述邏輯實(shí)體交互。描述邏輯實(shí)體交互主要目的是通過分析系統(tǒng)各邏輯實(shí)體之間的交互,進(jìn)而識(shí)別各個(gè)邏輯實(shí)體與外部的接口。
(2)描述邏輯實(shí)體接口組成。邏輯實(shí)體是由功能分類重組而來,因此邏輯實(shí)體之間的接口類型可以從其所承載的功能接口進(jìn)行識(shí)別。
1.2.3 邏輯架構(gòu)動(dòng)態(tài)行為驗(yàn)證
針對(duì)邏輯架構(gòu)中的每一個(gè)邏輯實(shí)體建立對(duì)應(yīng)的動(dòng)態(tài)行為模型,并通過動(dòng)態(tài)行為模型的仿真運(yùn)行對(duì)系統(tǒng)邏輯架構(gòu)進(jìn)行驗(yàn)證,以確保系統(tǒng)邏輯架構(gòu)的合理性。
1.2.4 識(shí)別邏輯架構(gòu)的衍生需求
在邏輯架構(gòu)設(shè)計(jì)活動(dòng)中,由于對(duì)功能進(jìn)行分組,定義了邏輯實(shí)體,同時(shí)對(duì)性能指標(biāo)也進(jìn)行了分配,有可能會(huì)產(chǎn)生新的需求,這部分需求即為衍生需求,衍生需求也需要作為需求的一部分進(jìn)行管理。
1.3.1 建立物理架構(gòu)
(1)物理實(shí)體定義。物理實(shí)體應(yīng)該能夠滿足對(duì)應(yīng)邏輯實(shí)體的功能和性能。
(2)物理架構(gòu)向邏輯架構(gòu)追溯。根據(jù)邏輯架構(gòu)確定的邏輯實(shí)體,定義物理實(shí)體,需要?jiǎng)?chuàng)建物理實(shí)體到邏輯實(shí)體的追溯關(guān)系,確保物理實(shí)體對(duì)邏輯架構(gòu)的功能需求全覆蓋,同時(shí)也確保物理架構(gòu)設(shè)計(jì)的可追溯性。
(3)性能指標(biāo)分配。在物理架構(gòu)設(shè)計(jì)過程中,需要識(shí)別物理實(shí)體對(duì)應(yīng)邏輯實(shí)體性能指標(biāo),將邏輯架構(gòu)中邏輯實(shí)體的性能指標(biāo)分配和分解到各個(gè)物理實(shí)體。
1.3.2 物理架構(gòu)接口分析
系統(tǒng)級(jí)物理接口是不同系統(tǒng)之間的硬件接口。根據(jù)物理架構(gòu)中的功能、邏輯分析,需要識(shí)別分配物理實(shí)體物理接口。
1.3.3 識(shí)別物理架構(gòu)的衍生需求
在物理架構(gòu)設(shè)計(jì)活動(dòng)中,由于基于邏輯實(shí)體定義了物理實(shí)體,同時(shí)對(duì)性能指標(biāo)也進(jìn)行了分配,有可能會(huì)產(chǎn)生新的需求,這部分需求即為衍生需求,衍生需求也需要作為需求的一部分進(jìn)行管理。如何定義衍生需求,可以參考需求開發(fā)階段的需求定義的內(nèi)容。
基于模型的復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)架構(gòu)建模以架構(gòu)為核心進(jìn)行設(shè)計(jì)與分析,架構(gòu)模型作為權(quán)威數(shù)據(jù)真相源,為開展整個(gè)系統(tǒng)中其他視角的工作提供數(shù)據(jù)。復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)架構(gòu)建模主要基于系統(tǒng)建模語言(SysML)[2]支持系統(tǒng)設(shè)計(jì)師開展架構(gòu)模型的設(shè)計(jì),具體包括功能、功能交換項(xiàng)定義、端口、數(shù)據(jù)流路徑、物理架構(gòu)等。同時(shí),通過概要文件(Profile)擴(kuò)展使用未來機(jī)載能力環(huán)境(FACE)[3]和實(shí)現(xiàn)復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)建模分析(MARTE)[4]開展復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)特性的建模,包括硬件組成、軟件資源、執(zhí)行平臺(tái)特性等。
對(duì)于復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)架構(gòu)建模的描述,本研究只針對(duì)一種特定的建模方式,在此方式中SysML 構(gòu)建的系統(tǒng)架構(gòu)模型采用分層的設(shè)計(jì),并使用MARTE 和FACE元素描述復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)的執(zhí)行平臺(tái)特性以及數(shù)據(jù)模型。這種特定的建模方式將系統(tǒng)架構(gòu)分為功能架構(gòu)、邏輯架構(gòu)以及物理架構(gòu),其中功能架構(gòu)使用SysML 元素進(jìn)行描述,邏輯架構(gòu)由SysML 元素以及FACE 元素共同描述,物理架構(gòu)則使用MARTE 進(jìn)行描述。
功能架構(gòu)建模主要根據(jù)復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)的用例進(jìn)行功能分析與設(shè)計(jì),產(chǎn)生功能性的架構(gòu)。功能架構(gòu)中將抽象出功能組以及功能的概念,功能組將包含多個(gè)功能,這兩個(gè)概念均使用SysML 中的Block(或者使用Profile對(duì)Block 進(jìn)行封裝)進(jìn)行表示。為了區(qū)分代表功能組和功能的Block 與表示系統(tǒng)的Block,建議將其單獨(dú)使用包進(jìn)行組織。主要使用塊定義圖(BDD)描述功能組和功能的分解結(jié)構(gòu),功能組中的功能之間的數(shù)據(jù)流交互使用內(nèi)部塊圖(IBD)進(jìn)行描述,功能流使用活動(dòng)圖進(jìn)行描述,功能交互使用順序圖進(jìn)行描述,功能元素的動(dòng)態(tài)行為模型使用狀態(tài)圖進(jìn)行描述。表示功能Block 的Port 表示功能的信息流端口(主要是數(shù)據(jù)流或者事件流),連接Connection 用于表示功能(在IBD 圖使用Property 進(jìn)行表示)之間的信息流連接關(guān)系[5]。
邏輯架構(gòu)建模主要是對(duì)復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)的邏輯組成進(jìn)行建模設(shè)計(jì),使用邏輯組件的方式對(duì)系統(tǒng)組成進(jìn)行表示,并將功能架構(gòu)中的功能分配到邏輯組件中。使用BDD 圖描述系統(tǒng)的分解組成關(guān)系,最頂層的Block 表示系統(tǒng),其他的Block 表示邏輯組件(或子系統(tǒng)),Block上的Port 用于表示邏輯組件的數(shù)據(jù)交換端口,使用組成連接關(guān)系描述系統(tǒng)組成結(jié)構(gòu),邏輯組件可能會(huì)嵌套包含子邏輯組件。在邏輯架構(gòu)對(duì)應(yīng)的包中新建一個(gè)描述數(shù)據(jù)交換端口的Interface 包,數(shù)據(jù)交換端口具體數(shù)據(jù)建模在BDD 圖中采用FACE Profile 進(jìn)行。通過將邏輯組件的Port 的類型選擇為FACE 數(shù)據(jù)模型元素建立的數(shù)據(jù),實(shí)現(xiàn)FACE 數(shù)據(jù)模型和端口的關(guān)聯(lián)。使用IBD 圖對(duì)系統(tǒng)的頂層邏輯組件之間的交互關(guān)系以及每個(gè)頂層邏輯組件內(nèi)部的子組件之間和數(shù)據(jù)交互關(guān)系進(jìn)行描述。連接Connector用于表示邏輯組件(用Property 表示)之間的數(shù)據(jù)連接。使用IBD 圖進(jìn)行功能架構(gòu)中功能和邏輯架構(gòu)中邏輯組件之間的分配關(guān)系描述。在BDD 圖中將表示功能的Block 以Property 的形式拖入圖中,邏輯組件的Block 以同樣的方式拖入,使用Allocate 將功能分配到邏輯組件[6]。當(dāng)模型比較復(fù)雜Allocate 關(guān)系較多時(shí),可以使用追溯矩陣的形式描述功能到邏輯組件的分配關(guān)系。通過基于邏輯實(shí)體的狀態(tài)圖模型描述邏輯實(shí)體的動(dòng)態(tài)行為,進(jìn)行邏輯架構(gòu)的動(dòng)態(tài)行為驗(yàn)證。
物理架構(gòu)將引入MARTE,采用MARTE 中的元素具體的定義復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)的軟硬件組成和分配關(guān)系。使用BDD 圖描述系統(tǒng)的分解組成關(guān)系,最頂層的Block表示系統(tǒng),其他的Block 表示物理組件(或子系統(tǒng)),Block上的Port 用于表示物理組件的數(shù)據(jù)交換端口,使用組成連接關(guān)系描述系統(tǒng)組成結(jié)構(gòu)。使用SysML Block 表示系統(tǒng)和子系統(tǒng),使用MARTE 元素定義子系統(tǒng)的軟硬件組成。在Block 的內(nèi)部塊圖(IBD)中表示其內(nèi)部組成關(guān)系,其中,Property 若表示具體的軟硬件,則其類型應(yīng)為定義好的MARTE 元素;若Property 表示子系統(tǒng),則其類型為Block 定義的子系統(tǒng)類型。使用Allocate 描述MARTE元素間的軟硬件分配關(guān)系[7],使用追溯矩陣描述邏輯架構(gòu)(邏輯組件)到物理架構(gòu)(使用MARTE 元素表示的軟硬件)之間的分配關(guān)系。
研究總結(jié)形成一種嵌入式系統(tǒng)架構(gòu)設(shè)計(jì)的建模方法,其中嵌入式系統(tǒng)架構(gòu)建模包括功能架構(gòu)建模、邏輯架構(gòu)建模和物理架構(gòu)建模。功能架構(gòu)的建模可以使用SysML描述嵌入式系統(tǒng)的組成以及給內(nèi)部功能的行為;邏輯架構(gòu)建模描述邏輯組件以及外部組件之間的交換信息則參考FACE 中的數(shù)據(jù)模型進(jìn)行描述;物理架構(gòu)建模結(jié)合MARTE 可以對(duì)進(jìn)行嵌入式硬件組成、執(zhí)行平臺(tái)特性建模,定義計(jì)算平臺(tái)以及嵌入式軟件綁定關(guān)系?;趶?fù)雜實(shí)時(shí)嵌入式系統(tǒng)的架構(gòu)設(shè)計(jì)過程中所使用的SysML、FACE、MARTE 都是標(biāo)準(zhǔn)的、成熟的國際系統(tǒng)工程標(biāo)準(zhǔn),因此所提出的基于復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)架構(gòu)設(shè)計(jì)方法具備在數(shù)字技術(shù)環(huán)境中應(yīng)用的價(jià)值,能夠指導(dǎo)復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)進(jìn)行架構(gòu)設(shè)計(jì)工作。
數(shù)字技術(shù)與應(yīng)用2023年4期