產(chǎn)品經(jīng)理進階:如何用UML的順序圖表達思想?

11 評論 21446 瀏覽 150 收藏 10 分鐘

當大家把UML建模語言下的各圖形都有所了解后會發(fā)現(xiàn),通過這些圖可以全面的、立體的從各個角度表達產(chǎn)品,讓產(chǎn)品的表達變得更豐富、更形象。

“手中無劍、心中有劍”,大多數(shù)產(chǎn)品人并不了解計算機開發(fā)語言,這導(dǎo)致產(chǎn)品人與技術(shù)人間的交流總是不夠順暢,如果我們能擁有一套與技術(shù)人員溝通的共同語言,在將來的工作中就會變得更輕松、順暢。今天,要說的就是這門共同語言——UML(統(tǒng)一建模語言),它包括:活動圖、順序圖、用例圖、部署圖、類圖、包圖、對象圖、合作圖、狀態(tài)圖等,每種圖都適用于不同的場景,各有各的適用范圍,綜合起來就是一套全方位、立體化模型,可從不同角度詮釋產(chǎn)品。

順序圖的使用我是在2005年開始的——日本地鐵管理系統(tǒng)。管理系統(tǒng)的特點多是關(guān)系復(fù)雜、嚴謹性高、流程性強,如ERP、OA、CRM等,為了能更好的梳理業(yè)務(wù)關(guān)系和流程,我們就選用了順序圖這一模型圖表來梳理需求。通過順序圖的使用,需求漸漸清晰、明確,每一個對象、每一次交互、每一個流程都被我們從隱藏的角落里拉了出來。當遇到不確定的問題再與客戶方溝通了解,并將梳理后的結(jié)果反饋給對方。因為模型的使用讓項目團隊從需求到設(shè)計過渡的非常順暢,項目也成功完成并上線。

閑話少敘,談一談UML中最重要的模型——順序圖。

細說順序圖

順序圖也叫序列圖,英文是Sequence[?si:kw?ns],是UML里最重要的建模圖形之一。順序圖描述了用例的實現(xiàn),它表明了由哪些對象,通過消息相互協(xié)作來實現(xiàn)用例的功能,在順序圖中,標識了消息發(fā)生交互的先后順序。

舉個例子

案例一:去餐廳吃飯

場景:到飯店就餐。就座后服務(wù)員送上菜單,點完餐后等待,廚師做好后服務(wù)人員送餐,飯后付帳離開。

這個過程用順序圖建模如下:

圖例說明與歸納:

  1. 顧客與服務(wù)員:這兩個角色為順序圖的對象,為二維圖表縱坐標,橫坐標為對象間的消息交互。
  2. 進店、選菜、就餐、離開:這些是自己向自己發(fā)起的消息,并沒有與服務(wù)員產(chǎn)生關(guān)系,所以箭頭指向自己。
  3. 要菜單、點餐、付款:顧客向服務(wù)員發(fā)起的消息,消息發(fā)送人為箭頭尾部,接收人為箭頭頭部,線上文字要用動賓詞語。
  4. 送菜單、送餐、找零錢:由箭頭方向表示是由服務(wù)員向顧客發(fā)起的消息,實體線表示此消息為動作。動作要用實體線表示,并用動賓詞語。
  5. 激活框:在顧客與服務(wù)員一側(cè)的長條矩形,也叫會話,一個會話為一批有關(guān)聯(lián)關(guān)系的消息組,這里把就餐的整個過程理解為一個會話。

順序圖各元素說明:

換一種畫風,這張圖還可以這樣表達:

如下圖:

從上圖可以看出,這張圖與上張圖有所不同,發(fā)起的消息為實線,返回的消息為虛線。

圖例說明與歸納:

  1. 菜單、餐、零錢:虛線表示上一個動作的返回內(nèi)容,動作由上一消息發(fā)起。動作性消息用實線表達,線上文用動賓詞語;返回結(jié)果用虛線表達,線上文字用名詞詞語。
  2. 從開發(fā)人員角度分析:如發(fā)起的動作性消息有參數(shù)返回,則可根據(jù)此特點創(chuàng)建函數(shù),虛線上的內(nèi)容為此函數(shù)的返回值;如發(fā)起的動作性消息不返回參數(shù)則可根據(jù)此特點創(chuàng)建方法,方法可以理解為沒有返回值的函數(shù);從這點可以看出,我們?nèi)绻墚嫼庙樞驁D,對開發(fā)人員來說是有一定指導(dǎo)意義的。

