第二章 背景知識與相關研究
2.2 專案成本預估
根據學者的研究,許多軟體專案預估的方法紛紛被提出,其中在Barry W.
Boehm所著Software Engineering Economics 一書中[7]將軟體專案預估的 方法分類,如下表:
7
表1、專案預估方法的種類[7]
其中可將估算的方法分為7類,以下將針對各類型詳細解說。
1. Algorithmic model:利用一個至多個演算法來針對軟體專案中的功能
性及環境進行預估,加以計算出專案所需的資源及成本,其中 LOC(Line of Code)、COCOMO(Constructive Cost Model)及本研究所 使用的Use Case Point便是屬於此類,以下將解說COCOMO估算方法
COCOMO估算方法:
8
COCOMO(Constructive Cost Model)模式是個非線性的模式,由 Boehm 所發表,它分為三個不同的詳細程度,稱為基本模式(Basic Model)、中級模式(Intermediate Model)及詳細模式(Detailed Model)。
每一個模式都將軟體分為三個複雜程度,分別稱為簡單型、中等型 及複雜型。是適合於以第四代(4GL)等語言,使用物件導向開發 系統的衡量方式。以簡單型為例,物件導向程式大小的衡量,可以 下列因素去估算:
顯示的螢幕數
產出的報表
應4GL 碼而開發的3GL 模組數
在COCOMO 方法中,其優點便是架構完整,而缺點是分類上過於 詳盡,實施上需藉由龐大的資料庫支援,否則參數估計的誤差會很
大。
2. Expert judgment:透過一個或多個專家以往的經驗,針對軟體專案做
預估,其判斷的資訊包括經驗法則、可用的資源、過去專案的資料、
過去估計的回饋及過去類似專案的詳細功能等,其中較著名的方法 為Delphi technique。
9
3. Analogy:將軟體專案與以往類似與已完成專案的實際成本為基礎來
估算新專案,估算新專案與舊系統相類似部分的成本,最後將每部
分的成本加總,預估出專案所需的成本。
4. Parkinson:Parkinson方法中認為工作的多寡是取決於何時將資源用
盡,所以專案可用的資源有多少,便能完成多少工作,因此在估算
上便是以目前專案所擁有的資源來做推估。
5. Price to win:以取得合約為原則,以可以取得合約的合理價格作為
基礎,對專案進行預估。
6. Top-down:由整體估計專案需投入的工作量,再往下分割到個人負
責的細部內容所需的工作量。
7. Buttom-up:針對軟體專案中的細部內容做區別估計規模大小,並加 以估算出成本,最後再整合成整個專案的成本預估。
雖然在專案預估上有以上七種不同的分類,但並非每個方法都能完整的 將專案中每個層面包含進來,因此Boehm指出,為綜合各種方法的優缺 點,傾向依情況互相搭配,將各方法優點及缺點互補,例如說由上而下 的方法與由下而上的方法結合,演算法結合專家判斷法,藉由這樣的搭 配,也使得專案預估更有效率。
在演算法估算中包含了兩大變數,分別為軟體規模與調整因子,軟體規
10
模的單位可為原始碼(Source Code)、功能點(Function Points)而調整 因子則包括如技術因子、環境因子等,因此本研究在專案預估的方法上,
便以演算法類型的預估為主,除了考量原本的軟體規模與調整因子外,
還加入了成員能力的因素,使演算法預估的考量更為完整,藉此提高預 估的準確度。