- 軟件項目估算
- (美)阿蘭·阿布蘭
- 1276字
- 2020-06-02 15:42:11
1.5 生產率模型
研究者在建立數學模型時一般都是使用已完成的項目數據。這意味著他們是基于一組已知的事實而沒有任何不確定性,如圖1.8所示。因此,文獻中的大多數所謂估算模型實際上是生產率模型。

圖1.8 生產率模型的原理示意圖
待建立模型的輸入內容如下。
·產品需求:已被開發完成并交付的整個軟件。
〇 基于實際交付的產物,可以非常精確地度量軟件。
〇 同時,可以采用任意可用的分類機制,對軟件的特征進行刻畫。
·由于軟件開發過程已完成,可以明確地進行刻畫和分類。
〇 資源方面:人員的業務領域相關經驗、開發技能、在項目周期內的可用性等。
〇 過程方面:開發方法、開發環境等。
·目前已了解項目約束,也不存在其他未知因素和遺留風險:所有變量都是常量(不會有變化)。
總之,這些來自于已完成項目的輸入條件可以包括以下兩個方面。
·量化數據(比如軟件功能規模,可能是用國際度量標準進行度量的,例如使用傳統功能點方法或COSMIC功能點方法)。
·或者名詞性數據(比如編程語言)或者定類數據(比如軟件工程工具的類別),或者定序數據(比如復雜度水平,從易到難)。
(1)數學方程模型。
估算人員可以使用一系列的數學方法來幫助他們從大量已完成項目中量化地確定目標因變量(例如,項目工作量或項目工期)與自變量(產品規模和各種成本因子)之間的關系。
·例如,圖1.8(和圖1.6)的右下角展示了已完成軟件項目的規模和交付這些項目所需工作量之間的關系。
〇 橫軸表示已交付(即過去)軟件的規模。
〇 縱軸表示每個項目花費的工作量。
〇 每個星號表示一個項目(規模和工作量)。
〇 直線的斜率代表最符合這組數據點的回歸線(自變量項目規模和因變量項目工作量之間的關系)。這條回歸線是通過統計模型得到的,表示由這組特定數據集里面的點生成的已交付項目生產率,同時這些歷史項目也不存在任何不確定性,因此這條回歸線也表示歷史項目生產率。
這些歷史項目生產率的數學模型主要優勢如下。
·該數據集當中的變量描述都遵循某些文檔化的約定。
·可以描述并分析這些數學模型的性能。
例如,圖1.8中的回歸模型,用每個點與方程那條線的距離可以計算出模型的“質量”。
·任何人都能使用這些模型來估算以后的項目。而且,如果對這些模型提供同樣的輸入信息,就會得到同樣的輸出結果(模型是“客觀的”)。在實踐中,估算結果會因輸入的不同而不同。
因此,生產率模型是基于已知信息建立的歷史項目模型,同時:
·該模型具有對已實現軟件進行精確度量得到的量化變量(但是度量過程仍然存在一定程度的不精確);
·這些量化變量是在項目生命周期期間進行收集并存儲在項目記錄系統里;
·對于其他已知信息的描述性變量是由項目專家主觀評估確定。對于已完成的項目來說,沒有本質的不確定性。
(2)專家判斷法。
專家判斷法一般是非正式的,無記錄的,并且專家判斷法是基于對過去項目的主觀回憶而得到的歷史經驗,通常是沒有參考已交付軟件的精確量化數據或者精確成本因子數據。
唯一可獲得的精確數據一般是關于因變量(工作量和工期)的,而不是自變量(例如,產品規模,尤其是已交付的功能)。
此外,一般沒有歷史項目生產率的精確數據,也沒有能夠展示一組項目性能的圖形。
- Learning LibGDX Game Development(Second Edition)
- Learning Docker
- 程序員修煉之道:通向務實的最高境界(第2版)
- Oracle從入門到精通(第5版)
- Python數據結構與算法(視頻教學版)
- Visual C++開發入行真功夫
- 軟件體系結構
- JavaScript+jQuery網頁特效設計任務驅動教程
- 遠方:兩位持續創業者的點滴思考
- Android Sensor Programming By Example
- Android系統下Java編程詳解
- C語言程序設計與應用實驗指導書(第2版)
- Drupal 8 Development Cookbook(Second Edition)
- FusionCharts Beginner’s Guide:The Official Guide for FusionCharts Suite
- SAS編程演義