999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

UML狀態圖的檢測算法生成

2017-11-09 10:38:11王佳婧馮長寶佟鑫
電子技術與軟件工程 2017年19期

王佳婧++馮長寶++佟鑫

摘 要在軟件系統設計中,經常應用UML 狀態圖對系統行為進行完整建模,其正確性尤為重要。在其他文獻中雖然已提出基于HA和EMC的檢測規則,但是并未給出具體算法。因此根據算法生成的關鍵問題主要探討:基于狀態圖HA的自動生成及存儲、基于HA的Kripke自動生成、以及基于Kripke結構和EMC檢測規則的算法實現。

【關鍵詞】HA自動生成 Kripke自動生成 檢測規則算法實現

1 引言

UML狀態圖檢測采用HA的Kripke結構表示,使多對象組成的復雜軟件系統的行為狀態層次清晰,使對象內狀態轉換與整個系統的狀態轉換之間關系表達更加直觀。在其他文獻中已經提出了基于此種結構及EMC思想的檢測規則。其算法生成的關鍵問題如下:狀態圖如何自動轉換為HA;如何基于HA存儲結構自動生成其Kripke結構;如何基于Kripke結構和EMC思想的檢測規則實現算法。下面將圍繞上述三個主要問題對檢測算法生成進行探討。

2 HA的自動生成

2.1 HA的邏輯結構

當系統比較復雜時,其狀態圖的往往代表多個對象的狀態行為,并且對象之間的狀態通過事件互相影響。如圖1所示在系統內部,狀態S1內仍有狀態轉換,此說明系統內初始運行對象的狀態轉換,例如當通過事件r1由S1內子狀態S6跳轉S2時,那么就是系統內S2所代表的另一個對象開始工作。從上述描述可以看出,系統狀態圖內具有明顯的層次關系,按照其層次關系轉換為HA(如圖2所示)。其邏輯結構各個順序自動機之間關系與樹的結點之間關系相同,例如:順序自動機A0其為根自動機,其無父狀態,只有一個根自動機,具有樹只有一個根結點的特征;除根自動機外,其他順序自動機A1和A2只有一個父狀態s1與之相對應,與樹中每個結點只有一個雙親結點相同;同一個父狀態的順序自動機互為兄弟。如果將HA的每個順序自動機看成結點,那么按照傳統樹的結點間的關系每個順序自動機的雙親結點應該同樣是一個順序自動機,但是順序自動機的雙親是某個順序自動機中的狀態。基于此種區別,順序自動機的在雙親結點包括了其父狀態及父狀態所屬的順序自動機。由于每個結點內是一個順序自動機,即一個狀態圖,因此結點內的結構可以采用有向圖的結構:每一個狀態就是一個頂點,狀態間的遷移關系即頂點間的鄰接關系,狀態件遷移事件即有向圖中頂點間的權值。綜上所述,HA的層次關系基于樹結構描述,順序自動機基于有向圖結構描述。

2.2 HA的存儲結構

HA的每個狀態其子順序自動機的數量沒有限制,即樹中每個結點其孩子結點數量沒有限制,需要選擇的存儲方式能夠在統一結點存儲結構的情況下,存儲每個結點和所有孩子結點之間的關系。基于上述原因,采用孩子兄弟表示法即二叉鏈表,同二叉樹的存儲結構一致,此種方法通過每個結點只記錄其第一個孩子,通過其孩子記錄兄弟的方式記錄所有的孩子結點。順序自動機的有向圖存儲結構要存儲狀態、每個狀態間的遷移關系及遷移事件。采用有向帶權矩陣,每個元素即遷移事件,無遷移關系的狀態對應的矩陣元素為0。

3 Kripke自動生成

3.1 關鍵問題

