(软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算
文章目錄
- 一:軟件項目管理綜述
- (1)管理
- (2)軟件項目管理
- 二:估算軟件規模
- (1)代碼行技術
- A:定義
- B:方法
- C:優缺點
- (2)功能點技術
- A:定義
- B:信息域特性
- C:估算功能點的步驟
- ①:計算未調整的功能點數UFP
- ②:計算技術復雜性因子TCF
- ③:計算功能點數FP
- 三:工作量估算
- (1)靜態單變量模型
- A:形式
- B:分類
- ①:面向KLOC的估算模型
- ②:面向FP的估算模型
- (2)動態多變量模型
- A:定義
- B:形式
- (3)COCOMO2模型
- A:三層模型
- B:特點
- C:形式
- D:與COCOMO模型所使用成本因素的區別
- E:模型指數
- F:COCOMO2的5個分級因素
一:軟件項目管理綜述
(1)管理
管理:管理是通過計劃、組織和控制等一系列活動,合理地配置和使用各種資源,以達到既定目標的過程
(2)軟件項目管理
軟件項目管理:軟件項目管理先于任何技術活動之前開始,并且貫穿于軟件的整個生命周期之中。軟件項目管理過程從一組項目計劃活動開始,而制定計劃的基礎是工作量估算和完成期限估算
二:估算軟件規模
(1)代碼行技術
A:定義
代碼行技術:代碼行技術依據以往開發類似產品的經驗和歷史數據,估計實現一個功能所需要的源程序行數。是一種比較簡單的定量估算軟件估摸的方法
B:方法
- . 把實現每個功能的源程序行數累加起來,可得到實現整個軟件所需要的源程序行數
- . 估計程序的最小規模(a)、 最大規模(b) 和最可能的規模(m), 分別算出這3種規模的平均值后,再用下式計算程序規模的估計值:L=aˉ+4mˉ+bˉ6L=\frac{\bar{a}+4\bar{m}+\bar{b}}{6}L=6aˉ+4mˉ+bˉ?
- . 程序小時用的單位是代碼行數(LOC);程序大時用的單位是千行代碼數(KLOC)
C:優缺點
優點:
- 代碼是所有軟件開發項目都有的“產品”,而且很容易計算代碼行數
- 有以往開發類似產品的歷史數據可參考時,估計出的數值比較準確
缺點:
- 源程序僅是軟件配置的一個成分,用它的規模代表整個軟件的規模不太合理
- 用不同語言實現同一個軟件所需要的代碼行數并不相同
- 不適用于非過程語言
(2)功能點技術
A:定義
功能點技術:功能點技術依據對軟件信息域特性和軟件復雜性的評估結果,估算軟件規模。用 功能點(FP) 為單位度量軟件規模。是為了克服代碼行技術的缺點,提出來的新技術
B:信息域特性
- 輸入項數(Inp):用戶向軟件輸入的項數,這是輸入給軟件提供面向應用的數據
- 輸出項數(Out): 軟件向用戶輸出的項數,它們向用戶提供面向應用的信息
- 查詢數(Inq):一次聯機輸入,它導致軟件以聯機輸出方式產生某種即時響應
- 主文件數(Maf): 邏輯主文件(數據的一個邏輯組合)的數目
- 外部接口數(Inf): 機器可讀的全部接口數量,用這些接口把信息傳送給另一個系統
C:估算功能點的步驟
①:計算未調整的功能點數UFP
- 把產品信息域的每個特性都分類為簡單級、平均級或復雜級,并根據其等級為每個特性分配一個功能點數
- 用下式計算未調整的功能點數UFP:UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×InfUFP=a_{1}×Inp+a_{2}×Out+a_{3}×Inq+a_{4}×Maf+a_{5}×InfUFP=a1?×Inp+a2?×Out+a3?×Inq+a4?×Maf+a5?×Inf
- 其中,aia_{i}ai?(1<iii<5) 是信息域特性系數,由相應特性的復雜級別決定,如下表所示
②:計算技術復雜性因子TCF
這一步驟度量14種技術因素對軟件規模的影響程度,下表中列出了全部技術因素,并用Fi(1≤i≤14)F_{i}(1\leq i \leq 14)Fi?(1≤i≤14)代表這些因素
- 根據軟件的特點,為每個因素分配一個從0(不存在或對軟件規模無影響)到5(有很大影響)的值
- 計算技術因素對軟件規模的綜合影響程度DIDIDI(0~70): DI=∑i=114FiDI=\sum_{i=1}^{14}F_{i}DI=∑i=114?Fi?
- 技術復雜性因子TCFTCFTCF(0.65~1.35) : TCF=0.65+0.01×DITCF=0.65+0.01×DITCF=0.65+0.01×DI
③:計算功能點數FP
FP=UDP×TCFFP=UDP×TCFFP=UDP×TCF
三:工作量估算
軟件估算模型使用由經驗導出的公式來預測軟件開發工作量,工作量是軟件規模的函數,工作量的單位通常是人月(pm)。沒有一個估算模型可以適用于所有類型的軟件和開發環境
(1)靜態單變量模型
A:形式
靜態單變量模型的總體結構形式如下:
E=A+B×(ev)cE=A+B×(ev)^{c}E=A+B×(ev)c
- A、B、C是由經驗導出的常數
- E是以人月為單位的工作量
- ev是估算變量(KLOC或FP)
B:分類
①:面向KLOC的估算模型
- Walston_Felix模型:E=5.2×(KLOC)0.91E=5.2×(KLOC)^{0.91}E=5.2×(KLOC)0.91
- Bailey_Basili模型:E=5.5+0.73×(KLOC)1.1.6E=5.5+0.73×(KLOC)^{1.1.6}E=5.5+0.73×(KLOC)1.1.6
- Boehm簡單模型:E=3.2×(KLOC)1.05E=3.2×(KLOC)^{1.05}E=3.2×(KLOC)1.05
- Doty模型(KLOC > 9時適用):E=5.288×(KLOC)1.047E=5.288×(KLOC)^{1.047}E=5.288×(KLOC)1.047
②:面向FP的估算模型
- Albrecht & Gaffney模型:E=?13.39+0.0545FPE=-13.39+0.0545FPE=?13.39+0.0545FP
- Maston,Barnett和Mellichamp模型:E=585.7+15.12FPE=585.7+15.12FPE=585.7+15.12FP
(2)動態多變量模型
A:定義
動態多變量模型( 軟件方程式)是根據從4000多個當代軟件項目中收集的生產率數據推導出來的。該模型把工作量看作軟件規模和開發時間這兩個變量的函數
B:形式
動態多變量估算模型的形式如下:
E=(LOC×B0.333P)×(1t)4E=(LOC×\frac{B^{0.333}}{P})×(\frac{1}{t})^{4}E=(LOC×PB0.333?)×(t1?)4
其中E是以人月或人年為單位的工作量;t是以月或年為單位的項目持續時間;B是特殊技術因子,對于較小的程序(KLOC=5-15),B=0.16,對弈超過70KLOC的程序,B=0.39;P是生產率參數,它反映了以下因素對工作量的影響
- 總體過程成熟度及管理水平
- 使用良好的軟件工程實踐的程度
- 使用的程序設計語言的級別
- 軟件環境的狀態
- 軟件項目組的技術及經驗
- 應用系統的復雜程度
(3)COCOMO2模型
A:三層模型
COCOMO是 構造性成本模型(constructive cost model) 的英文縮寫COCOMO2給出了3個層次模型,這3個層次的模型在估算工作量時,對軟件細節考慮的詳盡程度逐級增加。這3個模型如下:
- 應用系統組成模型:主要用于估算構建原型的工作量,模型名字暗示在構建原型時大量使用已有的構件
- 早期設計模型:適用于體系結構設計階段。
- 體系結構模型:適用于完成體系結構設計之后的軟件開發階段
B:特點
- 這個層次的模型在估算工作量時,對軟件細節考慮的詳盡程度逐級增加
- 這些模型既可以用于不同類型的項目,也可以用于同一個項目的不同開發階段
C:形式
COCOMO2模型把軟件開發工作量表示成代碼行數(KLOC)的非線性函數
E=a×KLOCb×∏i=017fiE=a×KLOC^{b}×\prod \limits_{i=0}^{17}f_{i}E=a×KLOCb×i=0∏17?fi?
- E是以人月或人年為單位的工作量
- a是模型系數
- KLOC是估計的源代碼行數(以千行為單位)
- b是模型指數
- fif_{i}fi? (iii=1~17)是成本因素
D:與COCOMO模型所使用成本因素的區別
- 新增加了4個成本因素,它們分別要求的是可重用性、需要的文檔量、人員連續性和多地點開發
- 略去了原始模型中的兩個成本因素
- 某些成本因素(分析員能力、平臺經驗、語言和工具經驗)對生產率的影響增加了,另一些成本因素(程序員能力)的影響減小了
E:模型指數
COCOMO2采用了的b分級模型,是使用5個分級因素WiW_{i}Wi? (1≤i≤51 \leq i \leq 51≤i≤5),其中每個因素都劃分成從甚低(WiW_{i}Wi?=5)到特高(WiW_{i}Wi?=0)的6個級別,用下式計算b(1.01~1.26)的數值
b=1.01+0.01×∑i=15Wib=1.01+0.01×\sum_{i=1}^{5}W_{i}b=1.01+0.01×i=1∑5?Wi?
F:COCOMO2的5個分級因素
- 項目先例性:指出對于開發組織來說該項目的新奇程度
- 開發靈活性:反映出為實現預先確定的外部接口和為了及早開發出產品而增加的工作量
- 風險排除度:反映了重大風險已被消除的比例
- 項目組凝聚力:表明了開發人員相互協作時可能存在的困難
- 過程成熟度:反映了按照能力成熟度模型度量出的項目組織的過程成熟度。
總結
以上是生活随笔為你收集整理的(软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lucene 异常 Lock obtai
- 下一篇: 【tool】测试用例检查表范例