書評
作為一本UML和需求分析的入門書來說還算可以,寫的比較接地氣,如果是做過很多項目的讀者,很容易找到共鳴點。
美中不足:部分概念可能有錯誤,其中對於Component和Artifact的解釋明顯和Wikipedia的解釋不一樣,感覺應該是錯誤。
結論:三星推薦。
需求分析
- 需求分析的難點
- 屁股決定腦袋,眼界決定境界,各人有各人的想法
- 詞不達意,想到說不清楚,說清楚寫不清楚,寫清楚理解不清楚
- 需求的持續演進,一天一個樣
- 自學業務,爭取盡快超越客戶對需求的理解
- 認真考慮,認清客戶真正的需求是什么,帶來的價值是什么
- BPR(Business Process Reenginerring),部分人員抗拒
Class Digram
- Class Diagram 包含 Attribute(屬於) 和Operation(操作)
-
如果類是一個Abstract Class,則需要用斜體表示
類之間的關系
-
Class之間的關系可以用Association表示,直線,上面可以加箭頭(關系方向)、數量(1:1 1:N M:N)、文字(關系)
-
Class之間也可以有包含關系, 實心菱形表示強包含(Compostion 組合),空心菱形表示弱包含( 聚合 Aggregation 即子對象可以獨立於父對象存在)
-
遞歸關系(Recursion),可以用到自身的包含(Aggregation/Compostion),當然也可以用關系(Association)
-
對象圖(Object Diagram)
一般使用比較少,多用於描述軟件設計中的復雜算法和場景,需求分析中較少使用。
活動圖Activity Diagram
- 結構建模一般用Class Diagram等Stracture Diagram表示,行為建模一般用Activity Diagram等Behavior Diagram表示
-
活動圖包含
-
在Activity Diagram中可以引入對象(用矩形表示),用來表示工作成品(如需求說明書,規格說明書等),對象之間的連線叫Object Flow, 活動之間的連線叫Control Flow.
State Machine Diagram (狀態機圖)
- 活動圖關注事務的狀態,以及狀態之間的轉變
- State Machine Diagram包含:
- Iniital State 實心圓
- Final State 實心套實心小圓
- State 圓角矩形
- Transition 轉變 State之間箭頭
Sequence Diagram
- 順序圖的組成
- Actor:小人
- Message:實心箭頭
- 返回值: 虛擬箭頭
- Sequence Diagram可是以Actor為視角進行畫,也可以以對象為視角進行畫
- UML2中增加了loop alt(alternative) opt(optional)三種情況, 表示特殊流程
- 順序圖和加了泳道的活動圖非常像, 一般是如果特殊流程較少,或強調主干流程時,優先選擇順序圖,分支流程較多或是強調特殊流程時優先選擇活動圖
- Communication Diagram即UML1.X中的Collabation Diagram是Sequence Diagram的一種,需要按標號去讀。
用例圖 Use Case Diagram
- 用命圖用業回復下面的兩個問題:
- 系統有誰在用?
- 系統用戶使用這個系統能完成什么事?
- Use Case Diagram的組成:
- Actor:小人表示
- Use Case: 圓圈表示
- System Boundary:系統邊界 用大的方框表示
- 用例的使用一般是采用一個大的use case來表示整個系統的功能,再分別用小的use case分場景細化。
- 用例之間可以用繼續(Inherit)、包含(Include)、擴展(Extend)的關系, 需要注意箭頭的方向代表着誰《》誰, 讀的時候先讀不帶箭頭端,再讀箭頭端。
- use case的表達方式為動賓方式
-
用例表中的基本流程的編寫部分約定:
- 以阿拉伯數字編號
- 執行者的操作頂頭寫
- 系統的操作空兩格
- 以用戶的語言寫,而不是以計算機語言寫
- 需求分析時對UML的綜合運用:
- 采用類圖表示業務概念
- 通過用例來表示詳細業務需求
- 使用流程三劍客(activity/state machine /sequence diagram)來表示業務流程
- *從用戶痛點開始,理解每一個需求背后的業務痛點,意義,帶來的價值,理清業務流程,梳理用戶 *
部署圖Deployment Diagram
- 從硬件的角度、物理層次上進行系統的整體規划,包括當前的IT架構以及改造后的IT構架
- deployment diagram 包括:
- Node:用來表示物理的設備,如電腦、PC、服務器等
- Tag 用來表示設備的數量 操作系統 供應端等相關信息
- Communication Path 節點間的連線
- Component的定義如下:
- 能實現一定的功能,或者提供一些服務,如接口
- 不能獨立運行,要作為系統的一部分
- 可單獨維護,升級,替換,而不影響整個系統。
- artifact 描述系統中的一個物理單元,同樣是可替換的部分,如源文件,安裝程序,腳本等。