統(tǒng)一建模語(yǔ)言(Unified Modeling Language,UML)
一些術(shù)語(yǔ):
系統(tǒng)(system)指的是硬件和軟件的結(jié)合體,它能提供業(yè)務(wù)問(wèn)題的解決方案。
系統(tǒng)開(kāi)發(fā)(system development)是為客戶(hù)建立一個(gè)系統(tǒng)的過(guò)程。
客戶(hù)(client)是需要解決問(wèn)題的人。
系統(tǒng)分析員(analyst)將客戶(hù)所要解決的問(wèn)題編制成文檔,并將該文檔轉(zhuǎn)交給開(kāi)發(fā)人員。
開(kāi)發(fā)人員(developer)是為了及決客戶(hù)的問(wèn)題而構(gòu)造軟件并在計(jì)算機(jī)硬件上實(shí)施該軟件的程序員。
UML的組成
UML包括了一些可以相互組合圖表的圖形元素。
1.類(lèi)圖
一個(gè)類(lèi)(class)是一類(lèi)或一組具有類(lèi)似屬性和共同行為的事物。
矩形方框代表類(lèi)的圖標(biāo),它被分成3個(gè)區(qū)域。最上面的區(qū)域中是類(lèi)名,中間區(qū)域是類(lèi)的屬性,最下面區(qū)域里列的是類(lèi)的操作。
舉一個(gè)例子,屬于洗衣機(jī)(washing machine)類(lèi)的事物都具有諸如品牌(brand name)、型號(hào)(model name)、序列號(hào)(serial number)和容量(capacity)等屬性。這類(lèi)事物的行為包括“加衣物(add clothes)”、“加洗滌劑(add detergent)”、“開(kāi)機(jī)(turn on)”和“取出衣物(remove clothes)”等操作。
2.對(duì)象圖
對(duì)象(object)是一個(gè)類(lèi)的實(shí)例,是具有具體屬性值和行為的一個(gè)具體事物。例如,洗衣機(jī)的品牌可能是“Laundatorium”,型號(hào)為“Washmeister”,序列號(hào)為“GL57774”,一次最多可以洗滌重量為16磅的衣物。
對(duì)象的圖標(biāo)也是一個(gè)矩形,和類(lèi)的圖標(biāo)一樣,但是對(duì)象名下面要帶下劃線(xiàn)。具體實(shí)例的名字位于冒號(hào)的左邊而該實(shí)例所屬的類(lèi)名位于冒號(hào)的右邊。
3.用例圖
用例(use case)是從用戶(hù)的觀(guān)點(diǎn)對(duì)系統(tǒng)行為的一個(gè)描述。
例,一個(gè)人使用一臺(tái)洗衣機(jī),顯然是為了洗衣服(wash clothes)。
代表洗衣機(jī)用戶(hù)的智力小人形被稱(chēng)為參與者(actor)。橢圓形代表用例。
參與者(它是發(fā)起用例的實(shí)體)可以是一個(gè)人也可以是另一個(gè)系統(tǒng)。
4.狀態(tài)圖
一臺(tái)洗衣機(jī)可以處于浸泡(soak)、洗滌(Wash)、漂洗(Rinse)、脫水(Spin)或者關(guān)機(jī)(off)狀態(tài)。
最頂端的符號(hào)代表起始狀態(tài),最底端的符號(hào)表示終止?fàn)顟B(tài)。
5.順序圖
類(lèi)圖和對(duì)象圖標(biāo)大的實(shí)系統(tǒng)的靜態(tài)結(jié)構(gòu)。在一個(gè)運(yùn)行的系統(tǒng)中,對(duì)象之間要發(fā)生交互,并且這些交互要經(jīng)歷一定的時(shí)間。UML順序圖所表達(dá)的正式這種基于時(shí)間的動(dòng)態(tài)交互。
例,洗衣機(jī)的構(gòu)件包括一個(gè)注水的進(jìn)水管(Water Pipe)、一個(gè)用來(lái)裝衣物的洗滌缸(Drum)以一個(gè)排水管(Drain)。假設(shè)已經(jīng)完成了“加衣物”、“加洗滌劑”和“開(kāi)機(jī)”操作。洗衣服這個(gè)用例被執(zhí)行時(shí)按照如下順序進(jìn)行:
1通過(guò)進(jìn)水管想洗滌缸中注水。
2洗滌缸保持5分鐘靜止?fàn)顟B(tài)。
3水注滿(mǎn),停止注水。
4洗滌缸往返旋轉(zhuǎn)15分鐘。
5通過(guò)排水管排掉洗滌后的臟水。
6重新開(kāi)始注水。
7洗滌缸繼續(xù)往返旋轉(zhuǎn)洗滌。
8停止向洗衣機(jī)中注水。
9通過(guò)排水管排掉漂洗衣物的水。
10洗滌缸加快速度單方向旋轉(zhuǎn)5分鐘。
11洗滌缸停止旋轉(zhuǎn),洗衣過(guò)程結(jié)束。
圖中,對(duì)象之間發(fā)送的消息有:注入新水(Send fresh water)、保持靜止(Remain stationary)、停止注水(Stop)、往返旋轉(zhuǎn)(Ratate back and forth)、排掉洗滌后的臟水(Send soapy water)、排掉漂洗過(guò)的水(Send rinse water)等。
6.活動(dòng)圖
用例和對(duì)象的行為中的各個(gè)活動(dòng)之間通常具有時(shí)間順序。
7.協(xié)作圖
系統(tǒng)的工作目標(biāo)是由系統(tǒng)中各組成元素相互協(xié)作完成的。例子中洗衣機(jī)構(gòu)件的類(lèi)集中又增加了一個(gè)內(nèi)部計(jì)時(shí)器(Internal Timer)。在經(jīng)過(guò)一段時(shí)間后,定時(shí)器停止注水,然后啟動(dòng)洗滌缸往返旋轉(zhuǎn)。圖中的序號(hào)代表命令消息的發(fā)送順序。
8.構(gòu)件圖
構(gòu)件圖和部署圖和整個(gè)計(jì)算機(jī)系統(tǒng)密切相關(guān)。
9.部署圖
UML部署圖顯示了基于計(jì)算機(jī)系統(tǒng)的物理體系結(jié)構(gòu)。它可以描述計(jì)算機(jī)和設(shè)備,展示它們之間的連接,以及駐留在每臺(tái)機(jī)器中的軟件。每臺(tái)計(jì)算機(jī)用一個(gè)立方體來(lái)表示,立方體之間的連線(xiàn)表示這些計(jì)算機(jī)之間的通信關(guān)系。
如果需要將圖中的組織元素分組,或者在圖中說(shuō)明一些類(lèi)或構(gòu)件是某個(gè)特定子系統(tǒng)的一部分,可以通過(guò)將這些元素組織成包(package)來(lái)達(dá)到此目的。包用一邊突起的公文夾形圖標(biāo)來(lái)表示。
注釋?zhuān)?/span>note)的圖標(biāo)是一個(gè)帶折角的矩形,矩形框中是解釋性文字。注釋和被注釋的圖元素之間用一條虛線(xiàn)連接。
構(gòu)造型(stereotype)能夠使用現(xiàn)有的UML元素來(lái)定制新的元素。構(gòu)造型用尖對(duì)括號(hào)括起來(lái)的一個(gè)名稱(chēng)來(lái)表示,這個(gè)括號(hào)叫雙尖括號(hào)(guillemets)。