Kripke結構的M(SH,S0,R,L)定義,SH的生成是首要關鍵問題。SH是格局并配以格局內某狀態的遷移事件,因此先生成格局,再根據格局中的狀態遍歷每個狀態的遷移事件,從而生成SH。由于HA的存儲結構基于樹及圖,因此基于樹和圖的遍歷生成SH,其基本思想是:根順序自動機圖的深度遍歷開始,對正在訪問的某個狀態從左至右遍歷的前序遍歷的每一棵子順序自動機,生成格局;遍歷每個格局所有狀態的順序自動機的有向帶權矩陣,生成SH。例如,如圖2,從根順序自動機A0應用圖的深度遍歷,訪問狀態s1后,遍歷其子順序自動機A1和A2,每次各從其自動機中取出一個狀態,生成不同的狀態組合,從而生成了s1所屬的所有格局,C0={s1,s6,s8}, C1={s1,s6,s9}, C2={s1,s7,s8}, C3={s1,s7,s9};其后,回溯至根順序自動機A0,訪問狀態s4和s5,生成格局C4={s2},C5={s3}。Kripke生成的第二個關鍵問題為S0,S0為Kripke的初始狀態,其格局為初始格局C0,但是遷移事件不固定,可以默認包含C0的第一個狀態為初始狀態。R代表的是SH之間的遷移關系,受到所處格局和遷移事件影響,例如狀態S0其格局C0狀態包括{s1,s6,s8},其遷移事件e1,根據狀態圖遷移關系為

,S0可遷移包括格局A2的狀態S7、S8及S9。R的遷移關系中遷移事件已經包含在狀態內,所以Kripke狀態間的遷移關系可以通過鄰接矩陣存儲。L為每個狀態原子命題集合,為該HA具備的所有基本性質,每個狀態的基本性質,即在該狀態的格局和遷移關系下滿足的基本性質,例如圖2Kripke狀態S0滿足其格局C0內所有狀態在遷移事件e1影響下的基本性質,即只有格局C0中只有狀態s6發生遷移,其他未變,此類性質如何保存成為關鍵。為每個Kripke狀態建立一個L,例如S0的集合L0,建立一個鄰接表,其格局C0所有狀態的遷移情況進行記錄,包括了其順序自動機內遷移狀態及遷移的Kripke狀態,其生成過程,可以在生成R時同時進行。

3.2 算法

輸入:HA存儲結構

輸出:HA的Kripke結構

1.定義格局數組C[MAX] [MAX],初始化為空,其長度CLength初始化為0,k初始化為0;

2.定義Kripke狀態數組S[MAX],其長度SLength初始化為0,l初始化為0;

3.深度優先遍歷HA的根順序自動機A[0]

(1)root=A[0].VERTEX[K],棧s初始化為空;

(2)循環直到root為空且棧為空

a.循環直到root為空

將root保存到棧中;

繼續遍歷root的左子樹順序自動機頂點VERTEX[i],i=i+1;

b.如果棧s不為空,則

如果root的右子樹為空,循環讀取棧的元素輸入到C[k][MAX]數組,k=k+1;

彈出棧頂元素至root;

準備遍歷root的右子樹順序自動頂點VERTEX[j];

4.CLength=k,k=0;

5.循環直到k=CLength

(1)循環直到C[k] [MAX]為空

a.j初始化為0;

b.遍歷狀態C[k] [j]的有向帶權矩陣arc所處m行

S[l].C= C[k] [MAX], S[l].E=arc[m][j];

j++,l++;

(2) k++;

6. SLength=l,l=0;

7. R[SLength][SLength]數組初始化為0, L[SLength]初始化為空

8.循環直到l=SLength

(1) m=0;

(2)循環直到S[l]找到所有遷移狀態

a. S[m]如果是S[l]遷移狀態,R[m][l]=1;

b. 將此命題相關原子命題記錄L[l]

c.m++

(3) l++;

4 檢測規則的算法生成

已在文獻[3]中提出了基于LTL和CTL的檢測規則,這里不重復描述,主要討論基于此規則和HA的Kripke存儲結構的算法生成相關問題。檢測規則算法生成中的首要關鍵問題命題如何輸入表示,命題在初始輸入時,分解輸入,存入命題數組P[n]。 每個命題單元p[i]包括表達式包括五部分: p[i].no(是否非運算)、p[i].Sout(遷出狀態)、p[i].E(遷移事件隊列)、p[i].Sto(遷入狀態)、p[i].logic(邏輯運算符)。其次是每個命題單元如何分解成原子命題的形式,可以通過遷移事件隊列從Sout進行逐步遷移分解。最后,如果發現新的命題成立記錄LP[MAX][MAX]數組中,便于后續幫助其他命題判斷。具體算法如下:

輸入:HA的Kripke存儲結構,命題P[n],成立命題LP[MAX][MAX]

輸出:命題是否成立

1. 遍歷LP[MAX][MAX]看是否存在P[n],若存在結束;

2. i初始化為0,flag[n]初始化為1;

