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

11 評(píng)論 21422 瀏覽 150 收藏 10 分鐘

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

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

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

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

細(xì)說順序圖

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

舉個(gè)例子

案例一:去餐廳吃飯

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

這個(gè)過程用順序圖建模如下:

圖例說明與歸納:

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

順序圖各元素說明:

換一種畫風(fēng),這張圖還可以這樣表達(dá):

如下圖:

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

圖例說明與歸納:

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

多對(duì)象間如何進(jìn)行信息傳遞?

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

見下圖:

圖示說明與歸納:

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

總結(jié)

順序圖特點(diǎn):

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

順序圖與活動(dòng)圖的適用場(chǎng)景

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

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

相關(guān)閱讀:

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

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

#專欄作家#

產(chǎn)品人老吳,微信公眾號(hào):ChanPinLaoWu,人人都是產(chǎn)品經(jīng)理專欄作家,產(chǎn)品講學(xué)堂自媒體人,某公司產(chǎn)品總監(jiān)。十多年軟件行業(yè)從業(yè)經(jīng)驗(yàn),做過軟件開發(fā)、項(xiàng)目經(jī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. 請(qǐng)問,時(shí)序圖中,或的行為如何表示呢

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

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

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

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

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

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

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

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

      來自北京 回復(fù)