首先、我們先來回顧下,上篇講解的内容,加深下印象。上篇我們主要講解了3個模組化圖形分别是:順序圖(序列圖)、元件圖、狀态圖。
由于全部放在一篇中篇幅太長了,是以分開講解。
本文主要講解:UML模組化圖中的活動圖、部署圖等
上圖中就是本章要講解的内容,本質将仔細的剖析,部署圖與元件圖的關系與差別,活動圖與狀态圖的關系與差別。
1、上章回顧。
2、摘要。
3、本章内容。
4、模組化中的抽象模型圖之部署圖、活動圖。
5、本章總結。
6、系列進度。
7、下篇預告。
首先,我們先來講解部署圖。部署圖主要是用來描述一系列元件部署到節點運作的結構。部署圖顯示了系統運作時的結構。一般情況下部署圖幫助我們來了解分布
式應用系統。同時部署圖還傳達了建構應用系統的軟體與硬體元素的配置及部署方式。
部署圖中的基本元素:
1、節點:這裡就是指元件運作的環境。可以是軟體(作業系統、其他等)或硬體資源(計算機,其他硬體)。
UML模組化語言中的通用圖形化表示為:
2、節點執行個體:節點執行個體與節點的差別就是有下劃線和冒号,節點執行個體必須緊跟冒号,當然這個節點執行個體名稱可以為空,節點必須要有。
3、元件容器:一個節點可以包含其他節點,可以是元件,也可以是節點。
4、節點之間的關系
(1)、單向依賴:
上圖表示 查詢統計元件,通過.net提供的ADO.NET通路SQLServer2005資料庫。
(2)、雙向依賴:
上圖表示:産品管理子產品會把資料寫入到資料庫中,同時産品管理中的資訊會從資料庫中讀取,雙向依賴。
(3)、通信:
上圖表示:應用軟體系統與資料庫通過.NET提供的方式互相通信,個人了解任務就是雙向通信(雙向依賴)[錯誤之處,還請高人指出]。
5、執行個體講解:
下面我們已一個簡單的系統B2C來進行講解:
我們先來看看B2C系統中的相應節點:
用戶端通過浏覽器通路B2C站點,首先進入會員管理,如果注冊,則進入到注冊系統。會員管理中完成對采購的管理、支付、釋出等。
節點描述:
浏覽器:通過鍵入網站位址通路B2C站點。這是與B2C系統互動的唯一入口。
注冊系統:完成使用者的注冊與資料庫通信。圖上并未畫出,所有的節點除了浏覽器不需要直接與資料庫互動外,其他的子產品都需要與資料庫通信。
會員管理:完成會員中心的管理。會員的個人資訊,開店的店鋪資訊,收貨位址等等資訊的管理,我的采購,我釋出的産品等等。
采購系統:系統中的子功能,用于完成買家的産品采購。
釋出系統:主要為賣家提供服務,釋出産品資訊等。與資料庫通信
支付系統:完成支付交易的操作。與個人賬戶進行通信。
當然這裡隻是舉個簡單的例子,其他的内容,比如前台的展示等等,這些目前都沒有考慮其中,也沒有仔細分析,這裡隻是達到介紹的目的。
6、總結
通過上面的講解相信大家對部署圖已經有了基本的認識,部署圖主要是用來完成将元件部署到節點上運作的結構。從整體上描述了,系統運作時的結構。部署圖是
必須要掌握的模組化圖。
活動圖主要是用來描述系統的動态行為,從一個活動到另一活動的控制流。活動圖的本質是流程圖,但是與流程圖又有所不同。在本小節中将會詳細的講解活動
圖與流程圖的本質的差別及活動圖與狀态圖的差別。
按照慣例,我們先來看看活動圖的元素:
1、動作狀态:
通過用圓形邊的長方形來表示一個動作狀态。動作狀态有幾個特點:原子性(要麼執行,要麼不執行)、不可中斷的操作,并且此次動作完成後一定轉向到另外一種
狀态。 動作狀态是構造活動圖的最小機關。
狀态圖差別:
a、活動圖中動作狀态可以有入轉換與出轉換,意思就是說可以從目前狀态轉向到另外一個狀态,也可以從另外一個狀态轉換到目前狀态。圖形化的表示如下:
動作狀态必須至少有一個出轉換,轉換都是以内部的完成為起點,與外部事件無關。
實心圓:代表起始狀态。
環形内的實心圓:代表結束狀态。
b、動作狀态與狀态圖不同的是,動作狀态不能有入口動作與出口動作。更不能有内部轉移。
2、活動狀态:
通過二個半圓與一個長方形組合起來來辨別活動狀态。
活動狀态首先可以被分解成多個子活動或者多個子動作狀态。活動狀态他不像動作狀态是原子性的。活動狀态是非原子性。活動圖内部的活動,可以用另外一個
活動圖來表示。活動狀态可以看作多個動作狀态和多個子活動的組合。
活動狀态與動作狀态不同,動作狀态是活動狀态的一個特例,當某個活動狀态隻有一個動作狀态時,這個活動狀态就是一個動作狀态。活動狀态可以有入口動作
和出口動作。還可以有内部轉移。因為活動圖是多個子活動和多個動作狀态的組合,是以本來動作狀态直接的轉向就可以看作是内部轉移了,是以就很好了解了。
上圖已經基本表示出來了活動狀态中的動态狀态的轉移等。我相信大家都能了解。
3、動作節點之間的關系
d、泳道:泳道将活動圖中的多個活動劃分成多個組。并且把每一組活動都由對象來負責組織業務,泳道區分了負責活動的對象。并且泳道明确的表
示了哪些活動是由哪些對象進行的。泳道通過垂直線來區分。而2個垂直線分割的區域即是一個泳道。上面的解釋可能有點繞,說白了泳道即是上面說的對象,對象就是
泳道。把不同的泳道就叫一個對象。每個活動狀态在有泳道的活動圖中,隻能屬于一個泳道。
下面來看有泳道的圖例:
是泳道中的活動狀态A有轉向關系。
e、對象流。
對象流是對象與動作狀态或者活動狀态直間的依賴關系。表示動作使用對象或者動作對對象的影響。一般我們在使用中,我們可以把對象通過依賴關系與動作狀态或者活動狀态進行連結。
對象流的幾個特點:
(1)、一般一個對象可以由多個活動狀态或動作狀态操作。
(2)、一個活動狀态或動作狀态的輸出對象可以作為另一個活動狀态或動作狀态的輸入。
(3)、一個對象可以在一個活動圖中多次出現,但是有點需要注意,這個對象多次出現時表名該對象處于生命周期的不同時期。
包含對象流的活動圖:
泳道M1中出現了對象。并且該對象與活動狀态B有依賴關系。
本節中講解了,活動圖的基本知識,下面我們以我們平時比較熟悉的B2C業務,電子商城為例說明下,會員的産品管理流程。通過狀态圖的形式來表達。以鞏固
下我們學習的成果。
例如B2C中的産品管理。首先必須是會員才能登入系統中,然後必須是我是賣家,然後才能進行釋出産品的操作。
本章主要講述了部署圖與活動圖。現在我們回顧下本章要點。
部署圖:主要用來描述一系列元件部署在節點上運作的結構,是系統運作是的結構的描述。主要用于軟體系統的
活動圖:主要用來描述系統的動态行為,從一個活動轉換到另外一個活動狀态。通過一系列的操作将業務流程通過工作流的形式來描述。一系列操作就是一系列
的活動狀态。
下一篇中我們将會講述:簡單講述其他的UML模組化圖,并且結合B2C執行個體,詳細分析B2C系統應該具有的功能子產品。及每個子產品通過不同的模組化圖形的表示方
法,及如何在功能分析時使用恰當的模組化圖。
希望看完本章的朋友可以從本篇中學到相應的UML模組化知識,懂的人可以鞏固下UML知識,本篇希望能夠抛磚引玉,希望大家能夠多提出寶貴意見。由于是本人
平時工作中的了解與總結,不足之處再所難免,還請大家批評指出!如果您有什麼意見或建議,請多多提出!大家的支援就是我的最大動力!
本文轉自 hot的fans 51CTO部落格,原文連結:http://blog.51cto.com/2435232/601863