欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種面向無線傳感網(wǎng)的模型到代碼的轉化方法

文檔序號:6370231閱讀:211來源:國知局
專利名稱:一種面向無線傳感網(wǎng)的模型到代碼的轉化方法
技術領域
本發(fā)明涉及一種面向無線傳感網(wǎng)的模型到代碼的轉化方法,主要是建立模型到代碼的映射規(guī)則,利用訪問者來訪問模型來實現(xiàn)轉化,屬于無線傳感網(wǎng)、軟件工程、模型驅動和代碼生成交叉技術應用領域。
背景技術
無線傳感網(wǎng)是由部署在監(jiān)測區(qū)域內的傳感器節(jié)點組成,通過無線通信方式形成的一個多跳的自組織網(wǎng)絡系統(tǒng),目的是協(xié)作地感知、采集、處理網(wǎng)絡覆蓋區(qū)域中對象信息,并發(fā)送給觀察者。傳感器節(jié)點是由傳感器模塊、處理器模塊、無線通信模塊和能量供應模塊四部分組成,傳感器模塊負責監(jiān)測區(qū)域內信息的采集和數(shù)據(jù)轉換;處理器模塊負責控制整個傳感器節(jié)點的操作,存儲和處理本身采集的數(shù)據(jù)以及其他節(jié)點發(fā)來的數(shù)據(jù);無線通信模塊負責與其他傳感器節(jié)點進行無線通信,交換控制消息和收發(fā)采集數(shù)據(jù);能量供應模塊為傳感器節(jié)點提供運行所需要的能量,通常使用微型電池。無線傳感網(wǎng)是信息科學領域中ー個全新的發(fā)展方向,同時也是新興學科與傳統(tǒng)學科進行領域間交叉的結果。無線傳感網(wǎng)則將網(wǎng)絡技術引入到無線智能傳感器中,使得傳感器不再是單個的感知単元,而是能夠交換信息、協(xié)調控制的有機結合體,實現(xiàn)物與物的互聯(lián),把感知觸角深入世界各個角落,必將成為下一代互聯(lián)網(wǎng)的重要組成部分?;跓o線傳感網(wǎng)的特點和應用需求,伯克利大學開發(fā)的TinyOS是ー個是為傳感器網(wǎng)絡節(jié)點而設計的ー個事件驅動的操作系統(tǒng),傳感器網(wǎng)絡節(jié)點擁有非常有限的資源。為滿足無線傳感網(wǎng)的要求,研究人員在TinyOS中引入4種技術輕線程、主動消息、事件驅動和組件化編程。輕線程主要是針對節(jié)點并發(fā)操作可能比較頻繁,且線程比較短,傳統(tǒng)的進程/線程調度無法滿足的問題提出的。它基于體現(xiàn)TinyOS的結構化概念和執(zhí)行模型而設計。它采用組件的架構方式,結構高度模塊化,且能突破傳感器節(jié)點的各種限制,快速實現(xiàn)各種應用,非常適合無線傳感網(wǎng)的應用,因而被廣泛應用并成為很多系統(tǒng)的參考設計。TinyOS的組件庫包括網(wǎng)絡協(xié)議、分布式服務、傳感器驅動以及數(shù)據(jù)獲取工具等,不用的組件不會引入進來,從而達到減少內存需求的目的。TinyOS采用了事件驅動模型,這樣可以在很小的空間中處理高并發(fā)事件,并且能夠達到節(jié)能的目的。TinyOS是專門針對傳感器網(wǎng)絡特點而設計的操作系統(tǒng)。TinyOS使用高效的基于事件的執(zhí)行方式,包含經(jīng)過特殊設計的組建模型,從而成為高效率的模塊化和易于構造的組件型應用軟件。在TinyOS中,應用程序開發(fā)人員可以通過NesC語言表達組件以及組件之間的事件/命令接ロ。NesC主要用在TinyOS中,TinyOS也是由NesC編寫完成的。NesC是對C的擴展,主要用于傳感器網(wǎng)絡的編程開發(fā)。TinyOS操作系統(tǒng)就是為用戶提供ー個良好的用戶接ロ。組件分為配置文件和模塊,程序的流程是通過配置文件中接ロ的連接實現(xiàn)而構建起來的,而具體實現(xiàn)的邏輯功能是通過模塊完成的。每個模塊由ー組命令和事件組成,這些命令和事件成為該模塊的接ロ。一般來說,上層組件對下層組件發(fā)命令,下層組件發(fā)信號通知事件的發(fā)生,最底層的組件直接和硬件交互,從而自上到下形成ー種樹狀結構。
同時,統(tǒng)ー建模語言也很廣泛地應用在無線傳感網(wǎng)開發(fā)中。統(tǒng)ー建模語言,統(tǒng)ー建模語言,能為軟件系統(tǒng)提供可視化建模的ー種語言。在開發(fā)系統(tǒng)產(chǎn)品過程中,能為系統(tǒng)產(chǎn)品提供說明、可視化、和編輯文檔等功能。統(tǒng)ー建模語言建模方法是ー種總結了以往建模技術的經(jīng)驗并吸收當今優(yōu)秀成果的標準建模方法。統(tǒng)ー建模語言包括概念的語義、表示法和說明,提供了靜態(tài)、動態(tài)、系統(tǒng)環(huán)境和組織結構的模型。它是為支持大部分現(xiàn)存的面向對象開發(fā)過程而設計的。統(tǒng)ー建模語言描述了ー個系統(tǒng)的靜態(tài)結構和動態(tài)行為,它將系統(tǒng)描述為一些離散的相互作用的對象并最終為外部用戶提供一定功能的模型結構。靜態(tài)結構定義了系統(tǒng)中重要對象的屬性和操作以及這些對象之間的相互關系;動態(tài)行為定義了對象的時問特性和對象為完成目標而相互進行通信的機制。統(tǒng)ー建模語言還包括可將模型分解成包的結構組件,以便于軟件小組將大的系統(tǒng)分解成易于處理的塊結構,并理解和控制各個包之間的依賴關系,在復雜的開發(fā)環(huán)境中管理模型単元。它還包括用于顯示系統(tǒng)實現(xiàn)和組織運行的組件。在無線傳感網(wǎng)開發(fā)中,廣泛采用NesC語言,而NesC也主要應用在TinyOS中,在開發(fā)過程中,比較流行的ー種方式為先建立模型,然后用相關軟件將模型直接轉化為目標代碼。
模型到代碼的轉化技術已經(jīng)廣發(fā)應用在項目開發(fā)中,模型驅動開發(fā)是軟件開發(fā)方法中很重要的一種開發(fā)方法,具有諸多優(yōu)點,很適合傳感器網(wǎng)絡軟件的開發(fā)。ー個好的模型驅動開發(fā)的平臺決定了,該開發(fā)模型是否可以被推廣并且可以提供傳感器網(wǎng)絡的開發(fā)效率。借助已經(jīng)日趨成熟的統(tǒng)ー建模語言統(tǒng)ー建模語言,整個軟件開發(fā)過程參考了面向對象的軟件開發(fā)方法。包含需求分析、概要設計、詳細設計等過程。結合傳感網(wǎng)軟件開發(fā)的特點,傳感網(wǎng)軟件開發(fā)方法的優(yōu)勢在于可以較好地分析建模傳感網(wǎng),輔助大規(guī)模的傳感網(wǎng)軟件開發(fā)。本模型可以分析建立以組為單位的傳感網(wǎng)活動,清晰地構建大規(guī)模傳感網(wǎng)軟件的體系結構模型。該智能體可以自組織的建立傳感網(wǎng),獨立仲裁決定自己的行為,參與以組為単位的各種智能體組活動。本傳感網(wǎng)軟件開發(fā)方法使得傳感網(wǎng)軟件開發(fā)模型化,提高了傳感網(wǎng)軟件開發(fā)效率,降低了傳感網(wǎng)軟件開發(fā)的難度。代碼自動生成技術已成為項目開發(fā)不可或缺的ー項技能,它通過自動生成文本的方式,減少開發(fā)工作量并防止缺陷產(chǎn)生?;谀P偷拇a生成是當前軟件工程研究的重要領域。從模型直接轉換成源代碼能使開發(fā)這保持設計模型和實現(xiàn)的統(tǒng)ー性,減少書寫代碼的工作量,提高軟件開發(fā)的速度和質量。傳統(tǒng)意義上的代碼生成,首先識別應用源代碼中經(jīng)常出現(xiàn)的重復性代碼,然后自動生成這些重復部分來代替手工編寫的目標代碼,所謂目標代碼,是指與應用相關的一系列產(chǎn)品,例如文檔,腳本,定義文件等。如果沒有代碼生成工具,開發(fā)者將手工書寫所有代碼,雖然這樣可以得到靈活性較高的產(chǎn)品,但是,使用代碼自動生成可以降低成本,減少出錯率,使可靠性更強。

