1. 程式人生 > >如何使用StarUML畫類圖

如何使用StarUML畫類圖



此篇文件旨在介紹類圖以及如何通過StarUML工具畫類圖。
StarUML官網下載地址:http://staruml.io/download
**什麼是類圖**
  類圖用於描述系統中所包含的類以及它們之間的相互關係,幫助簡化對系統的理解。
**類與介面的表現形式**
矩形框: 它代表一個類(Class)。類圖分三層,第一層顯示類的名稱,如果是抽象類,則就用斜體顯示。第二層是類的特性,通常就是欄位和屬性。第三層是類的操作,通常是方法或行為。前面的符號,+ 表示public,- 表示private,# 表示protected。
介面圖:與類圖的區別主要是頂端的<>顯示。第一行是介面名稱,第二行是介面方法。
在系統分析與設計階段,類通常分為三種:實體類、控制類、邊界類。
實體類:實體類來源於需求說明中的名詞,如學生、商品等。
控制類:控制類一般是由動賓結構的短語(動詞+名詞)轉化來的名詞,如增加商品對應有一個商品增加類。
邊界類:主要包括介面類,如對話方塊、視窗、選單等。

**類與類,類與介面之間常用的關係及UML中的表示法**
1、繼承關係
是一種繼承關係, 表示一般與特殊的關係, 它指定了子類如何特化父類的所有特徵和行為。
表示is-a的關係,用空心三角形 + 實線來表示, 箭頭從子類指向父類。

2、實現介面
一種類與介面的關係, 表示類是介面所有特徵和行為的實現。
用空心三角形 + 虛線來表示,箭頭從實現類指向介面。
3、依賴關係(弱依賴)
在 Java 中體現為對區域性變數、方法的引數或靜態方法的呼叫。即一個類呼叫被依賴類中的某些方法而得以完成這個類的一些職責。例如人買車:
Class Person
{
//人買車。物件“車”,與人之間的關係為依賴關係
Public void buy_car(Car mycar)
{
  .....
}
}
依賴關係在UML類圖中用虛線箭頭來表示。由依賴的一方指向被依賴的一方

4、關聯關係(強依賴)
在Java中,關聯關係是通過使用成員變數來實現的,它使一個類知道另一個類的屬性和方法。
關聯又分為一般關聯、聚合關聯與組合關聯;關聯可以是單向/雙向。(注:雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭)
例如老師與學生的關係,一個老師可能有多個學生,一個學生也可能有多個老師,”多對多的關係”;員工與老闆的關係(只有一個老闆)”一對多的關係”。在類圖用實線箭頭來表示,箭頭從使用類指向被關聯的類。

5、聚合關係
表示has-a的關係,較強於一般關聯。有整體與區域性的關係,並且沒有了整體,區域性也可單獨存在。
例如公司和員工的關係,公司包含員工,但如果公司倒閉,員工可以依然活著。
在類圖用空心的菱形 + 實線箭頭來表示,菱形從區域性指向整體。

6、組合關係
表示contains-a的關係,是一種強烈的包含關係。組合類負責被組合類的生命週期。是一種更強的聚合關係。部分不能脫離整體存在。
例如公司和部門的關係,沒有了公司,部門也不能存在了。
   在類圖中用實心菱形 + 實線箭頭來表示,菱形從區域性指向整體:

說明:
安裝好StarUML之後,在新建的file中畫UML步驟如下:
(1)單擊左側“Toolbox”中的選項(非表示關係的線條);然後在中間的畫布中單擊就可以完成初步的顯示。
(2)選中所需要編輯的類/介面,在starUML介面的右下角“Edit”中可以改變字型大小、顏色等。在右上的“Model Exploer”選中的類/介面,可以宣告對應的編輯類名、屬性、介面名等。
(3)最後一步即需要表示類與介面的間的關係,通過拖拽左側欄中的關係表示,注意,拖拽的過程中可能會出現“Invailed Connection”
的錯誤,原因可能是它們之間不屬於此類關係or放置的位置不正確。

總:通過以上三步驟基本上能完成一個簡單的UML類圖了。還需要最後一點說明就是上圖中的“介面名處”。最開始新增一個介面Interface的時候,StarUML預設是以一個圓圈表示,即“棒棒糖表示法”。一般通過兩層矩形框表示更形象點。所以可以通過以下兩步驟去設定即可:
(1)選中需要修改的介面圖,右鍵“Format”→“Stereotype Display”→“None”
(2)“Format”去掉“Suppress Attributes”和“Suppress Operations”。