自20世紀90年代初業務流程重組(business process reengineering,BPR)的概念提出以后,過程工程被公認為企業提高生產率、改善產品和服務質量、增強競爭能力的關鍵。軟件過程也是一種企業過程,類似于BPR的研究,軟件過程改進(software process improvement,SPI)逐漸成為軟件工程領域和軟件體系結構領域的重要研究方向之一。一方面伴隨著IS09000和CMM在軟件業的聲譽鵲起,SPI研究的深度和廣度在不斷擴展;另一方面,20世紀90年代中期以后軟件過程和業務過程的研究出現了融合的趨勢,許多業務過程的管理思想逐漸應用于軟件企業。例如,Aoyma把“敏捷制造”的概念引入到軟件工程,形成了一種全新的軟件開發模式——敏捷軟件過程(agile software process)。針對BPR理論和實施的脫節情況,提供了成熟的工作流解決方案。依據相似性,軟件過程也可以作為工作流來進行分析,這樣的工作流的成功經驗可以進一步應用于軟件工程中。
SPI的研究范圍,從深度上可分為方法學、技術和工具3個層次,從廣度上包括過程、產品、資源、組織、度量等要素,其中,度量是核心。方法學是指采用何種改進思想,如CMM和SPICE等,都是改進的指導框架。技術是指在指導框架約束下所采用的改進手段,如采用PSEE(process centered software engineering environment)環境,或者采用工作流技術。在選擇好改進手段后,需要合適的開發工具,PSEE環境就有眾多實現工具,比如OIKOS、EPOS、SPADE和北大青鳥等。方法學層還可以繼續細分,如RUP是CMM思想的具體實施辦法,它介于方法學和技術之間,可稱為技術方法層。本文的研究可歸結到技術層和工具層,即根據RUP指導,采用工作流作為支撐技術。由于軟件過程定義是SPI的一個關鍵因素,且仿真是軟件工程的使能技術,是增強過程定義能力的有效手段,所以筆者嘗試用工作流仿真的方法貫穿于SPI實施的全過程。針對SPI研究的技術層面,本文將提出一個支持SPI的工作流實施框架和軟件工作流元模型,然后進一步闡述工具層面的仿真執行機制,最后給出一個軟件過程的仿真實例。
1 支持SPI的工作流實施框架
工作流技術日益成熟,已經成為支持BPR的強大使能工具,同時隨著軟件工業和傳統工業相互借鑒的發展趨勢,工作流技術可以應用于軟件過程的研究,包括建模、仿真部分和具體執行部分。將工作流仿真技術貫穿到SPI的整個生命周期,圖1就是一個以工作流技術為支撐的SPI實施框架。面對業務目標、業務流程、競爭環境和技術機會的不斷變化,軟件項目、生產線和企業必須不斷地適應這種情況,結果就出現了大量的反饋現象。圖1包括4個反饋環節,它們使企業在定量度量的基礎上,可以確定且演化分析、管理和改進策略。這些策略有助于采用合適的目標和方法來管理、完成項目,提高企業的軟件生產率、速度和質量,并且能預測和利用變化,而不是消極地應付變化。
圖1 支持SPI的工作流實施框架
2 軟件工作流元模型
在并行工程的研究過程中,為了描述產品開發過程所涉及的各個要素之間的復雜關系,本文提出了P_PROCE(process,product,resource,or ganization,control&evaluation)參考模型。它是一個集成化的多視圖模型,以產品開發過程為核心,對產品、資源和組織進行綜合評價和控制,并以評價和控制的結果指導產品開發過程的重組,達到產品開發過程的優化運行和管理。后來隨著研究領域的擴展(如軟件工程),該模型也根據RUP思想進行了相應的擴充,并逐步發展為圖2所示的軟件工作流元模型。其目的是為了建立一個相對通用的指導模型,以后具體的建模就在該模型的約束框架下進行,可以確保各個實際模型的同構性。控制和評價以度量的方式體現出來,度量目標的最初來源是業務目標,它具體可分解為針對過程、產品、資源和組織的度量。該模型的最大特點是把各要素以及它們的度量結合在一起,從建模時就為仿真的評價問題做好準備。
圖2 軟件工作流元模型
為了對模型進行形式化的描述,采用對象約束語言OCL(object constraint language)。它是UML的有機組成部分,一方面可以形式化描述UML類模型,另一方面可以定義完整性約束。即在集合論的基礎上,描述類中的變量和類之間的關系。OCL是種類型語言,基本要素是類型和表達式,表達式的基本成分是對象和特性。
OCL不僅可以用模型結構描述軟件工作流元模型實體,而且可以用表達式描述實體間的完整性約束關系。表達式中self表示一個類的實例,通過由“·”操作符以及類圖中的角色關聯組成的導航路徑,可以很方便地從一個對象引用到另一個對象本身或其屬性。除去常見的簡單數據類型的操作外,OCL還提供了眾多的集合操作,如select、reject、collect、forAll、exists和iterate操作等。約束關系可作為元模型的性質,其中既包括對基本的結構需求的約束,也包括對屬性的約束。
3 仿真實例與結果分析
下面將以一個工作流軟件開發過程為例進行仿真實驗。為敘述方便,圖3僅列出了一小部分活動,但它包括了基本的工作流環節,足以說明問題。圖3是依據模型所描述的各要素間的關系,建立起的一個支持ECA規則的具體的模型。其中包括兩類結點和兩類關系。兩類結點是活動(矩形表示)和邏輯(圓形表示),活動包括一般活動和開始/結束活動,均標注有id號;邏輯包括各種常見的工作流控制環節(串行、分支、子流程、反饋等),也編上了相應的序號。兩類關系是控制流(實線箭頭表示)和數據流(虛線箭頭表示)。有陰影的活動是父活動的,表示它還有下層子活動,如活動2“系統分析”。元模型中的產品、資源、組織和度量信息均以屬性的形式構造于各個活動當中,例如活動5“評審”。邏輯結點表示活動的執行關系,邏輯結點1的內容“EndOf(1)ORRule(4,2)”可以解析為“活動1結束或者滿足邏輯結點4中的規則2”,在這種條件下活動2才有可能執行。就軟件開發過程而言,數據流里主要包括文檔和代碼對象,把其狀態(分為active和inactive)也作為一種控制條件,結合常規的活動狀態(waiting、ready、running和end)一起控制流程的運行。
圖3 工作流軟件開發過程
對仿真結果進行度量需要一系列指標,從圖2的元模型可知,整個指標體系是從過程、資源、組織、產品的角度進行分類的,對于軟件過程改進而言,過程指標是最重要的一組指標,其他指標僅起輔助作用。
對圖3過程進行30次仿真,然后按照計劃評審技術中的簡便方法計算期望值E=(4m+a+b)/6,其中,m表示最可能的值,a表示最樂觀的估計,b表示最悲觀估計。如果想改進軟件過程,有2種方式,一種是流程結構上的調整,如增刪活動;另一種是參數上的調整,如調整“評審”的通過率。由軟件開發的特點很容易想到“評審”活動是一個關鍵活動,如果將其進行調整,必將引起指標值的較大變化。如果提高通過率,顯然會減少時間、降低成本,但錯誤數就有可能上升;如果在子流程中增加一個“分析評審”活動,如圖4所示,顯然會減少錯誤數,但時間、成本有可能上升。
圖4 改進的系統分析子流程
4 結語
SPI研究的內容非常豐富,研究方法也很多。本文從SPI的技術層面和工具層面進行了探討,借鑒并行工程領域的成功經驗,采用相對成熟的工作流技術,尤其是仿真來涉足軟件工程領域的熱點問題,在本文的基礎上還需要做進一步的工作。根據CMM各級特點,對仿真的要求是有差異的,仿真度量也存在一個逐漸提高的能力成熟度問題,度量指標在各個級別應該是可以適當裁減的。軟件過程仿真是最近幾年的研究熱點,其手段以系統動力學為主,系統動力學對影響因子間關系的研究比較充分,應該可以結合到離散事件仿真的整體框架之中。此外仿真還需要解決歷史數據的挖掘問題,從中得到仿真環境的參考設置,增加仿真實驗的可信度。仿真指標可以用AHP或其他多目標分析方法進行綜合處理,定量地得到各組仿真結果的優劣,而不是僅僅通過主觀判斷,這樣便于將來對輸入參數進行自動優化,例如采取遺傳算法或模擬退火算法等優化方法。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.lukmueng.com/
本文網址:http://m.lukmueng.com/html/consultation/1082059622.html