## 連載:面向對象葵花寶典:思想、技巧與實踐(20) - 用例圖的陷阱
你知道么,用例圖?**不是**?用來描述 用例的哦!!!!
熟悉UML的朋友都肯定知道,UML有一個叫做用例圖的東東。
單純從名字上來看,你可能以為用例圖是用來描述用例的,即:用例圖?=?用例的圖形化表示。
?
然而各位發明UML的大師們,卻在無意中給我們設下了一個陷阱:所謂的用例圖,不是用來描述用例,而是用來描述系統的圖形。
?
聽起來有點奇怪和別扭,既然是用來描述系統的圖形,為什么叫做用例圖,而不叫系統圖呢?
?
這和用例圖的畫法有關,用例圖雖然是用來描述系統的圖形,但其內容主要就是用例。
我們來看用例圖的定義:
The?use?case?view?captures?the?behavior?of?a?system,?subsystem,?or?class?as?it?appears?to?an?outside?user
簡單翻譯一下:用例圖用于捕獲系統、子系統或者類相關的呈現給外部用戶的行為。
?
單純看這個定義有點難以理解,其實看看用例圖的組成就很簡單了。用例圖的組成如下:
Actor:系統外的用戶,對應5W中的Who,包括但不限于用戶、外系統;
Use?Case:用例,對應前面講到的用例;
System:系統,所有用例的集合就是系統了。
?
我們以ATM取款機為樣例,用例圖如下:
?
從這個圖可以清楚的看到,所謂用例圖,可以簡單的**理解為系統用例的集合**,而不是詳細描述每個用例的具體步驟和流程。
這也是前面我們提到的為什么是用“用例”來分析需求,而不是用“用例圖”來分析需求的原因
- 前言
- (1) - 程序設計思想的發展
- (2) - 面向對象語言發展歷史
- (3) - 面向過程 vs 面向對象
- (4) - 面向對象是瑞士軍刀還是一把錘子?
- (5) - 面向對象迷思:面向對象導致性能下降?
- (6) - 不要說你懂“類”
- (7) - “對象”新解
- (8) - “接口” 詳解
- (9) - “抽象類” 詳解
- (10) - “抽象” 詳解
- (11) - “封裝” 詳解
- (12) - “繼承” 詳解
- (13) - “多態” 詳解
- (14) - 面向對象開發技術流程
- (15) - 需求詳解
- (16) - 需求分析終極目的
- (17) - 需求分析518方法
- (18) - 用例分析
- (19) - 功能點提取
- (20) - 用例圖的陷阱
- (21) - SSD
- (22) - 領域模型
- (23) - 領域建模三字經
- (24) - 設計模型
- (25) - 類模型
- (26) - 類模型三板斧
- (27) - 動態模型設計
- (28) - 設計原則:內聚&耦合
- (29) - 高內聚低耦合
- (30) - SRP原則
- (31) - OCP原則
- (32) - LSP原則
- (33) - ISP原則
- (34) - DIP原則
- (35) - NOP原則
- (36) - 設計原則如何用?
- (37) - 設計模式:瑞士軍刀 or 錘子?
- (38) - 設計模式之道
- (39) - 設計原則 vs 設計模式
- (40) - DECORATOR模式
- (完)- 書籍已經出版