一般設計工作流程,是由真實的商業流程加以抽象化後,再以工作流程規 格 語 言 來 描 述 其 定 義 , 我 們 稱 這 樣 的 定 義 為 工 作 流 程 的 規 格 (workflow specification)。定義工作流程規格的過程是複雜而且容易導致錯誤的,特別是大 型 (large-scale) 的系統。目前幾個工作流程分析的角度包括有:(1)工作流程檢 驗 [21] (2)工作流程模擬 [22] (3)工作流程效能分析 [23]。其中工作流程檢驗 目的是檢查工作流程規格有無缺陷,因為工作流程規格的滿足正確性對工作流 程執行而言極為重要,且必須保持這樣的正確性才能達成商業的目標。[2]
6.1 工作流程規格的驗證
流程規格驗證目前主要以結構、時間、與資源三方面來分析,當中最基本 也最重要的,當屬結構驗證,因為工作流程規格必須保有其正確性,否則可能 連執行都無法開始。目前已知的結構驗證包含Petri-nets、有向圖、代數等等方 法。
Petri-nets 將工作流程中的活動之間的傳遞與相依關係對映到 places 及 arcs,且利用既有的 Petri-nets 分析技術來分析工作流程規格的正確性與一致 性。Sadiq 等人[3] 及 Onoda 等人[13] 利用有向圖分析工作流程規格,將隱含 於規格當中可能造成死結 (deadlock) 或缺乏同步性 (lack of synchronization) 的狀況利用有效的演算法偵測出來。以代數為基礎來驗證工作流程規格的方 法,是將工作流程中的 activity 表示為符號,而 activities 間的流向表示為運算 子。藉由分析這些數學運算式來判斷是否符合工作流程規格的正確性。Singh [14]
提出了事件代數 (event algebra) 來定義工作流程的模型,以便分析其正確性。
除了結構驗證被廣泛討論外,時間因素的考量也有諸多文獻提及。 1957 年 J.E. Kelly 與 M.R. Walker 共同開發了所謂的「關鍵路徑方法」(CPM, critical path method) [15],用於製造生產與裝配作業的時間預估與控管,隨著應用領域 擴大,目前也運用到一般商業流程上。根據修改過的關鍵路徑方法,可以在工 作流程設計階段估算像是特定時間限制內要完成的工作、或是一些時間上限下 限的限制。Eder 等人[16] 在 1999 年以工作流程圖形來定義出最早結束時間與 最晚結束時間,Marjanovic [4] 則於 2000 年假設了每項 activity 有最小工作時 限 (minimum duration) 與最大工作時限 (maximum duration),並給予每個 activity process 在執行階段時起始時間與結束時間,藉此達到設計階段更精確的 時間限制驗證。Zhunge 2001 [17] 則加入了不同時區、流向時間等考量,除了 為工作流程時間限制的一致性作更深入的分析,也巧妙利用不同時區的時差,
將工作任務調整為時間限制內可以完成。此外 Adam [10] 也運用考慮時間因素 的 Petri-nets (TCPN) 在設計間段辨別工作流程時間上的恰當性。
驗證工作流程的正確性,並不止於結構與時間上。工作流程中的processes 在操作時,需要存取各式各樣的資源來協助其完成作業,就現實環境而言,資 源限制成了驗證工作流程正確性的一項重要課題。Hongchen Li 等人於 2004 年 [2] 當中討論資源發生不一致性所可能導致的問題,且對資源一致性驗證作分 析並提供適當的演算法,最後更進一步的加入了時間因素的考量。然而這種完 整且全面的檢驗分析,對於流程設計者而言,並未能達到即時性的輔助。
6.2 遞增式設計與需求
遞增式分析原本是微觀經濟學 (microeconomics) 上的一種分析方法,主要 針對特定變因的微小改變,所造成相關變因與整體系統的影響,這種分析方法 也稱作邊際分析 (marginal analysis)。
軟體工程開發上所討論的遞增式開發則是一項類似上述的重要技術。以這 種技術開發軟體可以避免「大爆炸」(“Big Bang”) 效應,也就是說,長時間沒 有發生任何狀況,但突然間,系統被導向一個從未面對過的新狀況。遞增式發 展方法的觀念,是以軟體成長的方式取代軟體建設。同時遞增式開發方法,能 將觀察優先聚焦於軟體本質特性,也就是說額外的功能只有再需要的時候才被 加進來。[18]
針對軟體的設計而言,採用遞增式分析來觀察異動部份的元件在異動後所 造成的局部影響,然後採取相對應的措施。避免設計者因為小異動而仍須大規 模檢驗其影響。此類遞增性檢驗分析,常見的應用如有:文書軟體的錯誤拼字 檢查、程式編寫環境對指令與變數即時檢查等等。