圖例解析三大UML圖用法
本文和大家重點(diǎn)討論一下UML圖的概念,這里主要向大家描述一下UML狀態(tài)圖,活動(dòng)圖,組件和部署圖的用法,相信通過(guò)本文的學(xué)習(xí)你對(duì)這幾種UML圖的用法有初步的認(rèn)識(shí)。
UML狀態(tài)圖
對(duì)象擁有行為和狀態(tài)。對(duì)象的狀態(tài)是由對(duì)象當(dāng)前的行動(dòng)和條件決定的。UML圖中狀態(tài)圖statechartdiagram顯示出了對(duì)象可能的狀態(tài)以及由狀態(tài)改變而導(dǎo)致的轉(zhuǎn)移。
我們的模型例圖建立了一個(gè)銀行的在線登錄系統(tǒng)。登錄過(guò)程包括輸入合法的密碼和個(gè)人賬號(hào),再提交給系統(tǒng)驗(yàn)證信息。
登錄系統(tǒng)可以被劃分為四種不重疊的狀態(tài):GettingSSN,GettingPIN,Validating,以及Rejecting。每個(gè)狀態(tài)都有一套完整的轉(zhuǎn)移transitions來(lái)決定狀態(tài)的順序。
狀態(tài)是用圓角矩形來(lái)表示的。轉(zhuǎn)移則是使用帶箭頭的連線表示。觸發(fā)轉(zhuǎn)移的事件或者條件寫(xiě)在箭頭的旁邊。我們的圖上有兩個(gè)自轉(zhuǎn)移。一個(gè)是在GettingSSN,另一個(gè)則在上GettingPIN。
初始狀態(tài)(黑色圓圈)是開(kāi)始動(dòng)作的虛擬開(kāi)始。結(jié)束狀態(tài)也是動(dòng)作的虛擬結(jié)束。
事件或條件觸發(fā)動(dòng)作時(shí)用(/動(dòng)作)表示。當(dāng)進(jìn)入Validating狀態(tài)時(shí),對(duì)象并不等外部事件觸發(fā)轉(zhuǎn)移。取而代之,它產(chǎn)生一個(gè)動(dòng)作。動(dòng)作的結(jié)果決定了下一步的狀態(tài)。
UML活動(dòng)圖
活動(dòng)圖activitydiagram是一個(gè)很特別的流程圖。UML圖中活動(dòng)圖和狀態(tài)圖之間是有關(guān)系的。狀態(tài)圖把焦點(diǎn)集中在過(guò)程中的對(duì)象身上,而活動(dòng)圖則集中在一個(gè)單獨(dú)過(guò)程動(dòng)作流程?;顒?dòng)圖告訴了我們活動(dòng)之間的依賴關(guān)系。
對(duì)我們的例子來(lái)說(shuō),我們使用如下的過(guò)程。
“通過(guò)ATM來(lái)取錢(qián)。”
這個(gè)活動(dòng)有三個(gè)類Customer,ATM和Bank。整個(gè)過(guò)程從黑色圓圈開(kāi)始到黑白的同心圓結(jié)束?;顒?dòng)用圓角矩形表示。
活動(dòng)圖可以被分解成許多對(duì)象泳道swimlanes,可以決定哪些對(duì)象負(fù)責(zé)那些活動(dòng)。每個(gè)活動(dòng)都有一個(gè)單獨(dú)的轉(zhuǎn)移transition連接這其他的活動(dòng)。
轉(zhuǎn)移可能分支branch成兩個(gè)以上的互斥的轉(zhuǎn)移。保護(hù)表達(dá)式(在[]中)表示轉(zhuǎn)移是從一個(gè)分支中引出的。分支以及分支結(jié)束時(shí)的合并merge在圖中用菱形表示。
轉(zhuǎn)移也可以分解fork成兩個(gè)以上的并行活動(dòng)。分解以及分解結(jié)束時(shí)的線程結(jié)合join在圖中用粗黑線表示
組件與UML配置圖
組件component是代碼模塊。組件圖是是類圖的物理實(shí)現(xiàn)。
UML圖中配置圖Deploymentdiagrams則是顯示軟件及硬件的配置。
下面的配置圖說(shuō)明了與房地產(chǎn)事務(wù)有關(guān)的軟件及硬件組件的關(guān)系。
物理上的硬件使用節(jié)點(diǎn)nodes表示。每個(gè)組件屬于一個(gè)節(jié)點(diǎn)。UML圖中組件用左上角帶有兩個(gè)小矩形的矩形表示。
【編輯推薦】