前言:本站為你精心整理了探求軟件項目管理中資源調度范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
伴隨計算機硬件水平的飛速提高,軟件的適用范圍也日益龐大,其算法復雜度也越來越高。若在研發過程中缺少及時有效的管理,將會造成研發進度難以控制以及軟件維護困難、可靠性不佳等情況。為了使得項目的研發能夠依照預定的進度完成,就必須規范研發過程,實施有效的管理。
1項目資源的構成
在項目的研發過程中,其資源包括硬件、軟件和人力資源等。其中人力資源是最為關鍵的資源,而對人力資源的調度和配置貫穿于整個進程。人員管理是否恰當在軟件項目的完成質量中起到決定性作用。軟件項目資源調度的核心問題就是管理者在完善計劃的時候選擇正確人員在正確的時間去完成正確的工作。在研發過程中,常會遇到的問題是現有人員無法滿足項目各階段的人力或技術需求,而一些階段的研發進程還會受另一階段的人員經驗技能所影響。所以軟件項目中人力資源調度的問題其實是屬于資源受限條件下的項目調度問題。這一類問題均可以看作是復雜的生產調度類問題,因要同時處理資源和時序兩方面約束,故加大了這一類問題求解難度。在項目調度問題中,項目是由一系列彼此聯系的工作組成,這種關聯狀態在每一個工作包的執行先后次序上有所體現。每項工作是由幾種模式組成,是指完成工作所必須的資源和工期的組合。此類問題的解是在滿足時序和資源兩方面約束的條件下,每種工作的起始時間和結束時間的調度方案,這種方案的生成應該滿足目標函數的最優解。
2資源調度系統處理分析
在項目計劃中,研發任務的調度工作是由項目負責人做出的,主要表現在以下兩個方面:一是將這些工作包分配給對應的技術人員,如系統分析人員,軟件編碼人員、硬件人員、測試及集成人員等。二是依照項目開發計劃將整個項目分解成若干個可以獨立執行的任務包。對于整個軟件項目研發過程存在一定的先后次序,通常包括:方案論證階段、設計評審階段、系統設計及模塊編碼階段、單元測試和聯試階段等一系列任務,并且這些任務有其工作時間,而研發人員雖然具備多種技能,但也有相應的任務,人員無法超負荷工作。
3項目中的資源調度問題
人力資源調度問題在典型項目中可描述為:項目中存在有L種資源和n+1項活動;一些活動間具有緊前關系,i活動在其任一種緊前活動(jPi為活動i的緊前活動集)完成前不能夠啟動,任一時間段內其使用量不能大于供應量。
4構建算法
根據在項目進程中,假設存在m個人員,人員具有不同的技能,即每個人員具備多種技能可完成多項任務,把項目劃為n個任務包,需要m個人員研發,將這m個人員分入n個任務包中,使整個項目在約束條件被滿足的情況下研發時間最短,并恰當安排各項任務的開始時間和研發順序。算法運算的過程如下:步驟1:隨機產生n個個體組成初始種群,對其進行初始化;步驟2:判斷是否滿足終止條件,若是,則轉入步驟7;步驟3:分別求出每個個體的適應度,根據算法進行自適應調整;步驟4:進行選擇運算;步驟5:進行交叉算子及變異算子的運算,得到子代種群;步驟6:判斷是否有個體更新,若連續50代沒有更新,則增大一倍種群數目,轉入步驟2;步驟7:滿足終止條件,輸出結果;否則轉入步驟3。算法的偽代碼可以描述如下:ProcedureSGAInitializeP(0);//初始化種群t=0;//t表示的進化代數的計數器While(t<T)do//對種群中的個體進行操作ForI=ltoMdoEvaluatefitnessofP(t);//計算個體的適應度EndforForI=1toMdoSelectoperationtoP(t);//選擇操作EndforForI=ltoMdoCrossoveroperationtoP(t);//交叉操作EndforForI=ltoMdoMutationoperationtoP(t);//變異操作EndforForI=ltoMdoP(t+1)=P(t);//通過自然選擇行成新的種群Endfort=t+l:endwhile得到每個開發人員的任務熟練程度矩陣:式中SLDij表示第j個開發人員對第i個任務的熟練程度,通過下面的計算公式可以得到人員的熟練程度數值:其中0<≤10-6。依據熟練度矩陣,給定能滿足任務i的開發人員集Mi={rj|SLDij>i,0<i≤1,1≤j≤m}。其中i為任務i對熟練度要求的系數,是根據具體任務的情況和經驗來確定。
作者:張搴林樊亮單位:中國電子科技集團公司第二十八研究所