活動(dòng)圖實(shí)例:細(xì)談UML建模語言中的活動(dòng)圖模型

4 評(píng)論 67006 瀏覽 164 收藏 10 分鐘

活動(dòng)圖描述的是從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流,描述活動(dòng)的順序,活動(dòng)表示處理事物的動(dòng)作和狀態(tài)。

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

UML模型圖有類圖、對(duì)象圖、構(gòu)件圖、部署圖、包圖、活動(dòng)圖、狀態(tài)圖、順序圖、通信圖、用例圖、時(shí)序圖。每種圖形都是從不同角度來闡述軟件系統(tǒng),通過各種模型的搭建共同建造起整個(gè)軟件系統(tǒng),UML分別描述系統(tǒng)的類、對(duì)象、關(guān)聯(lián)、職責(zé)、行為、接口、用例、包、順序、協(xié)作,以及狀態(tài)。通過UML模型可以降低理解成本,更好的表達(dá)思想,便于交流。口述和文字都不是一個(gè)快速傳遞信息的方法,其它的圖形,也只是從某一個(gè)層面來描述事物,而UML語言通過不同的模型的組合可以共同的搭建起整套系統(tǒng)的全貌。

UML分結(jié)構(gòu)型圖和行為型圖,結(jié)構(gòu)是靜態(tài)的,有類圖、對(duì)象圖、構(gòu)件圖、部署圖、包圖。行為是動(dòng)態(tài)的,有活動(dòng)圖、狀態(tài)圖、順序圖、通信圖、用例圖、時(shí)序圖。每種圖是從需求或設(shè)計(jì)的不同層面來描述模型,以便于所有參與者通過圖形化的方式從各個(gè)角度了解產(chǎn)品。

開始講述活動(dòng)圖

活動(dòng)圖描述的是從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流,描述活動(dòng)的順序,活動(dòng)表示處理事物的動(dòng)作和狀態(tài)。

用實(shí)例法來說明活動(dòng)圖:

用例一:

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

小張?jiān)绯科鸫采习嗟幕顒?dòng),用活動(dòng)圖繪制如下:

起床活動(dòng)圖

上圖繪制的就是小張?jiān)绯咳粘I畹幕顒?dòng)圖,通過這種圖形化模型可以把動(dòng)作的流程性表達(dá)的更加清楚,動(dòng)作的內(nèi)容、流程、判斷、交互、并發(fā)都能很好的表達(dá)。

活動(dòng)圖分析:

開始與結(jié)束:活動(dòng)圖只能有一個(gè)起點(diǎn),但可以有多個(gè)終點(diǎn)的。

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

分叉與匯合:分叉與匯合必須組合使用,表示并發(fā)動(dòng)作。分叉表示一個(gè)活動(dòng)完成后產(chǎn)生后續(xù)的多個(gè)并行的活動(dòng);匯合表示多個(gè)活動(dòng)全部完成后再進(jìn)行下一個(gè)活動(dòng)。分叉是一個(gè)指入多個(gè)指出,匯合是多個(gè)指入?yún)R集后,一個(gè)指出。分叉與匯合間的活動(dòng)是并行執(zhí)行的,最后都執(zhí)行完后統(tǒng)一匯合進(jìn)入下一活動(dòng)。

  • 活動(dòng):活動(dòng)用圓角矩形表示,活動(dòng)間的控制流用實(shí)體箭頭表示?;顒?dòng)表示流程中的動(dòng)作,活動(dòng)可大可小,活動(dòng)可以繼續(xù)拆分成更細(xì)小的活動(dòng)?;顒?dòng)的粒度由圖表要表達(dá)的含義決定,是要表達(dá)寬泛的流程、還是要表達(dá)具體的流程。

用例二:

