• 沒有找到結果。

5.1 使用者介面描述語言的比較

在這一節中,把PUML 和幾個同樣也是以 XML 為基礎,且用來描述使用者介面 的描述語言拿來做比較。將分別列出每個描述語言的優缺點,最後再以兩個表格 做結論。

A. XUL (XML User-interface Language)

z 優點:

對於所有會出現在視窗上的使用者介面元件,定義的非常完整與清楚,而且 每個使用者介面元件,在 XUL 中都有相對應的 element 表示。對於視窗中 使用者介面元件的排版(layout),也有相對應的 element 來表示。因此,XUL 可描述出非常複雜的視窗型態的使用者介面。

z 缺點:

是專門設計給PC 上的視窗程式使用的使用者介面描述方法,其 element 的 名稱都是相對於視窗上的使用者介面元件名稱,像是<window>、<menu>、

<deck>……等等。因此,若把 XUL 整個套用過來,用做於描述行動應用程 式上的使用者介面並不適合,因為行動裝置並無法表現出複雜的視窗型態的 使用者介面。

B. UIML (User Interface Markup Language)

z 優點:

在 UIML 中,文件的結構非常完整,將使用者介面的排版(layout),以及在 使用者介面元件上可能觸發的事件,以及使用者介面在各個平台或語言上的 呈現方式,以及每個使用者介面元件的屬性參數(attribute/ parameter),或者 事件觸發後所要進行的邏輯運算部份等等,都能分別做描述。也就是說,

UIML 將一個應用程式的〝使用者介面〞和〝邏輯運算〞兩個部份拆解的相 當清楚,並且對於使用者介面部份,也將使用者介面解析的更加詳細:包含 使用者介面元件彼此間的結構安排(layout、structure)、使用者介面元件的屬 性參數、使用者介面元件的呈現方式……等等。另外,UIML 不是特別為哪 一種執行平台或裝置所設計的,所以可以通用於 PC、行動裝置或是其他可 能的目的端裝置。

z 缺點:

1. 在 UIML 中,使用者介面結構(layout、structure)的安排上,可以描述複 雜度很高的使用者介面,例如可以有〝巢狀的使用者介面結構〞。這會造 成使用者介面在轉換上的困難,因為要轉換成各式各樣的使用者介面的 話,每種使用者介面的結構安排並不一定相同,甚至差異很大,因此轉 換間會有困難。

2. UIML 文件描述完之後,必須靠轉譯器(render)來做使用者介面的轉換。

在轉換過程中,必須倚靠UIML 文件中所提供的,轉換前及轉換後的使 用者介面元件間的對應(mapping)資訊。目前的 UIML 缺乏足夠的資訊來 提供給render 做足夠好的轉換。

3. 要轉換到一種使用者介面,便需要一個相對應的 render。因此,撰寫 render 所花費的成本,會隨著所要轉換的使用者介面的增多而增加。另外,各 種使用者介面的複雜度不同,要從UIML 獲得足夠的資訊有限,若是更 改UIML 的小部份描述,可能就需要大幅修改相對應的 render。

C. WML (Wireless Markup Language)

z 優點:

專門為行動裝置所設計的使用者介面描述語言,根據行動裝置螢幕較小的特 性,特別使用了card 的概念。WML 所訂定的 element 簡單許多,能夠符合 各種行動裝置在呈現使用者介面時的能力限制。

z 缺點:

因為我們要設計的使用者介面描述語言,是要能代表各種行動執行環境上的 各種語言的使用者介面的表示方式,而WML 是包含在 WAP 這個分類(行動 執行環境的分類之一)之內的,所以直接拿 WML 來用是不適合的。我們需 要的是一個足以位於抽象層級(abstract level)、代表著在所有行動執行環境 中,所可以呈現的使用者介面,PUML 能夠滿足這樣的需求。

D. XForms

z 優點:

1. 在網頁中,為〝Form〞提供了更豐富的使用者介面元件。

2. 將使用者介面呈現,輸入資料的邏輯運算以及資料儲存,三個部份分開。

3. 利用 XML 格式來儲存所輸入的資料,建立結構化的資料格式。

4. 對於所輸入的資料,能夠有功能較強的邏輯運算,甚至在 client 端便可 以處理完畢,而不用透過網路傳送到server 端處理。

5. 資料在網路傳輸上,能夠有暫停傳輸,或是續傳的能力。

6. 在 client 端便可以處理掉一些原本要在 server 端處理的邏輯運算,所以

可以減少server 端邏輯運算的量及程式碼的撰寫。

5.2 邏輯運算描述語言的比較

先拋開JavaML 原本是被設計來做軟體工程分析的本意,而把焦點放在它可以完 整地用來描述 Java 語言上面。當一個行動應用程式被拆解成兩大部份:使用者 介面部份,以及邏輯運算部份之後,便需要一個能夠描述邏輯運算的方法。以一 個描述邏輯運算的角度來看待 JavaML 的話,它能夠描述出相當複雜的邏輯運 算,甚至能使用非常完整的物件導向的觀念,但最後並不採用 JavaML,反而另 外設計PGML 的原因是在:

- JavaML 完全針對 Java 語言所設計,所以描述的方式相當複雜,不 適合學習。

- 本篇論文的目的,是在於將所描述的行動應用程式,轉換成各種目 的端的行動應用程式。而用來表示目的端行動應用程式的邏輯運算 部份的程式語言,複雜度差異相當大,例如:J2ME 和 WMLScript。

因此,若使用 JavaML 做為描述邏輯運算部份的描述方法的話,由 於Java 和 WMLScript 天生的差異性,會使得用 JavaML 所描述好的 邏輯運算,轉換不出適當的 WMLScript 程式碼,因為 WMLScript 程式碼太過於簡單,而不能表現出原本在Java 中可以輕易做到的能 力。例如:Java 可以使用陣列(Array),並做相關運算,但 WMLScript 並沒有陣列(Array)的觀念,因此在轉換上變會產生困難,或是語意 上的錯誤。