活動圖實例:細談UML建模語言中的活動圖模型

4 評論 66198 瀏覽 164 收藏 10 分鐘

活動圖描述的是從一個活動到另一個活動的控制流,描述活動的順序,活動表示處理事物的動作和狀態。

談到活動圖就得先說UML(Unified Modeling Language),UML又稱統一建模語言,它是一種支持模型化和軟件系統開發的圖形化語言,為軟件開發的所有階段提供模型化和可視化支持。UML語言的各種圖形用來描述軟件系統的不同層面,通過不同層面的描述共同建造起軟件系統的全貌。

UML模型圖有類圖、對象圖、構件圖、部署圖、包圖、活動圖、狀態圖、順序圖、通信圖、用例圖、時序圖。每種圖形都是從不同角度來闡述軟件系統,通過各種模型的搭建共同建造起整個軟件系統,UML分別描述系統的類、對象、關聯、職責、行為、接口、用例、包、順序、協作,以及狀態。通過UML模型可以降低理解成本,更好的表達思想,便于交流??谑龊臀淖侄疾皇且粋€快速傳遞信息的方法,其它的圖形,也只是從某一個層面來描述事物,而UML語言通過不同的模型的組合可以共同的搭建起整套系統的全貌。

UML分結構型圖和行為型圖,結構是靜態的,有類圖、對象圖、構件圖、部署圖、包圖。行為是動態的,有活動圖、狀態圖、順序圖、通信圖、用例圖、時序圖。每種圖是從需求或設計的不同層面來描述模型,以便于所有參與者通過圖形化的方式從各個角度了解產品。

開始講述活動圖

活動圖描述的是從一個活動到另一個活動的控制流,描述活動的順序,活動表示處理事物的動作和狀態。

用實例法來說明活動圖:

用例一:

活動描述:小張每天醒來后先看表是否到起床時間,如果沒到繼續睡覺;如果到了,抓緊時間起床,洗漱完畢后吃早餐,飯后出門。

小張早晨起床上班的活動,用活動圖繪制如下:

起床活動圖

上圖繪制的就是小張早晨日常生活的活動圖,通過這種圖形化模型可以把動作的流程性表達的更加清楚,動作的內容、流程、判斷、交互、并發都能很好的表達。

活動圖分析:

開始與結束:活動圖只能有一個起點,但可以有多個終點的。

分支判斷:菱形代表分支判斷,這個與流程圖的分支判斷是一樣的。上面的分支判斷意思是:睡醒后看時間是否到上班時間,如果沒到,繼續睡覺;如果到了,起床洗漱。

分叉與匯合:分叉與匯合必須組合使用,表示并發動作。分叉表示一個活動完成后產生后續的多個并行的活動;匯合表示多個活動全部完成后再進行下一個活動。分叉是一個指入多個指出,匯合是多個指入匯集后,一個指出。分叉與匯合間的活動是并行執行的,最后都執行完后統一匯合進入下一活動。

  • 活動:活動用圓角矩形表示,活動間的控制流用實體箭頭表示?;顒颖硎玖鞒讨械膭幼?,活動可大可小,活動可以繼續拆分成更細小的活動?;顒拥牧6扔蓤D表要表達的含義決定,是要表達寬泛的流程、還是要表達具體的流程。

用例二:

活動描述:產品經理的工作流程,產品在立項前,先要分析市場,進行產品定位和可行性分析;項目成立后,要進行需求分析,通過需求分析編寫出商業需求文檔、市場需求文檔和產品需求文檔,之后,根據需求繪制原型、產品設計、流程分析。這些工作完成后進入開發階段:架構設計、概要設計、詳細設計、代碼開發、軟件測試。

以上活動整理成活動圖如下:

產品生命周期流程

解讀“產品生命周期”活動圖:

上圖是產品生產的整個生命周期(生產不包括產品的維護及運營),做產品前先要為產品進行定位,指明產品方向,之后可行性研究(技術可行性、經濟可行性和社會可行性),這三種可行性是并行執行的。

項目立項后,對產品進行需求分析,需求階段會出三個文檔:商業需求文檔(BRD)、市場需求文檔(MRD)、產品需求文檔(PRD)。在上圖中把這三個文檔用長方形框表示,長方形框表示對象,意思是經過需求分析后生成了的三個文檔對象。對象可以做為下一個活動的輸入,也可以是活動的輸出,輸入與輸出的對象可以是一個或多個。之后,再經過原型設計、技術設計、開發、測試,最后產品上線。

對象:對象用長方形框表示,對象的名稱是名詞?;顒涌梢杂卸鄠€輸入和輸出,對象可以是成為活動的輸入。

用例三

活動描述:客戶在網購網站上購物并下單,支付后生成送貨單,供應商送貨,送貨后本次訂單結束。

像這種情況涉及到客戶、系統與供應商間的交互,客戶的活動有下單、選擇支付;系統生成送貨單并收款;供應商活動有送貨及修改訂單動作。如使用之前的活動圖形式就很難表達出客戶、供應商與系統間的活動,如想要更好的表達角色與活動間的關系,就需要把角色加進來,在這里叫做泳道。

根據上面所示業務示意圖如下:

泳道:上圖中的客戶、系統、供應商所屬的大的長方形框就為各個對象的泳道,泳道內的活動表示此對象所屬的動作,通過跨泳道的信息交互可以更好的表達出對象間與活動間的信息交互。泳道名應為對象名,既然是對象名,所以泳道名應為名詞。

活動圖與流程圖的區別

通過以上講解可以看出,活動圖與我們經常畫的流程圖很相似,都表達事物的處理流程,那么活動圖與流程圖的區別是什么呢?

  • 活動圖可以表達并發的動作,而流程圖不能。
  • 活動圖是面向對象的,而流程圖是面向過程的?;顒訄D有對象的輸入、輸出,流程圖重點是處理流程,有明確的時間概念。
  • 活動圖的對象與活動有明顯區分,流程圖并不強調這點。
  • 活動圖可以有多個結束狀態,而流程圖只能有一個結束狀態。
  • 流程圖很屌絲,活動圖更高大上。(我個人想法)

總結:

UML模型從各種不同的角度來表達系統,通過各種模型的組合可以全面的了解系統情況?;顒訄D的角度就是系統內各對象的不同活動間的交互,通過活動間的交互可以更好的梳理思想。

#專欄作家#

老吳,微信公眾號:ChanPinLaoWu,人人都是產品經理專欄作家,產品講學堂自媒體人。十多年軟件行業從業經驗,做過軟件開發、項目管理、產品經理、產品總監,希望在這里能夠與大家分享更多產品經驗和知識。

本文原創發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 我覺得很到位

    來自廣東 回復
  2. 流程圖聽了想打人

    來自北京 回復
  3. 那產品需求文檔中的業務流程圖,可以用上述的UML活動圖代替嗎?個人感覺UML活動圖更能清楚的描述業務的流程。

    來自湖北 回復
    1. 當然可以

      來自北京 回復