王榮 陳剛
摘要:當前MBSE的研究熱點聚焦于系統(tǒng)工程的技術(shù)流程領(lǐng)域,而缺乏將早期設(shè)計階段各類工作與技術(shù)管理流程工作相結(jié)合的研究。但在整個系統(tǒng)的全生命周期里,將風險識別盡量提前到早期階段,可以增強系統(tǒng)設(shè)計的健壯性。針對此問題,本文研究了SysML活動圖和有向圖形式化定義的相似性,提出了活動圖轉(zhuǎn)換為有向圖的規(guī)則;分析了活動網(wǎng)絡(luò)中活動間相互耦合,會造成單個活動的時間風險在網(wǎng)絡(luò)中擴散,針對此定義了活動的關(guān)聯(lián)度和影響度,并提出了最大影響度路徑和結(jié)合統(tǒng)計分析的分級風險環(huán)節(jié)識別方法。
關(guān)鍵詞:SysML活動圖;有向圖;關(guān)聯(lián)度;影響度;最大影響度路徑;風險識別
中圖分類號:N945 文獻標識碼:A 文章編號:1007-9416(2020)07-0059-05
MBSE方法是系統(tǒng)工程領(lǐng)域的一個重要方向,它通過形式化的建模來支持系統(tǒng)全生命期的系統(tǒng)工程活動,包括系統(tǒng)的需求、設(shè)計、分析、驗證和確認[1]。當前MBSE的研究熱點集中在技術(shù)流程流域,專注于系統(tǒng)架構(gòu)的開發(fā)。而當前在系統(tǒng)工程的兩個組成部分之一的技術(shù)管理流程流域,缺乏相關(guān)的MBSE研究。在系統(tǒng)工程領(lǐng)域,SysML是最新且被應(yīng)用得最多的建模語言,被視為MBSE的三大基石之一。針對系統(tǒng)工程中系統(tǒng)建模的特點和需求,SysML提供了可視化、圖形化的技術(shù)支持,目前在國外已廣泛應(yīng)用于復雜大系統(tǒng)的早期設(shè)計階段——需求分析、功能分析和架構(gòu)設(shè)計。
王松峰研究了基于Petri網(wǎng)的SysML活動圖分析與驗證方法,提出了SysML活動圖轉(zhuǎn)化為相應(yīng)Petri網(wǎng)可執(zhí)行模型的6種轉(zhuǎn)換規(guī)則,并用Petri網(wǎng)的分析技術(shù)對轉(zhuǎn)化后的模型進行仿真與分析[2]。孫博和胡良文提出了一種驗證SysML活動圖的框架,該框架根據(jù)已構(gòu)建的模型,將多層次活動圖分解轉(zhuǎn)換為Spin的輸入模型,并對相關(guān)子圖進行重組和驗證,并進行了實驗驗證[3]。Jun等探討了利用UML活動圖對軟件性能進行建模,然后轉(zhuǎn)換為隨機Petri網(wǎng)模型,這樣在軟件開發(fā)前期就可以利用Petri網(wǎng)的理論方法進行軟件性能評估,改進軟件設(shè)計中的性能問題[4]。
活動圖不僅適于描述具有并發(fā)活動的工作流程,而且還可以定義參與到活動的對象及其角色、狀態(tài)和屬性的變化,因此活動圖能很完整的描述系統(tǒng)中涉及的各類活動[5]。本文著重于研究SysML活動圖與技術(shù)管理流程中的風險識別的關(guān)聯(lián),并提出了一種從SysML活動圖識別系統(tǒng)風險的方法。
1 SysML活動圖
1.1 SysML與活動圖簡介
2004年8月OMG發(fā)布了由統(tǒng)一建模語言(Unified Modeling Language,UML)衍生的SysML0.8版本,并將SysML作為系統(tǒng)工程領(lǐng)域的標準建模語言[1]。系統(tǒng)工程師在創(chuàng)建系統(tǒng)模型時,SysML便于工程師將其設(shè)計思想可視化和形式化,在系統(tǒng)全生命周期中提高與利益相關(guān)者的溝通效率和準確性,同時其形式化固有特性為工程師提供了系統(tǒng)級的仿真和驗證方法[6]。
活動圖中工作流始于開始節(jié)點,結(jié)束于終止節(jié)點,活動之間的轉(zhuǎn)換用流來連接,對象之間的信息用對象流連接,通過一系列控制動作,描述了系統(tǒng)工作時內(nèi)部的各類動作。因此深入分析活動圖和風險環(huán)節(jié)識別的聯(lián)系,可以將風險環(huán)節(jié)識別提前到早期設(shè)計階段,以增強系統(tǒng)規(guī)劃的健壯性。
1.2 活動圖形式化定義
SysML活動圖的元素由節(jié)點(Node)和邊(Edge)組成,節(jié)點包括動作節(jié)點(Action Node)、控制節(jié)點(Control Node)和對象節(jié)點(Object Node)。控制節(jié)點包括起始節(jié)點(Initial Node)、終止節(jié)點(Activity Final Node)、決策節(jié)點(Decision Node)、合并節(jié)點(Merge Node)、分叉節(jié)點(Fork Node)和整合節(jié)點(Join Node)。邊包括對象流(Object Flow)和控制流(Control Flow)。
定義活動圖(Activity Diagram,AD):AD=(N,E,C,F(xiàn)L)[7]。其中:
(1)N={A,O,DN,MN,F(xiàn)N,JN,In,AFn}為非空有限的節(jié)點集,A={a1,a2,…,ak}表示有限動作節(jié)點集,O={o1,o2,…,oh}表示有限對象節(jié)點集,DN={d1,d2,…,ds}表示決策節(jié)點集,MN={m1,m2,…,mt}表示合并節(jié)點集,F(xiàn)N={f1,f2,…,fn}表示分叉節(jié)點集,JN={j1,j2,…,jn}表示匯合節(jié)點集,分叉節(jié)點和匯合節(jié)點總是成對出現(xiàn),In表示初始節(jié)點,AFn表示終止節(jié)點。對于單終止節(jié)點,直接轉(zhuǎn)換為無出度的頂點;對于多終止節(jié)點,先合并為單終止節(jié)點,再轉(zhuǎn)換為無出度的頂點。
(2)E={e1,e2,…,ew}表示非空邊集。
(3)C={c1,c2,…,cw}表示有限轉(zhuǎn)換條件集,而且每個轉(zhuǎn)換條件對應(yīng)一條邊即ci與ei對應(yīng)。
(4)FL(N×E×C)(E×C×N)表示活動和轉(zhuǎn)換之間的流關(guān)系。
活動圖的形式化定義,從邏輯視角給理解活動圖提供了方法,為從活動圖中抽取節(jié)點和邊奠定了基礎(chǔ)。
2 活動圖生成有向圖
2.1 有向圖概述
1736年,歐拉(Euler)在他的一篇論文中討論了柯尼斯堡七橋問題,由此誕生了一個全新的研究領(lǐng)域圖論,經(jīng)過200多年的發(fā)展圖論已經(jīng)應(yīng)用于很多領(lǐng)域的研究。如圖1所示,圖D(Directed Graph)是由非空有限頂點集合V(Vertex)和邊集合E(Edge)構(gòu)成,其中E中元素為不同頂點的有序?qū)?,稱為弧或有向邊(Directed Edge)。在D中,與頂點v相關(guān)聯(lián)的邊的總數(shù)稱為頂點v的度(Degree),其中指向頂點v的有向邊總數(shù)稱為入度,背向頂點v的有向邊總數(shù)稱為出度[8]。
如果有向圖D具有如下性質(zhì):對于D的每對不同頂點,有序?qū)Γ╱,v)和(v,u)中至多有一個是D的有向邊,則稱D為定向圖。若對于所有D的頂點序列W:u=u0、u1、u2、…、uk=v,滿足i(1≤i≤k-1)且ui鄰接到ui+1,則稱W為D的一條鏈u-v;若一條鏈u-v中,u和v重合形成閉合的鏈,則稱此鏈為圈。若一條鏈u-v中沒有重復出現(xiàn)的頂點,則稱該鏈稱為一條路。
2.2 轉(zhuǎn)換規(guī)則
由活動圖的形式化定義可知,活動圖包含起始節(jié)點和終止節(jié)點;活動圖中的邊表示分別表示對象流和控制流;在可能的場景集合C中,系統(tǒng)活動均會從起始節(jié)點以對象流或控制流的形式在終止節(jié)點結(jié)束,并且起始節(jié)點和終止節(jié)點不重合,因此在集合C中的所有可能活動流均不會形成閉合的回路。如圖2所示,顯示了兩種典型的活動圖,圖2(a)顯示了一種帶有多終止節(jié)點的活動圖,圖2(b)顯示了一種是流并行的活動圖。
基于活動圖和有向圖在形式化定義上的相似性,提出活動圖轉(zhuǎn)換為有向圖的規(guī)則,規(guī)則:
(1)起始節(jié)點轉(zhuǎn)換為無入度的頂點;
(2)對于單終止節(jié)點,直接轉(zhuǎn)換為無出度的頂點;對于多終止節(jié)點,先合并為單終止節(jié)點,再轉(zhuǎn)換為無出度的頂點;
(3)對象流和控制流均轉(zhuǎn)換為單向有向邊;
(4)動作節(jié)點轉(zhuǎn)換為普通頂點;
(5)對象節(jié)點的類型與在模型層級中某處定義的值類型或者信號的名稱匹配,無實際功能映射,因此可以將對象節(jié)點簡化掉;
(6)決策節(jié)點、合并節(jié)、點分叉節(jié)點和整合節(jié)點,均不涉及具體系統(tǒng)動作和對象,且合并節(jié)點和整合節(jié)點有多個入流和一個出流,決策節(jié)點和分叉節(jié)點僅一個入流和多個出流,因此為簡化生成的有向圖并提高算法效率,去掉決策節(jié)點、合并節(jié)、點分叉節(jié)點和整合節(jié)點。
在基于SysML的工具中,系統(tǒng)模型可以被導出為XML文件。XML是可擴展標記語言(Extensible Markup Language)的簡稱,被設(shè)計為結(jié)構(gòu)化傳輸和存儲數(shù)據(jù)的語言。因此可以從XML中解析出活動圖的各類節(jié)點和邊,再依據(jù)轉(zhuǎn)換規(guī)則,將活動圖轉(zhuǎn)換為有向圖。如圖3所示,按照轉(zhuǎn)換規(guī)則將圖2(b)轉(zhuǎn)換為對應(yīng)有向圖。
3 風險環(huán)節(jié)識別
3.1 最大影響度路徑
技術(shù)管理流程是系統(tǒng)工程兩個重要的組成部分之一,在系統(tǒng)的全生命周期內(nèi),產(chǎn)品和服務(wù)的創(chuàng)建和升級均是通過項目的實施來管理的。技術(shù)管理流程包括項目規(guī)劃、項目評估和控制、決策管理、風險管理、質(zhì)量管理等[9]。系統(tǒng)工程管理計劃(System Engineering Management Plan,SEMP) 是技術(shù)管理流程中很重要的一個工具,該工具主要用于識別活動、關(guān)鍵事件、工作包和資源,并由此描述工程任務(wù)與進度如何被管理和實現(xiàn)的?,F(xiàn)有項目控制技術(shù),主要利用活動網(wǎng)絡(luò)作為規(guī)劃和控制中介來實現(xiàn),有兩種方法即CMP確定和設(shè)計和PERT概率分析和設(shè)計;CMP和PERT的核心相似,都由所需活動的集合來表示,主要的區(qū)別在于對每個活動完成時間的預(yù)測方式不同;在CMP中,活動的時間是固定值,在PERT中,活動時間是以一定假定概率分布的隨機變量[9]。
通過分析活動網(wǎng)絡(luò)的特點,可知活動網(wǎng)絡(luò)中的活動通常相互耦合在一起,一個活動開始的前提是其上游相關(guān)聯(lián)活動全部完成。CMP和PERT均通過尋找活動網(wǎng)絡(luò)的關(guān)鍵路徑(Critical Path,CP)來計算最短完成時間,而關(guān)鍵路徑算法僅僅考慮了時間,沒有關(guān)注相互耦合的事件網(wǎng)絡(luò)中任何一個事件出現(xiàn)時間風險,導致該事件時間增加,便會導致風險在網(wǎng)絡(luò)中擴散,從而不可估量的增加整體時間成本。
針對SEMP沒考慮活動網(wǎng)絡(luò)的耦合問題,定義以活動網(wǎng)絡(luò)中節(jié)點的出度為單個活動的關(guān)聯(lián)度rd(Relation Degree),以關(guān)聯(lián)度來衡量單個活動能直接影響的活動數(shù)量;單個活動實際時間成本與計劃時間成本的差值為Δt,定義關(guān)聯(lián)度rd與時間成本的差值Δt的乘積為該活動的影響度ID(Impact Degree);定義最大影響度路徑(Max Impact Degree Path,MIDP):一條從開始節(jié)點到終止節(jié)點的路徑,此路徑節(jié)點集合的影響度總和在所有可能路徑中最大。
3.2 識別算法
首先在Enterprise Architecture中建立活動圖,再導出為XML文件。對該XML文件進行解析,按照轉(zhuǎn)換規(guī)則,生成對應(yīng)有向圖?;诖擞邢驁D,遍歷開始節(jié)點和終止節(jié)點間的所有路徑,計算所有路徑上頂點集的關(guān)聯(lián)度rd,給所有頂點隨機賦予時間成本差值Δt,計算所可能路徑上的影響度和,選擇影響度和最大的路徑,該路徑序列即為該組隨機時間成本差值對應(yīng)的最大影響度路徑。鑒于早期設(shè)計階段很難估算單個活動計劃時間和實際時間的差值Δt,因此給每個活動賦予隨機時間成本差值Δt,通過大量隨機試驗,統(tǒng)計每次試驗中最大影響度路徑對應(yīng)在圖的所有可能路徑序列矩陣中的行號出現(xiàn)的頻次和頻率,再由此進行系統(tǒng)風險分析。實際做風險識別時,會依據(jù)綜合條件將風險環(huán)節(jié)進行等級劃分,不同等級的風險環(huán)節(jié)會投入不同量的資源做風險管控。本文取頻率和90%、75%和60%分別作為一級風險、二級風險和三級風險的劃分點去識別風險環(huán)節(jié)。具體流程如圖4所示。
圖5顯示了帶編號的有向圖。表1顯示了該圖起始頂點間所有可能的路徑序列。表2顯示了6次隨機試驗的最大影響度路徑頻率和≥90%的幾條路徑的頻率分布,每次隨機試驗重復1000000次,從表的方差可知試驗結(jié)果收斂于6個只和圖結(jié)構(gòu)相關(guān)的常數(shù),因此這種算法穩(wěn)定且收斂。從表2可求得該圖對應(yīng)的一級風險環(huán)節(jié):1、2和11代表的活動,無二級風險環(huán)節(jié),三級風險環(huán)節(jié):5代表的活動。
4 結(jié)語
本文從SysML活動圖的形式化定義,研究了其與有向圖的相似性,從而提出了活動圖到有向圖的轉(zhuǎn)換規(guī)則。由于當前缺少將技術(shù)流程領(lǐng)域與管理流程領(lǐng)域相結(jié)合的MBSE研究,本文嘗試將SysML活動圖與系統(tǒng)規(guī)劃控制過程中的風險識別相結(jié)合。提出了一套在系統(tǒng)概念設(shè)計階段可以使用的分級風險環(huán)節(jié)識別方法。但該方法依賴于對大量的隨機試驗結(jié)果的統(tǒng)計分析,因此應(yīng)用于大型復雜系統(tǒng)會面臨巨大的挑戰(zhàn)。
對僅有11個節(jié)點的有向圖,有39條路徑需要搜索;僅簡化該圖的有向邊形成如圖6所示的新圖后,新圖需要搜索的路徑共有6條。由此可以初步得出結(jié)論:當系統(tǒng)活動越多,且活動間耦合程度越深,需要搜索的路徑數(shù)量越大。而在實際的大型復雜系統(tǒng)中,系統(tǒng)的活動數(shù)量往往以百計數(shù),且相互之間耦合度深,因此實際應(yīng)用中還得考慮可能會出現(xiàn)的組合爆炸問題及針對組合爆炸問題的優(yōu)化算法。另外隨著單個路徑上頂點數(shù)量的增加,單次隨機試驗的重復次數(shù)須在數(shù)量級上隨之增加,否則很難保證試驗結(jié)果的正確性。
參考文獻
[1] 國際系統(tǒng)工程協(xié)會.系統(tǒng)工程手冊[M].張國新,譯.北京:機械工業(yè)出版社,2017.
[2] 王松鋒,熊選東,付建丹,等.基于Petri網(wǎng)的SysML活動圖的分析與驗證[J].計算機科學,2012(9):138-142.
[3] 孫博,胡良文,馬金晶.基于Spin的SysML活動圖驗證框架[J].Journal of Frontiers of Computer Science and Technology,2014,8(7):836-847.
[4] Juan Pablo Lpez-Grao,Jose Merseguer,Javier Campos.From UML,Activity Diagrams To Stochastic Petri Nets:Application To Software Performance Engineering.ACM SIGSOFT Software Engineering Notes archive,2004,29(1):236-251.
[5] 蘇翠翠.一種基于UML活動圖生成測試用例的方法[D].南京:南京郵電大學,2011.
[6] Pascal Graignica,Thomas Vosgienb,Marija Jankovicb,Jen-nifer Berquetc,Nadège Troussierd. Complex System Simulation:Proposition of a MBSE Framework for Design-Analysis Integration. Procedia Computer Science,2013(16):59-68.
[7] 孟令沖,舒堅,黃勤濤,等.基于SysML活動圖的測試序列集約簡方法[J].計算機工程與應(yīng)用,2018,54(13):266-270.
[8] Gray Chartrand,Ping Zhang.圖論導引[M].范益政,汪毅,龔世才,朱明,譯.北京:人民郵電出版社,2007.
[9] Benjamin S.Blanchard,Wolter J.Fabrycky.系統(tǒng)工程與分析[M].李瑞瑩,潘星,康銳,譯.北京:國防工業(yè)出版社,2013.