人數

2010年6月30日 星期三

系統分析與設計王堯天第7章 流程塑模

第7章 流程塑模


1.何謂「流程」﹖
【參考答案】:
所謂「流程」(Process)是指:「對於進入系統之資料流或狀況,進行處理的一系列過程。」(圖一)基本上,流程即是一個系統,對每一個流程而言,有輸入與輸出,通常流程是根據輸出的結果,經由訊息的回饋與目標值互相比較的差異值,進行調整與控制的活動。

2.何謂「流程塑模」﹖
【參考答案】:
所謂「流程塑模」(Process Modeling)的定義如下﹕
「它是以系統化與文件化的方式,針對於一個系統的流程、邏輯、政策與步驟的資料流程進行規範的一種活動。」建立流程模式的主要目的如下﹕(1)描述系統的一般行為(General Behavior),(2)描述工作流程(Work Process),(3)設計資訊系統的處理流程(Process Flow),(4)設計系統的行為(Designing System’s Behavior),(5)實體系統的測試與除錯(Testing and Debugging),(6)設計系統的控制點(Control Point),與(7)模擬一個系統的處理過程。
流程塑模的主要工作是將目前的企業的活動經由塑模的程序,建立一個具有代表性的流程模式,作為系統分析或設計的依據。茲將流程塑模的主要工作項目敘述如下﹕(1)了解作業彼此間的關係並且簡化作業流程,(2)將作業流程予以公開化、合理化與透明化,(3)建立一個標準作業流程,(4)表示部門與作業的關係,與(5)實施流程自動化。

3.請說明流程塑模的進行步驟。
【參考答案】:
茲將流程塑模進行的步驟敘述如下﹕(圖二)

圖二:流程塑模的進行步驟

(一)建立環境資料流程圖
「環境資料流程圖」(Context DFD)主要是用來描述整體系統與外部實體的關係,其定義如下﹕「描述系統與外部實體之間的資料流的一種資料流程圖。」基本上,環境資料流程圖之特性如下﹕(1)只允許一個處理,(2)界定系統範圍,但是沒有資料儲存體,與(3)描述系統與外界關係,例如系統提供外部實體資料或是外部實體提供資料更新系統等。環境資料流程圖可以視為一個黑箱,可以描述系統與外部實體的關係,避免一開始進行分析時,就分析一個相當複雜的資訊流程,對後續的資訊系統的設計與建置應有相當程度的助益,環境資料流程圖又稱為「Level-0 DFD」。
(二)建立事件列
建立事件列主要目的是建立初步資料流程圖的準備工作。圖三是事件驅動處理模型策略的作法(Whitten et al., 2004),從環境資料流程圖的處理部分進行功能細分(Functional Decomposition)的動作,其作法就是將一個系統細分為若干個子系統的功能,如圖三所示,經由功能細分以後可以產生功能分解圖(Functional Decomposition Diagram)或階層樹(Hierarchical Tree)。其次,將功能分解圖的事件彙總成一個使用個案清單(Use Case List)或事件回應清單(Event–Response List),針對每一個功能的回應事件均予以詳細的記錄,使用個案清單內容包含下列要素﹕(1)啟動事件的角色,(2)事件之描述,(3)輸入或觸發器(e.g., 資料流或控制流, etc.),(4)輸出與回應(e.g., 資料流或資料儲存, etc.),與(5)外部代理人。

圖三:事件驅動處理模型策略的作法

