• 沒有找到結果。

最後 Rich Strings 會被轉換成有效的字串串聯,並且以 Java 的 CharSequence 作為回 傳值型態進行回傳。 DSML(Domain-Specific Modeling Language)來描述與定義導引精靈,並進一步產生 相關的導引精靈程式,最後以ASL(Application Specification Language)[14]為例

01

def toClass(Entity e) '''

02

package «e.packageName»;

03

«e.placeImports»

04

public class «e.name» {

05

«FOR e.members»

06

«member.toMember»

07

«ENDFOR»

08

}

09

'''

要被定義出來,並且將導引精靈主要分成兩類:「Plain Wizards」與「Guided Wizards」:

Plain Wizard

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

並且此類型的導引精靈在模型被建立的同時,只會存在著一條單一的執行路徑。

Guided Wizard

Guided Wizard 延伸連續性頁面的概念並且與「expert system」[16]有較相近的關 係,所謂的 expert system 就是試圖對某個問題提出一組答案,並且沒有一個明確的正 解,所以對程式開發者來說,在建立 Guided Wizards 時,必須包含許多預先定義好的 執行路徑集合,並且由使用者來決定下一個導引精靈頁面。因此在建立 Guided Wizards 超模型時,都必須將上述的幾個因素考慮進去,除此之外,作者還加入了「控制流程要 素」(control flow element)的概念,主要是用來對使用者輸入的資料進行分析,然 後再來決定是否有跳躍的情況發生。

在建立模型工具的部分,主要是使用 GME(Generic Modeling Environment)[17]

建模工具進行 DSML 模型的建立,GME 的超模型語言主要是以 UML 作為類別圖形表示法的 基礎與 OCL[18]進行 UML 限制規則的描述,對於模型範例的編輯則會根據超模型的規範,

自動產生特定領域模型的編輯環境,並且以 XML 作為模型的主要儲存格式,GME 主要是 透過 Microsoft COM (Component Object Model) [19]技術建立具有模組化且可擴充架 構的開發環境。

此相關系統[07]與本系統 MoDWiz 之比較,如表 2.4 所示,MoDWiz 主要是使用 EMF[04]

的 Ecore 模型來做為超模型的建構標準,而相關系統[07]則是使用 UML 來做為超模型的 建構標準。MoDWiz 系統提供了導引精靈的平台無關精靈超模型,做為一般導引精靈程式 的描述標準,並且提供導引精靈的描述語言 WDL 與 WDL 編輯器,提高使用者對導引精靈 模型的編輯效率,對於導引精靈的 PIM 模型提供 M2M 工具,自動轉換成符合特定執行平 台的 PSM 模型,這些都是相關系統[07]所沒有提供的。另外在 PSMM 方面,MoDWiz 支援 了三種執行平台,其中包含 WebApp、Eclipse 與 Java,而相關系統[07]只提供一種 WebApp 的執行平台。

MoDWiz 相關系統[07]

Metametamodel Ecore UML

PIMM Wizard PIMM 無

DSL WDL 無

DSL Editor WDL Editor 無

M2M 工具 有 無

PSMM 有 有

支援平台 WebApp、Java、Eclipse WebApp

程式碼產生器(M2T 工具) 有 有

表 2.4:MoDWiz 與相關系統[07]之比較。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

22

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

23

3

系統架構與實作

此章節將針對本系統的架構與實作進行說明。首先介紹的是系統架構,說明如何將MDA 應用於多平台導引精靈程式開發系統上;接著是系統的實作,介紹如何透過Eclipse平 台與Eclipse相關的Plug-ins模型開發工具,進行多平台導引精靈程式開發系統MoDWiz 的實作。

圖 3.1:MoDWiz 系統架構。

MoDWiz(MOdel-Driven WIZard Generation System),MoDWiz 主要包含以下幾個部分:

• 平台無關導引精靈超模型(Wizard PIMM):此超模型主要是用來描述導引精靈程式 的目的、結構與行為,所以必須先對一般導引精靈程式進行平台無關的分析,接著 建立超模型作為一般導引機靈模型的描述規範,並且本系統主要是以此超模型描述 的導引精靈模型作為系統的輸入。

• 導引精靈描述語言(WDL):為了方便導引精靈模型的編輯,我們為 Wizard PIMM 提 供了一個專屬的具體語法稱之為 WDL(Wizard DSL)。WDL 及其相關編輯器的制定,

讓程式開發者能夠更簡單快速的描述待開發的導引精靈。 型與模型之間的轉換」(Model to Model Transformations, M2M)將平台無關導 引精靈模型(PIM)轉換成符合特定執行平台的平台專屬導引精靈模型。

• 模型與程式碼之間的轉換:本系統的輸出,也就是平台專屬超模型的程式碼產生器 的 建 構 , 在 本 系 統 裡 透 過 「 模 型 與 程 式 碼 之 間 的 轉 換 」 ( Model to Text Transformations, M2T)將平台專屬導引精靈模型轉換成符合特定執行平台的程式 碼,完成利用 MDA 架構於多平台導引精靈程式的開發。