當大家把UML建模語言下的各圖形都有所了解後會發現,通過這些圖可以全面的、立體的從各個角度表達產品,讓產品的表達變得更豐富、更形象。
「手中無劍、心中有劍」,大多數產品人並不了解計算機開發語言,這導致產品人與技術人間的交流總是不夠順暢,如果我們能擁有一套與技術人員溝通的共同語言,在將來的工作中就會變得更輕鬆、順暢。今天,要說的就是這門共同語言——UML(統一建模語言),它包括:活動圖、順序圖、用例圖、部署圖、類圖、包圖、對象圖、合作圖、狀態圖等,每種圖都適用於不同的場景,各有各的適用範圍,綜合起來就是一套全方位、立體化模型,可從不同角度詮釋產品。
順序圖的使用我是在2005年開始的——日本地鐵管理系統。管理系統的特點多是關係複雜、嚴謹性高、流程性強,如ERP、OA、CRM等,為了能更好的梳理業務關係和流程,我們就選用了順序圖這一模型圖表來梳理需求。通過順序圖的使用,需求漸漸清晰、明確,每一個對象、每一次交互、每一個流程都被我們從隱藏的角落裡拉了出來。當遇到不確定的問題再與客戶方溝通了解,並將梳理後的結果反饋給對方。因為模型的使用讓項目團隊從需求到設計過渡的非常順暢,項目也成功完成並上線。
閒話少敘,談一談UML中最重要的模型——順序圖。
細說順序圖順序圖也叫序列圖,英文是Sequence[ˈsi:kwəns],是UML裡最重要的建模圖形之一。順序圖描述了用例的實現,它表明了由哪些對象,通過消息相互協作來實現用例的功能,在順序圖中,標識了消息發生交互的先後順序。
舉個例子
案例一:去餐廳吃飯
場景:到飯店就餐。就座後服務員送上菜單,點完餐後等待,廚師做好後服務人員送餐,飯後付帳離開。
這個過程用順序圖建模如下:
圖例說明與歸納:
顧客與服務員:這兩個角色為順序圖的對象,為二維圖表縱坐標,橫坐標為對象間的消息交互。進店、選菜、就餐、離開:這些是自己向自己發起的消息,並沒有與服務員產生關係,所以箭頭指向自己。要菜單、點餐、付款:顧客向服務員發起的消息,消息發送人為箭頭尾部,接收人為箭頭頭部,線上文字要用動賓詞語。送菜單、送餐、找零錢:由箭頭方向表示是由服務員向顧客發起的消息,實體線表示此消息為動作。動作要用實體線表示,並用動賓詞語。激活框:在顧客與服務員一側的長條矩形,也叫會話,一個會話為一批有關聯關係的消息組,這裡把就餐的整個過程理解為一個會話。順序圖各元素說明:
換一種畫風,這張圖還可以這樣表達:
如下圖:
從上圖可以看出,這張圖與上張圖有所不同,發起的消息為實線,返回的消息為虛線。
圖例說明與歸納:
菜單、餐、零錢:虛線表示上一個動作的返回內容,動作由上一消息發起。動作性消息用實線表達,線上文用動賓詞語;返回結果用虛線表達,線上文字用名詞詞語。從開發人員角度分析:如發起的動作性消息有參數返回,則可根據此特點創建函數,虛線上的內容為此函數的返回值;如發起的動作性消息不返回參數則可根據此特點創建方法,方法可以理解為沒有返回值的函數;從這點可以看出,我們如果能畫好順序圖,對開發人員來說是有一定指導意義的。多對象間如何進行信息傳遞?再延伸思考,顧客向服務員下單,服務員向廚師下單,廚師收到訂單後按單做飯,做完後再把菜給服務員,服務員送餐。埋單時也是一樣,顧客付款後,服務員將錢給收銀員收款,收銀員將零錢給服務員,由服務員給顧客。這就產生了兩個新的角色,廚師、收銀員,這種關係應該如何表達呢?這已經不是兩個對象間的關係,是多對象間的關係問題。
見下圖:
圖示說明與歸納:
不論多少個對象間產生關係,消息只能是兩個對象間產生。顧客付款給服務員,服務員將動作順延給收銀員,多對象間交互信息多是消息及參數的傳遞。如:收銀員把零錢給服務員,服務員把零錢給顧客。一般順序圖的動作與返回參數多是成對出現的,但也會有隻發動作,對方不能回應的情況。總結順序圖特點:順序圖必須是兩個或兩個以上對象間進行交互。強調消息的順序性,生命線的長度為交互對象的全部生命周期。順序圖的閱讀是從上到下、從左到右進行。順序圖的元素有對象、生命線、激活框、消息、返回值,還有循環和分支,但一般不常用,加上這兩個元素後會使順序圖的可讀性下降,圖形顯示比較亂,我一般不使用,循環和分支不是順序圖的強項。順序圖與活動圖的適用場景順序圖對象間的關係非常清晰,誰向誰發起的、誰給誰反饋的。順序圖強調各對象間交互;活動圖一般不強調對象,但也有泳道的概念,泳道的命名也是以對象命名的,在這點上兩圖有些相似。順序圖強調的是消息及消息的返回值,而活動圖強調的是流程。順序圖雖然也可以表達循環和分支,但可讀性差;循環和分支性更適合用活動圖表示。順序圖更強調時間性,動作是在會話下進行;活動圖不強調會話與時間。通過上面三個示例已經把順序圖的各元素及畫法表達清楚了,圖形繪製的顆粒度可以根據實際情況自行掌握,繪製系統間信息的交互就不適合畫信息交互細節了。以後我還會把用例圖、類圖、部署圖等圖的畫法整理成文章,分享給大家。當大家把UML建模語言下的各圖形都有所了解後會發現,通過這些圖可以全面的、立體的從各個角度表達產品,讓產品的表達變得更豐富、更形象。
相關閱讀:活動圖實例:細談UML建模語言中的活動圖模型
面向對象的思想:產品經理需要知道的技術知識
#專欄作家#產品人老吳,微信公眾號:ChanPinLaoWu,人人都是產品經理專欄作家,產品講學堂自媒體人,某公司產品總監。十多年軟體行業從業經驗,做過軟體開發、項目經理、產品經理、產品總監,希望能與大家分享更多產品經驗和知識。
本文原創發布於人人都是產品經理。未經許可,禁止轉載。
收藏已收藏 | {{ postmeta.bookmark }} 點讚已贊 | {{ postmeta.postlike }}