首先講幾個部分..
UML的最大目的在當初也是針對軟體工業而產生的..
從最初標準混亂的時代...
到UML出現終於有一個共通的標準
軟體發展才得以持續下去..
不過要先知道..
其意義不在圖的價值,而是他所表達出來的 商業效益 或著 內容..
廢話不多說...
基本上類別圖(ClassDiagram)是編程人員最常使用的一種圖形表示法..
他基本上可以表達三個部分...
- 類別性質(Property)
- 類別操作(Operation)
- 限制條件(Constraint)
而類別的特徵(Feature)正是包含了性質和操作...
然而類別性質又分為: 屬性(Attribute)和關聯(Relation)這邊部分要談的就是屬性這塊..
屬性通常可以表達物件的 狀態...
在OOP上..
我們可以說屬性可以是基本型別(Primitive Type)的變數或著他代表一個物件(Object)..
在目前流行的程式語言(ex: C#、Java)上..
通常物件是參照(Reference)的表示形式...
我們來看看下圖對於屬性的圖形表示:

Grady Booch這個粗體字表示為類別(Class)的名稱...
其中,中間的內容為屬性(Attribute)的表示內容...
來看看屬性文字敘述的正式定義:
visibility name: type multiplicity = default {property-string}
visibilty 表示的是屬性的可見範圍,大多可以是Public、Private或著Protected
name 當然就是屬性的名稱
type 表示屬性的型態,例如:String(string)、Boolean(bool)、int(Integer)、byte等等...
multiplicity 表示為多重性,例如:一對一、一對多等等...
可以有
- 1:表示一對一
- *:表示無上限也無下限
- 0..1:最多至一種,也可能沒有半個
我們以後再來講...
default 當然就是表示當沒有值的時候,預設值為多少。這很簡單,不需做任何解釋!...
{property-string} 表示當其他表示法不夠表達時,可以用這段來補充額外的屬性..
但是property-string的表達方式有很多種,我們以後再來談!
最後,再從圖上來..
其中+和-的符號表示為public和private的可見性修飾詞,而protected則是用#表示..
[ ]裡面數值表達多重性
最後=符號後面接的是預設值..
圖形表示的方式很簡單..
至於,我們對應其程式碼如下:
class GradyBooch{
public String name="Grady Booch";
public String birthday;
public String[] phone;
public bool sex;
private String father;
private String mother;
}//end GradyBooch
程式碼的表達大概就是這樣子..
以上差不多就是這樣!