1. 程式人生 > >UML統一建模語言初學

UML統一建模語言初學

UML:[3]類圖

1.類圖詳解: 

1)構成形式:

舉一個例子:

2)內部類:
     我們使用諸如下邊的方式表示內部類,定義在方法區

       或

例如:

3)訪問描述符:
     對於Java,我們用如下的符號表示訪問描述符:

  我們在下圖詳細說明了各個訪問描述符的一些許可權設定:

4)抽象類和方法:
     在類中定義的沒有body 的方法稱為抽象方法,至少有一個抽象方法的類是抽象類。使用斜體來描述:

5)異常:
     使用虛線以及箭頭表示:

 6)便籤(包含限制、註釋和程式碼解釋):
     只用這種dog-eared 的框框:

7)泛化:描述一種繼承關係。

8)介面:
     和類表示差不多,在前邊加上<>,

9)實現:
     這是描述介面和具體實現的方式,有兩種表示方法:

或者:

10)依賴:
     描述源和目的元件之間存在依賴關係,也就是說,一旦target有變,source就必須改變,而不是反之,看下邊的例子。

  Order類利用DBUtil類的execute方法呼叫SQL語句,所以Order類依賴於DBUtil(DBUtil為target)
   11)類關聯:
     多重性(Multiplicity ),修飾符暗示著例項之間的關係。一個類的一些例項與另一個類的例項有關,下圖是表示多重性的一些符號:

下邊有三種:

  a)Navigability:當A包含有到達B的必須資訊,也就是說A知道B,但是B不知道A。如下圖:

  LogAbstraction 裡面有LoggerBridge類的例項。
    當然這樣的也可能是雙向的,
    b)Composition:類A包含類B

這個圖表達兩點意思: 
     A line item is part of an order.
     A line item cannot exist without an order.
     c)Aggregation:聚合,較之b更加輕量一些,

這個圖有兩點意思: 
A Player is part of a Team. A Player can be part of more than one Team and hence, when a Team is dissolved, the Player still remains.

4.時序圖詳解:

 1)時序圖物件:由型別和它前邊的冒號表示:

2)訊息:
     時序圖物件之間的通訊,一般的,訊息都是對映到類操作上的,若是並不是和類進行互動的話,比如一個使用者與ATM取款機的操作,那麼直接使用這樣的訊息就不合適了。訊息也可以表示business工作流。

3)自我呼叫: 
     時序圖物件作用於自身的一種訊息,

  我們在下邊舉一個綜合的時序圖小例子:

  一個使用者線上先填寫登錄檔單,所有提交的資訊都先被Controller物件接收,Controller建立物件Account,並且把資訊都存入Account物件,Account物件建立並且使用DBManager 將資料儲存到資料庫中(使用自我呼叫)


2 互動檢視——序列圖、協作圖

互動檢視描述了執行系統功能的各個角色之間相互傳遞訊息的順序關係。類元是對在系統內互動關係中起特定作用的一個物件的描述,這使它區別於同類的其他物件。互動檢視顯示了跨越多個物件的系統控制流程。

UML 互動圖以圖形的形式表示出方法呼叫過程,它有兩種形式:序列(順序圖)圖( Sequence Diagram )和協作圖( Collaboration Diagram )。

協作圖 : 是用幾何排列來表示互動作用中的各角色(如圖 3 - 4 )。附在類元角色上的箭頭代表訊息。訊息的發生順序用訊息箭頭處的編號來說明。協作圖的一個用途是表示一個類操作的實現。協作圖可以說明類操作中用到的引數和區域性變數以及操作中的永久鏈。當實現一個行為時,訊息編號對應了程式中巢狀呼叫結構和訊號傳遞過程。

1)協作圖的作用

協作圖是在一種給定語境中描述協作中各個物件間的組織互動關係的空間組織結構的圖形化方式,從定義中可以分析它的作用為:物件間訊息的傳遞來反映具體的使用語境的邏輯表達,一個使用情境的邏輯可能是一個用例的一部分或是一條控制流;它的互動關聯顯示物件互動的空間組織結構,顯示一種物件間的關係,而不注重順序;表現一個類的操作實現,協作圖中可以說明類操作中使用的引數,變數,返回值。當表現一個系統的行為時,訊息編號對應了程式中巢狀呼叫的結構和訊號傳遞過程。

