3.2 系統實作
3.2.2 模型的轉換
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
27
所以本系統的模型轉換實作主要分成兩個部分,第一部分是對平台無關導引精靈與 建構在本系統裡的平台專屬導引精靈建立轉換規則,另一部份是建立每一個平台專屬導 引精靈的程式碼產生器:
模型與模型之間的轉換
在進行模型與模型之間的轉換之前,必須先建立好模型彼此之間轉換的規則(詳細 的模型轉換規則請參照5.1節),然後再透過模型轉換語言進行轉換規則的撰寫,模型轉 換規則的實作主要是利用Xtext裡所提供的Xtend模型轉換工具,最後依據定義好的規則 來進行模型轉換。
圖 3.3:模型與模型之間的轉換意識圖。
圖3.3為模型與模型之間的轉換意識圖。Source Model為程式開發者利用平台無關 導引精靈特定領域語言設計好的導引精靈模型,作為此模型轉換的輸入,此模型必須符 合上層的導引精靈PIMM的規範,接著再上去就是必須符合本系統的Meta-metamodel Ecore。Target Model是經由轉換後得到的導引精靈模型,此模型必須符合上層的特定 平台導引精靈PSMM的規範,同樣的再上去就是符合本系統的Meta-metamodel Ecore。對 於利用Xtend轉寫的模型轉換規則,則必須符合Xtend語法的規定。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
28
以四層的MDA架構來看,模型與模型之間的轉換主要是利用Xtend建立,屬於M2 Layer 裡PIMM與PSMM之間的導引精靈模型轉換規則,然後以M1 Layer裡的Source Model作為輸 入,依照建立好的模型轉換規則產生符合某執行平台特性的導引精靈模型,也就是 Target Model。
模型與程式碼之間的轉換
在 進 行 模 型 與 程 式 碼 之 間 的 轉 換 之 前 , 必 須 先 設 計 好 模 型 的 轉 換 範 本 (templates)(詳細的模型轉換範本請參照5.2節),然後再透過模型轉換語言建立模型與 模型範本之間的轉換關係,模型範本的轉換實作主要是利用Xtext裡所提供的Xtend模型 轉換工具,最後依據定義好的模型範本來進行模型範本轉換。
圖 3.4:模型與程式碼之間的轉換意識圖。
圖3.4為模型與程式碼之間的轉換意識圖。Source Model為程式開發者經由模型與 模型之間的轉換過程中,從平台無關導引精靈模型得到的特定平台導引精靈模型,作為 此模型轉換的輸入。Source Code是經由模型範本轉換所產生的導引精靈程式,此程式 碼必須符合執行平台的規範。對於利用Xtend轉寫的模型範本轉換規則,則必須符合 Xtend語法的規定。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
29
以四層的MDA架構來看,模型與程式碼之間的轉換主要是利用Xtend建立,屬於M2 Layer裡PSMM的導引精靈模型轉換範本,然後以M1 Layer裡的Source Model作為輸入,
透過模型範本的轉換規則產生符合執行平台特性的導引精靈Source Code。
接下來我們將在第四、第五及第六章節,分別對「平台無關」與「平台專屬」的導 引精靈超模型建立、導引精靈模型的轉換規則建立及多平台導引精靈開發系統的操作流 程,作進一步更詳細的說明。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
30
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
31