第五章 展示與驗證
5.1 建立個案之 PIM 類別圖
5.1.1 建立專案與類別圖
本研究在Borland Together平台上分成五個步驟來建立專案,並在專案中建立 個案之PIM類別圖。
Step 1:在 Borland Together 軟體平台中建立新的 UML 2.0 Project (如 圖 47)。
圖47. 在 Borland Together 平台中建立新的 UML Project
Step 2:將專案名稱命名為 Business Project 並點選 Finish 後,即可看到左側 目錄表出現建立的UML Project(如 圖 48)。
圖48. 在 Borland Together 平台中完成 UML Project 的建立
Step 3:在專案右鍵新增 Package 並命名(如 圖 49)。
圖49. 在 Borland Together 平台中建立新的 Package
Step 4:在套件部分右鍵新增類別圖型,並在其新增之類別圖型中右鍵新增 類別圖(如 圖50)。
圖50. 在 Borland Together 平台中建立類別圖
Step 5:接著依企業需求定義出類別圖名稱、型別、屬性以及屬性型別,建 立企業需求類別圖(如 圖51)。
圖51. 在 Borland Together 平台中建立類別圖屬性 5.1.2 類別圖屬性型別定義
Borland Together沒有支援本個案PSM層所需要的屬性資料型別,例如HTML 與MySQL的型別,Borland Together軟體只有提供Boolean、Byte、Character、Date、
Double、Float、Integer、Long、Real、Short、String以及UnlimitedNatural這幾種 資料型態可以選擇,Borland Together有自行更改的功能,使用者能夠以重新命名 的方式,將屬性型別進行更改,但是這造成了Borland Together在使用QVT語言進 行轉換時,無法辨識出使用者所自行定義的型別,以至於轉換失敗。因此Borland Together提供了描述檔(profile)的擴充,描述檔是UML讓使用者建立的一種語 言,利用刻版(stereotype)用來擴充UML的定義,並將該特定資訊紀錄在附標 值中(tagged value)。而描述檔是UML標準下的一種擴充機制,所以描述檔的模 型也必須合乎UML的規範。本研究在Borland Together的平台中,分成了九個步 驟來進行描述檔的定義,擴充了Borland Together軟體中UML的型別,加入了使 用者自行定義的型別,使QVT語言在進行轉換時,能正確辨識出來源類別圖中的 屬性型別。
Step 1:建立新的 Project 並選擇 Profile Definition Project 並命名(如 圖 52)。
圖52. 在 Borland Together 平台中建立 Profile Project
Step 2 : 在 繪 圖 區 右 鍵 新 增 中 選 擇 Shortcut , 並 在 目 錄 中 選 擇 metamodel→uml20→kernel→PrimitiveType(如圖53)。
圖53. 新增 Profile Project 內元素
Step 3:透過右側的調色盤,新增 Stereotype,並命名 BusinessType,接著再 新增extensive 關聯線將新增的 stereotype 繼承 metaclass(如 圖 54)。
圖54. 在 Profile Project 內新增 Stereotype 與其關聯線
Step 4:完成了metamodel的繼承後,必須將定義的stereotype加到palette contribution,當有Project引用該Profile project之後,才能在palette 找到這些stereotype並使用;在Borland Together操作中,使用右側 新增palette contribution並且以關聯線contribution連結至stereotype
(如圖55)。
圖55. 在 Profile Project 內建立 palette contribution 與其關聯線
Step 5:本研究是類別圖使用此Profile project,故需要在palette Contribution 中定義使用的圖形;右鍵選擇palette Contribution中的Properties,並 在底下Properties選單中將Profile Definition裡的diagrams選擇Class
(如圖56)。
圖56. 在 Profile Project 內設定所擴充的圖形
Step 6:完成了Profile project的定義後,接著將此Profile project佈署到Borland Together上,以提供其他Project引用之;右側目錄欄選擇已建立的 BusinessProfile , 並 在 上 列 工 具 列 中 選 擇 Model→Profile→Deploy Profile後點選Finish,Borland Together將會自動重新啟動(如圖57)。
圖57. 佈署 Profile Project 至 Borland Together 中
Step 7:佈署完BusinessProfile後,將建立的Business Project進行引用;右鍵 點選右側目錄欄中Business Project並選擇Properties,接著所開啟的 視 窗 中 , 右 側 的UML Profiles 裡 會 顯 示 了 剛 剛 所 佈 署 的 BusinessProfile,將之勾選並且確認(如圖58)。
圖58. 在 UML Project 內引用 Profile Project
Step 8:進行Profile project的引用後,在Business Project的右側塑模工具中即 出 現 定 義PrimitiveTypes 的 工 具 列 , 透 過 工 具 可 以 自 行 定 義 PrimitiveTypes(如圖59)。
圖59. UML Project 完成 Profile Project 的引用
Step 9:新增自行定義的PrimitiveTypes後,即可在屬性的型別部分,選擇新 增的PrimitiveTypes;對屬性右鍵選擇Properties,並在底下Properties 目錄中的type選擇自行定義的型別(如圖60)。
圖60. 使用 Profile 所擴充之型別
藉由上述建立UML 類別圖形以及針對 Borland Together 中型別擴充的使 用,即可完成第三章企業需求的個案類別圖,類別圖中不僅定義系統的類別,也 表示出了類別與類別之間的關聯關係、以及類別本身的內部結構,其在Borland Together 軟體平台上所塑模的完整 PIM 如 圖 61。
圖61. Borland Together 平台中完成之 PIM
5.2 建立 QVT 轉換檔
本節將以圖示以及步驟的方式,說明如何在Borland Together 軟體平台上建 立QVT 檔,並針對模型執行轉換。
5.2.1 在專案中新增個案之 QVT 程式
Step 1:左側目錄選擇 Navigator 顯示方式,並在 Business Project 右鍵選擇 新增File。
圖62. 新增檔案至 Business Project
Step2:將新增檔案命名 Transformation 並將副檔名定義為.qvt,完成後 即可在左側目錄看到建立之 qvt 檔,以及右側撰寫語法部分。
本個案之完整轉換程式碼如附錄。
圖63. 建立 QVT 檔至 Business Project
5.2.2 專案執行 QVT 轉換檔
當建立的 QVT 撰寫完成並儲存後,即可選擇模型來使用此 QVT 檔進行轉 換,以下是Borland Together 執行 QVT 轉換的步驟。
Step 1:將左側目錄中選擇 Model Navigator 顯示,點選來源模型 Book,
後 在 平 台 上 排 的 工 具 列 依 序 選 擇 Model→Apply Transformation→QVT→From Workspace。
圖64. 選擇來源模型 Book 進行轉換
Step 2 : 在 出 現 的 視 窗 中 選 取 Business Project 目 錄 下 名 為 Tramsformation 的 qvt 檔並選擇下一步。
圖65. 選擇執行轉換語言檔
Step 3:此一步驟為設定目標模型存放之路徑,本研究將目標模型存放至原 本的專案中,故在其Target type 選擇 Existing container,URI 選擇 Business Project,而 Feature 選擇 Model 目錄下的 ownedMembers,
最後不勾選Clear conents 以保留來源模型。
圖66. 選擇目標模型存放位置
Step 4:完成上述動作並點選 Finish 後,即完成轉換,左側目錄下將產生轉 換之目標模型BookPSM。
圖67. 完成轉換後左側目錄圖 5.3 結果展示
在Borland Together 軟體平台根據第四章個案所執行其轉換規則與語法之結 果如 圖 68。在介面類別轉換中,根據 P3產生 Catalog Page、Book Details Page 與Shopping Cart Page 三張類別圖,其包含之屬性型態轉換為 HTML 相對應的屬 性型態,以及根據P4轉換其所連結至控制類別之 Dependency 關聯線。在控制類 別轉換中,根據規則B1產生出 Browse Books、Display Detail 與 Display Cart 三 個控制類別;根據規則B5產生出 Cart Items 一個類別;根據規則 B6則轉換出控 制類別與後台資料庫之Dependency 關聯線。在實體類別轉換中根據規則 D1產生 出Book、Order、Invoice 三個類別;根據規則 D2產生出 Order Items、Invoice Items 兩個類別;根據規則 D3與規則 D4產生出 Association 關聯線表達實體類別之間
的關係。
圖68. 本研究實作轉換之 PSM 結果圖
第六章 結論與建議
本研究詳細彙整QVT 語言,並以 QVT 撰寫模式轉換規則,將 QVT 轉換程 式碼運用在PIM 至 PSM 的自動化轉換上,使用者或企業能參考本研究的結果,
建構出不同的轉換規則與QVT 語言的應用。此外,本研究也提出一個轉換個案 實作,包含了PIM 模型的建立與 QVT 的執行轉換,也可成為日後的參考依據。
6.1 結果分析
本研究彙整並展示以QVT 建構模式轉換規則的過程,並且藉由實際個案的 操作,探討轉換結果以及QVT 與 Borland Together 軟體的優缺點。本研究在介面 類別未完成規則P1與規則 P2之轉換,規則 P1與 P2原本應會產生出的 Frameset、
Form 以及 Target 類別圖以及與控制類別之間的關聯線並無轉出。推究其原因,
過去有學者表示大部分的QVT 範例通常應用在簡單轉換上,也就是將單一個來 源模型元素轉換至單一個目標模型元素[16],故本研究在撰寫 QVT-O 的語法上,
應屬於使用基礎的對應來源圖形後並執行轉換,對於 PIM 中未出現的圖形,無 法對應並執行轉換。也有學者表示目前Ecplise 軟體平台可能無法執行 QVT 可用 的所有功能[7](Borland Together 是建構在 Ecplise 平台上執行),而目前也沒有 辦法確認QVT-O 語法是否可以新增圖形至目標模型中。因此在介面類別的 PSM 結果無法轉換出Frameset、Form 以及 Target 之間的關聯線與其新增之 Dependency 關聯線;而保持著與 PIM 相同,只有屬性以及其型態進行轉換。在控制類別以 及實體類別部分,由於來源模型中均有出現,故使用QVT-O 即成功轉換其類別 圖型別以及屬性,關聯線部分也將多對多關聯以MySQL 的應用平台表示之。本 研究將QVT 應用在轉換模型上的優缺點歸納如下:
優點一:函數應用
QVT-O 屬於命令式語言的語言,能夠將轉換規則撰寫成函數的方
式,並重複呼叫。本研究發覺轉換規則之間有彼此呼叫的需求,由 於轉換規則已經以函數實作,轉換規則之間的呼叫可以用函數之間 彼此呼叫的方式進行。
優點二:Meta-Model 的擴充
藉由 Meta-Model 的擴充,QVT 可以匯入來源模型與目標模型的 Meta-Model,讓 QVT 在將來可以適用其他模式或平台之間的轉換。
缺點一:撰寫難度較高
雖然命令式語言能夠以獨立函數的方式重複呼叫應用,但其方式針 對大型的來源模型進行轉換時,撰寫函數使用的程序與邏輯也相對 變得複雜[10] [14]。
缺點二:只能產出程式框架
QVT 對於來源模型所包含的函數應用,僅轉換其程式框架,例如 轉換類別圖中的操作函數,只能產出操作名稱以及操作函數所應用 的參數,其函數中詳細的程式碼無法轉換出來。這也是轉換所面臨 的困難點之一[18] [33]。
本研究也將Borland Together 軟體在使用上的優缺點歸納如下:
優點一:Profile 擴充機制
Borland Together 提供 Profile 技術的應用,使用者可自行擴充 Borland Together 的 Meta-Model,並佈署至軟體之中以供塑模之用。
優點二:支援Debug 功能
Borland Together 除了提供轉換語言的編譯外,也擁有 Debug 的功 能幫助使用者了解程式之執行程序,進而提高除錯效率。
缺點一:轉換結果顯示不完全
本研究在使用Borland Together 完成轉換後,第一次開啟目標模型 專案所顯示出的圖形與關聯線並不完全,必須關閉並重新開啟後才 能正確顯示其轉換結果。此漏洞容易造成使用者對於轉換結果之誤 解。
透過上述結果整理與優缺點歸納,在實務上能讓使用者明確了解使用此方式 進行模型轉換其優劣勢,對於企業或是研究人員在未來使用 QVT 以及 Borland Together 時可著重在其優勢方面或是降低其劣勢。以 QVT 為例:其函數應用的 架構讓轉換規則可以累積成知識庫的型式,逐步充實轉換規則之後就可以進行複 雜的模式轉換;撰寫方面進行良好程式程序規劃,降低邏輯順序混亂的問題。以 Borland Together 為例:使用者可利用 Profile 機制,對於自行開發之技術平台或 是Borland Together 中未提供之技術平台進行塑模;轉換方面善加利用 Debug 功 能提高撰寫與除錯效率,也提供學術上學習QVT 語言之應用。
透過上述結果整理與優缺點歸納,在實務上能讓使用者明確了解使用此方式 進行模型轉換其優劣勢,對於企業或是研究人員在未來使用 QVT 以及 Borland Together 時可著重在其優勢方面或是降低其劣勢。以 QVT 為例:其函數應用的 架構讓轉換規則可以累積成知識庫的型式,逐步充實轉換規則之後就可以進行複 雜的模式轉換;撰寫方面進行良好程式程序規劃,降低邏輯順序混亂的問題。以 Borland Together 為例:使用者可利用 Profile 機制,對於自行開發之技術平台或 是Borland Together 中未提供之技術平台進行塑模;轉換方面善加利用 Debug 功 能提高撰寫與除錯效率,也提供學術上學習QVT 語言之應用。