基礎概念——Class Modeling
OO的概念——這就不多說了
三種模型
class model——描述object的結構
state model——描述單個object的行為
interaction model——描述object之間的互動行為
Class Model
單個的class圖很簡單
首先是類名、然后是屬性,最后是方法。
前面的+表示public,-表示private,#表示protected
Association
形式上Association就是一根線,表示兩個類之間的關系,線上可以標明Association的名字,兩端可以標上multiplicity:1表示one,"1..*"表示one or more,"3..5"表示three to five,
"*"表示many
兩個類之間可以有多于一個Association,但一般不常用
Association End Names
Association的兩端可以標上兩個類在這個關系中的角色
這在兩個類的關系中作用可能不是特別明顯,但如果相關的雙方屬于同一個類
Association兩端可以加很多限制
等等,還有Bags對應于sequence,沒有先后次序。
Qualified Association
首先是沒有Qualified的
然后是Qualified
N-ary Association
Generalization
具體在編程語言中,就是繼承關系
很簡單不多說
Association->Aggregation->Composition
Aggregation表現的是一種part-whole的關系
Composition
Composition與Aggregation的區別是part只能屬于一個Assembly
可以說Association->Aggregation->Composition關系一層強過一層
Abstract Class類名用斜體字
屬性有一種叫做Derived Data,它的意思是這個屬性是被其它屬性或類導出來的,被其它elements所決定,符號是在這個屬性前面加上斜杠
如上圖中,age由birthdate 和 currentDate所決定。
最后一種圖示,就是package
|