統一建模語言(
Unified Modeling Language
,
UML
)
一些術語:
系統(
system
)指的是硬件和軟件的結合體,它能提供業務問題的解決方案。
系統開發(
system development
)是為客戶建立一個系統的過程。
客戶(
client
)是需要解決問題的人。
系統分析員(
analyst
)將客戶所要解決的問題編制成文檔,并將該文檔轉交給開發人員。
開發人員(
developer
)是為了及決客戶的問題而構造軟件并在計算機硬件上實施該軟件的程序員。
?
UML
的組成
UML
包括了一些可以相互組合圖表的圖形元素。
1
.類圖
一個類(
class
)是一類或一組具有類似屬性和共同行為的事物。
矩形方框代表類的圖標,它被分成
3
個區域。最上面的區域中是類名,中間區域是類的屬性,最下面區域里列的是類的操作。
舉一個例子,屬于洗衣機(
washing machine
)類的事物都具有諸如品牌(
brand name
)、型號(
model name
)、序列號(
serial number
)和容量(
capacity
)等屬性。這類事物的行為包括“加衣物(
add clothes
)”、“加洗滌劑(
add detergent
)”、“開機(
turn on
)”和“取出衣物(
remove clothes
)”等操作。

2
.對象圖
對象(
object
)是一個類的實例,是具有具體屬性值和行為的一個具體事物。例如,洗衣機的品牌可能是“
Laundatorium
”,型號為“
Washmeister
”,序列號為“
GL57774
”,一次最多可以洗滌重量為
16
磅
的衣物。
對象的圖標也是一個矩形,和類的圖標一樣,但是對象名下面要帶下劃線。具體實例的名字位于冒號的左邊而該實例所屬的類名位于冒號的右邊。

3
.用例圖
用例(
use case
)是從用戶的觀點對系統行為的一個描述。
例,一個人使用一臺洗衣機,顯然是為了洗衣服(
wash clothes
)。
代表洗衣機用戶的智力小人形被稱為參與者(
actor
)。橢圓形代表用例。
參與者(它是發起用例的實體)可以是一個人也可以是另一個系統。

4
.狀態圖
一臺洗衣機可以處于浸泡(
soak
)、洗滌(
Wash
)、漂洗(
Rinse
)、脫水(
Spin
)或者關機(
off
)狀態。

最頂端的符號代表起始狀態,最底端的符號表示終止狀態。
5
.順序圖
類圖和對象圖標大的實系統的靜態結構。在一個運行的系統中,對象之間要發生交互,并且這些交互要經歷一定的時間。
UML
順序圖所表達的正式這種基于時間的動態交互。
例,洗衣機的構件包括一個注水的進水管(
Water Pipe
)、一個用來裝衣物的洗滌缸(
Drum
)以一個排水管(
Drain
)。假設已經完成了“加衣物”、“加洗滌劑”和“開機”操作。洗衣服這個用例被執行時按照如下順序進行:
1
通過進水管想洗滌缸中注水。
2
洗滌缸保持
5
分鐘靜止狀態。
3
水注滿,停止注水。
4
洗滌缸往返旋轉
15
分鐘。
5
通過排水管排掉洗滌后的臟水。
6
重新開始注水。
7
洗滌缸繼續往返旋轉洗滌。
8
停止向洗衣機中注水。
9
通過排水管排掉漂洗衣物的水。
10
洗滌缸加快速度單方向旋轉
5
分鐘。
11
洗滌缸停止旋轉,洗衣過程結束。
圖中,對象之間發送的消息有:注入新水(
Send fresh water
)、保持靜止(
Remain stationary
)、停止注水(
Stop
)、往返旋轉(
Ratate back and forth
)、排掉洗滌后的臟水(
Send soapy water
)、排掉漂洗過的水(
Send rinse water
)等。

6
.活動圖
用例和對象的行為中的各個活動之間通常具有時間順序。
7
.協作圖
系統的工作目標是由系統中各組成元素相互協作完成的。例子中洗衣機構件的類集中又增加了一個內部計時器(
Internal Timer
)。在經過一段時間后,定時器停止注水,然后啟動洗滌缸往返旋轉。圖中的序號代表命令消息的發送順序。

8
.構件圖
構件圖和部署圖和整個計算機系統密切相關。

9
.部署圖
UML
部署圖顯示了基于計算機系統的物理體系結構。它可以描述計算機和設備,展示它們之間的連接,以及駐留在每臺機器中的軟件。每臺計算機用一個立方體來表示,立方體之間的連線表示這些計算機之間的通信關系。
?
如果需要將圖中的組織元素分組,或者在圖中說明一些類或構件是某個特定子系統的一部分,可以通過將這些元素組織成包(
package
)來達到此目的。包用一邊突起的公文夾形圖標來表示。

注釋(
note
)的圖標是一個帶折角的矩形,矩形框中是解釋性文字。注釋和被注釋的圖元素之間用一條虛線連接。

構造型(
stereotype
)能夠使用現有的
UML
元素來定制新的元素。構造型用尖對括號括起來的一個名稱來表示,這個括號叫雙尖括號(
guillemets
)。
?
|