『软件工程6』详解软件项目管理之软件范围与估算
軟件項目管理——軟件范圍與估算
- 一、軟件項目計劃
- 1、目標
- 2、步驟
- 二、軟件范圍
- 1、軟件范圍定義
- 2、軟件范圍——引例
- 三、影響估算的因素
- 四、軟件項目資源
- 1、軟件項目資源構成
- 2、分析圖
- 3、人力資源
- 4、硬件資源
- 5、軟件工具
- 6、可復用構件
- 五、軟件工作量與成本的估算
- 1、基于LOC估算工作量和成本
- (1)估算步驟
- (2)引例
- (3)基于LOC估算的相關計算
- 2、基于FP估算工作量和成本
- (1)估算步驟
- (2)引例
- (3)基于FP估算的相關計算
- 3、COCOMO Ⅱ模型估算
- (1)COCOMO Ⅱ模型中項目估算的三個階段
- (2)COCOMO Ⅱ模型估算步驟
- (3)基于COCOMO Ⅱ模型的計算
- 寫在最后
一、軟件項目計劃
1、目標
軟件項目計劃的目標是提供一個框架,使得管理人員對資源、成本和進度做出合理估算。
這些估算應當在項目開始時的一個有限的時間段內做出,并且隨著項目的進展定期進行更新。
2、步驟
(1)Scoping(范圍)—— 確定軟件范圍;
(2)Estimation(估算)—— 估算資源、工作量、成本;
(3)Risk(風險)—— 風險管理;
(4)Schedule(進度)—— 進度安排;
(5)Control strategy(控制策略)—— 指定控制策略。
二、軟件范圍
1、軟件范圍定義
(1)估算開始時,應對功能進行評價,并適當細化以提供更詳細的細節。
(2)由于成本和進度的估算都與功能有關,因此常常采用某種程度的功能分解。
(3)軟件范圍包括功能、性能、約束、接口和可靠性,無二義和可理解。
2、軟件范圍——引例
思考這樣一個問題:針對這個軟件的范圍描述,請找出軟件范圍的功能、性能、約束、接口等。
考慮開發一個驅動傳送帶分類系統(CLSS)的軟件,對該軟件的范圍陳述如下:
(1)傳送帶分類系統將沿傳送帶移動的盒子進行分類,每個盒子由一個包含零件號的條形碼來標識,并在傳送帶的末端分送到六個箱子中的一個,這些盒子要通過一個由條形碼閱讀器和一臺PC所組成的分類站。
(2)分類站的PC連接到一個分流器上,它把盒子分送到不同的箱子中,盒子以隨機的順序通過且其間的距離相同,傳送帶以每分鐘5英尺的速度移動。
(3)CLSS軟件以和傳送帶速度一致的時間間隔接受來自條形碼閱讀器的信息。條形碼數據被解碼成盒子的標識格式,軟件將在最多可容納1000個條目的零件號數據庫中進行檢索,以確定當前在閱讀器(分類站)位置的盒子應該放到哪個箱子中。
(4)該箱子的信息被傳送到分流器,以把盒子放進合適的箱子中,每個盒子所放進的箱子的記錄均被保存起來以供以后提取及報告。
(5)CLSS軟件同時也接受來自脈沖流速計的輸入,用于使控制信號與分流器同步,根據分類站和分流器之間產生的脈沖數,軟件將產生一個控制信號給分流器,以適當地定位盒子。
通過分析,這個過程將產生如下功能:
- 讀取條形碼輸入
- 讀取脈沖流速計
- 解碼零件編碼數據
- 檢索數據庫
- 確定合適的箱子
- 產生分流器的控制信號
- 維護盒子目的地的記錄
性能取決于傳送帶的速度,對于每個盒子的處理必須在下個盒子到達條形碼閱讀器之前完成。
約束條件包括:
- 盒子以隨機的順序通過且其間的距離相同,傳送帶以每分鐘5英尺的速度移動;
- CLSS軟件以和傳送帶速度一致的時間間隔接受來自條形碼閱讀器的信息;
- 控制信號與分流器同步。
接口:條形碼閱讀器,分流器,PC等
三、影響估算的因素
軟件項目管理過程開始于項目計劃,在做項目計劃時,重要的一項活動就是估算。
那么,影響估算的因素有哪些呢?
-
復雜性越高,估算的風險就越高。
-
項目的規模越大,開發工作量越大,估算的風險越高。
-
項目的結構化程度越高,進行精確估算的能力就能提高,而風險將減少。
-
歷史信息的有效性也影響估算的風險。歷史信息越有效, 總的風險就越少。
-
如果對軟件項目的作用范圍還不是十分清楚,或者用戶的要求經常變更,也會增加估算的風險。
-
計劃人員應當要求在軟件系統的規格說明中給出完備的功能、性能、接口的定義。
四、軟件項目資源
軟件項目計劃的第二個任務是對完成該軟件項目所需的資源進行估算。
1、軟件項目資源構成
(1)最基本的、重要的資源——人員;
(2)現成的用意支持軟件開發的工具——硬件工具;
(3)現成的用意支持軟件開發的工具——軟件工具(CASE);
(4)可復用構件。
2、分析圖
接下來對各構成要素進行一一分析。
3、人力資源
(1)在考慮各種軟件開發資源時,人是最重要的資源;
(2)在安排開發活動時必須考慮人員的技術水平、專業、人數、以及在開發過程中對各階段人員的需要;
(3)對于一些規模較小的項目,只要向專家做些咨詢,也許一個人就可以完成所有的軟件工程步驟;
(4)對一些規模較大的項目,在整個軟件生存期中,各種人員的參與情況是不一樣的。
以下通過一張圖了解各階段人員對軟件生命周期的共享度。
4、硬件資源
硬件是作為軟件開發項目的一種工具而投入的,分別包含以下三種類型:
(1)宿主機(Host)—— 軟件開發時使用的計算機及外圍設備;
(2)目標機(Target)—— 運行已經開發成功軟件的計算機及外圍設備;
(3)其它硬件設備 —— 專用軟件開發時需要的特殊硬件資源;
5、軟件工具
軟件工程人員在軟件開發期間使用了許多軟件工具來幫助開發,這種軟件工具集叫做計算機輔助軟件工程(CASE)。分別包括:
(1)業務系統計劃工具集;
(2)項目管理工具集;
(3)支援工具 —— 文檔生成工具、網絡系統軟件、數據庫、電子郵件、通報板,以及配置管理工具;
(4)分析和設計工具;
(5)編程工具;
(6)組裝和測試工具;
(7)原型化和模擬工具;
(8)維護工具;
(9)框架工具 —— 這些工具能夠提供建立集成項目支撐環境(IPSE)的框架。
6、可復用構件
(1)可復用的軟件資源,被稱為構件。可復用構件分別包含:
- 成品(off-the-shelf)構件:已存在的構件,能夠從第三廠商獲得,被準備用于當前的項目,并已被完全確認。
- 具有完全經驗的構件:當前項目成員在這些構件上有豐富的經驗。
- 具有部分經驗的構件:與當前項目相關,但需做實質性的修改;項目成員對此構件的經驗有限。
- 新構件:為滿足項目組的特定需要而專門開發的軟件構件。
(2)使用可復用構件時,應考慮:
- 成品構件能夠滿足項目的需求 —— 采用!因為低成本和低風險。
- 具有完全經驗的構件可以使用,但在項目計劃中應反映出來 —— 修改和集成的風險可接受。
- 具有部分經驗的構件使用時必須詳細分析 —— 如果要大量的修改,所需的成本可能超過開發新構件的成本。
五、軟件工作量與成本的估算
在軟件成本和工作量的估算中,不確定因素非常大,包括人、技術、環境、政治等因素都會影響估算結果。
軟件項目的估算能夠通過一系列系統化的步驟,在可接受的風險范圍內提供估算結果。
對于每一個可用的軟件成本估算的選擇,其效果好壞取決于用于估算的歷史數據!
先用一張圖了解軟件工作量和成本的估算方法。
接下來講解三種估算方法。
1、基于LOC估算工作量和成本
(1)估算步驟
-
①給出軟件范圍 —— 項目計劃人員可對每一個分解的功能提出一個有代表性的估算值范圍;
-
②進行功能分解 —— 利用歷史數據或憑實際經驗(當其它的方法失效時),對每個功能分別按最佳的、可能的、悲觀的三種情況給出LOC或FP估計值 ,記作a、m、b;
-
③估算每一個子功能 —— 計算LOC或FP的期望值 E;
E=(a+4m+b)6E = \frac{(a+4m+b)}{6} E=6(a+4m+b)? -
④計算總LOC數(∑) —— 所有子功能的總估算變量值除以相應于該估算變量的平均生產率度量得到項目的總工作量;
例如,若假定總的FP估算值是310,基于過去項目的平均FP生產率是 5.5 FP/PM,則項目的總工作量是:工作量 = 310/5.5 = 56 PM,即每個月需要56個人
-
⑤給出兩個歷史數據 ——
第一種:給出生產率和勞動率價格,可以算出工作量和成本;
第二種:給出生產率和每行代碼成本,也可以算出工作量和成本。
下面通過一張圖了解這兩種方法分別如何計算出工作量和成本:
(2)引例
系統定義評審指明,軟件是在一個工作站上運行,其接口必須使用各種計算機圖形設備,包括鼠標器、數字化儀、高分辨率彩色顯示器和激光打印機。在這個實例中,使用LOC做為估算變量。根據系統規格說明, 軟件范圍的初步敘述如下:
“軟件將從操作員那里接收2維或3維幾何數據,操作員通過用戶界面與 CAD系統交互并控制它,這種用戶界面將表現出很好的人機接口設計特性。所有的幾何數據和其它支持信息保存在一個CAD數據庫內。要開發一些設計分析模塊以產生在各種圖形設備上顯示的輸出。軟件要設計得能被控制,并能與各種外部設備進行交互,外部設備包括鼠標器、數字化儀、激光打印機和繪圖儀。”
從以上的例子可以得出:
①經過分解, 識別出下列主要軟件功能:
- 用戶界面和控制功能;
- 二維幾何分析;
- 三維幾何分析;
- 數據庫管理;
- 計算機圖形顯示功能;
- 外設控制PC;
- 設計分析模塊。
②可得到如下估算表:
| 用戶接口控制 | 1800 | 2400 | 2650 | 2340 | 14 | 315 | 32760 | 7.4 |
| 二維幾何造型 | 4100 | 5200 | 7400 | 5380 | 20 | 220 | 107600 | 24.4 |
| 三維幾何造型 | 4600 | 6900 | 8600 | 6800 | 20 | 220 | 136000 | 30.9 |
| 數據結構管理 | 2950 | 3400 | 3600 | 3350 | 18 | 240 | 60300 | 13.9 |
| 計算機圖形顯示 | 4050 | 4900 | 6200 | 4950 | 22 | 200 | 108900 | 24.7 |
| 外部設備控制 | 2000 | 2100 | 2450 | 2140 | 28 | 140 | 59920 | 15.2 |
| 設計分析 | 6600 | 8500 | 9800 | 8400 | 18 | 300 | 151200 | 28.0 |
| 總計 | 33360 | 656680 | 144.5 |
③從歷史的基線數據求出生產率度量,即 行/PM 和 元/行。
④根據復雜性程度的不同,對各功能使用不同的生產率度量值。根據估算表可得:
成本 = LOC的期望值E 乘以 元/行;
工作量 = LOC 的期望值E 除以 行/PM;
因此可得,該項目總成本的估算值為657,000元,總工作量的估算值為每個月145人。
(3)基于LOC估算的相關計算
Question:
基于LOC估算某軟件項目的工作量和人工成本,假設項目的子功能有三個,估算的LOC數分別為1000,2000,3000,項目的生產率為600LOC/PM,勞動力價格為6000元/PM,則項目總的LOC數、工作量、人工成本分別為多少?寫出計算公式及計算過程。
Answer:
2、基于FP估算工作量和成本
(1)估算步驟
-
①給出軟件范圍;
-
②進行功能分解(無需很細);
-
③計算五個信息域計數值;
-
④計算總計算值(應考慮加權因子);
-
⑤回答14個問題,算出∑Fi (Fi為復雜度校正值) ;
-
⑥計算FP;
-
⑦給出兩個歷史數據,生產率(FP/PM)、人工價(元/PM);
工作量=總FP/生產率=PM;
成本=工作量x人工價=元
(2)引例
某項目有5個信息域計數和1個算法計數,如下圖所示。假設已知該項目的兩個歷史數據,分別為:生產率為4FP/PM,人工價為3000元/PM,試計算出復雜度校正值∑Fi,工作量和成本的值。
| 輸入數 | 40 | 4 | 160 |
| 輸出數 | 25 | 5 | 125 |
| 查詢數 | 12 | 4 | 48 |
| 文件數 | 4 | 7 | 28 |
| 外部接口數 | 4 | 7 | 28 |
| 算法 | 60 | 3 | 18 |
| 總計數值 | 569 | ||
| 復雜度調整因子 | 0.84 | ||
| 特征點 | 478 |
由上圖可知:
復雜度調整因子為0.84,即0.65+0.01∑Fi=0.84,由此可計算出復雜度校正值∑Fi=19;
若要得到工作量,需先求功能點FP,即:FP=總計數值x(0.65+0.01∑Fi)=569x0.84=478FP;
工作量Efficiency=總FP生產率=478FP4FP/PM≈120PM工作量Efficiency = \frac{總FP}{生產率}=\frac{478FP}{4FP/PM}≈120PM 工作量Efficiency=生產率總FP?=4FP/PM478FP?≈120PM
成本Cost=工作量×人工價=120PM×3000元/PM=360000元成本Cost = 工作量×人工價=120PM×3000元/PM=360000元 成本Cost=工作量×人工價=120PM×3000元/PM=360000元
(3)基于FP估算的相關計算
Question:
基于FP估算某軟件項目的工作量和人工成本,假設項目的輸入數、輸出數、查詢數、文件數、接口數分別為59、20、10、5、2,加權因子取平均值4、5、4、10、7,14個問題的回答取值總和為15。那么該項目的總計數值是多少?項目的功能點FP又是多少?假設項目的生產率為16FP/PM,勞動力價格為6000元/PM,則工作量和人工成本分別為多少?寫出計算公式及計算過程。
Answer:
寫到這里,對基于LOC和FP的估算做個小結:
- 這兩種類型的估算的基本思想都是,先計算出LOC和FP的值,然后根據組織生產率和每個勞動力價格(人工價)的歷史數據,估算總成本和工作量。
- 如果在估算的時候,遇到估算差別很大時,一般有以下兩種原因:①項目的范圍未能被充分理解或被誤解;②基于問題的估算技術中所使用的的生產率數據對于該應用是不合適的,或是太陳舊了,或是被無用了。
3、COCOMO Ⅱ模型估算
(1)COCOMO Ⅱ模型中項目估算的三個階段
| 應用組裝階段(Application Composition) | 早期、確定系統性能時 | ①利用應用點application point來進行估算規模;②利用原型來解決高風險問題。 |
| 早期設計階段(early design) | 需求穩定,體系結構已建立時 | ①研究可選的體系結構和概念;②用功能點funtion point來做估算規模。 |
| 體系結構后階段(post architecture) | 軟件在構造中,知道更多系統信息時 | ①以FP、LOC作為估算單位。 |
補充說明應用點知識:
應用點,即對象點。一種間接的軟件測量,其計算需要使用以下三個元素:
- 用戶界面上的屏幕數screens;
- 報表數reports;
- 建造應用可能需要的構件數3GLcomponents。
(2)COCOMO Ⅱ模型估算步驟
- ①計算屏幕數、報表數和構件;
- ②計算對象點OP,即∑(三個計算值×加權因子);
- ③計算NOP=OP × (1-復用度) ;
- ④查表得到生產率參數的值PROD;
- ⑤工作量E=NOP/PROD;
- ⑥給出一個歷史數據:人工價(元/PM);
- ⑦成本=E×人工價。
以下給出對象點和PROD的具體數值表:
圖 不同類型對象的復雜度加權
| 對象類型 | 簡單 | 中等 | 困難 |
| 屏幕 | 1 | 2 | 3 |
| 報表 | 2 | 5 | 8 |
| 3GL構件 | 10 |
圖 不同水平的開發者經驗和不同開發環境成熟度下的生產率
| 開發者的經驗/能力 | 非常低 | 低 | 正常 | 高 | 非常高 |
| 環境成熟度/能力 | 非常低 | 低 | 正常 | 高 | 非常高 |
| PROD | 4 | 7 | 13 | 25 | 50 |
(3)基于COCOMO Ⅱ模型的計算
Question:
使用COCOMO II模型來估算構造一個簡單的ATM軟件所需的工作量和人工成本(單位分別是人月和元),該軟件產生11個屏幕(有3個簡單,3個中等,5個困難),10個報表(有4個簡單,6個困難),72個構件,復用度為20%,假設開發者的經驗能力為高,環境的成熟度能力為低,勞動力價格為5000元/PM。則NOP、生產率能力PROD、工作量E和人工成本C分別為多少。寫出計算公式及計算過程。
Answer:
寫在最后
創作不易,如果這篇文章對你有用,記得點贊收藏哦~
總結
以上是生活随笔為你收集整理的『软件工程6』详解软件项目管理之软件范围与估算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天麻片副作用
- 下一篇: 『软件测试3』八大典型的黑盒测试方法已来