• 沒有找到結果。

系統設計與實作,第五章-結論及未來工作。

第二章

文獻探討

2〃1 背景知識

以下介紹一些 XMMI v3.0 系統相關的背景知識:

2〃1〃1 可延伸標記語言XML

XML 是「可延伸標記語言」(eXtensible Markup Language)的縮寫,規格是 由「全球資訊網標準制定組織」(W3C)制定,並於 1998 年 2 月成為推薦規格。

現今已有許多家廠商採用,且視為關鍵性技術。例如:Adobe,IBM,微軟,

Netscape,Oracle,Sun 等。

通常對一份 XML 資料,會有以下幾點的要求:一、唯一的根節點(將整份 XML 文件的結構慢慢的收起來看,會發現 XML 文件本身,是以樹狀結構做展 開,所以不妨把他想像成一顆樹,一棵樹可以有相當多的枝節往外生長,但是他 只會有一個根,所以說,依循樹狀結構所建立的文件,一定都會擁有唯一的根節 點)。二、所有的起始標籤一定相對有著結束標籤(因為 XML 是將展現層完全 撥離的純粹資料層,所以對每一個資料實體而言,我們都應該去定義他的範圍,

在 XML 中,所有的實體都是以標籤來定義的,當我們的個體中擁有資料的時候,

我們就必頇以起始標籤跟結束標籤將資料包含起來)。三、一致性(XML 是一種 結構極為嚴謹的資料描述語言,整個文件結構都只為了一個目的:描述資料,所 以對 XML 來說,資料個體的唯一性是相當重要的,XML 在尋找資料的時候,

他必頇以我們所給定的實體標籤作為判斷的依據,才能夠對應到正確的欄位)。 四、正確的巢狀標籤(在 XML 的巢狀結構中,外圍父巢層與子巢層不能有重疊 的現象,子巢層必頇由父巢層完全包覆,如此一來,我們才能夠準確的使用樹狀 結構來表示、傳遞資料。)五、所有的屬性值必頇以引號包覆(在 XML 中,我

們會使用屬性來定義每個資料實體,當然,這不是必然的,給定屬性的目的主要 是為了區隔資料的內容,如同我們在選一本書的價格時,可能有美金、台幣跟日 幣計價單位,這時候我們就得給定一個計價單位的屬性,在 XML 中使用屬性的 方法是於資料實體的起始標籤中加上屬性敘述,因為屬性的目的大多為資料定 義,所以我們用字串型態來表示。

在我們的系統中,對於 MIDL,我們採用了 XML 的技術,由於 XML 眾多 的優點與編譯器,使得以 MIDL 為基礎的 MIS 與 MIES 能夠便利且快速的解讀 檔案。

2〃1〃2 人機介面MVC架構

MVC 是用於表示一種軟體架構模式。它把軟體系統分為三個基本部分:模 型(Model),視圖(View)和程式控制(Controller)。MVC 主要的目的是實現 一種動態的程式設計,使後續對程式的修改和擴展簡化,並且使程式某一部分的 重覆利用成為可能。除此之外,此模式通過對複雜度的簡化使程式結構更加直 觀。MVC 應用程式是由三個部分組成。事件(Event)導致 Controller 改變 Model 或 View,或者同時改變兩者。只要 Controller 改變了 Models 的資料或者屬性,

所有依賴的 View 都會自動更新。同樣地,只要 Controller 改變了 View,View 會 從潛在的 Model 中獲取資料來刷新自己。

MVC 設計模式是一個很好創建軟件的途徑,在我們的系統中亦使用了 MVC 模式,如我們將內容和顯示互相分離,並且利用元件本身的動態繫結性質來達到 所見即所得,同時,運用 MVC 帶來的好處即是讓邏輯層與介面層分開實作,藉 由 Controller 與 Model 和 View 的互通,分層的效果能讓各階段的開發者致力於 自身的專業方向。在第三章中,我們將會詳細的介紹 MVC 在系統的架構。

圖 3:MVC 架構示意圖

2〃1〃3 Microsoft Windows CE 5.0

Microsoft Windows CE(簡稱 WinCE)是 Microsoft 公司專為嵌入式系統

(Embedded System)所打造的 32 位元硬式即時作業系統(Hard Real-Time OS), 其核心的運作方式則是繼承 WinNT 的技術,可以適用在智慧型、具連接性、與 精巧的裝置上。在作業系統核心部分,Microsoft 從 5.0 開始,擴大核心原始碼授 權,將 Windows CE 分享原始碼(Windows CE Shared Source)擴充至兩百五十 萬行以上的程式碼。讓授權對象可以自行更改 Windows CE 5.0 分享原始碼

(shared source code),使用於商業用途與產品開發,同時保有其衍生程式碼的所 有權,無頇與微軟、合作夥伴或競爭者共享。

至於一般使用 SDK 的應用程式開發部分,在 v4.2 時代,Microsoft 公司已經 把.NET Compact Framework 移植到行動裝置上面,而在新的 5.0 裡面,開發應用 程式則是由新版的 Visual Studio 2005 全部包辦,在新增專案的時候,就包含

Windows CE 的應用程式框架,並且可以在模擬器上面看到程式執行的結果。

Today 畫面 Email 郵件管理畫面 Pocket Excel 畫面 圖 4:Microsoft Windows CE 畫面

2〃2 相關研究

以下介紹一些 XMMI v3.0 系統相關的研究探討:

2〃2〃1 自訂佈景主題

在市面上的智慧型手機(SmartPhone),大部份都有自訂佈景主題的功能,

由於設定選項十分豐富,可以在打造自己獨特的手機介面的同時,增加很多方便 的功能選項。而其桌面主題和普通手機的主題有很大的區別,普通手機的主題主 要是利用解壓特有的壓縮包來更換手機操作介面的外觀和來電鈴聲,壓縮包內包 含的主要是:圖片(背景,九宮,選擇欄等)和音頻文件(開關機鈴聲,來電鈴 聲)。而 SmartPhone 的桌面主題則是把重點放在了桌面的感觀美化和功能改進 上。他的主題文件裡除了一些必要的圖片和 XML 文件外,還擁有許多具有特殊 作用的插件,這些插件改善了 SmartPhone 的桌面便捷性,透過它們,可以使 SmartPhone 更加獨一無二。但也由於,SmartPhone 手機的桌面主題構造十分複

雜,每一個 SmartPhone 主題都擁有數量不等且功能不一的主題插件,在插件不 全的情況下,多數主題都不能正常使用,只徒增麻煩與浪費資源。

LCD 插件 模擬時鐘插件 媒體播放器插件

圖 5:自訂佈景主題插件

2〃2〃2 視覺化元件

一般市面上軟體工具普遍來說,對於使用者介面開發,均作到了所見即所得 ( What You See Is What You Get ),如軟體開發以 Microsoft 公司的 Visual Studio 及 Borland 公司的 Borland C++ Builder 為主要的工具;由於此兩種工具並提供 了多種 UI 元件,如:狀態列、標籤、下拉式選單、捲軸等,讓使用者有多樣的 選擇。又如 Adobe 公司旗下的 Flash 軟體,在使用者介面編輯區中,設計狀態所 編排得到的版面,執行時,也將呈現當初設計的版面。這樣的優點,讓使用者可 以在設計時,大大降低開發時間,不必總是在錯誤中修改(Try Error)。

因為程式人員必頇負責實作使用者介面,而介面規格又是出於美工人員之 手,導致二者之間相依度高、互動性頻繁。如此將大幅增加軟體開發時間成本。

在本系統中,我們即著重在這樣的問題,如何在快速的時間內排版使用者介面,

並方便的將軟體功能嵌入在介面之外,如此開發中才能令使用者介面設計與軟體 功能分離,而大幅增加開發效率。

圖 6:VS2005 視覺化元件開發介面

2〃2〃3 第二代可延伸人機介面系統(XMMI v2.0)

第二代可延伸人機介面系統(Extensible Man Machine Interface System version 2.0, XMMI v2.0),可讓使用者自行定義行動裝置介面狀態的畫面內容及操作方 式。系統包含了行動電話人機介面系統(Mobile Phone Man-Machine Interface System, MMIS) 、 行 動 電 話 人 機 介 面 描 述 語 言 (Mobile Phone Man-Machine Interface Description Language, MMDL)與編輯系統。XMMI v2.0 即是 XMMI v3.0 的前身版本。

1 <mmi>

2 <resource type="color" x="0" y="0" width="101" height="80">ffffff</resource>

3 <event name="keyup" parameter="65">

4 <link>

5 <variable name="next"/>

6 </link>

7 </event>

8 <event name="keyup" parameter="68">

9 <link>10000_menu9.xml</link>

10 </event>

11 <control type="list">

12 <variable name="lrange">5</variable>

13 <variable name="llink">11100_callcontact.xml,11200_addcontact.xml, ...略</variable>

14 <variable name="ltext">1Call contact,2Add contact, ...略</variable>

15 <resource type="text" x="0" y="0" width="101" height="16">

16 <variable name="ltext"/>

17 </resource>

18 <resource type="text" x="0" y="16" width="101" height="16">

19 <variable name="ltext"/>

20 </resource>

21 <resource type="text" x="0" y="32" width="101" height="16">

22 <variable name="ltext"/>

23 </resource>

24 <resource type="text" x="0" y="48" width="101" height="16">

25 <variable name="ltext"/>

26 </resource>

27 <resource type="text" x="0" y="64" width="101" height="16">

28 <variable name="ltext"/>

29 </resource>

30 <event name="focus" parameter="0">

31 <resource type="color" x="0" y="0" width="101" height="16">ff00</resource>

32 </event>

33 </control>

34 </mmi>

表 1:XMMI v2.0 中 MMDL 範例

Line 1, 34:MMDL 根元素,mmi 之開頭與結尾,將內容標示為一人機介面狀態。

Line 2:將純白色塊放置在(0,0)的位置,顯示視窗之大小為 101x80。

Line 3~7:當按鍵事件發生且鍵值為 65 時,轉移至系統變數 next 值之狀態。

Line 8~10:當按鍵事件發生且鍵值為 68 時,轉移至 10000_menu9.xml 之狀態。

Line 11:此狀態包含 list(項目清單)元件。

Line 12:將 list 元件之 lrange 變數設為 5。

Line 13:將 list 元件之 llink 變數設為 11100_callcontact.xml, ...略。

Line 14:將 list 元件之 ltext 變數設為 1Call contact, ...略。

Line 15 ~ 29:分別指定五個資源之位置及寬高資訊,並顯示 ltext 之資訊。

Line 30 ~ 32:當元件之焦點事件發生時,顯示綠色色塊。

XMMI v2.0 利用變數作為與介面狀態的溝通,對於一個介面狀態,如上述的 清單畫面(List),則存在有其對應的變數(llink, ltext, lrange)等,設定不同型別的數 值;待機畫面(Idle)與選單畫面(Menu)亦有自身對應變數,如此一來,在使用者 的角度,在編輯器上操作時,無從得知介面中對應的變數代表什麼樣的意義,更 進一步地,傳入的型態、傳入的長度等也無從而知。

相關文件