業務流程模型和標記法 (BPMN , Business Process Model and Notation )[譯註1] 是一套圖形化表示法,用於以業務流程模型 詳細說明各種業務流程 。
BPMN模型例子:帶正常流的流程
它最初由業務流程管理倡議組織(BPMI, Business Process Management Initiative)開發,名稱為"Business Process Modeling Notation",即「業務流程建模標記法」。BPMI於2005年與對象管理組織 (OMG, Object Management Group)合併。2011年1月OMG發佈2.0版本,同時改為現在的名稱。[ 1]
業務流程模型和標記法(BPMN, Business Process Model and Notation)[譯註1] 是對象管理組織 (OMG, Object Management Group)維護的關於業務流程建模 的行業性標準。它建立在與UML 的活動圖 非常相似的流程圖 法(flowcharting)基礎上[ 2] ,為「業務流程圖」(BPD, Business Process Diagram)[ 3] 中的特定業務流程 提供一套圖形化標記法。BPMN的目標是,通過提供一套既符合業務人員直觀又能表現複雜流程語意的標記法,同時為技術人員和業務人員從事業務流程管理 提供支援。BPMN規範還提供從標記法的圖到執行語言基礎構造的對映,尤其是業務流程執行語言 (BPEL)[ 4] 。
BPMN的首要目的是提供全體業務相關者易於理解的標準標記法。業務相關者包括創造與梳理流程的業務分析師 、負責實施流程的技術開發者、以及管理和監督流程的經理人。BPMN旨在充當公共語言,跨越業務流程設計和實施之間常見的鴻溝。
當前有多種競爭的業務流程建模語言標準供建模過程和工具選用[ 5] 。廣泛採用BPMN將有助於統一基本的業務流程概念的表達(例如:公共或私有的流程、編排),就像一些進階的業務概念一樣(例如:例外處理 、事務補償 )。
BPMN最初由業務流程管理倡議組織(BPMI, Business Process Management Initiative)開發,該組織於2005年與對象管理組織 (OMG, Object Management Group)合併,從那時起,由OMG維護。BPMN最初的名稱為"Business Process Modeling Notation",即「業務流程建模標記法」,2011年1月OMG發佈2.0版本,同時改為現在的名稱。[1]
BPMN僅限於支援對業務流程有用的建模概念。這意味着組織所做的非業務目的其他類型建模將排除在BPMN之外。例如,以下方面的建模不屬於BPMN的一部分:
此外,雖然BPMN會顯示數據的流(訊息)以及活動與數據器物的關聯,但它並非數據流圖 (data flow diagram)。
BPMN用很小一套圖形要素做簡單的圖來建模,這將令業務用戶與開發者一樣容易理解其中的過程和流。它的四種基本要素如下:
流對象(Flow Object)
事件(Events),活動(Activities),閘道器(Gateways)
連接對象(Connecting Objects)
順序流(Sequence Flow),訊息流(Message Flow),關聯(Association)
泳道(Swimlanes)
池(Pool),道(Lane)
器物 (Artifacts/Artefacts)
數據對象(Data Object),組(Group),註釋(Annotation)
這四大類對象令我們有機會做出簡單的業務流程圖(BPD, business process diagram)。同時,BPMN也允許在BPD中建立你自己的流對象、器物類型,使圖更好理解。
事件 Event
活動 Activity
關口 Gateway
連接 Connections
流對象 (Flow Objects)是BPMN的主要描述對象,由三種核心要素(事件、活動、關口)組成。
事件(Event)
「事件」(Event)以圓環表示,指發生的事情(區分於「活動」代表所做的事情)。圓環中的圖示代表事件的類型(例如:信封為訊息,時鐘為時間)。事件也被分為「擷取」(Catching,例如擷取輸入的訊息而開始一個流程)或「投擲」(Throwing,例如在流程結束投擲訊息)。
開始事件(Start event)
作為流程的觸發器;以細單線標明,並且只能「擷取」(Catch),所以它顯示為空心(輪廓)的圖示。
結束事件(End event)
表現流程的結果;以粗單線標明,且只能「投擲」(Throw),所以顯示為實心圖示。
中間事件(Intermediate event)
表現發生在開始和結束事件之間的事;以雙線標明,可以是「投擲」或「擷取」(相應採用實心或空心圖示)。例如,一任務流到一事件,投擲一個訊息到另一個池,然後由下一個事件守候,擷取其回應。
活動(Activity)
「活動」(Activity)用圓角矩形表示,並描述必需做的工作的種類。
任務(Task)
任務代表單一工作單元,它不會或不能被分解為更深層次上的業務流程細節,而不包含操作程式步驟的圖示(此非BPMN的目的)。
子流程(Sub-process)
用於隱藏或顯露深層業務流程細節——收起時,在矩形底部用加號標明子流程;展開時,在矩形內顯示全部的流對象、連接對象及器物。
子流程自含開始及結束事件,來自「父」流程的順序流不可跨過其邊框。
事務(Transaction)
子流程的一種形式,其所包含的全部活動必須作為一個整體對待,即它們必須完全結束以滿足目標,其中任何一個失敗就必須全部償還(撤回)。事務作為擴充的子流程,用雙線環繞。
關口(Gateway)
「關口」(Gateway)用菱形表示,基於所示條件決定路徑的分流與合併。
「流對象」通過「連接對象 」(Connecting objects)互相連接。連接對象包括三個類型(順序、訊息、關聯):
順序流(Sequence Flow)
「順序流」用實心線和箭頭表示,顯示活動進行的順序。「順序流」還可以在開始端帶有符號,以小菱形標明其中一些發自活動的「條件流」(conditional flow),同時以對角斜線標明發自活動或決定,帶條件流的「預設流」(default flow)。
訊息流(Message Flow)
「訊息流」用虛線表示,起始端有一個空心圓圈,終端是一個空心箭頭。它告訴我們哪些訊息流跨過組織的邊界(即介於池之間)。訊息流不可用於在同一個池中連接活動或事件。
關聯(Association)
「關聯」(Association)用點線表示。它用於建立器物或文字到流對象的聯絡,並且可以用空心箭頭標明某種方向性(指向器物表示結果,源自器物表示輸入,同時出現則表示讀和更新)。當器物或文字聯絡到順序或訊息流時,關聯無需標明方向(那些流已經顯示了方向)。
泳道 Swimlanes
數據對象 Data objects
組 Groups
註釋 Annotation
泳道 (Swimlanes)是從視覺上對活動加以組織或分類的機制。它基於交叉功能流程圖基礎,在BPMN中有兩種類型:
池(Pool)
表示流程中的主要參與者,典型地,用來分開不同的組織。一個池可容納一個或多個道(像真實的泳池一樣)。當池為展開的(顯示出內部細節),繪做大的矩形;若為收起的(隱藏起內部細節),繪做沿着圖的長或寬伸展的空的矩形。
道(Lane)
在池中,用於活動按職能譯註3 或角色歸類。繪做按池的長或寬展開的矩形。道包含流對象、連接對象和器物。
器物 (Artifacts)使開發者可以帶給模型/圖更多的資訊,通過這一方式,使模型/圖更可讀。預定的三種器物如下:
數據對象(Data Objects)
「數據對象」向讀者顯示在活動中需要或產生哪些數據。
組(Group)
組表現為虛線的圓角矩形。組用來將不同的活動分組,但不影響圖中的流。
註釋(Annotation)
註釋為模型/圖的讀者增加可理解性。
點擊小圖檢視全尺寸圖
帶正常流的流程
討論迴圈
電子郵件投票流程
採集投票
在BPMN的三種子模型之內和之間,可以建立各種類型的圖。以下列出的是能夠用BPMN建模的業務流程類型(其中帶星號的可能無法對映到執行語言):
高層次私有流程的活動(非職能分解)*
細節私有流程(Detailed private business process)
當前或過往的業務流程*
未來或新業務流程
與一個或多個外部實體互動的細節私有業務流程(或「黑盒子」流程)
兩個或更多細節私有業務流程的互動作用
細節私有業務流程到抽象流程的聯絡
細節私有業務流程到協同運作流程的聯絡
兩個或更多抽象流程*
抽象流程與協同運作流程的關係*
單獨的協同運作流程(例如:ebXML BPSS或RosettaNet)*
兩個或更多細節私有業務流程通過抽象流程的互動作用
兩個或更多細節私有業務流程通過一個協同運作流程的互動作用
兩個或更多細節私有業務流程通過抽象與寫作流程的互動作用
BPMN的設計目標是允許上述全部類型的圖。然而,需要小心的是,包含了太多的子模型類型,例如三種或更多的私有流程之間都有訊息流連接,這樣的圖可能會變得難以理解。因而,我們建議建模者為諸如私有流程、協同運作流程的BPD建立明確的目標。
BPMN 2.0為新的業務流程模型和標記法建立單一規範,對標記法、元模型 和交換格式做出界定。2.0版的名稱有所修改,但仍會維持「BPMN」這個標誌。特徵包括:
結合BPMN和業務流程定義元模型 (BPDM),形成單純一致的語言
使能在建模工具間交換業務流程模型及其佈局,以保持語意完整性
擴充BPMN以允許將模型組態與編排成獨立或整合的模型
支援模型上不同透視法的顯示和交替,令用戶可以聚焦於特定的關注點
串行化BPMN,為模型轉換提供XML 方案(schemes),向執行決策支援 方向擴充業務模型。
BPMN 2.0在2011年1月發佈[ 1] 。
業務流程建模用於傳達廣泛而多樣的資訊給廣泛而多樣的受眾。BPMN的設計就是為了覆蓋這種廣泛的用途,並且允許端到端的業務流程建模,從而令圖的觀察者能夠方便地區分一個BPMN圖上的不同部分。在一個端到端的BPMN模型中有三種基本的子模型:「私有」(內部的)業務流程、「抽象」(公共的)流程,和「協同運作」(全域的)流程:
私有(Private;內部的)業務流程
私有業務流程是指特定組織內部且通常被稱為工作流或業務流程管理(BPM)流程的一類流程。如果用了泳道,則一個私有業務流程將包容在單個的池中。該流程的順序流完全包含在其池之中,不可跨越邊界。訊息流可以跨越池的邊界,顯示不同的私有業務流程間的互動作用。
抽象(Abstract;公共的)流程
表示私有業務流程與其它流程或參與者之間的互動。只有那些通訊範圍超出私有業務流程的活動包括在抽象流程中。剩下那些私有業務流程的「內部」活動不顯示在抽象流程中。即,抽象流程向外部世界顯示訊息序列,這些訊息序列是與其業務流程互動所必須的。抽象流程可包含在一個池中並單獨建模,或包含在一個大的BPMN圖中顯示抽象流程活動與其它實體之間的訊息流。如果一抽象流程與其對應的私有流程在同一個圖中,則其活動對可關聯的流程雙方是共用的。
協同運作(Collaboration;全域的)流程
協同運作流程刻畫兩個或更多業務實體之間的互動作用。這些互動作用定義為活動序列,這些活動序列表示所涉及實體之間的訊息交換模式。協同運作流程也可能包容在一個池中,不同參與者的業務互動作用顯示為該池中的道。在這種情形下,每個道將代表兩個參與者和他們之間的移動方向。它們也可以顯示為兩個或更多的抽象流程,通過訊息流互動作用(如上一節所描述)。這些流程可以獨自建模,或者在一個大的BPMN圖中顯示協同運作流程活動和其它實體間的關聯。如果協同運作流程在同一個圖中作為協同運作的私有業務流程,則其活動對可關聯的流程雙方是共用的。
BPMN的弱點涉及以下方面:
在共用的BPMN模型中的歧義與混淆
對例行工作的支援
對知識工作的支援
BPMN模型到執行環境的轉換
a b 這裏"Notation"在中文有多種譯名,例如"標註"。《UML參考手冊》中譯作「表示法」[ 6] 。根據BPMN的內容,和建模領域背景的考量,這裏暫時譯作「標記法」。
^ Organization是擁有業務的實體,可包括任何類型——非商業的、政府的、民間的;對於組織,Function在漢語中通常應該是「職能」而非「功能」。
^ 按照BPMN的基本理解,這裏的participant(參與者)、function(職能,功能)、role(角色),都不一定是「人的」(組織、職能與業務人員),也可以是電腦的(應用系統、功能、代理程式),這在中文更精確的表達中,造成一定的困惑。
Grady Booch; 由姚淑珍、唐發根等譯. 《UML参考手册》The Unified Modeling Language Reference Manual . 機械工業出版社. 2001年1月: 440. ISBN 7111082206 (中文(中國大陸)) .
BPMN Information Home Page (頁面存檔備份 ,存於互聯網檔案館 ) OMG information page for BPMN.
BPMN 1.1 Poster - Poster showing all BPMN constructs