多對象間如何進行信息傳遞?

再延伸思考,顧客向服務(wù)員下單,服務(wù)員向廚師下單,廚師收到訂單后按單做飯,做完后再把菜給服務(wù)員,服務(wù)員送餐。埋單時也是一樣,顧客付款后,服務(wù)員將錢給收銀員收款,收銀員將零錢給服務(wù)員,由服務(wù)員給顧客。這就產(chǎn)生了兩個新的角色,廚師、收銀員,這種關(guān)系應(yīng)該如何表達呢?這已經(jīng)不是兩個對象間的關(guān)系,是多對象間的關(guān)系問題。

見下圖:

圖示說明與歸納:

  1. 不論多少個對象間產(chǎn)生關(guān)系,消息只能是兩個對象間產(chǎn)生。
  2. 顧客付款給服務(wù)員,服務(wù)員將動作順延給收銀員,多對象間交互信息多是消息及參數(shù)的傳遞。如:收銀員把零錢給服務(wù)員,服務(wù)員把零錢給顧客。
  3. 一般順序圖的動作與返回參數(shù)多是成對出現(xiàn)的,但也會有只發(fā)動作,對方不能回應(yīng)的情況。

總結(jié)

順序圖特點:

  1. 順序圖必須是兩個或兩個以上對象間進行交互。
  2. 強調(diào)消息的順序性,生命線的長度為交互對象的全部生命周期。
  3. 順序圖的閱讀是從上到下、從左到右進行。
  4. 順序圖的元素有對象、生命線、激活框、消息、返回值,還有循環(huán)和分支,但一般不常用,加上這兩個元素后會使順序圖的可讀性下降,圖形顯示比較亂,我一般不使用,循環(huán)和分支不是順序圖的強項。

順序圖與活動圖的適用場景

  1. 順序圖對象間的關(guān)系非常清晰,誰向誰發(fā)起的、誰給誰反饋的。順序圖強調(diào)各對象間交互;活動圖一般不強調(diào)對象,但也有泳道的概念,泳道的命名也是以對象命名的,在這點上兩圖有些相似。
  2. 順序圖強調(diào)的是消息及消息的返回值,而活動圖強調(diào)的是流程。
  3. 順序圖雖然也可以表達循環(huán)和分支,但可讀性差;循環(huán)和分支性更適合用活動圖表示。
  4. 順序圖更強調(diào)時間性,動作是在會話下進行;活動圖不強調(diào)會話與時間。

通過上面三個示例已經(jīng)把順序圖的各元素及畫法表達清楚了,圖形繪制的顆粒度可以根據(jù)實際情況自行掌握,繪制系統(tǒng)間信息的交互就不適合畫信息交互細節(jié)了。以后我還會把用例圖、類圖、部署圖等圖的畫法整理成文章,分享給大家。當大家把UML建模語言下的各圖形都有所了解后會發(fā)現(xiàn),通過這些圖可以全面的、立體的從各個角度表達產(chǎn)品,讓產(chǎn)品的表達變得更豐富、更形象。

相關(guān)閱讀:

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

面向?qū)ο蟮乃枷耄寒a(chǎn)品經(jīng)理需要知道的技術(shù)知識

#專欄作家#

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

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 收藏不了。。。

    來自北京 回復(fù)
  2. 請問,時序圖中,或的行為如何表示呢

    來自四川 回復(fù)
  3. 非常有用,感謝!

    來自福建 回復(fù)
  4. 請問一般用什么工具設(shè)計呢。

    來自遼寧 回復(fù)
    1. VISIO

      來自北京 回復(fù)
  5. 學習了,謝謝作者分享

    來自廣東 回復(fù)
  6. UML是必須學的嗎

    來自黑龍江 回復(fù)
    1. 非必須,屬于高級進階吧

      來自北京 回復(fù)
  7. 這個和業(yè)務(wù)流程圖有些像

    來自天津 回復(fù)
    1. 從不同的角度出發(fā),側(cè)重的角度不同

      來自北京 回復(fù)