讀書筆記---《火球:UML大戰需求分析》


書評

作為一本UML和需求分析的入門書來說還算可以,寫的比較接地氣,如果是做過很多項目的讀者,很容易找到共鳴點。

美中不足:部分概念可能有錯誤,其中對於Component和Artifact的解釋明顯和Wikipedia的解釋不一樣,感覺應該是錯誤。

結論:三星推薦。

需求分析

  1. 需求分析的難點
    • 屁股決定腦袋,眼界決定境界,各人有各人的想法
    • 詞不達意,想到說不清楚,說清楚寫不清楚,寫清楚理解不清楚
    • 需求的持續演進,一天一個樣
      • 自學業務,爭取盡快超越客戶對需求的理解
      • 認真考慮,認清客戶真正的需求是什么,帶來的價值是什么
    • BPR(Business Process Reenginerring),部分人員抗拒

Class Digram

  1. Class Diagram 包含 Attribute(屬於) 和Operation(操作)
  2. 如果類是一個Abstract Class,則需要用斜體表示

    類之間的關系

  3. Class之間的關系可以用Association表示,直線,上面可以加箭頭(關系方向)、數量(1:1 1:N M:N)、文字(關系)

  4. Class之間也可以有包含關系, 實心菱形表示強包含(Compostion 組合),空心菱形表示弱包含( 聚合 Aggregation 即子對象可以獨立於父對象存在)
    image

  5. 繼續關系 (Generalization),用三角簡表示
    image

  6. 信賴關系(Dependency) 用帶虛線的箭頭表示
    image

  7. 遞歸關系(Recursion),可以用到自身的包含(Aggregation/Compostion),當然也可以用關系(Association)
    image

  8. 三角關系(Triangle)
    image

    對象圖(Object Diagram)

    一般使用比較少,多用於描述軟件設計中的復雜算法和場景,需求分析中較少使用。

活動圖Activity Diagram

  1. 結構建模一般用Class Diagram等Stracture Diagram表示,行為建模一般用Activity Diagram等Behavior Diagram表示
  2. 活動圖包含

    • Iniital State 實心圓
    • Final State 實心套實心小圓
    • 活動Activity 圓角矩形
    • 判斷Decision 菱形
    • Guard 監護,下圖中[]內的文字
    • Merge 合並 從Decision合並后的菱形
    • 泳道 Swimlane 表示活動的發起者
    • Fork 分支 表示並行中的開始
    • Join 匯合 表示並行中的結束,和Fork是成對出現
      image
  3. 在Activity Diagram中可以引入對象(用矩形表示),用來表示工作成品(如需求說明書,規格說明書等),對象之間的連線叫Object Flow, 活動之間的連線叫Control Flow.

State Machine Diagram (狀態機圖)

  1. 活動圖關注事務的狀態,以及狀態之間的轉變
  2. State Machine Diagram包含:
    • Iniital State 實心圓
    • Final State 實心套實心小圓
    • State 圓角矩形
    • Transition 轉變 State之間箭頭

Sequence Diagram

  1. 順序圖的組成
    • Actor:小人
    • Message:實心箭頭
    • 返回值: 虛擬箭頭
  2. Sequence Diagram可是以Actor為視角進行畫,也可以以對象為視角進行畫
  3. UML2中增加了loop alt(alternative) opt(optional)三種情況, 表示特殊流程
  4. 順序圖和加了泳道的活動圖非常像, 一般是如果特殊流程較少,或強調主干流程時,優先選擇順序圖,分支流程較多或是強調特殊流程時優先選擇活動圖
  5. Communication Diagram即UML1.X中的Collabation Diagram是Sequence Diagram的一種,需要按標號去讀。
    image

用例圖 Use Case Diagram

  1. 用命圖用業回復下面的兩個問題:
    • 系統有誰在用?
    • 系統用戶使用這個系統能完成什么事?
  2. Use Case Diagram的組成:
    • Actor:小人表示
    • Use Case: 圓圈表示
    • System Boundary:系統邊界 用大的方框表示
  3. 用例的使用一般是采用一個大的use case來表示整個系統的功能,再分別用小的use case分場景細化。
  4. 用例之間可以用繼續(Inherit)、包含(Include)、擴展(Extend)的關系, 需要注意箭頭的方向代表着誰《》誰, 讀的時候先讀不帶箭頭端,再讀箭頭端。
  5. use case的表達方式為動賓方式
  6. 用例一般還需要加以用例表來完整的表達需求
    image

  7. 用例表中的基本流程的編寫部分約定:

    • 以阿拉伯數字編號
    • 執行者的操作頂頭寫
    • 系統的操作空兩格
    • 以用戶的語言寫,而不是以計算機語言寫
  8. 需求分析時對UML的綜合運用:
    • 采用類圖表示業務概念
    • 通過用例來表示詳細業務需求
    • 使用流程三劍客(activity/state machine /sequence diagram)來表示業務流程
    • *從用戶痛點開始,理解每一個需求背后的業務痛點,意義,帶來的價值,理清業務流程,梳理用戶 *

部署圖Deployment Diagram

  1. 從硬件的角度、物理層次上進行系統的整體規划,包括當前的IT架構以及改造后的IT構架
  2. deployment diagram 包括:
    • Node:用來表示物理的設備,如電腦、PC、服務器等
    • Tag 用來表示設備的數量 操作系統 供應端等相關信息
    • Communication Path 節點間的連線
  3. Component的定義如下:
    • 能實現一定的功能,或者提供一些服務,如接口
    • 不能獨立運行,要作為系統的一部分
    • 可單獨維護,升級,替換,而不影響整個系統。
  4. artifact 描述系統中的一個物理單元,同樣是可替換的部分,如源文件,安裝程序,腳本等。

需求分析

  1. 需求分析的UML活動圖示例
    image
    image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM