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