UML---統一建模語言

一、UML基本概念

  UML(Unified Modeling Language,統一建模語言)是一種支持面向對象技術的可視化建模語言,是在計算機系統中表示真實世界的語言,描述真實世界中的對象和它們之間的關係。簡單地說,我們在軟件工程中使用UML把一個項目分析爲不同的圖。其中包括以下幾個大類:用例視圖、邏輯視圖、組件視圖、佈局視圖。接下來,我們整體梳理了一下這幾種圖的知識點和畫法。

二、用例視圖

2.1用例圖

  在UML中,用例圖用橢圓表示,它用來記錄用戶或外界環境從頭到尾使用某系統的一系列事件;可理解爲執行某個動作。用戶被稱爲"角色"或"活動者",活動者可以是人,也可以是另外一個系統。它與當前的系統進行交互,向系統提供輸入或從系統中得到輸出,用一個人形標記表示。用例圖顯示了用例和活動者之間的關係。
  下圖以選課系統爲例,畫出了用例圖。

2.2活動圖

  活動圖一種描述工作流的方式,用來描述採取何種動作、做什麼(對象狀態改變)、何時發生(動作序列)以及在何處發生(泳道)。活動圖可以用作下述目的:
  (1)描述一個操作執行過程中所完成的工作,這是活動圖最常見的用途。
  (2)描述對象內部的工作。
  (3)顯示如何執行一組相關的動作,以及這些動作如何影響它們周圍的對象。
  (4)顯示用例的實例如何執行動作以及如何改變對象狀態。
  (5)說明一次商務活動中的人(角色)、工作流組織和對象是如何工作的。
  活動圖由起始狀態(StartState)、終止狀態(EndState)、狀態轉移(State Transition)、決策(Decision)、守護條件同步棒( Synchronization Bar)和泳道(Swimlane)組成。

  起始狀態顯式地表示活動圖上一個工作流程的開始,用實心圓點來表示。在一個活動圖中,只有一個起始狀態。終止狀態表示了-一個活動圖的最後和終結狀態,一個活動圖中可以有0個或多個終止狀態,終止狀態用實心圓點外加一個小圓圈來表示。活動圖中的動作用一個圓角四邊形表示,其內部的文本串用來說明採取的動作。動作之間的轉移用帶有箭頭的實線表示。箭頭上可能還帶有守護條件、發送短句和動作表達式。守護條件用來約束轉移,守護條件爲真時轉移纔可以開始。用菱形符號來 表示決策點,決策符號可以有一一個或多 個進人轉移,兩個或更多的帶有守護條件的發出轉移。可以將一個轉移分解,成兩個或更多的轉移,從而導致併發的動作。所有的 並行轉移在合併之前必須被執行。一條粗黑線表示將轉移分解成多 個分支,同樣用粗黑線來表示分支的合併,粗黑線稱爲同步棒。泳道分割活動圖,有助於更好地理解執行活動的場所。

  下圖以選課系統爲例,畫出了選課的活動圖。

2.3序列圖

  序列圖一種強調消息的時序交互圖。由活動者對象消息生命線控制焦點組成。在UML中,對象表示爲一個矩形,其中對象名稱標有下劃線;消息在序列圖中用有標記的箭頭表示;生命線由虛線表示;控制焦點由薄薄的矩形表示。
  序列圖將交互關係表示爲一個二維圖,縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協作中各獨立對象的類元角色。類元角色的活動用生命線表示。當對象存在時,生命線用一條縱向虛線表示,當對象的過程處於激活狀態時,生命線是一個雙道線。消息用從一個對象的生命線到另一個對象的生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。
  下圖以選課爲例,畫出了選課的序列圖。

2.4協作圖

  協作圖強調參與一個交互對象的組織。 它由以下基本元素組成:活動者對象連接消息。在UML中,使用實線標記兩個對象之間的連接,協作圖中的消息由標記在連接上方的帶有標記的箭頭表示。協作圖包含類元角色和關聯角色,而不僅僅是類元和關聯。消息可以用依附於連接的帶標記的箭頭表示。每個消息包括一個順序號,一張可選的前任消息表,一個可選的監護條件,一個名字和參量表,可選的返回值表。當對象及其連接有利於理解交互時,選擇協作圖;當只需要瞭解序列時,選擇序列圖。序列圖清晰地顯示了時間次序,但沒有顯式地指明對象間關係。協作圖清晰地:顯示了對象間關係,但時間次序必須從順序號來獲得。

  下圖以選課爲例,畫出了選課的協作圖。

三、邏輯視圖

