在實際生活中,我們會碰到各種各樣的流程。比如你去醫院看病,你需要先去服務臺領個具體要去看病的某個科室的小票,再前往掛號窗口將小票遞給工作人員,繳完掛號費之后拿到掛號單,再前往具體科室去看病。各處都會有自己的流程,按照流程來走可以快速達到目的,減少不必要的麻煩,當然你也可以獨辟蹊徑,這就屬于流程的優化。
流程是為了達到特定的目標而進行的一系列有邏輯性的操作過程,它可以不規范、可以充滿問題,但它確確實實存在著。只要有事情或任務,就會有流程的存在,將有一定規律的流程用圖表表示出來可以讓流程可視化,從而有利于流程的重組優化。
在工作中,我們常用到的流程圖有:業務流程圖、頁面流程圖和數據流程圖。作為產品,經常談的是業務流程圖;作為交互設計師,則比較關心頁面流程圖;而作為系統分析師,數據流程圖最關鍵。
本文主要講述業務流程圖。
圍繞著以下幾個問題來講述業務流程圖
一、什么是業務流程圖?
二、為什么需要業務流程圖?
三、業務流程圖的兩種圖表類型
四、兩種流程圖常用符號和結構
五、如何繪制業務流程圖?
六、常見的繪制流程圖的工具
一、業務流程圖是什么?
業務流程圖,顧名思義,用來描述業務流程的一種圖,通過一些特定的符號和連線來表示具體某個業務的實際處理步驟和過程,詳細地描述任務的流程走向,一般沒有數據的概念。
業務流程圖是最常見的圖表之一,能看懂讀懂是必修課,能繪制便是非常重要的選修課。
二、為什么需要業務流程圖?
分析業務流程,并將業務流程圖表化可以幫助分析者了解業務如何運轉,幫助分析者找到業務流程中不合理的流向。現有產品存在的業務流程未必是合理的,通過業務流程圖,鉆研關鍵事件的流程,分析為什么要這么做,探索出更深層次的問題,從而對現有不合理的業務流程進行重組優化,進而制定優化方案,改進現有流程。
產品在寫需求文檔時主要是對業務規則的描述,而配合以業務流程圖可以讓業務邏輯更清晰;日常梳理關鍵事件業務流程時,畫出業務流程圖可以幫助發現不合理流程,從而對關鍵事件進行優化。
三、業務流程圖的兩種圖表類型
1、管理業務流程圖
我們現在所說的流程圖其實是傳統的管理業務流程圖,包含基本流程圖和跨職能流程圖(泳道圖)兩種。以醫院掛號流程為例。
基本流程圖雖然明確地說明了整個流程,但卻無法清楚地說明每步流程是由哪個角色負責的。為了有效表示各個流程是由誰來負責的,可以通過泳道流程圖來實現,這樣不僅體現了整個活動控制流,還能清楚知道各個角色在流程中所承擔的責任。
管理業務流程圖已基本能滿足業務流程走向的表達,但在復雜的系統交互中,表達并發概念時,傳統的管理業務流程圖已無法表達,這就需要用到UML建模。
2、UML活動圖
UML中共定義了13種圖,如下,其中用例圖、活動圖和順序圖用的比較多。
UML細分了各種圖,分別在不同的角度來描述系統流程,在本質上,UML各種圖均屬于流程圖。
其中UML中活動圖同管理業務流程圖類似可用于表示業務過程,唯一的區別是活動圖支持并行行為。傳統的流程圖著重描述處理過程,它的主要控制結構是順序、分支和循環,各個處理過程之間有嚴格的順序和時間關系;而UML活動圖描述的是對象活動的順序關系所遵循的規則,它著重表現的是系統的行為,而非系統的處理過程。
那UML活動圖是如何來表示并發業務流程的呢?
UML活動圖也可包含為基本活動圖和泳道活動圖,表達的方式與管理業務流程圖差不多,但符號上稍有不同(符號區別可參考下方)。
同管理業務流程圖一樣,泳道讓流程中個角色的分工一目了然。一個泳道表示流程內的一個角色,泳道內僅僅畫出該泳道所表示角色完成的活動(判斷,并行等可以畫在任意泳道)。
【總結】管理業務流程圖或UML活動圖均可以用來表達業務流程,具體使用哪種圖來表達業務流程可以憑君喜好,但要遵循一定的符號結構,不要混搭。不過要表達并行行為的還是使用UML活動圖吧。
四、兩種流程圖常用符號和結構
1、管理業務流程圖
管理業務流程圖的常用符號如下,其基本結構包含:順序結構、選擇(分支)結構、循環結構。
2、UML活動圖
UML活動圖的常用符號如下,其基本結構除了順序結構、選擇(分支)結構和循環結構外,還可能存在并發的事件流。在UML中,可以采用一個同步線來說明這些并行控制流的分岔和匯合。
同步線:分岔是有一個進入轉換,兩個或多個離開轉換;而匯合則是兩個或多個進入轉換,一個離開轉換。
五、如何繪制流程圖?
1、在開始繪制業務流程圖之前需要先想清楚的2個問題:
1)所要描述的是哪一段業務流程?
在畫流程圖之前先確定業務流程起終點,是截取某一段業務進行詳細描述,還是整體業務模塊進行描述。不可能將所有的流程都放到一個圖里展示,也不可能大而籠統不畫出關鍵事件,要學會劃分業務流程范圍,把握粒度。
【舉例】還是以醫院掛號看病為例,先掛號再看病。整個流程下來其實可以細分為兩個流程,分別為掛號流程和看病流程;甚至粒度可以再細點,分為取小票流程、掛號流程、繳掛號費流程、排隊看病流程等,但很明顯,單獨分析取小票流程和繳掛號費流程粒度過小,沒有實際意義。
【總結】可采用自頂向下,逐層分解的繪制方法。明確你要梳理的業務流程范圍,首先列出流程中的關鍵事件,如醫院掛號看病,掛號流程和看病流程便算是整個流程中的關鍵事件流程;再結合你分析的目的來判斷是否需要再往下層進行分解,如取小票流程、掛號流程、繳掛號費流程、排隊看病流程。如此例,層層向下分解,直到符合你要分析的目的,當目的是為了對某個業務流程進行優化時,則分解到對應流程即可,繪制出流程圖后再進行分析。
2)所要描述的業務流程是否涉及到參與者?
涉及到參與者的業務流程使用泳道圖來描述更簡單明了。
【舉例】業務簡要描述:數學老師讓小麗幫忙把講臺上的寫了名字的語文課本送給語文老師,語文老師接下后微笑著對小麗說謝謝。
【分析】包含了數學老師、小麗、語文老師這三個參與者,此時用泳道流程圖更合適。
2、問題想明白了之后便可以對業務流程進行梳理,進而分解各個要素。
業務流程圖有4個關鍵要素:執行操作、順序、輸入輸出、規則;要更清楚的描述業務流程可以有參與者這一要素。
1)執行操作:執行了什么操作
2)順序:操作產生的順序
3)輸入輸出:發生操作的原因和結果
4)規則:操作產生的條件
5)參與者:誰參與了這個流程,可以是系統、可以是頁面,也可以是用戶
以上個例子為例進行分解:
業務簡要描述:數學老師讓小麗幫忙把講臺上的寫了名字的語文課本送給語文老師,語文老師接下后微笑著對小麗說謝謝。
1)執行操作和順序(含輸入輸出):請求幫忙、接受幫忙、拿講臺上的語文課本、遞交課本、接收課本、道謝
2)規則:必須是寫了名字的語文課本
3)參與者:數學老師、小麗、語文老師
以上是明確給出了業務描述,按照步驟基本上便能畫出業務流程圖。在沒有明確給出業務描述的情況下,對業務流程的梳理主要有兩種方式:
1)深入現場調查,由工作人員介紹業務處理過程。
2)對現有業務流程的優化。當已經對現有業務流程熟悉時,通過討論和分析,可梳理出業務流程,再通過優化現有流程中不合理的地方,從而給出一個更好的流程來。
3、流程圖規范
1)各圖形形狀/字號統一。如果各個圖形形狀大小/字號相差懸殊,這對于理解圖形的人也是一種折磨,對于某個比較重要的流程可以使用顏色來區分其他普通流程(但顏色數量和種類不應太多,以免重點模糊),再在該重要的流程旁加上注釋說明,就能將重點轉達給對方。
2)流程名用動賓結構,如輸入手機號。
3)流程均以開始框開始,以結束框結束。
4)流程圖從左到右、從上到下排列。
5)流程線盡量不要交叉。
六、常見的繪制流程圖的工具
1、在線工具
ProcessOn:https://www.processon.com/
draw.io:https://www.draw.io/
2、客戶端
Microsoft Visio
edraw億圖
xmind
omniGraffle(mac)
StarUML
我一般常用ProcessOn畫業務流程圖,一些uml圖也會使用StarUML,這兩種工具畫出來的圖都挺賞心悅目。但具體用哪種工具不重要,重要的是學會對業務流程進行梳理并將流程可視化。