發(fā)明內容
技術問題本發(fā)明的目的是提出一種面向無線傳感網(wǎng)的由統(tǒng)ー建模語言模型向代碼的轉換方法,解決了當前面臨的模型到代碼轉化方法的不靈活性以及在傳感網(wǎng)應用中轉化的復雜性等問題,提高了應用開發(fā)效率。技術方案本發(fā)明所采用的統(tǒng)ー建模語言到代碼的轉換方法是基于訪問者的轉化方法,根據(jù)模型與代碼之間的關系,定義模型與目標代碼的具體映射規(guī)則,然后設置ー個訪問者來訪問該模型,將映射規(guī)則嵌入至訪問者,根據(jù)模型到代碼映射規(guī)則,訪問者在對模型的訪問中,邊讀模型,邊根據(jù)映射規(guī)則,用目標代碼對模型進行解析,實現(xiàn)到目標語言框架模型的轉化,由此獲得目標語言程序代碼,完成模型向目標語言的轉化。該方法包括如下步驟
步驟I、創(chuàng)建統(tǒng)一建模語言模型
創(chuàng)建統(tǒng)一建模語言模型,首先是從整個系統(tǒng)的邏輯數(shù)據(jù)模型開始,然后通過全局信息需求視圖來說明系統(tǒng)中所有基本數(shù)據(jù)實體及其相互關系,最后逐步構造整個模型;該方法所述的對系統(tǒng)對象的建模過程,認為在無線傳感網(wǎng)中的節(jié)點是靜態(tài)的;
步驟2、檢查統(tǒng)一建模語言模型的正確性 首先通過建模工具中模型檢查設置,用來檢查訪問問題,從模型菜單項目中找出模型中的問題和不一致性,然后尋找不同包的兩個類之間存在關系時發(fā)生的問題,最終將發(fā)現(xiàn)的錯誤寫入日志報告。所發(fā)現(xiàn)的錯誤包括序列框圖或協(xié)作框圖中的消息與操作不映射,以及序列框圖或協(xié)作框圖中的對象與類不映射;
步驟3、設置訪問者,定義映射規(guī)則 步驟4、訪問模型
用訪問者來訪問模型,邊訪問邊對照映射規(guī)則進行到代碼的轉換,最終獲得目標語言框架模型;
步驟5、代碼生成
代碼生成的過程為首先訪問者訪問模型,然后邊讀模型邊根據(jù)映射規(guī)則進行轉化,最終生成目標代碼框架。設置訪問者的訪問方法,采用的是基于訪問者的方式進行轉換;訪問者主要負責訪問模型的內部,在訪問模型的同時寫代碼到文本輸出流,實現(xiàn)模型到代碼的轉化;訪問者首先利用一系列的類來建立系統(tǒng)的統(tǒng)一建模語言模型,然后提供ー個模型的內部表示并加上一些操控模型的預先定義函數(shù),實現(xiàn)面向對象的框架,最后通過操控模型的預先定義函數(shù)和一個訪問機制來產(chǎn)生代碼。模型到代碼的映射規(guī)則,統(tǒng)ー建模語言模型中描述的類、屬性、操作的概念與目標代碼中的相應概念直接對應,其中的關聯(lián)、聚集、依賴、泛化關系分別對應的轉化方法如下
31)所述映射規(guī)則中的關聯(lián)關系對應的轉化方法為首先將統(tǒng)ー建模語言模型中兩個類的關聯(lián)端及關聯(lián)產(chǎn)生的屬性作為源對象,目標對象就是代碼模型中的類、屬性和方法,實現(xiàn)統(tǒng)ー建模語言表示的對象間的關聯(lián);然后將關聯(lián)關系及其屬性分配到相關聯(lián)的類中;所述關聯(lián)關系是指類與類之間的關系,由關聯(lián)產(chǎn)生的屬性作為相應類中的屬性,而且每個類還包含引用屬性,通過該屬性可以訪問相關聯(lián)的類;
32)所述映射規(guī)則中的聚集關系對應的轉化方法為首先把聚集兩端的類分別映射為對應的代碼類對象,然后在目標代碼模型中表示出整體類添加對部分類的引用;
33)所述映射規(guī)則中的泛化關系對應的轉化方法為在轉換時將父類的屬性轉換為目標子類的屬性,變換的源對象為父類的屬性,目標對象為子類的屬性,所述泛化關系具體含義為繼承,子類繼承父類的所有屬性,變換初始條件為子類與父類之間存在繼承關系,變換內容是把源對象的屬性轉換成目標對象的屬性;
34)所述映射規(guī)則中的依賴關系對應的轉化方法為將模型中依賴關系表示為類的屬性,同時把被依賴類的對象轉換為依賴對象的ー個引用屬性。4、根據(jù)權利要求I所述的面向無線傳感網(wǎng)的模型語言到代碼轉化方法,其特征在于所述的訪問模型,其訪問的步驟為
41)根據(jù)當前的模型狀態(tài)以及映射規(guī)則,選擇滿足匹配條件的一組規(guī)則;
42)按調度機制從滿足條件的一組規(guī)則中選擇一條規(guī)則,找出下一步中執(zhí)行的規(guī)則;
43)訪問者訪問,執(zhí)行映射規(guī)則,生成目標代碼元素,改變相應的模型和目標代碼狀態(tài),并選擇下一歩中匹配的規(guī)則;
44)重復以上三步直至停止;
45)生成完整的目標代碼,保存轉換記錄,記錄轉換過程中的轉換步驟和錯誤信息。有益效果本發(fā)明提出了一種面向無線傳感網(wǎng)的統(tǒng)ー建模語言模型與到代碼的轉化方法,通過設置訪問者,實現(xiàn)模型到目的代碼的轉換。本發(fā)明所述的方法具有如下的有益效果
(1)生成代碼的準確性高。通過設置訪問者實現(xiàn)了模型到代碼的轉化。生成的代碼能與系統(tǒng)要求一致的代碼質量,生成的代碼只依賴代碼生成的模板、文件和模型。(2)代碼與模型的同步性。代碼生成技術自動維護代碼和數(shù)據(jù)模型的一致性,訪問者通過重新訪問模型,對模型的修改可以自動反映到代碼中,有效實現(xiàn)代碼與模型的同步性。(3)代碼修復的簡便性。特別在需要大量更改代碼的情況下,只需要更改模板并重新訪問模型即可。對于修復軟件Bug,只需要修復模板的Bug然后重新運行訪問模型就可以修復所有的生成文件的Bug。(4)提高應用開發(fā)效率。本發(fā)明在具體應用時可以將更多的時間花費在業(yè)務相關的設計和實現(xiàn)上,從而可以大大提高了應用開發(fā)效率和產(chǎn)品質量。


