• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

44

對於利用 Xtend 轉寫的模型範本轉換規則,則必須符合 Xtend 語法的規定。

以四層的 MDA 架構來看,模型與程式碼之間的轉換工具主要是利用 Xtend 實作建 立,本身屬於 M2 層轉換工具,它以 M1 Layer 裡的 PSMM 作為輸入,透過模型範本的 轉換規則產生符合執行平台特性的導引精靈 Source Code。

4.3 回顧 MoDWiz 系列系統的發展

起初以 MDA 架構實現導引精靈(MoDWiz 系統)的概念是出自於阿拉巴馬大學伯明翰分 校三位作者 Enis Afgan、Jeff Gray 與 Purushotham Bangalore 的研究論文 Using Domain-Specific Modeling to Generate User Interfaces for Wizards,此篇論文主要是討論有哪些要 素是建構一個導引精靈程式所必須的,以及如何使用 DSML(Domain-Specific Modeling Language) 來 描 述 與 定 義 導 引 精 靈 , 並 進 一 步 產 生 相 關 的 導 引 精 靈 程 式 , 最 後 以 ASL(Application Specification Language) 【3】為例設計相關的 ASL 導引精靈實作。超模 型的設計與建立主要是利用 MDE(Model-Driven Engineering)0 的概念,對導引精靈進行 超模型需求的分析,以決定那些部分是需要被定義出來,並且將導引精靈主要分成兩類:

「Plain Wizards」與「Guided Wizards」:

4.3.1 Plain Wizard

Plain Wizard 是一種連續性的導引精靈頁面集合,彼此之間是以一個接著一個的方式作 連接,不允許跳躍的情況發生,對於這一類型的超模型分類,必須處理每一個不同頁面 之間的連接方式、資料傳遞的方式、橫跨不同頁面的資料儲存以及頁面的 GUI 設計,並 且此類型的導引精靈在模型被建立的同時,只會存在著一條單一的執行路徑。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

45

4.3.2 Guided Wizard

Guided Wizard 延伸了連續性頁面的概念並且與「Expert System」【27】有較相近的關係。

對程式開發者來說,在建立 Guided Wizards 時,必須包含許多預先定義好的執行路徑集 合,並且由使用者來決定下一個導引精靈頁面。因此在建立 Guided Wizards 超模型時,

必須將上述的幾個因素考慮進去。除此之外,我們加入了「控制流程要素」(control flow element)的概念。用來對使用者輸入的資料進行分析,然後再預測是否有分支(Branch)情 況發生。

在建立模型工具的部分,主要是使用 GME(Generic Modeling Environment)【12】建 模工具進行 DSML(Domain-Specific Modeling Language)模型的建立,GME 的超模型語 言主要是以 UML 作為類別圖形表示法的基礎與 OCL【20】進行 UML 限制規則的描述,

對於模型範例的編輯則會根據超模型的規範,自動產生特定領域模型的編輯環境,並且 以 XML【28】作為模型的主要儲存格式,GME 主要是透過 Microsoft COM (Component Object Model)【17】技術建立具有模組化且可擴充架構的開發環境。

在程式碼產生器的部分,並沒有明確的表示使用哪種工具進行撰寫,只提到使用模 型編譯器能產生與模型對應的 HTML 程式碼【29】,並且在導引精靈程式產生的過程中 必須注意每一個導引精靈頁面的格式、順序與資料的傳遞,但透過此程式碼產生器產生 的 HTML 網頁,目前只能實現基本所需的網頁格式,對於頁面的排列與頁面之間的連接 關係並無法透過此程式碼產生器實現,主要的遇到的挑戰是需要自動建立在模型裡不同 類型物件的連接機制。如表 4-1 所示:

 相關系統【7】

• 是使用 UML【8】來做為超模型的建構標準。

• 提供一種 WebApp 平台的程式碼轉換,而沒有提供模型轉換。

• 導引精靈頁面拜訪順序採循序式導引精靈結構。

 MoDWiz(第一代)

• 使用 EMF【4】的 Ecore 模型來做為超模型的建構標準。

• 另外在 PSMM 方面,MoDWiz 支援了三種執行平台(WebApp、Eclipse 與 Java)的 模型轉換和程式碼轉換。 Metametamodel UML Ecore Ecore Ecore

PIMM 無 Wizard PIMM Wizard PIMM Wizard PIMM

支援平台 WebApp Java、Eclipse、

WebApp Java、Eclipse Java、Eclipse、

Android

程式碼產生器 有 有 有 有

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

47

導引精靈結構分析與超模型

此章節將對於 MoDWiz3 系統的一般導引精靈與特定平台導引精靈結構進行分析,並設 計符合模型規範的 Android 平台導引精靈模型,成為 MoDWiz3 系統 Android 平台轉換 的核心,其中包括平台的轉換、元件的轉換和程式邏輯的轉換。