產(chǎn)品經(jīng)理進階:如何用UML的順序圖表達思想?
當大家把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ù)人員送餐,飯后付帳離開。
這個過程用順序圖建模如下:
圖例說明與歸納:
- 顧客與服務(wù)員:這兩個角色為順序圖的對象,為二維圖表縱坐標,橫坐標為對象間的消息交互。
- 進店、選菜、就餐、離開:這些是自己向自己發(fā)起的消息,并沒有與服務(wù)員產(chǎn)生關(guān)系,所以箭頭指向自己。
- 要菜單、點餐、付款:顧客向服務(wù)員發(fā)起的消息,消息發(fā)送人為箭頭尾部,接收人為箭頭頭部,線上文字要用動賓詞語。
- 送菜單、送餐、找零錢:由箭頭方向表示是由服務(wù)員向顧客發(fā)起的消息,實體線表示此消息為動作。動作要用實體線表示,并用動賓詞語。
- 激活框:在顧客與服務(wù)員一側(cè)的長條矩形,也叫會話,一個會話為一批有關(guān)聯(lián)關(guān)系的消息組,這里把就餐的整個過程理解為一個會話。
順序圖各元素說明:
換一種畫風,這張圖還可以這樣表達:
如下圖:
從上圖可以看出,這張圖與上張圖有所不同,發(fā)起的消息為實線,返回的消息為虛線。
圖例說明與歸納:
- 菜單、餐、零錢:虛線表示上一個動作的返回內(nèi)容,動作由上一消息發(fā)起。動作性消息用實線表達,線上文用動賓詞語;返回結(jié)果用虛線表達,線上文字用名詞詞語。
- 從開發(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)系問題。
見下圖:
圖示說明與歸納:
- 不論多少個對象間產(chǎn)生關(guān)系,消息只能是兩個對象間產(chǎn)生。
- 顧客付款給服務(wù)員,服務(wù)員將動作順延給收銀員,多對象間交互信息多是消息及參數(shù)的傳遞。如:收銀員把零錢給服務(wù)員,服務(wù)員把零錢給顧客。
- 一般順序圖的動作與返回參數(shù)多是成對出現(xiàn)的,但也會有只發(fā)動作,對方不能回應(yīng)的情況。
總結(jié)
順序圖特點:
- 順序圖必須是兩個或兩個以上對象間進行交互。
- 強調(diào)消息的順序性,生命線的長度為交互對象的全部生命周期。
- 順序圖的閱讀是從上到下、從左到右進行。
- 順序圖的元素有對象、生命線、激活框、消息、返回值,還有循環(huán)和分支,但一般不常用,加上這兩個元素后會使順序圖的可讀性下降,圖形顯示比較亂,我一般不使用,循環(huán)和分支不是順序圖的強項。
順序圖與活動圖的適用場景
- 順序圖對象間的關(guān)系非常清晰,誰向誰發(fā)起的、誰給誰反饋的。順序圖強調(diào)各對象間交互;活動圖一般不強調(diào)對象,但也有泳道的概念,泳道的命名也是以對象命名的,在這點上兩圖有些相似。
- 順序圖強調(diào)的是消息及消息的返回值,而活動圖強調(diào)的是流程。
- 順序圖雖然也可以表達循環(huán)和分支,但可讀性差;循環(huán)和分支性更適合用活動圖表示。
- 順序圖更強調(diào)時間性,動作是在會話下進行;活動圖不強調(diào)會話與時間。
通過上面三個示例已經(jīng)把順序圖的各元素及畫法表達清楚了,圖形繪制的顆粒度可以根據(jù)實際情況自行掌握,繪制系統(tǒng)間信息的交互就不適合畫信息交互細節(jié)了。以后我還會把用例圖、類圖、部署圖等圖的畫法整理成文章,分享給大家。當大家把UML建模語言下的各圖形都有所了解后會發(fā)現(xiàn),通過這些圖可以全面的、立體的從各個角度表達產(chǎn)品,讓產(chǎn)品的表達變得更豐富、更形象。
相關(guān)閱讀:
面向?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)載。
收藏不了。。。
請問,時序圖中,或的行為如何表示呢
非常有用,感謝!
請問一般用什么工具設(shè)計呢。
VISIO
學習了,謝謝作者分享
UML是必須學的嗎
非必須,屬于高級進階吧
這個和業(yè)務(wù)流程圖有些像
從不同的角度出發(fā),側(cè)重的角度不同