產(chǎn)品經(jīng)理進(jìn)階:如何用UML的順序圖表達(dá)思想?
當(dāng)大家把UML建模語(yǔ)言下的各圖形都有所了解后會(huì)發(fā)現(xiàn),通過(guò)這些圖可以全面的、立體的從各個(gè)角度表達(dá)產(chǎn)品,讓產(chǎn)品的表達(dá)變得更豐富、更形象。
“手中無(wú)劍、心中有劍”,大多數(shù)產(chǎn)品人并不了解計(jì)算機(jī)開(kāi)發(fā)語(yǔ)言,這導(dǎo)致產(chǎn)品人與技術(shù)人間的交流總是不夠順暢,如果我們能擁有一套與技術(shù)人員溝通的共同語(yǔ)言,在將來(lái)的工作中就會(huì)變得更輕松、順暢。今天,要說(shuō)的就是這門(mén)共同語(yǔ)言——UML(統(tǒng)一建模語(yǔ)言),它包括:活動(dòng)圖、順序圖、用例圖、部署圖、類(lèi)圖、包圖、對(duì)象圖、合作圖、狀態(tài)圖等,每種圖都適用于不同的場(chǎng)景,各有各的適用范圍,綜合起來(lái)就是一套全方位、立體化模型,可從不同角度詮釋產(chǎn)品。
順序圖的使用我是在2005年開(kāi)始的——日本地鐵管理系統(tǒng)。管理系統(tǒng)的特點(diǎn)多是關(guān)系復(fù)雜、嚴(yán)謹(jǐn)性高、流程性強(qiáng),如ERP、OA、CRM等,為了能更好的梳理業(yè)務(wù)關(guān)系和流程,我們就選用了順序圖這一模型圖表來(lái)梳理需求。通過(guò)順序圖的使用,需求漸漸清晰、明確,每一個(gè)對(duì)象、每一次交互、每一個(gè)流程都被我們從隱藏的角落里拉了出來(lái)。當(dāng)遇到不確定的問(wèn)題再與客戶(hù)方溝通了解,并將梳理后的結(jié)果反饋給對(duì)方。因?yàn)槟P偷氖褂米岉?xiàng)目團(tuán)隊(duì)從需求到設(shè)計(jì)過(guò)渡的非常順暢,項(xiàng)目也成功完成并上線(xiàn)。
閑話(huà)少敘,談一談UML中最重要的模型——順序圖。
細(xì)說(shuō)順序圖
順序圖也叫序列圖,英文是Sequence[?si:kw?ns],是UML里最重要的建模圖形之一。順序圖描述了用例的實(shí)現(xiàn),它表明了由哪些對(duì)象,通過(guò)消息相互協(xié)作來(lái)實(shí)現(xiàn)用例的功能,在順序圖中,標(biāo)識(shí)了消息發(fā)生交互的先后順序。
舉個(gè)例子
案例一:去餐廳吃飯
場(chǎng)景:到飯店就餐。就座后服務(wù)員送上菜單,點(diǎn)完餐后等待,廚師做好后服務(wù)人員送餐,飯后付帳離開(kāi)。
這個(gè)過(guò)程用順序圖建模如下:
圖例說(shuō)明與歸納:
- 顧客與服務(wù)員:這兩個(gè)角色為順序圖的對(duì)象,為二維圖表縱坐標(biāo),橫坐標(biāo)為對(duì)象間的消息交互。
- 進(jìn)店、選菜、就餐、離開(kāi):這些是自己向自己發(fā)起的消息,并沒(méi)有與服務(wù)員產(chǎn)生關(guān)系,所以箭頭指向自己。
- 要菜單、點(diǎn)餐、付款:顧客向服務(wù)員發(fā)起的消息,消息發(fā)送人為箭頭尾部,接收人為箭頭頭部,線(xiàn)上文字要用動(dòng)賓詞語(yǔ)。
- 送菜單、送餐、找零錢(qián):由箭頭方向表示是由服務(wù)員向顧客發(fā)起的消息,實(shí)體線(xiàn)表示此消息為動(dòng)作。動(dòng)作要用實(shí)體線(xiàn)表示,并用動(dòng)賓詞語(yǔ)。
- 激活框:在顧客與服務(wù)員一側(cè)的長(zhǎng)條矩形,也叫會(huì)話(huà),一個(gè)會(huì)話(huà)為一批有關(guān)聯(lián)關(guān)系的消息組,這里把就餐的整個(gè)過(guò)程理解為一個(gè)會(huì)話(huà)。
順序圖各元素說(shuō)明:
換一種畫(huà)風(fēng),這張圖還可以這樣表達(dá):
如下圖:
從上圖可以看出,這張圖與上張圖有所不同,發(fā)起的消息為實(shí)線(xiàn),返回的消息為虛線(xiàn)。
圖例說(shuō)明與歸納:
- 菜單、餐、零錢(qián):虛線(xiàn)表示上一個(gè)動(dòng)作的返回內(nèi)容,動(dòng)作由上一消息發(fā)起。動(dòng)作性消息用實(shí)線(xiàn)表達(dá),線(xiàn)上文用動(dòng)賓詞語(yǔ);返回結(jié)果用虛線(xiàn)表達(dá),線(xiàn)上文字用名詞詞語(yǔ)。
- 從開(kāi)發(fā)人員角度分析:如發(fā)起的動(dòng)作性消息有參數(shù)返回,則可根據(jù)此特點(diǎn)創(chuàng)建函數(shù),虛線(xiàn)上的內(nèi)容為此函數(shù)的返回值;如發(fā)起的動(dòng)作性消息不返回參數(shù)則可根據(jù)此特點(diǎn)創(chuàng)建方法,方法可以理解為沒(méi)有返回值的函數(shù);從這點(diǎn)可以看出,我們?nèi)绻墚?huà)好順序圖,對(duì)開(kāi)發(fā)人員來(lái)說(shuō)是有一定指導(dǎo)意義的。
多對(duì)象間如何進(jìn)行信息傳遞?
再延伸思考,顧客向服務(wù)員下單,服務(wù)員向廚師下單,廚師收到訂單后按單做飯,做完后再把菜給服務(wù)員,服務(wù)員送餐。埋單時(shí)也是一樣,顧客付款后,服務(wù)員將錢(qián)給收銀員收款,收銀員將零錢(qián)給服務(wù)員,由服務(wù)員給顧客。這就產(chǎn)生了兩個(gè)新的角色,廚師、收銀員,這種關(guān)系應(yīng)該如何表達(dá)呢?這已經(jīng)不是兩個(gè)對(duì)象間的關(guān)系,是多對(duì)象間的關(guān)系問(wèn)題。
見(jiàn)下圖:
圖示說(shuō)明與歸納:
- 不論多少個(gè)對(duì)象間產(chǎn)生關(guān)系,消息只能是兩個(gè)對(duì)象間產(chǎn)生。
- 顧客付款給服務(wù)員,服務(wù)員將動(dòng)作順延給收銀員,多對(duì)象間交互信息多是消息及參數(shù)的傳遞。如:收銀員把零錢(qián)給服務(wù)員,服務(wù)員把零錢(qián)給顧客。
- 一般順序圖的動(dòng)作與返回參數(shù)多是成對(duì)出現(xiàn)的,但也會(huì)有只發(fā)動(dòng)作,對(duì)方不能回應(yīng)的情況。
總結(jié)
順序圖特點(diǎn):
- 順序圖必須是兩個(gè)或兩個(gè)以上對(duì)象間進(jìn)行交互。
- 強(qiáng)調(diào)消息的順序性,生命線(xiàn)的長(zhǎng)度為交互對(duì)象的全部生命周期。
- 順序圖的閱讀是從上到下、從左到右進(jìn)行。
- 順序圖的元素有對(duì)象、生命線(xiàn)、激活框、消息、返回值,還有循環(huán)和分支,但一般不常用,加上這兩個(gè)元素后會(huì)使順序圖的可讀性下降,圖形顯示比較亂,我一般不使用,循環(huán)和分支不是順序圖的強(qiáng)項(xiàng)。
順序圖與活動(dòng)圖的適用場(chǎng)景
- 順序圖對(duì)象間的關(guān)系非常清晰,誰(shuí)向誰(shuí)發(fā)起的、誰(shuí)給誰(shuí)反饋的。順序圖強(qiáng)調(diào)各對(duì)象間交互;活動(dòng)圖一般不強(qiáng)調(diào)對(duì)象,但也有泳道的概念,泳道的命名也是以對(duì)象命名的,在這點(diǎn)上兩圖有些相似。
- 順序圖強(qiáng)調(diào)的是消息及消息的返回值,而活動(dòng)圖強(qiáng)調(diào)的是流程。
- 順序圖雖然也可以表達(dá)循環(huán)和分支,但可讀性差;循環(huán)和分支性更適合用活動(dòng)圖表示。
- 順序圖更強(qiáng)調(diào)時(shí)間性,動(dòng)作是在會(huì)話(huà)下進(jìn)行;活動(dòng)圖不強(qiáng)調(diào)會(huì)話(huà)與時(shí)間。
通過(guò)上面三個(gè)示例已經(jīng)把順序圖的各元素及畫(huà)法表達(dá)清楚了,圖形繪制的顆粒度可以根據(jù)實(shí)際情況自行掌握,繪制系統(tǒng)間信息的交互就不適合畫(huà)信息交互細(xì)節(jié)了。以后我還會(huì)把用例圖、類(lèi)圖、部署圖等圖的畫(huà)法整理成文章,分享給大家。當(dāng)大家把UML建模語(yǔ)言下的各圖形都有所了解后會(huì)發(fā)現(xiàn),通過(guò)這些圖可以全面的、立體的從各個(gè)角度表達(dá)產(chǎn)品,讓產(chǎn)品的表達(dá)變得更豐富、更形象。
相關(guān)閱讀:
活動(dòng)圖實(shí)例:細(xì)談UML建模語(yǔ)言中的活動(dòng)圖模型
面向?qū)ο蟮乃枷耄寒a(chǎn)品經(jīng)理需要知道的技術(shù)知識(shí)
#專(zhuān)欄作家#
產(chǎn)品人老吳,微信公眾號(hào):ChanPinLaoWu,人人都是產(chǎn)品經(jīng)理專(zhuān)欄作家,產(chǎn)品講學(xué)堂自媒體人,某公司產(chǎn)品總監(jiān)。十多年軟件行業(yè)從業(yè)經(jīng)驗(yàn),做過(guò)軟件開(kāi)發(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)載。
收藏不了。。。
請(qǐng)問(wèn),時(shí)序圖中,或的行為如何表示呢
非常有用,感謝!
請(qǐng)問(wèn)一般用什么工具設(shè)計(jì)呢。
VISIO
學(xué)習(xí)了,謝謝作者分享
UML是必須學(xué)的嗎
非必須,屬于高級(jí)進(jìn)階吧
這個(gè)和業(yè)務(wù)流程圖有些像
從不同的角度出發(fā),側(cè)重的角度不同