圖I是模型驅動方法過程圖,
圖2是模型到代碼轉化流程示意圖。
具體實施例方式I、創(chuàng)建統(tǒng)一建模語言模型
創(chuàng)建統(tǒng)一建模語言模型,首先是從整個系統(tǒng)的邏輯數(shù)據(jù)模型開始,然后通過全局信息需求視圖來說明系統(tǒng)中所有基本數(shù)據(jù)實體及其相互關系,最后逐步構造整個模型。該方法所述的對系統(tǒng)對象的建模過程,認為在無線傳感網(wǎng)中的節(jié)點是靜態(tài)的。(I)創(chuàng)建系統(tǒng)的用例圖
用例圖顯示系統(tǒng)中的使用案例與角色及其相互關系,角色是與所建系統(tǒng)交互的對象(人或物),使用案例是系統(tǒng)提供的高級功能模塊,演示了人們如何使用案例,首先創(chuàng)建主用例框圖,顯示系統(tǒng)的總體視圖。
(2)創(chuàng)建系統(tǒng)的邏輯視圖首先在邏輯視圖中創(chuàng)建序列框圖和協(xié)作框圖。交互框圖一歩一歩顯示使用案例的流程。包括流程中需要什么對象;對象相互發(fā)送什么消息;什么角色啟流;消息按什么順序發(fā)送。(3)在邏輯視圖中創(chuàng)建類、包和類框圖
(4)創(chuàng)建系統(tǒng)的組件視圖。組件視圖主要關心系統(tǒng)的實際結構。組件就是與系統(tǒng)向關聯(lián)的文件,可以是源代碼、可執(zhí)行文件或DLL文件。組件是代碼的物理模塊。生成代碼之前,將每個文件映射相應組件。(5)創(chuàng)建系統(tǒng)的部署視圖 部署視圖包含處理器、設備、進程和處理器與設備之間的連接。這一切都顯示在部署框圖上,每個系統(tǒng)只有ー個部署框圖,所以整個模型中也只有ー個部署框圖。2、檢查統(tǒng)一建模語言模型的正確性
首先通過建模工具中模型檢查設置,用來檢查訪問問題,從模型菜單項目中找出模型中的問題和不一致性,然后尋找不同包的兩個類之間存在關系時發(fā)生的問題,最終將發(fā)現(xiàn)的錯誤寫入日志報告。所發(fā)現(xiàn)的錯誤包括序列框圖或協(xié)作框圖中的消息與操作不映射,以及序列框圖或協(xié)作框圖中的對象與類不映射等。3、定義統(tǒng)一建模語言模型到NesC代碼的映射規(guī)則
首先訪問者通過一系列的類來建立系統(tǒng)的統(tǒng)一建模語言模型,然后提供ー個模型的內部表示并加上一些操控模型的API,從而實現(xiàn)面向對象的框架,最后通過操控模型的API和ー個訪問機制來產(chǎn)生代碼。映射規(guī)則為統(tǒng)ー建模語言模型中描述的類、屬性、操作等概念與目標代碼中的相應概念直接對應,而關聯(lián)、聚集、依賴等概念卻與代碼中的表達形式產(chǎn)生了不一致性。本發(fā)明用產(chǎn)生屬性的方法來表示對象之間的關聯(lián)、依賴、泛化和聚集關系,其分別對應的轉化方法如下
I)所述映射規(guī)則中的關聯(lián)關系對應的轉化方法為首先將統(tǒng)ー建模語言模型中兩個類的關聯(lián)端及關聯(lián)產(chǎn)生的屬性作為源對象,目標對象就是代碼模型中的類、屬性和方法,實現(xiàn)統(tǒng)ー建模語言表示的對象間的關聯(lián)。然后將關聯(lián)關系及其屬性分配到相關聯(lián)的類中。所述關聯(lián)關系是指類與類之間的關系,由關聯(lián)產(chǎn)生的屬性作為相應類中的屬性,而且每個類還包含引用屬性,通過該屬性可以訪問相關聯(lián)的類。2)所述映射規(guī)則中的聚集關系對應的轉化方法為首先把聚集兩端的類分別映射為對應的代碼類對象,然后在目標代碼模型中表示出整體類添加對部分類的引用。3)所述映射規(guī)則中的泛化關系對應的轉化方法為在轉換時將父類的屬性轉換為目標子類的屬性,變換的源對象為父類的屬性,目標對象為子類的屬性。所述泛化關系具體含義為繼承,子類繼承父類的所有屬性,變換初始條件為子類與父類之間存在繼承關系,變換內容是把源對象的屬性轉換成目標對象的屬性。4)所述映射規(guī)則中的依賴關系對應的轉化方法為將模型中依賴關系表示為類的屬性,同時把被依賴類的對象轉換為依賴對象的ー個引用屬性。
統(tǒng)ー建模語言模型與NesC的映射規(guī)則如下
(1)類圖、對象圖ーNesC中各個模塊,類的屬性對應模塊屬性,方法對應模塊接ロ定義,
(2)用例圖ーNesC中程序的流程,不同參與者對應的模塊流程不同,一個參與者的所有行為功能就是對應模塊實現(xiàn)的功能,
(3)狀態(tài)圖ー各個功能實現(xiàn)的使用條件,即對應判斷語句,以及相應條件下的執(zhí)行,
(4)序列圖ー對應模塊的具體實現(xiàn),如模塊功能實現(xiàn)時需調用的函數(shù),調用的步驟,各個接ロ需要做的定義等,
(5)活動圖一函數(shù)的具體功能,即函數(shù)的具體定義,
4、訪問模型
首先,根據(jù)當前的模型狀態(tài)以及映射規(guī)則,選擇滿足匹配條件的一組規(guī)則; 其次,按調度機制從滿足條件的一組規(guī)則中選擇一條規(guī)則,找出下一步中執(zhí)行的規(guī)
則;
然后,訪問者訪問,執(zhí)行映射規(guī)則,生成目標代碼元素,改變相應的模型和目標代碼狀態(tài),并選擇下一歩中匹配的規(guī)則;
最后,生成完整的目標模型,保存轉換記錄,記錄轉換過程中的相關信息。5、代碼生成
代碼生成的過程為首先訪問者訪問模型,然后邊讀模型邊根據(jù)映射規(guī)則進行轉化,最終生成目標代碼框架。一、體系結構
本發(fā)明所述的模型到代碼的轉化包括模型模塊和在此基礎上的基于訪問者的轉化方法。I、模型模塊
該模塊主要負責為無線傳感網(wǎng)系統(tǒng)對象建模,提供靜態(tài)、動態(tài)、系統(tǒng)環(huán)境和組織結構的模型,將系統(tǒng)生成為ー些離散的相互作用的對象并為外部用戶提供一定功能結構。所述模型中的靜態(tài)結構主要負責系統(tǒng)中重要對象的屬性和操作以及這些對象之間的相互關系,動態(tài)行為定義對象的時間特性和對象為完成目標而相互進行通信的機制;所述模型中的動態(tài)結構主要負責說明系統(tǒng)的功能和行為。2、基于訪問者的轉化方法
基于訪問者的轉化方法為首先定義模型到代碼的映射規(guī)則,然后將映射規(guī)則嵌入至訪問者,最后訪問者訪問模型,最終實現(xiàn)模型到代碼的轉化。轉化方法由兩個模塊組成(O映射規(guī)則
映射規(guī)則的主要作用在于定義模型到代碼的具體轉化關系。(2)訪問者模塊
該模塊主要負責訪問模型的內部,訪問者在訪問模型的同時寫代碼到文本輸出流,實現(xiàn)模型到代碼的轉化。具體模塊內容為訪問者首先利用一系列的類來建立系統(tǒng)的統(tǒng)一建模語言模型,然后提供ー個模型的內部表示并加上一些操控模型的API,實現(xiàn)面向對象的框架,最后通過操控模型的API和一個訪問機制來產(chǎn)生代碼。ニ、方法流程
該方法包括如下步驟
步驟I、創(chuàng)建統(tǒng)一建模語言模型
創(chuàng)建統(tǒng)一建模語言模型,首先是從整個系統(tǒng)的邏輯數(shù)據(jù)模型開始,然后通過全局信息需求視圖來說明系統(tǒng)中所有基本數(shù)據(jù)實體及其相互關系,最后逐步構造整個模型;該方法所述的對系統(tǒng)對象的建模過程,認為在無線傳感網(wǎng)中的節(jié)點是靜態(tài)的;
步驟2、檢查統(tǒng)一建模語言模型的正確性
首先通過建模工具中模型檢查設置,用來檢查訪問問題,從模型菜單項目中找出模型中的問題和不一致性,然后尋找不同包的兩個類之間存在關系時發(fā)生的問題,最終將發(fā)現(xiàn)的錯誤寫入日志報告。所發(fā)現(xiàn)的錯誤包括序列框圖或協(xié)作框圖中的消息與操作不映射,以及序列框圖或協(xié)作框圖中的對象與類不映射;
步驟3、設置訪問者,定義映射規(guī)則 步驟4、訪問模型
用訪問者來訪問模型,邊訪問邊對照映射規(guī)則進行到代碼的轉換,最終獲得目標語言框架模型; 步驟5、代碼生成
代碼生成的過程為首先訪問者訪問模型,然后邊讀模型邊根據(jù)映射規(guī)則進行轉化,最終生成目標代碼框架。設置訪問者的訪問方法,采用的是基于訪問者的方式進行轉換;訪問者主要負責訪問模型的內部,在訪問模型的同時寫代碼到文本輸出流,實現(xiàn)模型到代碼的轉化;訪問者首先利用一系列的類來建立系統(tǒng)的統(tǒng)一建模語言模型,然后提供ー個模型的內部表示并加上一些操控模型的預先定義函數(shù),實現(xiàn)面向對象的框架,最后通過操控模型的預先定義函數(shù)和一個訪問機制來產(chǎn)生代碼。模型到代碼的映射規(guī)則,統(tǒng)ー建模語言模型中描述的類、屬性、操作的概念與目標代碼中的相應概念直接對應,其中的關聯(lián)、聚集、依賴、泛化關系分別對應的轉化方法如下
31)所述映射規(guī)則中的關聯(lián)關系對應的轉化方法為首先將統(tǒng)ー建模語言模型中兩個類的關聯(lián)端及關聯(lián)產(chǎn)生的屬性作為源對象,目標對象就是代碼模型中的類、屬性和方法,實現(xiàn)統(tǒng)ー建模語言表示的對象間的關聯(lián);然后將關聯(lián)關系及其屬性分配到相關聯(lián)的類中;所述關聯(lián)關系是指類與類之間的關系,由關聯(lián)產(chǎn)生的屬性作為相應類中的屬性,而且每個類還包含引用屬性,通過該屬性可以訪問相關聯(lián)的類;
32)所述映射規(guī)則中的聚集關系對應的轉化方法為首先把聚集兩端的類分別映射為對應的代碼類對象,然后在目標代碼模型中表示出整體類添加對部分類的引用;
33)所述映射規(guī)則中的泛化關系對應的轉化方法為在轉換時將父類的屬性轉換為目標子類的屬性,變換的源對象為父類的屬性,目標對象為子類的屬性,所述泛化關系具體含義為繼承,子類繼承父類的所有屬性,變換初始條件為子類與父類之間存在繼承關系,變換內容是把源對象的屬性轉換成目標對象的屬性;
34)所述映射規(guī)則中的依賴關系對應的轉化方法為將模型中依賴關系表示為類的屬性,同時把被依賴類的對象轉換為依賴對象的ー個引用屬性。所述的訪問模型,其訪問的步驟為
41)根據(jù)當前的模型狀態(tài)以及映射規(guī)則,選擇滿足匹配條件的一組規(guī)則;
42)按調度機制從滿足條件的一組規(guī)則中選擇一條規(guī)則,找出下一步中執(zhí)行的規(guī)則;
43)訪問者訪問,執(zhí)行映射規(guī)則,生成目標代碼元素,改變相應的模型和目標代碼狀態(tài),并選擇下一歩中匹配的規(guī)則;44)重復以上三步直至停止;
45)生成完整的目標代碼,保存轉換記錄,記錄轉換過程中的轉換步驟和錯誤信息。·
權利要求
1.一種面向無線傳感網(wǎng)的模型語言到代碼轉化方法,其特征在于該方法包括如下步驟 步驟I、創(chuàng)建統(tǒng)一建模語言模型 創(chuàng)建統(tǒng)一建模語言模型,首先是從整個系統(tǒng)的邏輯數(shù)據(jù)模型開始,然后通過全局信息需求視圖來說明系統(tǒng)中所有基本數(shù)據(jù)實體及其相互關系,最后逐步構造整個模型;該方法所述的對系統(tǒng)對象的建模過程,認為在無線傳感網(wǎng)中的節(jié)點是靜態(tài)的; 步驟2、檢查統(tǒng)一建模語言模型的正確性 首先通過建模工具中模型檢查設置,用來檢查訪問問題,從模型菜單項目中找出模型中的問題和不一致性,然后尋找不同包的兩個類之間存在關系時發(fā)生的問題,最終將發(fā)現(xiàn)的錯誤寫入日志報告,所發(fā)現(xiàn)的錯誤包括序列框圖或協(xié)作框圖中的消息與操作不映射,以及序列框圖或協(xié)作框圖中的對象與類不映射; 步驟3、設置訪問者,定義映射規(guī)則 步驟4、訪問模型 用訪問者來訪問模型,邊訪問邊對照映射規(guī)則進行到代碼的轉換,最終獲得目標語言框架模型; 步驟5、代碼生成 代碼生成的過程為首先訪問者訪問模型,然后邊讀模型邊根據(jù)映射規(guī)則進行轉化,最終生成目標代碼框架。
2.根據(jù)權利要求I所述的面向無線傳感網(wǎng)的模型語言到代碼轉化方法,其特征在于設置訪問者的訪問方法,采用的是基于訪問者的方式進行轉換;訪問者主要負責訪問模型的內部,在訪問模型的同時寫代碼到文本輸出流,實現(xiàn)模型到代碼的轉化;訪問者首先利用一系列的類來建立系統(tǒng)的統(tǒng)一建模語言模型,然后提供ー個模型的內部表示并加上一些操控模型的預先定義函數(shù),實現(xiàn)面向對象的框架,最后通過操控模型的預先定義函數(shù)和ー個訪問機制來產(chǎn)生代碼。
3.根據(jù)權利要求I所述的面向無線傳感網(wǎng)的模型語言到代碼轉化方法,其特征在于模型到代碼的映射規(guī)則,統(tǒng)ー建模語言模型中描述的類、屬性、操作的概念與目標代碼中的相應概念直接對應,其中的關聯(lián)、聚集、依賴、泛化關系分別對應的轉化方法如下 31)所述映射規(guī)則中的關聯(lián)關系對應的轉化方法為首先將統(tǒng)ー建模語言模型中兩個類的關聯(lián)端及關聯(lián)產(chǎn)生的屬性作為源對象,目標對象就是代碼模型中的類、屬性和方法,實現(xiàn)統(tǒng)ー建模語言表示的對象間的關聯(lián);然后將關聯(lián)關系及其屬性分配到相關聯(lián)的類中;所述關聯(lián)關系是指類與類之間的關系,由關聯(lián)產(chǎn)生的屬性作為相應類中的屬性,而且每個類還包含引用屬性,通過該屬性可以訪問相關聯(lián)的類; 32)所述映射規(guī)則中的聚集關系對應的轉化方法為首先把聚集兩端的類分別映射為對應的代碼類對象,然后在目標代碼模型中表示出整體類添加對部分類的引用; 33)所述映射規(guī)則中的泛化關系對應的轉化方法為在轉換時將父類的屬性轉換為目標子類的屬性,變換的源對象為父類的屬性,目標對象為子類的屬性,所述泛化關系具體含義為繼承,子類繼承父類的所有屬性,變換初始條件為子類與父類之間存在繼承關系,變換內容是把源對象的屬性轉換成目標對象的屬性; 34)所述映射規(guī)則中的依賴關系對應的轉化方法為將模型中依賴關系表示為類的屬性,同時把被依賴類的對象轉換為依賴對象的一個引用屬性。
4.根據(jù)權利要求I所述的面向無線傳感網(wǎng)的模型語言到代碼轉化方法,其特征在于所述的訪問模型,其訪問的步驟為 41)根據(jù)當前的模型狀態(tài)以及映射規(guī)則,選擇滿足匹配條件的一組規(guī)則; 42)按調度機制從滿足條件的一組規(guī)則中選擇一條規(guī)則,找出下一步中執(zhí)行的規(guī)則; 43)訪問者訪問,執(zhí)行映射規(guī)則,生成目標代碼元素,改變相應的模型和目標代碼狀態(tài),并選擇下一步中匹配的規(guī)則; 44)重復以上三步直至停止; 45)生成完整的目標代碼,保存轉換記錄,記錄轉換過程中的轉換步驟和錯誤信息。
全文摘要
本發(fā)明是一種面向無線傳感網(wǎng)的模型到代碼的轉化方法,所采用的統(tǒng)一建模語言到代碼的轉換方法是基于訪問者的轉化方法,根據(jù)模型與代碼之間的關系,定義模型與目標代碼的具體映射規(guī)則,然后設置一個訪問者來訪問該模型,將映射規(guī)則嵌入至訪問者,根據(jù)此映射規(guī)則,訪問者在對模型的訪問中,邊讀模型,邊根據(jù)映射規(guī)則,實現(xiàn)到目標語言框架模型的轉化,由此獲得目標語言程序代碼,完成模型向目標語言的轉化,有效解決了無線傳感網(wǎng)中模型到代碼的轉化問題,大大提高了應用開發(fā)效率。
文檔編號G06F9/44GK102681855SQ20121016516
公開日2012年9月19日 申請日期2012年5月25日 優(yōu)先權日2012年5月25日
發(fā)明者孫萬興, 岳書珍, 岳文靜, 張亞萍, 楊萌, 陳志 申請人:南京郵電大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
农安县| 珠海市| 永新县| 漠河县| 土默特左旗| 井陉县| 越西县| 江达县| 饶阳县| 呼玛县| 宿州市| 姜堰市| 平邑县| 兖州市| 郸城县| 东丽区| 时尚| 壶关县| 汝州市| 泾源县| 象州县| 古交市| 张北县| 兴化市| 阜平县| 新竹县| 克什克腾旗| 平乡县| 丹棱县| 隆回县| 获嘉县| 额尔古纳市| 闸北区| 阳江市| 农安县| 泰顺县| 阿拉尔市| 景宁| 海阳市| 寿阳县| 习水县|