活動(dòng)描述:產(chǎn)品經(jīng)理的工作流程,產(chǎn)品在立項(xiàng)前,先要分析市場,進(jìn)行產(chǎn)品定位和可行性分析;項(xiàng)目成立后,要進(jìn)行需求分析,通過需求分析編寫出商業(yè)需求文檔、市場需求文檔和產(chǎn)品需求文檔,之后,根據(jù)需求繪制原型、產(chǎn)品設(shè)計(jì)、流程分析。這些工作完成后進(jìn)入開發(fā)階段:架構(gòu)設(shè)計(jì)、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、代碼開發(fā)、軟件測試。

以上活動(dòng)整理成活動(dòng)圖如下:

產(chǎn)品生命周期流程

解讀“產(chǎn)品生命周期”活動(dòng)圖:

上圖是產(chǎn)品生產(chǎn)的整個(gè)生命周期(生產(chǎn)不包括產(chǎn)品的維護(hù)及運(yùn)營),做產(chǎn)品前先要為產(chǎn)品進(jìn)行定位,指明產(chǎn)品方向,之后可行性研究(技術(shù)可行性、經(jīng)濟(jì)可行性和社會(huì)可行性),這三種可行性是并行執(zhí)行的。

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

對(duì)象:對(duì)象用長方形框表示,對(duì)象的名稱是名詞?;顒?dòng)可以有多個(gè)輸入和輸出,對(duì)象可以是成為活動(dòng)的輸入。

用例三

活動(dòng)描述:客戶在網(wǎng)購網(wǎng)站上購物并下單,支付后生成送貨單,供應(yīng)商送貨,送貨后本次訂單結(jié)束。

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

根據(jù)上面所示業(yè)務(wù)示意圖如下:

泳道:上圖中的客戶、系統(tǒng)、供應(yīng)商所屬的大的長方形框就為各個(gè)對(duì)象的泳道,泳道內(nèi)的活動(dòng)表示此對(duì)象所屬的動(dòng)作,通過跨泳道的信息交互可以更好的表達(dá)出對(duì)象間與活動(dòng)間的信息交互。泳道名應(yīng)為對(duì)象名,既然是對(duì)象名,所以泳道名應(yīng)為名詞。

活動(dòng)圖與流程圖的區(qū)別

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

  • 活動(dòng)圖可以表達(dá)并發(fā)的動(dòng)作,而流程圖不能。
  • 活動(dòng)圖是面向?qū)ο蟮模鞒虉D是面向過程的?;顒?dòng)圖有對(duì)象的輸入、輸出,流程圖重點(diǎn)是處理流程,有明確的時(shí)間概念。
  • 活動(dòng)圖的對(duì)象與活動(dòng)有明顯區(qū)分,流程圖并不強(qiáng)調(diào)這點(diǎn)。
  • 活動(dòng)圖可以有多個(gè)結(jié)束狀態(tài),而流程圖只能有一個(gè)結(jié)束狀態(tài)。
  • 流程圖很屌絲,活動(dòng)圖更高大上。(我個(gè)人想法)

總結(jié):

UML模型從各種不同的角度來表達(dá)系統(tǒng),通過各種模型的組合可以全面的了解系統(tǒng)情況?;顒?dòng)圖的角度就是系統(tǒng)內(nèi)各對(duì)象的不同活動(dòng)間的交互,通過活動(dòng)間的交互可以更好的梳理思想。

#專欄作家#

老吳,微信公眾號(hào):ChanPinLaoWu,人人都是產(chǎn)品經(jīng)理專欄作家,產(chǎn)品講學(xué)堂自媒體人。十多年軟件行業(yè)從業(yè)經(jīng)驗(yàn),做過軟件開發(fā)、項(xiàng)目管理、產(chǎn)品經(jīng)理、產(chǎn)品總監(jiān),希望在這里能夠與大家分享更多產(chǎn)品經(jīng)驗(yàn)和知識(shí)。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 我覺得很到位

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

    來自北京 回復(fù)
  3. 那產(chǎn)品需求文檔中的業(yè)務(wù)流程圖,可以用上述的UML活動(dòng)圖代替嗎?個(gè)人感覺UML活動(dòng)圖更能清楚的描述業(yè)務(wù)的流程。

    來自湖北 回復(fù)
    1. 當(dāng)然可以

      來自北京 回復(fù)