• 沒有找到結果。

UML 定義了九種型態的圖形:使用案例圖、類別圖、物件圖、循序圖、合作 圖、狀態圖、元件圖和部署圖。所有圖形的基本原則,就是將概念描繪成符號,

並將概念之間的相互關係描繪為連接符號的路徑(直線)。其內容分述如下:

1. 使用案例圖(Use case diagram):沒有系統是隔離單獨存在的,因此 系統通常需與人或其他系統交互作用來達到預期的目標,使用案例圖描述了 一個系統的行為與功能,以及此系統的使用者(如圖 2-1 使用案例圖)。這 些圖形包含以下的元素:

a. 行為者(actor):表示此系統的使用者,包括人類的使用者及其它 的系統。

b. 使用案例(use case):表示一個系統提供給使用者的功能或服務。

UseCase1

UseCase2 Actor

UseCase3

圖 2-1 使用案例圖

2. 類別圖(Class diagram):類別圖是一般物件導向模型最常見的圖形,

描述一個系統的靜態結構,而不討論涉及動態行為的活動。主要是由屬性、

操作方法和結合關係所組成;屬性是類別的結構化特徵,也就是關於類別的 資訊,操作方法是類別的行為化特徵,也就是類別所提供的服務,而結合關

係則說明了類別與類別間彼此的互動。這些圖形包含以下元素:

a. 類別(class):表示擁有共同性質或特徵的物體,這些特徵包含屬 性、操作方法。類別中所定義的能見度(visibility),係表示於類別的 屬性或是操作方法前面加上一個符號,用來表示此屬性或者操作方法是 否可在類別之外被使用。公開的能見度,表示在類別之外可以使用。受 保護的能見度,表示在類別之外無法存取,但是若與此類別有一般性的 關係則能存取。私有的能見度,表示類別之外無法存取。

b. 結合關係(associations):表示與其它兩個或多個類別之間的相 互關係,這些相互關係擁有共同的性質或特徵。聚集(aggregation)關 係說明一個類別由其它的類別所組成,但彼此之間並不相關聯,當上層 類別被刪除後,其所聚集的類別依然存在。而組成(composition)關係 為聚集關係的一種特例,說明一個類別由其它的類別所組成,且類別之 間產生關聯性,然而當此類別一旦被刪除後,其它的相關類別也將一併 被刪除。

多重性(multiplicity)說明了類別之間的結合關係並非一對一,類 別中可能包含多個物件與其它類別的單一物件有關。附加於類別旁邊的 數 字 代 表 著 此 關 係 包 含 了 多 少 個 他 類 別 的 物 件 。 一 般 化 (generalization)如同物件導向語言中『繼承』(inheritance)這個術 語 的 觀 念 , 是 表 示 某 個 類 別 和 其 他 類 別 之 間 , 存 在 著 隸 屬 於 (is-a-kind-of)的關係。

以圖 2-2 為例,一個視窗(Window)類別應該具備的屬性有起始位置和大小,

而其方法包含:打開、關上、移動和顯示。而且視窗和事件(Event)之間 有相依(dependency)的關係。

W indow origin size open() close() move() display() Event

圖 2-2 類別圖

3. 循序圖(Sequence diagram):循序圖為互動圖的一種,描述物件之間 的互動關係,這些互動關係被模組化為訊息的交換。這些圖所關注的焦點在 類別及它們所交換的訊息,藉以達成某些預期的行為。它包含以下元素:

a. 類別角色(class role):表示此物件在互動關係中所扮演的角色。

b. 生命線(lifeline):表示一個物件存活的時間。

c. 訊息(message):表示物件之間所進行的溝通。

循序圖可以瞭解訊息和操作方法,為了執行某些預期的行為或功能,系統中 的類別必須提供這些訊息和操作方法。循序圖也可以用來實現使用案例,因 為其指明了類別角色之間藉由訊息的互換來達成某種功能,藉以實現使用案 例。

ProcessJobController SECS

sendMessage