(三)繪製初步資料流程圖
「初步資料流程圖」(First-Cut DFD)是一種描述系統的資料處理與流程的概示圖,它是根據需求分析的事件列中,有關於外部實體、資料流與資料儲存之關係進行描述,通常針對每一個事件列必須對應一個小資料流程圖,其做法如下﹕(1)針對每一個重要事件的活動對應一個處理並加以命名,使事件發生時採取的動作與回應,(2)以每一個處理為對象,增加輸入與輸出之資料流、資料儲存與外部實體,(3)連接事件列所展開的小資料流程圖,與(4)檢查是否每一個事件列是否均有完整的描述,確認環境圖與初步資料流程圖之一致性。
至於界定資料流程圖的基本元素的做法整理如下﹕(1)外部實體凡是與系統產生互動關係,提供資料與接收資料的實體,有可能是資料流程圖的一種外部實體,(2)資料處理執行新增、修改、查詢、刪除或列印的作業,(3)資料儲存表單、衍生的表單、永久性資料保存與暫時性資料,與(4)資料流資料傳送地方向與內容,外部實體與處理、資料儲存與處理、處理與處理之間關係。
(四)資料流程圖的細分或合併
由於上述繪製完成之初步資料流程圖不一定是達到最佳化的程度,因此,有必要進行向上整合與向下細部分解工作。所謂「資料流程圖的分解」(Decomposition of DFD)是指﹕「將資料流程圖的分解為若干個子資料流程圖之過程。」它又稱之為「功能分解」(Functional Decomposition),其目的如下﹕(1)簡化資料流程圖,(2)降低資料流程圖之複雜度,(3)增加模組之內聚力,與(4)提升系統分析與設計的效率與品質。一般而言,資料流程圖的製作經常是採用「反覆式發展程序」(Iterative Development),如圖7-11所示,從環境資料流程圖向下細分為第零階資料流程圖,第一階資料流程圖,一直到不能細分的原始資料流程圖為止,所謂「原始資料流程圖」(Primitive DFD)是指﹕「無法再向下細分的資料流程圖,只允許單一事件的處理。」至於實施資料流程圖向上整合的基本原則是﹕「同一功能合併或同一部門的作業,基於簡化處理的數目要求,允許將一些處理進行向上整合」。
(五)資料流程圖的評估、檢討與修正
資料流程圖的評估亦是流程塑模過程一項重要的工作,評估作業最好是成立一個專案小組,建議由使用部門、資訊系統開發人員或外聘顧問共同組成,透過公開審查的程序進行,由一位資深的專案經理來主導整個評估工作之進行,評估的重點項目如下﹕(1)表達符號之正確性,(2)資料流程圖之意涵與真實世界是否相符,(3)上層與下層是否平衡並保持一致性,(4)資料流程圖是否符合簡單化原則,(5)資料流程圖之內容是否完整並未遺漏重要部分,與(6)是否有某一個資料流程圖是相當複雜的,例如處理數目過多或是與資料流的關係太複雜的情形發生。
(六)建立資料字典
資料流程圖的最後一個步驟就是建立「資料字典」(Data Dictionary,簡稱DD),它是用來定義資料流程圖的資料流、資料元素、檔案與處理程序。茲將表示符號的意涵說明如下:
(1)資料流─對於資料流程圖中的每一資料流都有一個資料流項目(Data Flow Entry)予以說明之,如下所示:
資料流名稱 查詢庫存檔
別名 無
組成 材料庫存查詢
說明 在物料資訊系統內任何庫存資料均可查詢
(2)資料元素─針對每個資料流程圖中最基本的單位賦予一個名稱即所謂「資料元素」 (Data Element Entry),如下所示:
資料元素名稱 庫存狀況
別名 無
值域和意義 OK:有庫存
SOS:缺貨
OR:訂購中
(3)檔案─對資料流程圖中每一個檔案皆有一對應的檔案項目(File Entry)予以說明之,如下所示:
檔案名稱 庫存檔
別名 材料庫存檔
組成 〔材料編號+材料名稱+{庫存量}〕
組織 採用TOTAL資料檔案設計
註:其中“ + ”代表同時存在,〔 〕代表選擇其中之一,{ } 代表可以重覆,( )代表可以省略。
(4)處理程序─針對資料流程圖的處理程序(Process Entry)進行描述,其作法如下:
處理程序名稱 更新庫存檔
編號 2.1.2
內容 若料號在庫存檔中存在而且異動數量小於庫存量則更新庫存量;其他則發出錯誤訊息。
4.解釋名詞
【參考答案】:
(1)資料流程圖
「資料流程圖」(Data Flow Diagram, DFD)是描述一個系統的資料流、作業與處理的工具。基本上,資料流程圖是一種以功能為導向的流程模式,使用十分廣泛的一種流程塑模工具,經常被使用在管理資訊系統的流程分析過程,也是一種企業再造的流程分析工具,其優點是將大型資訊系統經由塑模的過程,使塑模作業簡單化、標準化、圖型化與自動化,而DFD最大的缺點是初學者學習的時間較長、不能用來描述流程時間的先後順序,細部流程的流向以及資料的儲存結構等。圖四是資料流程圖的表示符號,茲將資料流程圖的表示符號說明如下﹕