3.循環直到i=n;

(1) C= p[i].Sout的格局;

(2) e=p[i].E;

(3) 循環直到e為空

a.遍歷C格局的所有狀態遷移事件,若e不存在、p[i].no=1則結束當前循環, 若e不存在且e且p[i].no=0且flag[i]=0結束當前循環;

b.C=經過e遷入格局

c.e=p[i].E出隊事件;

4.,flag[n]之間用將p[n].logic連接計算,若結果為1,P[n]存入LP[MAX][MAX];

5.輸出結果。

5 總結

在以往的相關文獻中提出了基于Kripk的復雜演繹判斷規則及形式化語義推導的理論,但較少給出實際算法,缺乏實用性。針對上述問題,基于已提出的檢測規則,從存儲結構HA定義、Kripke結構生成及基于Kripke結構檢測規則算法實現進行討論,給出了具體存儲結構及算法,算法易于理解與實現,具有非常重要的實際意義。

參考文獻

[1]Latella D,Majzik I,Massink M. Towards a formal operational semantics of UML Statechart diagrams.In:Ciancarini P, Fantechi A,Gorrieri R,eds.Proceedings of the 3rd International Conference on Formal Methods for Open Object-Oriented Distributed Systems. Boston:Kluwer Academic Publishers, 1999:15-18.

[2]邊計年,薛宏熙,蘇明,吳為民.數字系統設計自動化[M].北京:清華大學出版社,2005(07).

[3]王佳婧.基于EMC和HA的UML Statecharts檢測研究[J].通訊世界,2017(16).

作者簡介

王佳婧(1982-),女,吉林省吉林市人。碩士學位。現為吉林動畫學院講師。研究方向為計算機應用技術。

作者單位

吉林動畫學院 吉林省長春市 130012

主站蜘蛛池模板: 亚洲 欧美 偷自乱 图片| 成人精品区| 国产免费看久久久| 国产手机在线观看| 九九久久精品免费观看| 日韩AV无码免费一二三区| 欧美一级在线| 亚洲人在线| 91免费观看视频| 成人欧美日韩| 喷潮白浆直流在线播放| 欧美色图第一页| 在线观看免费国产| 国产高潮流白浆视频| 亚洲无码视频图片| 亚洲开心婷婷中文字幕| 亚洲欧洲日韩综合色天使| swag国产精品| 动漫精品啪啪一区二区三区| 一级福利视频| 激情无码字幕综合| 97国产在线视频| 中文字幕在线观看日本| 久久精品无码中文字幕| 欧美一道本| 国产免费网址| 免费国产好深啊好涨好硬视频| 亚洲精品国产成人7777| 一级毛片基地| 黄色三级毛片网站| 欧美亚洲一二三区| 午夜影院a级片| 午夜啪啪福利| 国产欧美另类| 国产成人高清在线精品| 国产黄网永久免费| 波多野衣结在线精品二区| 欧美人在线一区二区三区| 亚洲有无码中文网| 日韩视频精品在线| 日韩色图在线观看| 国产白丝av| 国禁国产you女视频网站| 亚洲天堂免费观看| 午夜毛片免费观看视频 | 亚洲婷婷在线视频| 国产成人三级| 99re免费视频| 国产人成午夜免费看| 天天躁狠狠躁| 精品久久久久成人码免费动漫| 国产区精品高清在线观看| 成人国产精品网站在线看| 午夜无码一区二区三区| 无码av免费不卡在线观看| 亚洲电影天堂在线国语对白| 99久久人妻精品免费二区| 亚洲国产综合第一精品小说| 手机在线国产精品| 亚洲国产日韩一区| 被公侵犯人妻少妇一区二区三区| 欧美激情视频一区| 国产高清不卡视频| 99免费在线观看视频| 在线看免费无码av天堂的| 好吊妞欧美视频免费| 国产在线拍偷自揄观看视频网站| 亚洲成在人线av品善网好看| 国产剧情无码视频在线观看| 亚洲精品午夜天堂网页| 国产国语一级毛片在线视频| 制服丝袜一区二区三区在线| 久久亚洲综合伊人| 欧美区一区| 波多野结衣亚洲一区| 激情爆乳一区二区| 国模极品一区二区三区| 久久精品中文无码资源站| 无码日韩视频| 91免费观看视频| 欧美视频在线第一页| 性69交片免费看|