序列圖常用來表示方案,協作圖用於過程的詳細設計。

)協作圖的組成

協作圖由物件,訊息,鏈等構成。

物件:類的例項。物件的角色表示一個或一組物件在完成目標的過程中所起的部分作用。物件是角色所屬類的直接或間接例項,在協作圖中,一個類的物件可能充當多個角色。

物件名:類名

訊息:訊息用來描述系統動態行為,它是從一個物件向另一個或幾個物件傳送資訊,或由一個物件呼叫另一個物件的操作。由三部分組成:傳送者,接收者,活動。

訊息用帶標籤的箭頭表示,它附在鏈上。鏈連線了傳送者和接收者,箭頭所指方向為接收者。每個訊息包括一個順序號以及訊息的名稱,其中順序號標識了訊息的相關順序。訊息的名稱可以是一個方法,包含名字,引數表,返回值。

鏈:表示兩個或多個物件間的獨立連線,是關聯的例項。協作圖中,關聯角色是與具體語境有關的暫時的類元之間的關係,關係角色的例項也是鏈。連結串列示為一個或多個相連的線或弧。

例:

(在astah中,協作圖的訊息,沒找到返回訊息,用普通訊息代替)

序列圖是一種被使用 UML 的人使用的最常用的動態建模畫法。序列圖表示了物件之間傳送訊息的時間順序。每一個類元角色用一條生命線來表示—即用垂直線代表整個互動過程中物件的生命期。生命線之間的箭頭連線代表訊息。序列圖可以用來進行一個場景說明—即一個事務的歷史過程。

3.用例圖

什麼是用例圖?

用例檢視是被稱為參與者的外部使用者所能觀察到的系統功能的模型圖。用例是系統中的

一個功能單元,可以被描述為參與者與系統之間的一次互動作用。用例模型的用途是列出系

統中的用例和參與者,並顯示哪個參與者參與了哪個用例的執行。一個用例是有關一個系統的行為的一個描述。那個描述是從一個使用者的觀點編寫的。

處理用例的真正訣竅是保持用例的簡單,細節是不重要的,除非到了最後。把用例當作最及時的需求。在 UML 中的所有的圖,用例圖是最容易混淆的,也是最沒有什麼用的,不過系統邊界圖除外。

一般橢圓形表示一個一個的用例,小人表示行為者。

eg :(一個論壇前臺用例圖)

<!--[if !vml]--> 11.jpg<!--[endif]-->

4 活動圖

活動圖是狀態機的一個變體,用來描述執行演算法的工作流程中涉及的活動。活動狀態代表了一個活動:一個工作流步驟或一個操作的執行。活動圖描述了一組順序的或併發的活動。活動檢視用活動圖來體現。活動圖的用途是對人類組織的現實世界中的工作流程建模。

[ 注 ] :提到狀態機,那什麼是狀態機呢?

狀態機檢視 : 是一個類物件所可能經歷的所有歷程的模型圖。狀態機由物件的各個狀態和連線這些狀態的轉換組成。每個狀態對一個物件在其生命期中滿足某種條件的一個時間段建模。當一個事件發生時,它會觸發狀態間的轉換,導致物件從一種狀態轉化到另一新的狀態。與轉換相關的活動執行時,轉換也同時發生。狀態機用狀態圖來表達。

實心圓表示活動圖的起點,實際上是一個佔位符,帶邊框的實心圓表示終點。

圓角矩形表示執行的過程或活動。

菱形表示判定點。

箭頭表示活動之間的轉換,各種活動之間的流動次序。

箭頭上的文字表示繼續轉換所必須滿足的條件,總是使用格式 “[ 條件 ]” 來描述。

粗線條表示可能會並行進行的過程的開始和結束。

eg :

12.jpg