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