一. BPM 簡介
業務處理模型(Business Process Model:BPM)是從業務人員的角度對業務邏輯和規則進行詳細描述的概念模型,並使用流程圖表示從一個或多個起點到終點間的處理過程、流程、消息和協作協議。通過BPM可以描述系統的行為和需求,可以使用圖形表示對象的概念組織結構,然后生成所需要的文檔。作為一個概念層次的模塊,BPM適用於應用系統的系統分析階段,完成系統需求分析和邏輯設計。BPM與PowerDesigner其它模塊之間的關系如圖:

1.1 PowerDesigner BPM包括3種流圖:
1) 處理層次流圖(Process hierarchydiagram):以層次化的方式來識別系統的功能。
2) 業務處理流圖(Business process diagram):用於分析一個/組流程的具體實現機制。
3) 處理服務流圖(Process service diagram):以業務服務的方式來表述業務流程圖。
1.2 創建BPM對象
(1)創建包
(2)創建業務規則
(3)創建起點
(4)創建處理過程
(5)創建組織單元/組織單元泳道圖
(6)創建流程
(7)定義消息格式
(8)創建資源
(9)創建資源流程
(10) 創建終點
二. 示例
2.1 創建BPM
File--> New Model

注意這里的Precess Language選擇,默認為Analysis,其在Palette 對應的為組織單元為:Organization unit Swimlane。下文會有詳細說明。
2.2 設置BPM 配置選項
Tools→Model Option,或者在流程圖窗口中右鍵菜單,選擇Model Option命令。
2.3 修改BPM 屬性
三種方法:
(1)Model→Model Properties
(2)工作區中右鍵菜單Properties命令
(3)左側列表中右鍵Properties命令

BPM的屬性列表
屬性名 |
說明 |
長度 |
Name |
模型名稱 |
254字符 |
Code |
模型代碼 |
254字符 |
Comment |
模型注釋 |
- |
Filename |
模型文件存儲路徑。如果未保存過,則此項為空 |
- |
Author |
作者 |
254字符 |
Process Language |
處理語言 |
|
Version |
模型版本號 |
- |
Default Diagram |
打開模型時默認打開的流圖 |
|
2.4 業務規則
業務規則(Business Rule)是信息系統必須遵守的或按照業務需求必須構建的特定條件。系統必須遵守此業務規則,就像遵守法律法規、客戶需求或內部條例一樣。
2.4.1 創建業務規則
Model→Business Rules。
添加Rules:

修改Rule 屬性:

(1) “常規屬性(General)”選項卡說明
該選項卡包含屬性Name、Code、Comment(說明)、Type(類型)。其中有如下類型屬性可以選擇。
名稱 |
說明 |
Constraint(約束) |
對值的附加檢驗,限制將在PDM和數據庫中繼續使用。如“項目起始日期必須早於結束日期”。 |
Definition(定義) |
信息系統中對象的屬性,如“客戶是通過名稱和地址識別的人” |
Fact(事實) |
信息系統中存在的事實,“如一個客戶可以填寫一個或多個訂單” |
Formula(公式) |
系統中所使用的計算公式,如“訂單總價是每個訂單單價之和” |
OLC Constraint(對象約束語言) |
是UML表達式語言,用於定義對象的附加約束 |
Requirement(需求) |
系統中的特定功能說明,如“銷售損失不得超過10%” |
Validation(校驗) |
系統中的限制值,如“一個客戶的訂單總價不能大於其信用值” |
(2)“Expression(表達式)”選項卡或“OLC Constraint(對象約束語言)”選項卡。
如果類型屬性選擇OLC Constraint,則會出現“對象約束語言”選項卡,否則出現“表達式屬性”選項卡。對於表達式屬性每個業務規則都可以包含以下兩類表達式。
服務器端:將業務規則應用到數據庫。
客戶端:主要用於文檔編制。
2.4.2 在BPM 中應用Rules
在我們需要指定Rule的對象上右擊,屬性,在選擇More。就可以看到Rule的選項。


