- 相關(guān)推薦
關(guān)于工作流的軟件項目管理系統的設計與實(shí)現
論文摘要:本文介紹了一個(gè)基于工作流技術(shù)而研制的軟件項目系統。文章首先描述了傳統軟件項目管理系統的不足之處,提出用工作流的方法來(lái)設計軟件項目管理系統,然后介紹了一些理論基礎。文中重點(diǎn)闡述了系統的設計結構和所采用的一些技術(shù),并給出了部分的具體實(shí)現方法。
論文關(guān)鍵詞:工作流,JMS,項目管理,SPP,建模,工作流網(wǎng)
1前言
2O世紀7O年代以來(lái),為了解決軟機危機,改進(jìn)軟件過(guò)程能力,科學(xué)家提出了軟件工程的概念,將系統化的、規范化的、可度量的方法用于軟件開(kāi)發(fā)、運行和維護的過(guò)程。近些年來(lái),隨著(zhù)計算機技術(shù)的進(jìn)一步發(fā)展,相應的使用軟件工程方法的軟件項目管理系統也有了顯著(zhù)的發(fā)展。但是,由于開(kāi)發(fā)流程中存在的不確定性以及項目變化等因素,這些系統也暴露出一些不足之處。
傳統的軟件項目管理系統,一般是由圖形用戶(hù)接口(GUI),應用程序和數據庫組成,用戶(hù)通過(guò)GUI向應用程序發(fā)出請求,應用程序處理這些用戶(hù)請求,并且訪(fǎng)問(wèn)數據庫,返回用戶(hù)所要求的結果。這種模型在流程穩定的時(shí)候是可以滿(mǎn)足需要的,它的缺點(diǎn)在于:
1)建模過(guò)程是之前設定好的,無(wú)法改變;
2)缺乏柔性,系統開(kāi)始運行之后,預先定義好的條件就無(wú)法改變了;
3)可擴展性較差,如果想要增加或者修改相應的功能,整個(gè)系統必須重新開(kāi)發(fā)。
目前,對工作流技術(shù)的研究以及相關(guān)產(chǎn)品的開(kāi)發(fā)是國內外學(xué)者研究的熱點(diǎn)問(wèn)題之一,很多管理系統都采用工作流技術(shù)來(lái)克服上述問(wèn)題。工作流起源于生產(chǎn)組織和辦公自動(dòng)化領(lǐng)域,它是針對日常工作中具有固定程序的活動(dòng)而提出的概念。目的是通過(guò)將工作分解成定義良好的任務(wù)、角色,按照一定的規則和過(guò)程來(lái)執行這些任務(wù)并對它們進(jìn)行監控,達到提高辦事效率、降低生產(chǎn)、提高企業(yè)生產(chǎn)經(jīng)營(yíng)管理水平和企業(yè)競爭力的目標。
WFMC給出的工作流定義是:工作流是一類(lèi)能夠完全或者部分自動(dòng)執行的經(jīng)營(yíng)過(guò)程,它根據一系列過(guò)程規則,文檔、信息或任務(wù)能夠在不同的執行者之間進(jìn)行傳遞與執行,以實(shí)現整體的業(yè)務(wù)目標。而這正適合于軟件開(kāi)發(fā)過(guò)程管理,基于上述的理由,我們結合江蘇省十.五攻關(guān)“工作流技術(shù)的研究和應用”項目,研究并開(kāi)發(fā)了基于工作流的軟件項目管理系統CMMFlow,目前已應用于軟件能力成熟度模型(CMM)的管理,其效果相當良好。
2理論基礎
2.1 CMMI3級精簡(jiǎn)并行過(guò)程(SPP)模型
利用工作流技術(shù)可以設計和建立一個(gè)工作流,在此系統中,我們使用CMMI3級精簡(jiǎn)并行過(guò)程(SPP)模型來(lái)支持軟件過(guò)程實(shí)施。
SPP把產(chǎn)品生命周期劃分為產(chǎn)品概念、產(chǎn)品定義、產(chǎn)品開(kāi)發(fā)、產(chǎn)品測試、用戶(hù)驗收和產(chǎn)品維護等6個(gè)階段,包含項目管理、項目研發(fā)和機構支撐等3類(lèi)過(guò)程、19個(gè)過(guò)程域。其中項目管理過(guò)程包含立項管理、結項管理、項目規劃、項目監控、風(fēng)險管理和需求管理等六個(gè)過(guò)程域;項目研發(fā)過(guò)程包含需求開(kāi)發(fā)、技術(shù)預研、系統設計、實(shí)現和測試、系統測試、Beta測試、客戶(hù)驗收和項目技術(shù)評審等8個(gè)過(guò)程域;機構支撐過(guò)程包含配置管理、質(zhì)量保證、培訓管理、外包與采購管理以及服務(wù)與維護等5個(gè)過(guò)程域。
我們把每一個(gè)過(guò)程域都看成是一個(gè)流程,其中過(guò)程域之間的關(guān)系是線(xiàn)性為主,并行、迭代為輔。每個(gè)過(guò)程域包含若干原子活動(dòng)。通過(guò)建立活動(dòng)與角色以及角色與具體用戶(hù)的關(guān)聯(lián),即可建立一個(gè)可執行的業(yè)務(wù)過(guò)程模型。
2.2基于petri網(wǎng)的可視化建模工具
在這個(gè)系統中,我們的建模工具是使用工作流網(wǎng)和XP—DL共用的策略,采用的是擴展的Petri網(wǎng),對最終用戶(hù)來(lái)說(shuō),足可視化的圖形建模工具。為符合WfMC規范,工作流機裝入的模型用XPDL存儲,可使用XPDL和Petri網(wǎng)兩種表示形式,驗證是使用Petri網(wǎng)形式。
在Petri網(wǎng)的基礎上,Aalst提出了工作流網(wǎng)(WF-net)的概念,其定義如下:
一個(gè)Petri網(wǎng)PN=(P,T,F)被稱(chēng)為工作流網(wǎng),當且僅當它滿(mǎn)足下面兩個(gè)條件:
1)PN有兩個(gè)特殊的庫所:i和0。庫所i是一個(gè)起始庫所,即·i= ;庫所O是一個(gè)終止庫所,即O·= 。
2)如果在PN中加入一個(gè)新的變遷t,使t連接庫所。與i,即·t·={0),t·={i),這時(shí)所得到的PN是強連接的。
下面我們給出一個(gè)用工作流網(wǎng)定義工作流的簡(jiǎn)單例子,例子描述的是軟件立項管理的工作流過(guò)程。
根據工作流網(wǎng)的基本定義,通過(guò)使用不同類(lèi)型的基本組件和觸發(fā)機制,對立項管理進(jìn)行建模,得到如圖1所示的工作流網(wǎng)模型。
基本流程如下:立項建議小組進(jìn)行立項,然后進(jìn)行項目構思和可行性分析,在完成之后進(jìn)行立項,然后立項審查小組對此立項進(jìn)行審查,決定是否同意立項。如果否決,則必須重新進(jìn)行立項建議,如果同意立項,進(jìn)入項目籌備階段,流程結束。
3系統設計
3.1設計思路
整個(gè)系統構架采用B/S模式,參照J2EE框架,主要分為四層:
1)展現層:主要包含客戶(hù)瀏覽器端和Web服務(wù)器端的applet,jsp和servlet,負責和用戶(hù)交互,接收數據,顯示結果等。
2)商業(yè):用于處理展現層從用戶(hù)端接受到的數據,包含了控制應用處理的所有規則,同工作流執行服務(wù)通訊,并且將展現層和數據服務(wù)層連接起來(lái)。
3)工作流執行服務(wù):是流程運行和的核心組件,包括工作流機和任務(wù)表管理器。
4)數據服務(wù):負責提供對數據的存儲和讀取服務(wù)。
此外,在系統設計的過(guò)程中還采用了以下的技術(shù):
1)J2EE框架
J2EE體系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBsevrice等技術(shù),提供了一個(gè)企業(yè)級的計算模型和運行用于開(kāi)發(fā)和部署多層體系結構的應用。它通過(guò)提供企業(yè)計算環(huán)境所必需的各種服務(wù),使得部署在J2EE平臺上的多層應用可以實(shí)現高可用性、安全性、可擴展性和可靠性。J2EE中多數標準定義了接口,例如JNDI,JDBC等,這使得遵循這些標準的不同開(kāi)發(fā)者之間的模塊可以無(wú)縫地互連。
2)JMS
JAVA消息服務(wù)(JMS)定義了Java中訪(fǎng)問(wèn)消息中間件的接口。JMS只是接口,并沒(méi)有給予實(shí)現,實(shí)現JMS接口的消息中間件稱(chēng)為JMSProvider。
在JMS中,每個(gè)客戶(hù)機連接到一個(gè)為發(fā)送和接收消息提供框架的消息傳遞代理程序?蛻(hù)機需知曉消息格式和消息目的地。根據JMSAPI,消息傳遞分為兩種模式,點(diǎn)對點(diǎn)和發(fā)布/訂閱模式。
點(diǎn)到點(diǎn)消息傳遞方法使用下列工具,如消息隊列、發(fā)送方(或消息制作者)和接收方(或消息消費者)?蛻(hù)機將發(fā)向特定接收方的消息發(fā)送到唯一的隊列。當接收客戶(hù)機從特定隊列抽取消息時(shí),它發(fā)出確認消息,表明消息已處理。隊列將保留所有消息,直至接收方收到消息或消息到期。發(fā)布/預訂消息傳遞方法使用發(fā)布者、訂戶(hù)和主題的概念?蛻(hù)機將消息發(fā)送到主題或內容層次結構。為了接收到消息,消息消費者必須預訂此主題。因此,對于這種方法,可以將消息制作者作為發(fā)布者,而消息消費者則是訂戶(hù)。JMS供應商將多個(gè)發(fā)布者發(fā)來(lái)的消息分發(fā)到主題和此主題的多個(gè)訂戶(hù)。
點(diǎn)對點(diǎn)模式適用于使用集中式工作流機的系統,對于大規模的分布式應用,發(fā)布/訂閱模式則相當有效,但是,在保證各個(gè)分布式工作流機的一致性問(wèn)題上則稍有難度。
3.2系統結構與功能特點(diǎn)
CMM軟件項目管理系統的系統結構如圖2所示,它主要由過(guò)程建模工具,工作流機,任務(wù)表管理器,web服務(wù),客戶(hù)端和數據庫接口等組成,該系統的各功能特點(diǎn)是:在這個(gè)系統中,我們使用瀏覽器作為客戶(hù)端,通過(guò)Http請求與Webserver交互,Websevrer再將收到的請求加以處理,判斷哪些是應當丟棄的,哪些應該交由工作流執行服務(wù)處理,并將處理后的結果發(fā)送給工作流執行服務(wù)器。工作流機收到Webserver傳送過(guò)來(lái)的數據后,會(huì )根據消息的具體內容繼續執行流程或者將流程掛起或是結束流程的運行,并且更新任務(wù)表管理器的內容,在需要的時(shí)候調用相應的應用程序來(lái)完成任務(wù)的需要。在過(guò)程建模工具中建立,修改,刪除的模型將通過(guò)存儲過(guò)程來(lái)修改數據庫中已存儲的模型。
websevrer和工作流執行服務(wù)也都要通過(guò)存儲過(guò)程來(lái)訪(fǎng)問(wèn)數據庫。各部分的功能特點(diǎn)描述如圖2。
1)建模工具:使用基于Petri網(wǎng)的建模方法來(lái)對企業(yè)經(jīng)營(yíng)過(guò)程進(jìn)行過(guò)程定義,將經(jīng)營(yíng)過(guò)程轉化為工作流引擎可以執行的形式。同時(shí)還提供對過(guò)程模型進(jìn)行分析,測試的工具。
2)工作流機:工作流引擎是工作流平臺的核心,它是業(yè)務(wù)流程的任務(wù)調度器,從某種程度上看,工作流機也是業(yè)務(wù)資源器。它的主要作用是實(shí)例化及執行過(guò)程模型、為過(guò)程和活動(dòng)的執行進(jìn)行導航、與外部過(guò)程交互完成各項活動(dòng)、維護工作流控制數據和工作流相關(guān)數據等。
3)任務(wù)表管理器:過(guò)程模型中的每個(gè)活動(dòng)都被看作是一個(gè)由自動(dòng)執行的任務(wù)或由用戶(hù)手動(dòng)執行的任務(wù),任務(wù)表管理器負責對這些任務(wù)的監視和維護。
4)Web服務(wù):包含了用于處理用戶(hù)請求和顯示結果的jsp和sevrlet,其主要工作是將客戶(hù)端與工作流執行服務(wù)連接起來(lái)。
5)客戶(hù)端客戶(hù)端是基于瀏覽器方式的瘦客戶(hù)端,方便管理員管理整個(gè)工作流管理系統的運行過(guò)程,和一般用戶(hù)管理和執行分配給自己的任務(wù)。
6)數據庫接口:實(shí)現了底層的數據存儲,包括過(guò)程定義,工作流控制數據,工作流相關(guān)數據,企業(yè)組織模型等工作流管理系統運行過(guò)程中必須的信息。
4系統的一些實(shí)現技術(shù)
4.1任務(wù)的自動(dòng)分配和觸發(fā)機制
可以根據模型定義自動(dòng)地分配任務(wù),當一個(gè)過(guò)程實(shí)例運行的時(shí)候,活動(dòng)可以根據模型定義自動(dòng)分配到指定接收者,并且,有關(guān)完成此活動(dòng)所需要的數據也會(huì )傳遞給相應的接收者,從而提高業(yè)務(wù)過(guò)程執行效率。模型中使用角色機制,不指定具體人員,這樣,人員變更不至于引起模型的變動(dòng)。系統支持遲后綁定,即可以在活動(dòng)運行的時(shí)刻才確定此活動(dòng)由誰(shuí)來(lái)完成。
流程從使能到運行的控制,采用觸發(fā)機制,分為人工觸發(fā)、自動(dòng)觸發(fā)、消息觸發(fā)和時(shí)間觸發(fā)。人工觸發(fā)一般是用戶(hù)從任務(wù)表中選取其中一項任務(wù)來(lái)完成,自動(dòng)觸發(fā)是一些通過(guò)程序自動(dòng)執行的過(guò)程,一旦使能就被觸發(fā),消息觸發(fā)是指系統外部的消息到達觸發(fā),如Email,時(shí)間觸發(fā)是由定時(shí)器來(lái)觸發(fā)。
4.2活動(dòng)信息的
系統可以通過(guò)對活動(dòng)信息統計,并將活動(dòng)的運行狀況和統計信息存儲在數據庫內。通過(guò)提供有關(guān)工作量的信息,可以在建模的時(shí)候預測所需要的時(shí)間,并且在活動(dòng)結束時(shí)計算任務(wù)完成情況,與初始模型進(jìn)行對比,生成相應的圖表以判斷工作效率,輔助決策經(jīng)營(yíng)。除系統提供的幾個(gè)基本統計模型之外,用戶(hù)也可以利用系統提供的工具,自行擴展新的模型來(lái)完成工作量信息統計和生成對比圖表。
結論根據軟件過(guò)程管理的需求,以工作流技術(shù)為核心,J2EE技術(shù)為支撐,結合SPP模型,文章給出了一個(gè)軟件管理系統的體系結構和其中的一些技術(shù)實(shí)現。但是,為了更好地實(shí)施軟件過(guò)程控制和度量,我們發(fā)現,還有一些問(wèn)題需要進(jìn)行深入的研究。
首先,軟件過(guò)程模型的建立就要結合具體的實(shí)際情況,需要深人了解整個(gè)軟件過(guò)程,并根據不同的需要修改模型來(lái)完成資源的動(dòng)態(tài)配置和管理。另外,關(guān)于分布式工作流機之間的通訊和一致性問(wèn)題也是相當重要的問(wèn)題,需要擬定合適的策略來(lái)實(shí)現資源優(yōu)化調度。
【工作流的軟件項目管理系統的設計與實(shí)現】相關(guān)文章:
科研項目管理系統的設計與實(shí)現03-06
論科研項目管理系統的設計與實(shí)現03-02
學(xué)生成績(jì)管理系統的設計與實(shí)現03-18
工資管理系統設計與實(shí)現論文11-30
關(guān)于信息系統的軟件項目管理03-13
淺談信息系統的軟件項目管理03-25