資源描述:
《靜態(tài)代碼和模型檢測一致性的設(shè)計研究》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、靜態(tài)代碼和模型檢測一致性的設(shè)計研究 摘要:針對代碼與模型之間的不一致性問題,本文提出了一種基于UML模型和Java代碼之間的一致性檢測方法。首先,給出了怎樣檢測模型與代碼一致性的步驟,對模型檢測中所要用到的模型和代碼進行預(yù)處理,其次設(shè)計出模型代碼一致性檢測的框架,在本文的后面重點研究靜態(tài)的模型與代碼一致性。對靜態(tài)檢測設(shè)計了算法,進行了一致性驗證研究?! £P(guān)鍵詞:一致性檢測靜態(tài)代碼預(yù)處理 中圖分類號:TP39文獻標識碼:A文章編號:1007-9416(2016)05-0000-00 1模型與代碼一致性檢測的基本流程 在這篇文章中,UML模型的一致性和Java代碼檢測是
2、基于兩個假設(shè):(1)要保證每個模型的UML是對的,要保持一致性;(2)在UML模型與Java代碼的信息不一樣的時候,這個時候UML模型就會輸出相關(guān)的報告?! ?.1UML模型預(yù)處理 1.1.1UML模型的形式化定義 UML模型具有半正式的相關(guān)特性,這個特性就沒辦法直接在UML模型中獲取相關(guān)的的信息。導(dǎo)致,UML模型的形式化定義就要用數(shù)學(xué)符號語言進行定義。4 ?。?)類元組(類,)是一種面向?qū)ο蟮念悎D表示,在這個類圖中,一個圖可以表示為一個元祖,而每個類圖又可以分為好多個類的元組構(gòu)成的集合?! 。?)序列圖六組形式化定義一個,味精,是一個對象集合。的對象是序列圖M={ms
3、g1msg2,……是一家集新聞,MSGM}。消息味精定義如下:味精:=},返回類型> (3)發(fā)送和接收消息。味精新聞,發(fā)送事件、接收事件常說?! 。?)消息集上的全序關(guān)系,說新聞的軸縱向時間序列圖先后?! 。?)EM函數(shù)關(guān)系的味精,味精(E)∈EM說事件對應(yīng)的信息。6objEO函數(shù)關(guān)系,objE(E)∈O表示事件對應(yīng)。像所有事件的集合的。 1.1.2UML類圖信息解析 一個類圖包含的相關(guān)信息,對xml文件是需要說明他的類圖和類的名稱,類的屬性的,以及和其他有關(guān)的信息。類圖要對類之間的關(guān)系進行分析,還要分析他們的轉(zhuǎn)換屬性。四種模式的關(guān)系?! ?.2代碼靜態(tài)信息預(yù)處理
4、靜態(tài)結(jié)構(gòu)的Java代碼他所包含的信息都是基本信息,比如:類的名稱、類的屬性、以及類的方法與其他有關(guān)的信息。Jave代碼靜態(tài)信息提取的主要思想是通過詞法分析和語法分析來獲取Java類的名稱、屬性序列和方法序列,并將這些信息存儲到上面定義的數(shù)據(jù)存儲結(jié)構(gòu)中 2模型與代碼一致性檢測框架的設(shè)計 通過對UML模型與Java代碼的分析提出了UML模型與Java代碼一致性性檢測框架。該框架的輸入為Java代碼和UML模型信息,輸出為一致性檢測報告;框架中的主要過程有信息預(yù)處理、靜態(tài)一致性檢測、動態(tài)一致性檢測等功能[1]。4 UML模型和Java代碼一致性測試框架的具體過程:首先,分別
5、對Java代碼和UML模型信息預(yù)處理,預(yù)處理的Java代碼主要通過詞法分析和語法分析,預(yù)處理的UML模型是基于XMI文件解析的模型;然后,Java代碼預(yù)處理結(jié)果Java類和UML模型預(yù)處理UML靜態(tài)信息,例如UML模型和代碼一致性測試輸入,根據(jù)檢測的一致性算法一致性測試,如果不一致輸出測試報告,停止測試,否則繼續(xù);最后,Java代碼預(yù)處理結(jié)果Java調(diào)用圖CG和UML序列圖構(gòu)造順序調(diào)用圖SD-CG作為UML模型和動態(tài)一致性測試代碼輸入?! ?靜態(tài)模型與代碼的一致性檢測 3.1靜態(tài)檢測一致性的設(shè)計 UML模型和Java代碼一致性測試的靜態(tài)信息,是一致性的基礎(chǔ)模型和系統(tǒng)測試
6、。靜態(tài)信息包括類名、類屬性集和類的方法。UML類信息和Java類信息一致性檢測:首先,UML類的檢測數(shù)量和類在Java類的數(shù)量是一致的,不一致的信息返回如果不一致,一致性測試結(jié)束,否則繼續(xù);然后一個UML類和Java類根據(jù)類的名稱進行排序,最后排序的列順序檢測測試UML類關(guān)系返回Java類信息是一致的和不一致的信息如果不一致,測試結(jié)束?! ?.2靜態(tài)檢測 模型和代碼之間的靜態(tài)信息檢測是UML模型的基礎(chǔ)和Java代碼之間的一致性測試,是動態(tài)交互信息檢測的前提。靜態(tài)信息的檢測包括檢測類的名稱、類的屬性集合,還有類的方法集合等,表1展示了二者之間的映射關(guān)系。4 一致性測試的U
7、ML類圖信息預(yù)處理后預(yù)處理后的模型與Java代碼的Java類信息作為輸入,靜態(tài)測試,反過來,測試類,類的名稱、類的屬性、測試類的方法、參數(shù)列表的一致性的檢測方法,萬一有不一致的情況,那就直接輸出檢測的測試報告,立刻停止測試,默認為為默認值(defaultValue)沒有不一致的信息警告)那就不終止靜態(tài)信息的一致性檢測,最后就會輸出一致性檢測的測試結(jié)果,生成檢測報告[2]?! ?結(jié)語 在本文中UML模型和Java代碼完全的一致性檢測,研究了UML模型和Java代碼一致性測試的基本過程,給出UML模型分析算法和Jav