2.5 處理BPM
2.5.1 創建新的業務處理流程圖
業務處理流程圖(Business Process Diagram,BPD)表示了業務處理過程間的關系,重要的是處理過程中的數據流程。在一個模型或包中可以定義多個業務處理流程圖,各個流程圖相互設計一個業務處理過程。
一般在我們創建BPM 模塊是默認會創建一個BPD。我們可以對這個BPD 重命名或者新建一個BPD.
兩種方法:
(1)View→Diagram→New Diagram
(2)選擇BPM,右鍵,New→BusinessProcess Diagram

2.5.2 定義起點
起點(Start)是BPD所表達的整個處理過程的起點,表示的是處理過程和處理過程外部的入口。
注意:在一個BPM中可以定義多個BPD,所以在一個模型或包中可以創建多個起點。
2.5.2.1 創建Start
兩種方法:
(1)在工具欄中單擊“Start”圖標
(2)Model→Starts命令
2.5.2.2 修改起點屬性
三種方法:
1)雙擊圖標,打開“起點屬性”窗口
2)右鍵→屬性
3)Model→Starts命令,打開起點列表
2.5.2.3顯示默認的BPM起點的名稱
默認狀態下,起點的名稱不顯示,在BPM中只顯示起點的代碼(Code),很難直觀地了解起點所要表達的含義。
(1)選擇Tools→Display Preferences命令,打開Display Preferences(顯示參數)窗口。
(2)在左側Content-->Start,然后選中Name復選框即可。

2.5.3 定義處理過程
處理過程可以認為是為了達到某個目標而執行的動作。每個處理過程至少有一個輸入流和一個輸出流。
2.5.3.1 創建處理過程
在工具欄中選中Process,然后在工作區點擊創建Process
2.5.3.2 處理過程的屬性
雙擊Process 對象。

處理過程的屬性包括Name、Code、Comment、Stereotype、Organization unit、Composite status(復合處理過程)等,這些屬性可以在屬性窗口中定義。
(1) 板型
板型是用戶定義的值,這些值來源於原有的對象。用板型可以擴展對象的語義而無須改變對象的結構。
(2) 組織單元
組織單元表示某個組織與某個過程相關。它可以代表一個系統、一個服務器、一個組織或一個用戶等。
(3) 復合處理過程
選中Decomposed Process(在下面)單選按鈕表示此過程是復合處理過程,表示一個分解過程的子過程圖在過程內被創建。
復合處理過程用來描述一個父過程的行為的子過程,可以被無限分解為多個子過程。子過程不需要進一步分解。
2.5.4 定義組織單元
組織單元是指為處理過程負責的組織(可以是公司、系統、服務、組織、用戶、或者角色),也可以認為是使用更高級處理過程的業務伙伴。
在工具欄中單擊“Organization unit Swimlane(組織單元泳道圖)”圖標或“組織單元圖標”。能夠選擇的圖標依賴BPD所使用的處理語言。

這里使用的語言是Analysis。 雙擊查看其屬性:

這里要注意的是Organization Unit Swimlane 與Organizaion Unit和 Role Association 是互斥的,即只能使用他們中的一種。
他們之間的切換方法如下:

在工作區右擊,可以看到一個Enable Swimlane Mode,我們禁用Swinlane Mode 之后,Organization Unit 就變為可用了。Organization Unit處理語言是Data Flow Diagram。

雙擊查看屬性:

2.5.5 定義流程
(1)創建

(2)雙擊查看屬性
流程具有的屬性包括Name、Code、Comment、Source(起始對象)、Destination(終止對象)、Stereotype、Transport(數據流的傳輸方式)、Flow type(流程類型)和處理過程間的Message format(數據交換格式)等。這些屬性可以在“屬性定義”窗口中進行修改。
其中:
(1) 數據流的傳輸方式
此屬性主要用於文檔的編制,提供了數據流傳輸方式信息。Transport下來列表框中提供傳真、郵件、電話3種備選方式,也可以直接輸入其它的傳輸方式。
(2) 流程類型
可以直接輸入流程類型或者選擇一下流程類型:
1)Success:正常流程
2)Timeout:超時流程
3)Technical error:技術錯誤流程
4)Business error:業務錯誤流程
5)Compensation:補充流程。
6) 可以自己定義
(3) 消息格式
可以選擇以下消息格式類型:
None:表示流程間沒有數據交換。
Undefined:默認選項,表示以后將定義其消息格式。
可以單擊消息格式下拉列表框旁的“新建”圖標為流程定義消息格式。
(4) 流程條件(Condition)
當存在多個流程時,可以根據流程條件來選擇執行流程。在“流程屬性”窗口中由Condition選項卡來定義流程條件,如下圖所示:

