在系統開發的需求捕捉階段時,一般我們會利用活動圖(Activity Diagram)來記錄企業流程(Business Process)。
例如,範例圖一是利用活動圖來表達 "XX醫院" 的掛號就診流程(圖一僅為範例,並非是完整正確的就診業務流程)。
圖一、利用活動圖表達業務流程
利用活動圖可以記錄詳細的業務流程,也可以看出哪些活動(Activity)是由哪些人或角色所負責的(利用 Partition 區分責任區塊)。
活動圖表達了企業內部的組織運作,但不容易表達出與該業務流程相關的外部主要參與者(Primary Actor),企業是如何滿足其目標。亦即,若想明確區分企業的 "內" 與 "外",我們可以利用 "企業使用案例圖(Business Use Case Diagram)" 來表達。
表達企業層次的使用案例圖(Business level UCD) ,有幾點要注意的:
- 系統的設計範圍一般以企業、部門等組織為單位,而非單指軟體應用系統。
- 會著重於描述企業內部的流程;而非系統功能面的行為描述。
- 通常會以白箱式(Whie-box)的作法打開企業使用案例(Business Use case)內部,以瞭解內部工作者(internal worker)互動合作的流程。
- 目標讀者(Target audience)會偏於企業決策層級的管理者、IT高階主管、系統開發的架構師(Architect)等,可以藉由企業層級的使用案例圖來辨別出組織的核心業務。
- 可以協助從企業流程往技術層面來思考,以定義出適合採用新技術的業務流程。例如,有些人工作業流程,可以藉由電腦資訊化以增加作業效率與成本因素等考量。
延續範例圖一,我們可以利用 "Business level UCD" 來定義系統範圍、找出主要的外部參與者,如下圖二。
圖二、利用企業使用案例圖表達外部參與者的目的
圖二, 系統範圍為 "信仁慈善醫院",主要的參與者為 "病人","病人" 來到醫院的主要目的為 "看病"。
"看病" 為該醫院的核心業務流程,也是 "醫院" 為了滿足主要參與者的 "目的"。為了瞭解其業務流程的內部是如何運作,我們可以以白箱式的表達來剖開 "看病" 這一個企業使用案例,如下圖三。
圖三、用白箱的手法呈現企業內部運作流程
企業使用案例圖,可以成為系統開發者在寫出黑箱式(Black-box)的系統使用案例前很好的前導參考依據。
當系統開發的範圍是 "看診系統" 時,我們可以參考圖三而很輕易地找出使用該系統的主要(Primary)及支援(Support)的參與者,如下圖四。
圖四、系統層次的使用案例圖-看診系統
寫企業使用案例圖,可能會耗費許多的時間與精力。若非與企業流程有直接利益關係的關係人,或者是擔負企業內部多個系統整合與建構的架構師,欲對企業整體流程、企業與系統、系統與系統之間有一番全貌的認識,所以有必要藉由畫企業使用案例圖來協助瞭解。
若只是專注於單一個軟體應用系統的開發,對系統的設計範圍及參與者已有明確的資訊,那麼,可能可以略過寫企業層次的使用案例圖,以避免專案開發期間,耗費過多的時間與成本。
Hi apple:
你所問的問題,是牽涉到 “廣度(範圍)” 與 “深度(層次)” 。
所以,很難用 Business UCD 等於多個 System UCD 這樣來比較。
又,activity 與 System UCD 一個是描述業務流程;另一是描述系統功能,也不應如此來比較(通常一個 activity diag. 內的活動往往會轉為 System UC,要看該活動是否會以軟體系統取代人工作業)。
你的問題,工程化意味蠻重的,若偏向於找 “公式”、”solution” 等,上述這些問題仍然會持續發生的。
建議回到原點,從本質性的思維來瞭解什麼是 UC 的 “廣度” 與 “深度” ,再更進一步,整個 UC 的思維是源自於對 “封裝(Encapsulation)” 的觀念,若能對封裝有更透徹的體會,相信會對你有更大的協助(而非藉由找solution,治標而無法治本)。
看了你的介紹,的確受益良多!. 但是我想請教一個問題. 一個Business level UCD,是否等於多個system level UCD,一個system level UCD ,是否等於一個activity diagram 呢? 那若我們有做UI ,是否也等於一個UI介面呢? 而system level UCD,為系統範圍,通常也是和user討論scope,所以在system level UCD,如何表現很底層之business rule及UI定義呢? 因為我們在和印度軟體公司定義SCOPE時,卻因為system level UCD沒有定義很detail,現在任何沒有寫在system level UCD內容,都無法修改了!