馮濟(jì)舟, 吳 亮, 董世友
(中國電子科技集團(tuán)公司第三十八研究所,安徽 合肥 230088)
隨著信息技術(shù)的持續(xù)發(fā)展,現(xiàn)代系統(tǒng)的復(fù)雜程度和規(guī)模不斷增加[1],傳統(tǒng)的以文檔為中心的系統(tǒng)工程由于存在無法保證數(shù)據(jù)一致性、更改困難、難以描述活動(dòng)等諸多缺陷,已無法滿足工程方案設(shè)計(jì)的要求?;谀P偷南到y(tǒng)工程(Model-Based Systems Engineering,MBSE)正成為復(fù)雜系統(tǒng)設(shè)計(jì)的基礎(chǔ)。MBSE將模型置于整個(gè)系統(tǒng)工程過程的中心,從設(shè)計(jì)階段開始即通過模型的不斷演化、迭代遞增實(shí)現(xiàn)產(chǎn)品的系統(tǒng)設(shè)計(jì)[2-3]。相對于傳統(tǒng)以文檔為中心的系統(tǒng)工程,MBSE加強(qiáng)了投資者與團(tuán)隊(duì)成員之間溝通,提高了知識獲取的能力,具有更好的信息追溯性,增強(qiáng)工件重用以及降低開發(fā)風(fēng)險(xiǎn)等。模型驅(qū)動(dòng)的系統(tǒng)設(shè)計(jì)方法“被寄予希望能夠取代多年來被系統(tǒng)工程師所運(yùn)用的文檔中心方法,并最終被完整的集成進(jìn)系統(tǒng)工程過程”[4]。
當(dāng)前,系統(tǒng)工程建模的語言、工具和技術(shù)很多,如行為圖、IDEF0、N2圖等,然而這些建模方法使用的符號和語義不同,彼此之間不能互操作和重用。系統(tǒng)工程標(biāo)準(zhǔn)建模語言[7]正是在這個(gè)背景下,由國際系統(tǒng)工程學(xué)會(huì)和對象管理組織于2004年提出[5],在工程實(shí)踐中廣泛應(yīng)用,并取得了良好的應(yīng)用效果。
目前,對于沖突檢測方法主要有以下四種:1)形式化推理的方式,將設(shè)計(jì)轉(zhuǎn)化成邏輯描述,并刻畫其對象屬性,從而完成設(shè)計(jì)沖突檢測的技術(shù)[6],其難點(diǎn)在于設(shè)計(jì)轉(zhuǎn)化為邏輯描述及推理機(jī)的構(gòu)建;2)狀態(tài)轉(zhuǎn)換作為設(shè)計(jì)建模原則,利用狀態(tài)模型檢驗(yàn),將設(shè)計(jì)轉(zhuǎn)化為狀態(tài)轉(zhuǎn)換,通過檢測狀態(tài),判斷設(shè)計(jì)沖突問題[7],其難點(diǎn)在于設(shè)計(jì)無遺漏、客觀地轉(zhuǎn)換為狀態(tài)轉(zhuǎn)換;3)目標(biāo)作為設(shè)計(jì)建模原則,利用目標(biāo)語義及其啟發(fā)式規(guī)則,進(jìn)行設(shè)計(jì)沖突檢測[8-10],其難點(diǎn)在于目標(biāo)語義和啟發(fā)式規(guī)則的構(gòu)建及語義、規(guī)則集的完整性;4)利用圖文法[11],通過給定圖的性質(zhì)及語義,檢測處理用圖表達(dá)的設(shè)計(jì)描述的沖突問題,其難點(diǎn)在于各種不同業(yè)務(wù)領(lǐng)域定義的準(zhǔn)確性和完整性[12-13]。上述四種方法針對的是系統(tǒng)工程設(shè)計(jì)表達(dá)的不同方面,基于此方面表達(dá)形式的特性,建立模型和定義規(guī)則,并給予實(shí)現(xiàn)。因此,用上述四種方法建模,只能建立起由方法論規(guī)定的有限種的表達(dá)形式,每種表達(dá)形式都要建立模型和規(guī)則,且彼此之間的關(guān)系都是固定的,有時(shí)還需要建立語義庫。
由此可見,上述四種方法在系統(tǒng)工程設(shè)計(jì)表達(dá)方面的局限性,往往會(huì)造成系統(tǒng)工程設(shè)計(jì)表達(dá)內(nèi)容完整性的缺失,更無系統(tǒng)工程設(shè)計(jì)表達(dá)的標(biāo)準(zhǔn)性、系統(tǒng)性和復(fù)雜性的考慮。然而,系統(tǒng)工程設(shè)計(jì)分析是一個(gè)層次化的分析過程,從設(shè)計(jì)初期階段,提出比較模糊的戰(zhàn)略構(gòu)想,再到設(shè)計(jì)中期階段,逐步形成作戰(zhàn)設(shè)計(jì),推出能力設(shè)計(jì),最后再到設(shè)計(jì)末期階段,得出比較完整的系統(tǒng)設(shè)計(jì)方案設(shè)計(jì)。在整個(gè)過程中,都有獲取和定義系統(tǒng)工程設(shè)計(jì)的要求,因此系統(tǒng)工程設(shè)計(jì)沖突檢測方法要能涵蓋整個(gè)設(shè)計(jì)階段過程;其次,上述四種方法的建模粒度過細(xì),甚至要依靠第三方分析、設(shè)計(jì)工具,設(shè)計(jì)的轉(zhuǎn)化表達(dá)工作量大,規(guī)則集的構(gòu)造復(fù)雜,通用性差,從構(gòu)想到應(yīng)用的工程量相當(dāng)于一個(gè)專業(yè)化工具的開發(fā),且缺乏可擴(kuò)展性和復(fù)用性,極大影響了設(shè)計(jì)沖突檢測應(yīng)用及檢測執(zhí)行效果的驗(yàn)證;最后,采用語義庫的方式,將受限于所要表達(dá)的具體業(yè)務(wù),雖然沖突檢測限制在系統(tǒng)工程設(shè)計(jì)方面,但由于系統(tǒng)工程設(shè)計(jì)業(yè)務(wù)的差異,所需要的語義庫也就千差萬別,更無從評估所建語義庫的正確性和完整性對沖突檢測的影響。
本文針對以上問題,通過研究目前流行的系統(tǒng)工程設(shè)計(jì)中用于多視圖軍事需求模型要素表達(dá)的工具特性,抽象、歸類[14],提出了基于圖論方法的抽象建模,簡化了設(shè)計(jì)轉(zhuǎn)化表達(dá)的難度,提升了設(shè)計(jì)表達(dá)的直觀性,由圖論法抽象的模型,可以在各視圖軍事需求模型的設(shè)計(jì)表達(dá)工具中使用,提高了沖突檢測方法的通用性、可擴(kuò)展性和復(fù)用性,減少了工程量,加快了設(shè)計(jì)沖突檢測應(yīng)用及檢測執(zhí)行效果的驗(yàn)證。針對語義庫的劣勢,提出了采用矩陣和證據(jù)推斷表達(dá)實(shí)現(xiàn)圖論理論的方法,在無需額外資源的情況下,只憑借視角下系統(tǒng)工程設(shè)計(jì)表達(dá)矩陣中各元素本體的特點(diǎn)和規(guī)律,在系統(tǒng)設(shè)計(jì)運(yùn)行之前,進(jìn)行設(shè)計(jì)沖突檢測,避免沖突檢測的漏測和誤測[15]。
同視角下設(shè)計(jì)之間顯性沖突指構(gòu)成該視角的設(shè)計(jì)項(xiàng)之間存在矛盾或沖突的地方,可分為以下三種情況。如圖1(a)所示,設(shè)計(jì)項(xiàng)a2和a3互為上下級關(guān)系,那么設(shè)計(jì)項(xiàng)a2和a3可能會(huì)出現(xiàn)沖突;如圖1(b)所示,設(shè)計(jì)項(xiàng)a2是設(shè)計(jì)項(xiàng)a4、a5和a3的上級設(shè)計(jì),設(shè)計(jì)項(xiàng)a3是設(shè)計(jì)項(xiàng)a5的上級設(shè)計(jì),那么設(shè)計(jì)項(xiàng)a2和a3可能會(huì)出現(xiàn)了沖突;如圖1(c)所示,設(shè)計(jì)項(xiàng)a2和a3同時(shí)是設(shè)計(jì)項(xiàng)a4和a5的上級設(shè)計(jì),那么設(shè)計(jì)項(xiàng)a2和a3可能會(huì)出現(xiàn)了沖突。
圖1 同視角下設(shè)計(jì)之間顯性沖突示意圖
同視角下設(shè)計(jì)關(guān)系沖突指設(shè)計(jì)項(xiàng)關(guān)系存在矛盾或沖突的地方。比如對于設(shè)計(jì)項(xiàng),如果定義了設(shè)計(jì)項(xiàng)a1是設(shè)計(jì)項(xiàng)a3的上級設(shè)計(jì),設(shè)計(jì)項(xiàng)a3是設(shè)計(jì)項(xiàng)a5的上級設(shè)計(jì),那么設(shè)計(jì)項(xiàng)a5不應(yīng)該是設(shè)計(jì)項(xiàng)a1的上級設(shè)計(jì),否則設(shè)計(jì)項(xiàng)關(guān)系之間就會(huì)出現(xiàn)沖突。如圖2所示。
圖2 單個(gè)視角原子設(shè)計(jì)項(xiàng)關(guān)系沖突示意圖
不同視角下設(shè)計(jì)映射關(guān)系沖突指不同視角的設(shè)計(jì)項(xiàng)經(jīng)設(shè)計(jì)映射后,不同視角相關(guān)設(shè)計(jì)項(xiàng)的設(shè)計(jì)關(guān)系發(fā)生沖突的地方。比如對于設(shè)計(jì)集A={a1,a2,a3,a4,a5}和設(shè)計(jì)集B={b1,b2,b3,b4,b5}之間存在映射關(guān)系,如果在集合A中,定義了設(shè)計(jì)項(xiàng)a2是設(shè)計(jì)項(xiàng)a4的上級設(shè)計(jì)。在集合B中,定義了設(shè)計(jì)項(xiàng)b3是設(shè)計(jì)項(xiàng)b4、b5的上級設(shè)計(jì)。如果兩個(gè)集合間設(shè)計(jì)項(xiàng)a2與b4、b5具有映射關(guān)系,設(shè)計(jì)項(xiàng)a4與b3具有映射關(guān)系,那么集合A中的a2、a4與集合B中的b3、b4、b5之間的映射關(guān)系出現(xiàn)了沖突。如圖3所示。
圖3 不同視角下設(shè)計(jì)映射關(guān)系沖突示意圖
同視角下設(shè)計(jì)之間隱性沖突指當(dāng)多個(gè)視角之間的設(shè)計(jì)項(xiàng)存在追溯關(guān)系時(shí),其頂層視角的設(shè)計(jì)項(xiàng)之間存在沖突的地方。比如,在同一視角下設(shè)計(jì)項(xiàng)a1和b1,其a1由設(shè)計(jì)項(xiàng)aa1、aa2、aa3和aa4組成,aa2由設(shè)計(jì)項(xiàng)aaa1、aaa2、aaa3和aaa4組成,其b1由設(shè)計(jì)項(xiàng)aa1、bb2、aa3和aa4組成,bb2由設(shè)計(jì)項(xiàng)aaa1、aaa2、aaa3和bbb4組成。通過比較設(shè)計(jì)項(xiàng)a1與b1間組成結(jié)構(gòu)及內(nèi)容的相似性,以此推斷a1和b1存在沖突的可能性。如圖4所示。
圖4 同視角下設(shè)計(jì)之間隱性沖突示意圖
首先,基于多視圖軍事需求模型要素表達(dá)框架,對系統(tǒng)工程設(shè)計(jì)進(jìn)行描述;然后,依次對各個(gè)視角原子設(shè)計(jì)項(xiàng)進(jìn)行沖突檢測,若不存在沖突,再對各個(gè)視角原子設(shè)計(jì)項(xiàng)關(guān)系進(jìn)行沖突檢測,若不存在沖突,再對不同視角下設(shè)計(jì)映射關(guān)系沖突進(jìn)行檢測,若不存在沖突,再對多視角間設(shè)計(jì)追溯鏈進(jìn)行沖突檢測,若不存在沖突,便可保證信息中各設(shè)計(jì)的邏輯正確,不存在沖突。當(dāng)存在沖突時(shí),需系統(tǒng)標(biāo)注并自動(dòng)推送,由人完成設(shè)計(jì)沖突的判定和處理,如圖5所示。其中空菱形表示其任何一個(gè)輸入有效時(shí),均會(huì)觸發(fā)其輸出,而不需要所有輸入同時(shí)有效。
圖5 基于多視圖軍事需求模型要素表達(dá)框架設(shè)計(jì)的沖突檢測流程圖
設(shè)計(jì)項(xiàng)集合A={ai|i=1,2,…,n},其中ai為具體的設(shè)計(jì)項(xiàng),n為設(shè)計(jì)項(xiàng)數(shù)量。對于某具體設(shè)計(jì)項(xiàng)來說,該設(shè)計(jì)項(xiàng)與其他設(shè)計(jì)項(xiàng)之間的關(guān)系向量矩陣可表示為(ai1,ai2,…,ain),關(guān)系向量矩陣上各元素的取值,遵循以下規(guī)則:
建立n×n階的設(shè)計(jì)項(xiàng)關(guān)系矩陣A,n為設(shè)計(jì)項(xiàng)數(shù)量,判斷該矩陣A中各元素值,若第i行(1≤i≤n)表示的設(shè)計(jì)項(xiàng)是第j列(1≤j≤n)表示的設(shè)計(jì)項(xiàng)的上級設(shè)計(jì),則A(i,j)=1,否則A(i,j)=0。由此可建立矩陣A中的所有元素值。
首先建立設(shè)計(jì)項(xiàng)之間關(guān)系矩陣A,然后依次判斷矩陣A中的對稱元素是否同時(shí)為1,即矩陣中是否存在A(i,j)×A(j,i)=1,若有,則說明i對應(yīng)的設(shè)計(jì)項(xiàng)與j對應(yīng)的設(shè)計(jì)項(xiàng)存在沖突;接下來,查找由設(shè)計(jì)的傳遞性引起的關(guān)系沖突問題,調(diào)整關(guān)系矩陣A,將上一步發(fā)現(xiàn)的對稱元素均為1的元素置為0,即A(i,j)=A(j,i)=0,初始化與矩陣A等階的二維零矩陣A0和單位矩陣A1,循環(huán)進(jìn)行n-1次計(jì)算A1=A1×A和A0=A0+A1,最后A0=A0?AT,其中AT是A的轉(zhuǎn)置,?表示矩陣對應(yīng)位置元素相乘,若最后得出的A0(i,j)不為0,則說明i對應(yīng)的設(shè)計(jì)項(xiàng)和j對應(yīng)的設(shè)計(jì)項(xiàng)之間仍存在沖突。
判斷矩陣A中各元素值,若第i行(1≤i≤n)表示的設(shè)計(jì)項(xiàng)是第j列(1≤j≤n)表示的設(shè)計(jì)項(xiàng)的上級設(shè)計(jì),則A(i,j)=1,否則A(i,j)=0。由此可建立矩陣A中的所有元素值。構(gòu)建其中另外一個(gè)視角矩陣,各設(shè)計(jì)項(xiàng)之間關(guān)系的nB×nB的二維全矩陣B。判斷該矩陣B中各元素值,若第i行(1≤i≤n)表示的設(shè)計(jì)項(xiàng)是第j列(1≤j≤n)表示的設(shè)計(jì)項(xiàng)的上級設(shè)計(jì),則B(i,j)=1,否則B(i,j)=0。由此可建立矩陣B中的所有元素值。構(gòu)建兩個(gè)視角的nA×nB映射關(guān)系矩陣AB,判斷該矩陣AB中各元素值,若第i行(1≤i≤nA)表示的設(shè)計(jì)項(xiàng)與第j列(1≤j≤nB)表示的設(shè)計(jì)項(xiàng)之間存在設(shè)計(jì)映射關(guān)系,則AB(i,j)=1,否則AB(i,j)=0。由此可建立矩陣AB中的所有元素值。
首先,找出設(shè)計(jì)映射矩陣AB中任意不為0的元素,如(i,j);然后進(jìn)行兩個(gè)矩陣的計(jì)算,ABij=Ai×Bj和FAB=ABij?AB,其中Ai表示矩陣A抽取第i列的列向量矩陣,Bj表示從矩陣B抽取第j行的行向量矩陣,ABij表示基于矩陣A抽取的第i列的列向量與矩陣B抽取的第j行的行向量相乘得到的矩陣,?表示矩陣對應(yīng)位置元素相乘,遍歷FAB中各元素,若FAB(i,j)=1,且AB(i,j)=1,則表明該位置所對應(yīng)的設(shè)計(jì)映射關(guān)系存在沖突。按照以上步驟,依次遍歷矩陣AB中其他非0元素進(jìn)行計(jì)算判斷,得出所有具有映射關(guān)系的沖突情況結(jié)果。
以1.1節(jié)圖1(a)為例。設(shè)計(jì)項(xiàng)a2與設(shè)計(jì)項(xiàng)a3互為上下級關(guān)系,因此設(shè)計(jì)項(xiàng)a2關(guān)系向量中,其與設(shè)計(jì)項(xiàng)a3的關(guān)系值無法表示,同理,a3關(guān)系向量中,其與a2的關(guān)系也無法表示,兩個(gè)關(guān)系向量無法按照規(guī)則方法建立,因此說明此兩個(gè)設(shè)計(jì)項(xiàng)a2,a3存在設(shè)計(jì)沖突的可能。
由此,在同一個(gè)視角、同一層級的設(shè)計(jì)沖突問題即可檢測出來。
以1.1節(jié)圖2為例,建立單個(gè)視角下設(shè)計(jì)項(xiàng)之間的關(guān)系矩陣A,由于A(1,2)=A(2,1)=1,因此可以推斷出設(shè)計(jì)項(xiàng)a1和a2存在沖突。其值為
進(jìn)一步,查找設(shè)計(jì)關(guān)系傳遞造成的設(shè)計(jì)關(guān)系沖突,調(diào)整設(shè)計(jì)項(xiàng)之間的關(guān)系矩陣A,并初始化與A同階的零矩陣A0和單位矩陣A1,其值分別為
循環(huán)4次A1=A1×A和A0=A0+A1計(jì)算后,進(jìn)行A0=A0?AT計(jì)算,得出最終結(jié)果為
因此,a1與a5,a3與a1以及a5與a3之間存在設(shè)計(jì)關(guān)系沖突。
由此,同一視角、不同層級的設(shè)計(jì)沖突問題即可檢測出來。
以1.1節(jié)圖3為例,建立表示設(shè)計(jì)項(xiàng)之間關(guān)系的5×5矩陣A、5×5矩陣B以及表示兩個(gè)視角映射關(guān)系的5×5矩陣AB,其值分別為
找出矩陣AB中不為0的元素,以AB(4,3)為例,計(jì)算AB4,3=A4×B3和F4,3=AB4,3?AB,具體計(jì)算過程為
式中:A4表示矩陣A抽取第4列的列向量;B3表示矩陣B抽取第3行的行向量。
因?yàn)镕4,3(2,4)=1且AB(2,4)=1,F(xiàn)4,3(2,5)=1且AB(2,5)=1,因此可得出a4與b3的映射關(guān)系和a2與b4、b5之間的映射關(guān)系存在沖突。按照以上步驟,依次遍歷矩陣AB中其他非0元素進(jìn)行計(jì)算判斷,即可得出所有映射關(guān)系項(xiàng)是否存在沖突的結(jié)果。
由此,不同視角下對應(yīng)設(shè)計(jì)的邏輯關(guān)系不一致問題即可檢測出來。
由此,通過設(shè)計(jì)包含的視角集,推斷在同一視角下任意兩個(gè)設(shè)計(jì)是否沖突的問題即可檢測出來。
本文采用的方法與其他沖突檢測方法的比較,如表1所示。
表1 與其他檢測方法性能比對分析
針對系統(tǒng)工程設(shè)計(jì)的專業(yè)性、表達(dá)形式的多樣性、當(dāng)前沖突檢測方法通用性差、以及沖突檢測語義庫建設(shè)周期長建設(shè)難度大等問題,本文提出了以多視圖軍事需求模型要素表達(dá)框架為標(biāo)準(zhǔn),對系統(tǒng)工程設(shè)計(jì)描述進(jìn)行抽象并歸類,總結(jié)并建立了四種通用性強(qiáng)、表達(dá)形式統(tǒng)一的系統(tǒng)工程設(shè)計(jì)沖突模型,并通過圖論方法和矩陣方法,實(shí)現(xiàn)模型的物理形式表示和邏輯形式轉(zhuǎn)化,然后詳細(xì)描述了解決系統(tǒng)工程設(shè)計(jì)沖突檢測問題的啟發(fā)式算法和D-S證據(jù)推斷方法,實(shí)現(xiàn)了沖突的自動(dòng)檢測,結(jié)合應(yīng)用案例,驗(yàn)證方法的有效性和正確性。
1)提出的系統(tǒng)工程設(shè)計(jì)沖突檢測方法解決了目前系統(tǒng)工程設(shè)計(jì)表達(dá)的完整性、系統(tǒng)性、標(biāo)準(zhǔn)性和復(fù)雜性缺失的問題,簡化了設(shè)計(jì)轉(zhuǎn)化表達(dá)的難度,提升了設(shè)計(jì)表達(dá)的直觀性,提高了沖突檢測方法的通用性、可擴(kuò)展性和復(fù)用性,減少了工程量,加快了設(shè)計(jì)沖突檢測應(yīng)用及檢測執(zhí)行效果的驗(yàn)證,而且在無需額外資源的情況下,只憑系統(tǒng)工程設(shè)計(jì)表達(dá)矩陣中各元素本體的特點(diǎn)和規(guī)律,在系統(tǒng)設(shè)計(jì)運(yùn)行之前,進(jìn)行設(shè)計(jì)沖突檢測,避免沖突檢測的漏測和誤測。
2)本文所提的系統(tǒng)工程設(shè)計(jì)檢測方法,主要針對系統(tǒng)工程設(shè)計(jì)表達(dá)中具有通用性的活動(dòng)視角表達(dá)、狀態(tài)視角表達(dá)和能力視角表達(dá),不適用于時(shí)序視角表達(dá)內(nèi)容的檢測,日后可結(jié)合具體應(yīng)用場景,增加具有針對性的設(shè)計(jì)沖突檢測內(nèi)容,以及提出時(shí)序表達(dá)設(shè)計(jì)沖突檢測方法。