基礎(chǔ)概念——Class Modeling
OO的概念——這就不多說了
三種模型
class model——描述object的結(jié)構(gòu)
state model——描述單個object的行為
interaction model——描述object之間的互動行為
Class Model
單個的class圖很簡單

首先是類名、然后是屬性,最后是方法。
前面的+表示public,-表示private,#表示protected
Association

形式上Association就是一根線,表示兩個類之間的關(guān)系,線上可以標(biāo)明Association的名字,兩端可以標(biāo)上multiplicity:1表示one,"1..*"表示one or more,"3..5"表示three to five,
"*"表示many
兩個類之間可以有多于一個Association,但一般不常用
Association End Names

Association的兩端可以標(biāo)上兩個類在這個關(guān)系中的角色
這在兩個類的關(guān)系中作用可能不是特別明顯,但如果相關(guān)的雙方屬于同一個類

Association兩端可以加很多限制


等等,還有Bags對應(yīng)于sequence,沒有先后次序。
Qualified Association
首先是沒有Qualified的

然后是Qualified

N-ary Association

Generalization
具體在編程語言中,就是繼承關(guān)系

很簡單不多說
Association->Aggregation->Composition
Aggregation表現(xiàn)的是一種part-whole的關(guān)系

Composition

Composition與Aggregation的區(qū)別是part只能屬于一個Assembly
可以說Association->Aggregation->Composition關(guān)系一層強(qiáng)過一層
Abstract Class 類名用斜體字

屬性有一種叫做Derived Data,它的意思是這個屬性是被其它屬性或類導(dǎo)出來的,被其它elements所決定,符號是在這個屬性前面加上斜杠

如上圖中,age由birthdate 和 currentDate所決定。
最后一種圖示,就是package