3.1類圖

  是包裝信息和行爲的項目,是面向對象的重要特點
  從用例視圖中尋找類,是從用例的事件流開始,查看事件流中的名詞以獲得類。在事件流中,名詞可以分爲4種類型:角色、類、類屬性和表達式。也可以檢查序列圖和協作圖中的對象,通過對象的共性來尋找類。另外,序列圖和協作圖的每一-個對象都要映射到相應的類,必須指出的是:有些類是無法通過以上的方法找到的。
  類可以分爲3種類型:實體類( Entity)、邊界類(Boundary)和控制類(Con-trol)。
  (1)實體類保存要放進永久存儲體的信息。在選課系統中,可以抽出學生類(Student),它是實體類的範例。在事件流和交互圖中,實體類通常是對用戶最有意義的類通常採用業務領域術語命名。
  (2)邊界類位於系統與外界的交接處,包括所有窗體、報服表、打印機和掃描儀等硬件的接口以及其他系統的接口。要尋找和定義邊界類,可以檢查用例圖。 每個角色和用例交互至少要有一一個邊界類。 邊界類使角色能與系統交互。
  (3)控制類負責協調其他類的工作,每個用例通常都有一個控制類.控制用例中的事件順序。在交互圖中控制類具有協調責任。可能有許多控制類在多個用例間共用的情況。例如,安全管理(ScurityManager)類負責控制與安全有關的事件事務管理(TaecioManager)類負責協調與數據庫事務有關的消息。還有其他處理共用功能的管理類,如資源競爭、分佈式處理和錯誤處理。
  可以通過以下的方法尋找類:
  (1)從事件流中尋找名詞或名詞詞組(或交互圖中的對象),將性質相同的歸爲一類,或性質內容值正負相反的歸爲一類。
  (2)去除不恰當的與含糊的類別,去除應歸類爲屬性的項目。
  (3)給這些類取個合適的名字,在顯示系統實現時,可以參照真實系統相關的命名規約。
  下圖是分析選課系統中的類,畫出類圖。

3.2狀態圖

  狀態圖狀態節點提供轉移連接的圖,描述了一個特定對象的所有的可能狀態,以及由於各種事件的發生而引起的狀態之間的轉移.大多數面向對象技術 都使用狀態圖來描述一個對象在其生命週期中的行爲。
  狀態圖用初始狀態(Initial Stat)表示對象創建時的狀態,每一個狀態圖只有一個初始狀態用實心的圓點表示。每一個狀態圖可能有多個終止狀態(Final State),用一個實心圓外加一個圓圈表示。狀態圖中可有多個狀態框,每個狀態框中有兩格:上格放置名稱下格說明處於該狀態時,系統或對象要進行的活動(Activity)。狀態之間的過渡事件(Event),對應對象的操作。事件有可能在特定的條 件下發生,在UMI中這樣的條件稱爲守護條件(Guard Condition)。發生事件時的處理稱爲動作(Action)。從一個狀態到另一個狀態之間的連線稱爲轉移(Transitions)。系統設計中可能有多個對象,但並不需要給出每個對象的狀態圖。實際的做法是把注意力集中在整體系統或少數關鍵的對象上。在這裏有必要說明Action和Activity的區別。Activity 與一個狀態關聯,當一個狀態進入時開始,需要一段時間執行,可以被中斷。Action與一個轉移相關聯,在較少的時間內完成其他操作,通常發生與狀態的初始化、進入和退出時。

  下圖是以課程類的狀態變化過程,畫出該狀態圖。

四、組件視圖

4.1組件圖

  組件圖(Component View)包含模型代碼庫、可執行文件、運行庫和其他組件的信息。組件是代碼的實際物理模塊,系統是組件圖用來顯示代碼模塊間的關係的。
  組件圖顯示組件以及它們之間的依賴關係。一般來說,組件就是一個實際文件,可以有以下幾種類型:
  (1)源代碼組件。一個源代碼文件或者與一個包對應的若干個源代碼文件。
  (2)二進制組件。一個目標碼文件,一個靜態的或者動態的庫文件。
  (3)可執行組件。在一臺處理器上可運行的一個可執行的程序單位,即所謂可執行程序。
  組件圖可以用來顯示編譯、鏈接或執行時組件之間的依賴關係,以及組件 的接口和調用關係。
  下圖是以選課系統的組件圖。

五、佈局視圖

5.1佈局圖

  佈局圖表示系統的實際部署,與系統的邏輯結構不同,它描述系統在網絡上的物理部署
  佈局圖用來描述系統硬件的物理拓撲結構以及在此結構上執行的軟件。佈局圖可以顯示計算節點的拓撲結構和通信路徑、節點上運行的軟件、軟件包含的邏輯單元(對象、類等)。特別是對於分佈式系統,佈局圖可以清楚地描繪硬件設備的配置、通信以及在各設備上軟件和對象的配置。佈局圖中的節點代表某種計算構件,通常是硬件,譬如一個簡單的設備或者傳感器,也可以是一臺主機。在佈局圖中,組件代表可執行的物理代碼模塊,例如一個可執行程序。邏輯上它可以與類圖中的包或類對應起來。因此,佈局圖中顯示運行時各個包或類在節點中的分佈情況。由此可見,佈局圖是描述任何基於計算機的應用系 統(尤其是基於Internet 和Web的分佈式計算系統)的物理配置(或者邏輯配置)的有力工具。
  在佈局圖中,節點表示一個物理設備以及在其上運行的軟件系統,例如一 臺Unix主機、一個PC終端、臺打印機、一 個傳感器等。 節點之間的連線表示系統之間的通信路徑,在UML中稱爲連接。通信類型則放在連接旁邊的“《》”號之間,表示所用的通信協議或網絡類型。需要注意的是,佈局圖中的各個節點的安置不受地理位置的限制,小則可以放在一間房間內,大則可以安置在地球上的不同國家或地區。兩個節點之間的通信路徑僅僅表明節點之間存在着聯繫,該連接可以採用不同的通信協議。
  佈局圖包括以下要素:
  (1)進程:在自己的內存空間執行的線程;
  (2)處理器:任何有處理功能的機器;
  (3)設備:任何沒有處理功能的機器,如打印機
  下圖是以選課系統的佈局圖。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章