(软件工程复习核心重点)第十二章软件项目管理-第二节:进度计划
文章目錄
- 一:相關概念
- (1)任務集合
- (2)項目管理者的工作
- A:目標
- B:方法
- (3)進度安排
- A:定義
- B:流程
- 二:估算開發時間
- (1)利用成本估算模型估算開發時間
- (2)特殊情況
- A:描述
- B:原因
- (3)項目組規模與項目組總生產率的關系
- A:通信路徑
- B:平均生產力
- C:總生產率
- 三:甘特圖(Gantt)
- (1)例子
- (2)甘特圖的優缺點
- 四:工程網絡
- (1)定義
- (2)表示
- 五:估算工程進度
- (1)完善工程網絡
- (2)最早時刻EET
- (3)最遲時刻LET
- 六:關鍵路徑
- (1)定義
- (2)特點
- 七:機動時間
- (1)定義
- (2)計算
- (3)表示
一:相關概念
(1)任務集合
一個有效的軟件過程應該定義一個適用于當前項目的任務集合。一個任務集合包括一組軟件工程工作任務、里程碑和可交付的產品。為一個項目所定義的任務集合,必須包括為獲得高質量的軟件產品而應該完成的所有任務,但是同時又不能讓項目組承擔不必要的工作
(2)項目管理者的工作
A:目標
定義全部項目任務,識別出關鍵任務,跟蹤關鍵任務的進展狀況,保證及時發現拖延進度的情況
B:方法
管理者必須制定一個足夠詳細的進度表,以便監督項目進度并控制整個項目
(3)進度安排
A:定義
軟件項目的進度安排通過把工作量分配給特定的軟件工程任務并規定完成各項任務的起止日期,從而將估算出的項目工作量分布于計劃好的項目持續期內。進度計劃將隨著時間的流逝而不斷演化
B:流程
- 在項目計劃的早期,制定一個宏觀的進度安排表,標識出主要的軟件工程活動和這些活動影響到的產品功能
- 隨著項目的進展,把宏觀進度表中的每個條目都精化成一個詳細進度表,標識出完成一個活動所必須實現的一組特定任務,并安排好實現這些任務的進度
二:估算開發時間
(1)利用成本估算模型估算開發時間
- Walston_Feilix模型:T=2.5E0.35T=2.5E^{0.35}T=2.5E0.35
- 原始的COCOMO模型:T=2.5E0.38T=2.5E^{0.38}T=2.5E0.38
- COCOMO2模型:T=3.0E0.33+0.2×(b?1.01)T=3.0E^{0.33+0.2×(b-1.01)}T=3.0E0.33+0.2×(b?1.01)
- Putnam模型:T=2.4E13T=2.4E^{\frac{1}{3}}T=2.4E31?
其中E是以人月為單位的開發工作量,T是以月為單位的開發時間
(2)特殊情況
A:描述
隨著開發小組規模的擴大,個人生產率將下降,以致開發時間與從事開發工作的人數并不成反比關系
B:原因
- 小組變得更大時,每個人需要用更多時間與組內其他成員討論問題、協調工作,因此增加了通信開銷
- 如果在開發過程中增加小組人員,最初一段時間內項目組總生產率不僅不會提高反而會下降。因為新成員在開始時不是生產力,且在他們學習期間需花費小組其他成員的時間
- Brooks規律:向一個已經延期的項目增加人力,只會使得它更加延期
(3)項目組規模與項目組總生產率的關系
A:通信路徑
項目組成員之間的通信路徑數,由項目組人數和項目組結構決定。通信路徑數大約在PPP~P22\frac{P^{2}}{2}2P2?的范圍內變化
B:平均生產力
某一個組員與其他組員通信的路徑數在1~(PPP-1)的范圍內變化。如果不與任何人通信時個人生產率為LLL,而且每條通信路徑導致生產率減少1,則組員個人平均生產率為
Lr=L?1(P?1)rL_{r}=L-1(P-1)^{r}Lr?=L?1(P?1)r
- 取中,r(0<r ≤\leq≤ 1)是對通信路徑數的度量
C:總生產率
對于一個規模為PPP的項目組,項目組的生產率為
Ltot=P(L?1(P?1)r)L_{tot}=P(L-1(P-1)^{r})Ltot?=P(L?1(P?1)r)
三:甘特圖(Gantt)
甘特圖(Gantt chart)又稱為橫道圖、條狀圖(Bar chart)。其通過條狀圖來顯示項目、進度和其他時間相關的系統進展的內在關系隨著時間進展的情況
(1)例子
假設有一座陳舊的矩形木板房需要重新油漆。這項工作必須分3步完成:首先刮掉舊漆,然后刷上新漆,最后清除濺在窗戶上的油漆。假設一共分配了15 名工人去完成這項工作,然而工具卻很有限:只有5把刮舊漆用的刮板,5把刷漆用的刷子,5把清除濺在窗戶上的油漆用的小刮刀。怎樣安排才能使工作進行得更有效呢?
每道工序需要的時間如下表所示
甘特圖如下
- 在時間為零時開始刮第1面墻上的舊漆;
- 兩小時后刮舊漆的工人轉去刮第2面墻,同時另5名工人開始給第1面墻刷新漆;
- 當給一面墻刷完新漆之后,第3組的5名工人立即清除濺在這面墻窗戶上的漆。
從上圖可以看出,12小時后刮完所有舊漆,20小時后完成所有墻壁的刷漆工作,再過2小時后清理工作結束。因此全部工程在22小時后結束
(2)甘特圖的優缺點
優點
- 很形象地描繪任務分解情況,以及每個子任務(作業)的開始時間和結束時間
- 容易掌握、繪制
缺點
- 不能顯式地描繪各項作業彼此間的依賴關系
- 進度計劃的關鍵部分不明確,難于判定哪些部分應當是主攻和主控的對象
- 計劃中有潛力的部分及潛力的大小不明確,往往造成潛力的浪費
四:工程網絡
(1)定義
工程網絡可以描繪任務分解情況以及每項作業的開始時間和結束時間,它還顯式地描繪各個作業彼此間的依賴關系
(2)表示
- 用箭頭表示作業,作業通常既消耗資源又需要持續一定時間
- 用圓圈表示事件(開始或結束),事件是明確定義的時間點,并不消耗時間和資源
- 用虛線箭頭表示虛擬作業,虛擬作業是為了顯式地表示作業之間的依賴關系
五:估算工程進度
(1)完善工程網絡
- 把每個作業估計需要使用的時間寫在表示該項作業的箭頭上方。
- 為每個事件計算最早時刻EET和最遲時刻LET,分別寫在表示事件的圓圈的右上角和右下角
(2)最早時刻EET
事件的最早時刻是該事件可以發生的最早時間。通常工程網絡中第一個事件的最早時刻定義為零,其他事件的最早時刻在工程網絡上從左至右按事件發生順序計算
- 考慮進入該事件的所有作業
- 對于每個作業都計算它的持續時間與起始事件的EET之和
- 選取上述和數中的最大值作為該事件的最早時刻EET
(3)最遲時刻LET
事件的最遲時刻是在不影響工程竣工時間的前提下,該事件最晚可以發生的時刻。最后一個事件的最遲時刻就是它的最早時刻。其他事件的最遲時刻在工程網絡上從右至左按逆作業流的方向計算
- 考慮離開該事件的所有作業
- 從每個作業的結束事件的最遲時刻中減去該作業的持續時間
- 選取上述差數中的最小值作為該事件的最遲時刻LET
六:關鍵路徑
(1)定義
由最早時刻和最遲時刻相同的事件定義了關鍵路徑。關鍵事件必須準時發生,組成關鍵作業的實際持續時間不能超過估計的持續時間,否則工程就不能準時結束
(2)特點
- 處于關鍵路徑之外的任務進度拖后,不會影響整個項目的完成時間
- 處于關鍵路徑之中的任務進度拖后,則整個項目的完成日期就會拖后
七:機動時間
(1)定義
不在關鍵路徑上的作業有一定程度的機動余地:實際開始時間可以比預定時間晚一些,或者實際持續時間可以比預定的持續時間長一 些,而并不影響工程的結束時間
(2)計算
(3)表示
工程網絡中每個作業的機動時間寫在該項作業的箭頭下面的括號里。在制定進度計劃時仔細考慮和利用工程網絡中的機動時間,往往能夠安排出既節省資源又不影響最終竣工時間的進度表
總結
以上是生活随笔為你收集整理的(软件工程复习核心重点)第十二章软件项目管理-第二节:进度计划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 发邮件类可发送附件
- 下一篇: Cygwin的安装,卸载,以及安装gdb