Condition具有以下參數:
Alias:對流程條件總結(別名)。當流程條件很復雜時,可以設置Alias屬性,這樣在流程圖中即可顯示概要性的Alias,而不顯示整個復雜的流程條件。
Editor:流程條件的詳細信息。用於具體描述流程的條件。
說明:在流程圖總Alias將顯示在流程線旁,如果定義了Condition而沒有指定Alias,則在流程線旁顯示所有Editor信息。
2.5.6 定義消息格式
消息格式定義了流程間的兩個對象所要交互數據的數據格式。如果沒有數據交換,則可以不用定義任何消息格式,消息格式可以是XML文檔、XML模式或者調用存儲過程的參數。
在流程圖中消息格式伴隨着相關的流程出現。在“流程屬性”窗口中定義消息格式時,消息格式即鏈接到流程圖標中,如下圖所示。

注意:在流程圖中不允許復制消息格式圖標,如果刪除消息格式圖標,則“流程”的消息格式屬性設置為“None”。
消息格式可以通過如下兩種方法創建:
(1)選擇Model→Message Format命令
(2)通過流程(Flow)屬性的crate選項創建,如下圖:

消息格式具有的屬性包括Name、Code、Comment、Stereotype、Type及Message format等。這些屬性可以在屬性窗口中修改,其中消息格式類型可以直接輸入或者選擇一下消息格式類型。
DTD:表示消息格式類型為文檔類型定義(Document TypeDefinition)
XML Schema:表示消息格式類型為XML模型
RELAX NG:是一種基於語法的XML模式語言,可用於描述、定義和限制XML詞匯表。
2.5.7 定義資源
資源(Resource)類似數據存儲,可以是數據、文檔、數據庫、組建等處理過程,可以用於特殊事務。
(1)創建資源

(2)定義資源流程
“處理過程”通過“資源流程(ResourceFlow)”訪問資源。在流程圖中使用帶有箭頭的虛線表示資源流程。
資源的訪問方式決定了資源流程的方向。
當“資源流程”來自於“處理過程”時,則資源的訪問方式應當為Create、Update或Delete。下圖表示來自“處理過程”的“資源流”,表示“處理過程”創建、更改或刪除資源數據。
雙擊Flow 查看屬性:

來自“資源”的資源流程訪問方式為Read,表示“資源”被“處理過程”讀取,如下圖所示:
當資源的訪問方式為Read和其它訪問方式(Creat、Update、Delete)混合時,資源流程圖標為雙向箭頭。

2.5.8 定義終點
終點(End)是業務流程圖總處理過程的終止點。因為一個模型或包中可以使用多個業務處理流程,因此在一個包或模型中允許定義多個終點。甚至在同一個業務流程圖中也可以定義多個終點,如正確與錯誤情況的終點就可以不同。

終點的類型包括以下選項:
1)Success:表示流程正常終止
2)Timeout:表示流程因為超時而終止
3)Business error:表示流程因為業務邏輯錯誤而終止
4)Technical error:表示流程因為技術錯誤而終止
5)Compensation:補充終點。
Powerdesigner 自帶的示例:

整理自網絡
-------------------------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Email: tianlesoftware@gmail.com
DBA1 群:62697716(滿); DBA2 群:62697977(滿) DBA3 群:62697850(滿)
DBA 超級群:63306533(滿); DBA4 群:83829929(滿) DBA5群: 142216823(滿)
DBA6 群:158654907(滿) DBA7 群:69087192(滿) DBA8 群:172855474
DBA 超級群2:151508914 DBA9群:102954821 聊天 群:40132017(滿)
--加群需要在備注說明Oracle表空間和數據文件的關系,否則拒絕申請
