Model Checking & UML 實例

| Comments

之前談到UML and Model Checking,卻沒談到如何實際應用及檢查方式,這篇Model Checking and Code Generation for UML State Machines and Collaborations是之前說到的Hugo/RT轉換工具的Paper,首先下載ArgoUML一套open source的UML工具;再下載Hugo/RT 0.42,個人是選UPPAAL的Model Checking tool。
1.先用ArgoUML將系統畫出,主要是class diagram跟state diagram。
如下圖:
mc1.jpg
2.透過Hugo/RT轉換成中間碼,Hugo/RT也提供直接轉換成Model Checking的語言,但因有些功能無法轉換,必須自行輸入,所以建議轉成中間碼UTE格式。
mc2.jpg
3.編輯UTE檔案,加入collaboration、interaction及assertion,其中assertion可以利用CTL(Computation tree logic)來檢查deadlock和是否會發生某些條件。例如此例就是ATM是否會有兩次密碼錯誤卻還能進入VerifyingCard的狀態。
mc3.jpg
EF的keyword如下圖所示。代表是否存在這個狀況。
0403feat1fig4_lg.gif
4.編輯好存檔,再利用Hugo/RT轉成UPPAAL的檔案,且下所需要檢查的interaction和assertion,便會產生ta及q副檔名的兩個檔案。
mc4.jpg
5.再來就利用UPPAAL來驗證,開始剛產生的ta檔案,選verifier的tag就可以驗證是否會有不想要的情況。從結果可看出,並沒有輸入錯誤兩次還能在VerifyingCard狀態(紅燈),但卻可以輸入錯誤零次還能在VerifyingCard狀態(綠燈)。
mc5.jpg
本文只是介紹使用方法,詳細內容可以看Model Checking and Code Generation for UML State Machines and CollaborationsHugo/RT網站。
雖然測試也可能找到相同的錯誤或不一致情況,但是Model Checking在OOA時就可以去驗證檢查,Testing則必須要到OOP之後有程式碼才能檢查,所以成本會比Model Checking還要高(越晚修改,cost越高),且Model Checking主要是檢查規格上的錯誤,無法去驗證效能和壓力,而這些主要是測試所要確認的。

2006-07-24 補充:本文的範例,蒸氣鍋爐,已刊登在IEICE TRANSACTIONS on Information and Systems,Constraint-Based Software Specifications and Verification Using UML

Embedded.com - An introduction to model checking有詳細介紹Model Checking。

February 2012

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Archives

Powered by Movable Type 4.34-en

About this Entry

This page contains a single entry by philipz published on April 27, 2005 4:02 PM.

下一代的教育方法-電玩遊戲 was the previous entry in this blog.

另一個電玩教育-窮爸爸富爸爸CashFlow is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.