圖四:資料流程圖的表示符號
(2)資料字典
所謂「資料字典」(Data Dictionary,簡稱DD)是指:「是用來定義資料流程圖的資料流、資料元素、檔案與處理程序內容的一種工具。」
(3)原始資料流程圖
所謂「原始資料流程圖」(Primitive DFD)是指﹕「無法再向下細分的資料流程圖,只允許單一事件的處理。」
(4)環境資料流程圖
「環境資料流程圖」(Context DFD)主要是用來描述整體系統與外部實體的關係,其定義如下﹕「描述系統與外部實體之間的資料流的一種資料流程圖。」基本上,環境資料流程圖之特性如下﹕(1)只允許一個處理,(2)界定系統範圍,但是沒有資料儲存體,與(3)描述系統與外界關係,例如系統提供外部實體資料或是外部實體提供資料更新系統等。環境資料流程圖可以視為一個黑箱,可以描述系統與外部實體的關係,避免一開始進行分析時,就分析一個相當複雜的資訊流程,對後續的資訊系統的設計與建置應有相當程度的助益,環境資料流程圖又稱為「Level-0 DFD」。
(5)平衡
所謂「平衡」(Balancing)的意義如下﹕「上一階層的DFD之流進與流出資料流必須與上一階層的DFD之流進與流出之資料流相等。」如圖五所示,上層之處理1.0之輸入是DF1,而輸出是DF2,根據資料流程圖分解之平衡的要求,下層之處理包括處理1.1,處理1.2,處理1.3三者的關係,只允許輸入是DF1,而輸出是DF2,不能有其他額外的輸入或輸出,或是缺少其中任何一個資料流。(圖五)

圖五:資料流程圖之平衡原則



(6)合成資料流
如果一個資料流包含許多不同特性的資料流即所謂「合成資料流」(Composite Data Flow )﹕「由兩個以上資料流所形成的一種資料流」如圖六所示,上層的訂單資料流細分為長期訂單、緊急訂單與一般訂單三種資料流,分別做不同的處理(圖六)。

