1. 程式人生 > 其它 >【MERMAID】UML 統一建模語言 —— 類圖

【MERMAID】UML 統一建模語言 —— 類圖

技術標籤:我記得你的笑臉,午後陽光般的溫暖javaclass


願你如陽光,明媚不憂傷。

目録


1. UML 概述

UML (Unified Modeling Language)統一建模語言,是一種為面向物件系統的產品進行說明視覺化編制文件的一種標準語言,是非專利的第三代建模和規約語言,獨立於任何具體程式設計語言。UML立足於對事物的實體、性質、關係、結構、狀態和動態變化過程的全程描述和反映,可以從不同角度描述人們所觀察到的軟體檢視,也可以描述在不同開發階段中的軟體形態

。採用一組圖形符號來描述軟體模型,這些圖形符號具有簡單、直觀和規範的特點,開發人員學習和掌握起來比較簡單。所描述的軟體模型,可以直觀地理解和閱讀,由於具有規範性,所以能夠保證模型的準確、一致。


2. 類成員的可見性及返回值型別

------------------------------------------------------	
・【語法】
	+ Public				公共
	- Private				私有
	# Protected				保護
	~ Package/Internal		包 / 內部
	------------------------------------------
------------ ・【示例】 class Duck{ String beakColor +boolean swim() -String quack() #Object[] swim1() ~List~string~ quack1() } ------------------------------------------------------
Duck String beakColor
+boolean swim -String quack #Object[] swim1 ~List<string> quack1


3. 類圖關係

------------------------------------------------------	
・【語法】[classA][Arrow][ClassB]:LabelText
	<|--	Inheritance		繼承
	*--		Composition		組合
	o--		Aggregation		聚合
	-->		Association		協作
	--		Link (Solid)	連結(實線)
	..>		Dependency		依賴
	..|>	Realization		實現
	..		Link (Dashed)	連結(虛線)
------------------------------------------------------
・【示例】
	classDiagram
		classA --|> classB : Inheritance
		classC --* classD : Composition
		classE --o classF : Aggregation
		classG --> classH : Association
		classI -- classJ : Link(Solid)
		classK ..> classL : Dependency
		classM ..|> classN : Realization
		classO .. classP : Link(Dashed)
------------------------------------------------------	
classA classB classC classD classE classF classG classH classI classJ classK classL classM classN classO classP Inheritance Composition Aggregation Association Link(Solid) Dependency Realization Link(Dashed)


4. 關係的基數 / 多重性

------------------------------------------------------	
・【語法】[classA] "cardinality1" [Arrow] "cardinality2" [ClassB]:LabelText
	1 		Only 1				一對一
	0..1 	Zero or One			01
	1..* 	One or more			...
	* 		Many				...
	n 		n {where n>1}		...
	0..n 	zero to n {where n>1}	...
	1..n 	one to n {where n>1}	...
------------------------------------------------------
・【示例】
	classDiagram
	    Customer "1" --> "*" Ticket
	    Student "1" --> "1..*" Course
	    Galaxy --> "many" Star : Contains
------------------------------------------------------	
Customer Ticket Student Course Galaxy Star 1 * 1 1..* Contains many


5. 類註釋

------------------------------------------------------	
・【語法】[classA] class Class_name <<desc>> Class_name 
			OR 與類定義一起在巢狀結構中 <<desc>>
	<<Interface>> 	表示介面類
	<<abstract>> 	代表抽象類
	<<Service>> 	代表服務等級
	<<enumeration>> 代表一個列舉
------------------------------------------------------
・【示例】
	classDiagram
		class Color
		<<enumeration>> Color
		class Color {
		<<enumeration>>
		    RED
		    BLUE
		    GREEN
		    WHITE
		    BLACK
		}	
------------------------------------------------------	
«enumeration1» «enumeration2» Color RED BLUE GREEN WHITE BLACK


6. 完整示例

------------------------------------------------------	
・【示例】
	classDiagram
	    Class01 <|-- AveryLongClass : Cool
	    <<interface>> Class01
	    Class09 --> C2 : Where am i?
	    Class09 --* C3
	    Class09 --|> Class07
	    Class07 : equals()
	    Class07 : Object[] elementData
	    Class01 : size()
	    Class01 : int chimp
	    Class01 : int gorilla
	    class Class10 {
	        >>service>>
	        int id
	        size()
	    }
------------------------------------------------------	
«interface» Class01 int chimp int gorilla size() AveryLongClass Class09 C2 C3 Class07 Object[] elementData equals() Class10 >>service>> int id size() Cool Where am i?