ok

圖 2-3 循序圖

以圖 2-3 說明 PMC 送出 SECSII 訊息給外界的循序圖。ProcessJobController 物件呼叫 SECS 物件的 sendMessage()方法來送出 SECSII 訊息給外界,並回 傳 ok 表示送出訊息成功。

4. 狀態圖(Statechart diagram):狀態圖描述了一個類別的狀態和回應,

它描述了一個類別對於外來刺激的反應。它包含了以下元素:

a. 狀態(state):表示一個物件在生命期中之狀況,在此期間這個物 件滿足某些條件、執行某些活動或是等待某些事件出現。狀態圖中包含 了開始狀態(start state),以小實心圓表示,也包含了終止狀態(end state)。當到達終止狀態時,該物件在圖中所描繪的狀態都將被摧毀。

b. 轉換(transition):表示一個物件在不同狀態之間的交互關係。

READY EXECUTING FAULT

PAUSE initialize

resume execute

pause fault

圖 2-4 狀態圖

圖 2-4 說明一般控制系統狀態的改變。初始化後進入 READY 的狀態;當收到 execute 的命令後進入 EXECUTING 的狀態;執行的過程中發生錯誤則跳到 FAULT 的狀態;若收到 pause 命令則進入 PAUSE 的狀態;等收到 resume 命 令再回到 EXECUTING 的狀態;如果正常執行完畢則回到 READY 的狀態。

5. 活動圖(Activity diagram):活動圖敘述一個類別的活動,這些圖形 很類似狀態圖,也都使用相似的慣例,而活動圖是描述一個類別回應內部處 理的行為,狀態圖則是描述回應外部事件的行為。游泳水道(swimlane),用

來表示在整個活動中,一個或多個負責動作的物件;亦即將活動狀態分成好 幾組,再將這些群組分配給必須執行此活動的物件。動作狀態(如圖 2.5 之 Activity1)是用來表示物體無法被中斷的動作,或是一個演算法執行過程中 的步驟。狀態中間也可以是判斷式(如圖 2-5 之菱形圖形),作為下一動作狀 態的條件。如同狀態圖一般,活動圖也同樣使用開始狀態和終止狀態。

Activity1

Activity2

Activity3

Obj e ct2 Obj e c t1

圖 2-5 活動圖

6. 元件圖(Component diagram):元件圖敘述軟體實做元件的組織架構及 其相依關係,這些圖形包含元件,元件表示可拆散的實體單位,包括原始程 式碼、目的碼、以及可執行程式碼或函式庫。

processor.exe

圖 2-6 元件圖

圖 2-6 為一個執行製程的可執行程式的示意圖。

7. 部署圖(Deployment diagram):部署圖敘述處理資源元素的組態,以 及軟體實做元件的對應方式。這些圖形包含了元件和節點(node),節點表

示一種處理或計算的資源。圖 2-7 說明個人電腦透過網際網路向伺服器請求 一些資訊的示意圖。Client 透過 TCP/IP 連上 Application server,

Application server 從資料庫裡搜尋資料,再將結果回傳給 Client。

Client A

Application

Server Database

Server

<<TCP/IP>>

<<TCP/IP>>

Client B

<<TCP/IP>>

圖 2-7 部署圖

8. 合作圖(Collaboration diagram):合作圖定義如何透過系統中的元件

,包含類別和結合關係之間的相互作用,這些相互作用被模組 化成類別之間的訊息交換,而訊息的交換是藉由類別之間的結合關係來進 行,它也是互動圖的一種。圖 2-8 說明新增一個顧客的合作圖。使用者新增 一個顧客時,MainWindow 物件會建立 Customer 物件,並顯示在視窗上,當 使用者輸入資料後,將這些資料更新在 Customer 物件中。

將行為具體化

: MainW indow : Customer

: CustomerW indow : Actor

1: newCustomer 2: create

3: show

4: Update

圖 2-8 合作圖

第3章 集束型製程設備與上層主機通訊介面規劃