為什麼用UML 項目需要,在項目開發實現前期進行框架技術設計(條條大路通羅馬通羅馬,畫圖或者寫代碼都可以,適合就可以!)。 用戶的交互我們通常用Axure(原型設計)體現, 框架和功能結構設計則用UML體現,清楚自已使用目的,是否有用仁者見仁智者見智。 A:方便業務設計交流,理清思路,統一的規範描述 ...
為什麼用UML
項目需要,在項目開發實現前期進行框架技術設計(條條大路通羅馬通羅馬,畫圖或者寫代碼都可以,適合就可以!)。
用戶的交互我們通常用Axure(原型設計)體現,
框架和功能結構設計則用UML體現,清楚自已使用目的,是否有用仁者見仁智者見智。
A:方便業務設計交流,理清思路,統一的規範描述(代碼高層設計和交流的表述,避免不同表達!);
B:建模工具可以把設計直接轉換為代碼(基本不用,不用把精力放在“把UML用到極致“);
uml網上一搜一大堆,推薦一本書thinking in uml
把幾個關鍵點記錄下
UML類圖關係:
泛化(繼承)、實現、聚合、組合、關聯、依賴
泛化(繼承)--用於Interface和Interface之間,或者用於Class和Class之間
實現--指的是一個class類實現interface介面(可以是多個)的功能
關聯:一個類是另一個類的成員變數,可以是單向的,也可以是雙向的。
依賴:三種表現形式通過形參、通過局部變數、通過靜態變數。
關聯與依賴區別
用斧子砍樹,我和斧子之間就是一種依賴,我和同學就是一種關聯。
依賴是一種弱關聯,只要一個類用到另一個類,use了一個類,依賴是一種偶然的關係,比較陌生。
關聯是類之間的一種關係,例如夫妻這種關係是非常明顯的,比較熟悉。
聚合關係是關聯關係的一種,是強的關聯關係;關聯和聚合在語法上無法區分
聚合關係中作為成員變數的類一般使用 set 方法賦值。
強弱排序
泛化(繼承)= 實現 > 組合 > 聚合 > 關聯 > 依賴
UML基本關係鏈接表示
- 車是抽象的,小汽車和三輪車是車的實現關係----▽
- BMW是小汽車的一種,需要繼承繼承小汽車,泛化關係(繼承)——▽
- 方向盤和發動機是小汽車一部分,是組合關係——♦
- 公司由職員組成,公司散了人都還在,聚合關係——♢
- 身份證代表這個具體人,這是關聯關係——>
- 職員上班要開車或坐公交 或坐地鐵,依賴關係-->
三角形為實現和泛化,表示上下關係,其中虛線為實現
菱形為聚合和組合,表示組成從屬關係,其中空心為聚合
箭頭為關聯和依賴,表示平級關係,其中虛線為依賴
UML的基本圖
靜態圖分為:用例圖,類圖,對象圖,包圖,構件圖,部署圖。
動態圖分為:狀態圖,活動圖,協作圖,序列圖