圖六:客戶訂單之合成資料流
(7)結構化英文
「結構化英文」(Structured English)是一種相當實用的工具,它是以結構化程式設計與自然英文之語法為基礎,用來定義理模型的處理邏輯。基本上,它是以簡短的陳述來描述處理的邏輯,並未遵循電腦嚴謹處理邏輯的細節要求,其最大的優點是簡單、容易學習與充分表示處理的邏輯,適用在循序處理與邏輯控制簡單的處理敘述,並不適合複雜決策邏輯的描述工作。表一是結構化英文的執行結構之基本類型,可以區分為命令式、單一狀況、複雜狀況、多重狀況、一對多反覆、零對多反覆執行步驟等六種型態。如圖七所示,它是使用結構化英文描述處理程序的一個實例。
表一:結構化英文的執行結構之基本類型
主要類型 基本結構
命令式執行步驟(Sequence of Step) [Step 1]
[Step 2]
…..
[Step N]
單一狀況之執行步驟(Simple Condition Steps) If [truth condition]
then
[sequence of steps or other conditional steps] else
[sequence of steps or other conditional steps
End If
複雜狀況之執行步驟(Complex Condition Steps) Do the following based on [condition]:
Case 1: If [condition]=[value] then
[sequence of steps or other conditional steps]
Case 2: If [condition]=[value] then
[sequence of steps or other conditional steps]
………………………………
Case N: If [condition]=[value] then
[sequence of steps or other conditional steps]
End Case
多重狀況之執行步驟(Multiple Condition Steps)
決策表 規則1 規則2 規則3 規則4
[狀況1] value value value value
[狀況2] value value value value
[狀況3] value value value value
[sequence of steps or other conditional steps] X
[sequence of steps or other conditional steps] X X
[sequence of steps or other conditional steps] X
一對多反覆之執行步驟(One to Many Iteration Steps) Repeat the following until [true condition]:
[sequence of steps or other conditional steps]
End Repeat
零對多反覆之執行步驟(Zero to Many Iteration Steps) Do While [true condition]:
[sequence of steps or other conditional steps]
End Do 或是
For [true condition]:
[sequence of steps or other conditional steps]
End For
IF Part # of input records exist in item master
IF issue quantity is less then stock quantity
or equal to stock quantity then
subtrt issue quantity from stock
quantity
ELSE
display “Stock quantity is less then
issue quantity”
ELSE
Display “part # is not found in item master”.

圖七:以結構化英文表示庫存檔更新的實例
(8)決策樹
在描述處理程序邏輯方面,「決策樹」(Decision Tree)是另一種常用的工具,它可以將複雜問題分解成一系列簡單問題,將每一個決策方案及其對決策的影響均納入決策模式當中。如圖八所示,決策樹形狀類似樹枝,對某一項決策而言,其各個可行方案皆如樹枝一般表達於圖上,同時將各方案有關的機率、成本、報酬等資料亦顯示於樹狀圖上。決策樹由左向右畫,方塊符號  是代表決策點,連接在決策點之後的是可能的決策方案,圓圈符號是 代表機會點,連接在機會點後的是各種可能的狀況。一般而言,決策點與機會點均是交互出現,而以樹枝狀的直線相連接。一般而言,決策樹須定義下列資訊:(1)決策者考慮的各種原始方案,(2)每一項原始方案所包含的可能情況及其後續方案,決策者考慮這些可能情況及其後續方案會影響原始方案的選擇者,均要與以列入決策樹當中,與(3)各種可能情況發生的機率及有關的報酬或成本,上述資料可以依據客觀的數據或決策者主觀的估計值來決定之。
決策點上的方案必須是互斥的(Mutually Exclusive),機會點上的機率總和必須為1。換言之,決策者只能選擇其中一個方案,另一方面,決策者面對機會點時,須考慮各種可能的情形以保持其周延性。整體而言,決策樹的主要優點為:(1)決策的方案與結果高度透明化,具有客觀與公正的優點,(2)針對各種可行方案進行詳細的評估,可以進行量化處理。而決策樹的主要缺點為:(1)各種事件發生的機率難以估計,可信度受到相當程度的限制,(2)各種方案的報酬不易量化,導致相當程度的誤差,與(3)如果面對的決策問題過於複雜時,並不適合採用決策樹的表示法。
圖八:決策樹的應用實例
(9)決策表
「決策表」(Decision Tables)亦是一種用表格型式描述程式邏輯作業程序的一種方法。決策表示一種針對複雜的狀況、規則與行動的描述極為有效率的描述工具,一個決策表具備以下三個元素﹕(1)狀況區(Condition Stubs)描述決策的條件或因素,(2)行動區(Action Stubs)敘述決策可能採取的行動,(3)規則區(Rule Stubs)描述在特定的條件組合下,採取的行動方案組合的規則。表二是描述支票兌現政策的決策表,支票兌現的政策面臨的條件有三種,規則的可能組合有四種(Rule-1, Rule-2, Rule-3, Rule-4),採取的行動方案有三種。一般而言,決策表的適用時機為條件與行動有多種組合的情形,利用決策表可以簡化處理邏輯及描述作業的複雜度,對於後續程式設計工作有相當程度的助益。
表二:支票兌現政策之決策表
支票兌現政策 1 2 3 4
條件 有效的商店識別卡 Y N N N
購買金額 > $20.00 N N Y
兩種其它的識別證 Y N
行動 除了購買金額+$25.00 X
只允許買購買的金額 X
由商店經理決定 X X

(10)事件列
建立事件列主要目的是建立初步資料流程圖的準備工作。所謂「事件」(Event)是指﹕「外部實體啟動且系統必須回應之刺激。」而事件列(Event Tree)是指:「一群事件之集合。」基本上,一個事件須涵蓋下列項目﹕(1)行為者也就是事件的啟動者(主詞),(2)事件之活動、程序、步驟(動詞),與(3)涉及之資訊與對象(受詞),事件的描述有三種類型﹕(1)資料流程導向事件依據資料處理之過程來陳述,(2)時間導向事件依據時間發生之先後順序,(3)控制導向事件依據狀態的不同處理的做法之陳述,每一種類型事件之描述均有其目的與價值,因此,可以依據事實的需求來決定選用哪一種事件的描述法,例如提款機的作業處理事件主要是依據提款人的提款作業程序當中出現的狀態來決定處理的步驟,因此,建議以控制導向事件來敘述。以下是事件列的描述的一些基本原則﹕(1)事件的命名須符合簡單、容易記憶而且有意義為原則,(2)以條列式方式表示事件列的內容,(3)依據事件發生之先後順序進行描述,(4)重點式的描述,與(5)儘可能簡化問題之敘述。

沒有留言: