• 沒有找到結果。

專案歷史資料分類對軟體成本預估值精確度提昇之研究

N/A
N/A
Protected

Academic year: 2021

Share "專案歷史資料分類對軟體成本預估值精確度提昇之研究"

Copied!
7
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會專題研究計畫 成果報告

專案歷史資料分類對軟體成本預估值精確度提昇之研究

計畫類別: 個別型計畫

計畫編號: NSC93-2213-E-011-051-

執行期間: 93 年 08 月 01 日至 94 年 07 月 31 日 執行單位: 國立臺灣科技大學資訊管理系

計畫主持人: 黃世禎

報告類型: 精簡報告

處理方式: 本計畫可公開查詢

中 華 民 國 94 年 10 月 12 日

(2)

行政院國家科學委員會專題研究計畫成果報告

軟體專案資料分類對工作量預估值精確性之影響

The Effect of the Accuracy of Software Effort Estimates by Classifying Project Data

計畫編號: NSC 93-2213-E-011-051 執行期限: 93年8月1日至94年7月31日

計畫主持人: 國立台灣科技大學資訊管理系黃世禎

一、中文摘要

精確地預估軟體開發工作量可以協助 軟體開發組織更有效的進行專案管理活 動。目前文獻中針對軟體專案資料分類影 響工作量預估值精確性的探討,主要是比 較單一組織與多組織資料集其建構預估模 式的精確度。然而依工作量影響因子對軟 體專案資料分類亦可能是影響預估模式精 確性的一個因素,因此本研究的主要目的 是探討軟體專案資料分類對工作量預估值 精確性之影響。本研究結果發現以功能點 軟體大小與開發團隊大小二個比率尺度的 工作量影響因子來分類軟體專案資料所建 構軟體工作量預估模式之精確性有顯著的 提升,而以其他名目尺度軟體工作量影響 因子來分類則未有顯著的提升。

關鍵詞:軟體工作量預估、工作量影響因 子、軟體度量與分析、軟體專案資料分類

Abstract

Estimating software development effort accurately helps software organizations manage project more effectively. So far the literature has only concentrated on the comparisons of the accuracy of software effort estimates derived both from company-specific and multi-organization datasets. However, a potential factor affecting the accuracy of the software effort estimates by classifying software project data with effort drivers is neglected in the

past academic researches. To address the above question, this research aims to study the effect of the accuracy of software effort estimates by classifying software project data with effort drivers. The result shows that the accuracy of software effort estimates by classifying software project data with two effort drivers: software size and development team size is significantly improved. However, classifying software project data with the other four nominal effort drivers we selected doesn’t improve the accuracy of software effort estimates.

Keywords: Software Effort Estimates,

Effort Driver, Software Measurement and Analysis, Software Project Data Classification.

二、研究背景與動機

根據一項以全球八千個過去的軟體開 發專案樣本數為基準的調查顯示,發現軟 體專案的開發中,有 30%的專案被中途撤 銷,而在完成的專案中又有 85%的專案是 在時程落後、大幅超出預算、以及功能不 全、甚至未完全檢測瑕疵或完成除錯的情 形下就上線使用,導致日後需要付出龐大 的人力及成本來維護[1]。

一個成功的軟體開發專案必需在預算 與時程內完成符合客戶品質要求的產品。

如果低估軟體專案開發工作量,將會因資 源分配的不足,而造成軟體品質不佳或導

(3)

致專案失敗;反之,若高估軟體專案開發 工作量,則會因投入過多的資源而造成資 源的使用較無效率,或在競標時失去得標 的機會。由此可知,精確地預估軟體開發 工作量使軟體專案達到更有效率的專案管 理是一個很重要的研究課題。

目前國內軟體開發組織在預估軟體開 發成本時,大多是依據個人經驗來度量軟 體的大小及複雜程度,再以現有人力與相 關資源初步估計需要多少人月工作量,進 而推算成本。也就是說,國內軟體產業多 數仍以主觀的經驗法則來預估軟體開發成 本,因此預估值的精確度就受到很大的質 疑[3]。

在最近二十年內,已經有很多的軟體 開發工作量預估技術相繼被提出,根據學 者 Boehm 的分類,主要有專家建議(Expert Consulting) 、 類 比 預 估 (Estimation by Analogy) 與 演 算 法 塑 模 (Algorithm Modeling)三種方法,其中以透過統計方法 或其它的數學方法產生預估模式的演算法 塑模較能提供客觀的預估結果。在演算法 塑模當中又以統計方法較廣為應用,例如 著名的 COCOMOⅡ就是一個利用統計方 法所產生的預估模式[4]。

針對演算法塑模技術而言,影響軟體 工作量預估模式精確性的因素有很多,例 如建構模式的技術、所使用的資料集特性 以及資料的品質等。截至目前,文獻中已 有許多的研究針對這些塑模技術做過比 較,其探討課題主要有二:(1)不同的塑模 技術應用於相同的歷史資料中其預估結果 精確度的比較[6,7,9,10];(2)相同塑模技術 應 用 於 單 一 組 織 專 案 資 料 集 (Organization-specific Data Set)及多組織專 案資料集(Multi-Organization Data Set)中 其預估結果精確度的比較[11]。

因此針對專案資料的分類,過去的研 究主要是將專案資料分為單一組織與多組 織,探討其建構預估模式精確性的比較為 主,然而我們認為依工作量影響因子對專 案資料分類亦是影響模式精確性的一個重 要因素。

三、研究目的

本研究主要內容是探討軟體專案資料 依工作量影響因子來分類所建置的軟體工 作量預估模式之精確性,如下:

(一) 探討依各工作量影響因子分類的專 案資料集與未經過分類的專案資料 集所建構之軟體工作量預估模式精 確性的比較。

(二) 探討依哪些工作量影響因子來分類 較能提昇預估模式的精確度。

(三) 探討要如何決定各工作量影響因子 的類別,使得依此將專案資料分類可 以得到較佳的預估結果。

四、研究架構

(一) 研究流程設計

本研究流程設計如圖一所示,首先從 資料集中篩選出適合的資料以及潛在工作 量影響因子,然後將潛在工作量影響因子 分為名目等級因子與比率等級因子。利用 單因子變異數分析檢定名目等級因子與開 發工作量的顯著相關性,而比率等級因子 則是利用 Pearson 積差相關來檢定,即可 確定本研究所要採用的工作量影響因子。

然後再利用 Scheffe’法來對名目等級 因子重新分類,比率等級因子則是結合 K 均值法與單因子變異數分析來確定其類 別,最後將篩選過的資料集依這些工作量 影響因子分類,並產生已分類資料集與未 分類資料集。本研究分別針對這些資料集 採用多元逐步迴歸法來產生預估模式,並 且比較預估模式的精確度。

(二) 單因子變異數分析

變異數分析為統計學家 Fisher 首創,

最初應用於農業實驗結果的檢驗,現則被 廣泛推廣適用於各種實驗領域,因此變異 數分析方法巳經成為實驗設計的重要工 具 , 其 理 論 基 礎 是 基 於 各 類 觀 察 體 (observations)常因受某些因素之影響,以 致其特性常發生不同之差異。變異數分析 是用來檢定三個或三個以上母群平均數的 差異顯著性,若只有一個自變數的變異數 分析則稱為單因子變異數分析(One Way

(4)

ANOVA)。

本研究利用單因子變異數分析探討名 目等級的工作量影響因子與工作量的顯著 相 關 性 , 當 有 達 到 顯 著 關 係 時 再 以 Scheffe’ 法 比 較 各 組 間 的 差 異 情 形 。 Scheffe’方法適用於各組間專案數不同時 的多重比較,因此透過 Scheffe’方法的分 析,可以對這些重要的工作量影響因子重 新分類[2]。

圖一 研究流程設計

(三) K 均值法

K 均值法(K-Means Methods)是一般在 傳統統計方面最常見到的分組式聚類法,

其將 n 個資料物件分為 k 組,每一組至少 有一個資料物件,而且每一資料物件必定 會被歸到其中一組。K 均值法的特色是針 對不同的 k 會有不同的最佳分類結果,也 就是 k 為 5 的最佳聚類過程與結果絕對與 k 為 6 的不同。但 K 均值法也有其顯而易 見的缺點,該演算法假設在未處理目標資 料時已經知道要分成 k 群,而這項假設在

真實情況中不成立,並且初始值 k 設定的 好壞會對於分群結果有決定性之影響,因 此專家建議必須搭配其它的方法來解決此 缺點。

本研究採用 K 均值法結合單因子多變 量分析求得比率等級因子的最佳分類效 果。在考慮分群後各群資料數不至於太少 的情況下,將 k 為 10 到 2 逐次分群,並且 每一次的分群結果再透過單因子變異數分 析檢測它的顯著性,記錄下這 9 次的分群 效果後,再從中挑選 F 值最高的分類方式 做為比率等級因子的分類。

(四) 逐步迴歸法

本 研 究 利 用 最 小 平 方 法 (Ordinary Least Squares)結合預測變數逐步選擇法 (Stepwise Selection Method)來產生迴歸方 程式。最小平方法可以使總平方誤差量達 到最小,以求得一條最能代表各個點的最 合適線。而逐步選擇法則是結合順向選擇 法與反向淘汰法二種程序,首先採用順向 選擇法選進與依變數有最大相關的變數,

再以反向淘汰法檢查此變數是否須加以排 除[2]。

(五) 評估準則

文獻上成本預估模式的評估準則最常 使 用 相 對 誤 差 量 (Magnitude of Relative Error, MRE),其計算公式為:

i

i i

i ActualEffort

ort edictedEff Pr

rt ActualEffo

MRE =

MRE 是由資料集中每一筆用來測試 預估模式的專案計算而得,當所觀察的 MRE 有許多筆時,我們可以利用平均相對 誤差量(Mean MRE, MMRE)或是中位數相 對 誤 差 量 (Median MRE, MdMRE) 來 聚 集,通常 MMRE 對於極端值會比 MdMRE 敏感,因此,本研究所使用的是 MMRE。

另外一個常被使用的準則是 Pred(l),

其計算公式為:

N ) k l ( ed

Pr =

N 是指所有觀察筆數,k 是指觀察筆 數中其 MRE 小於或等於 l 的筆數,一般 l 的預設值為 0.25 [12]。

資料集

比率等級因子

挑選潛在工作量影響因子

名目等級因子 資料篩選

確定各工作量影響因子類別 確定工作量影響因子

Pearson 積差相關 單因子變異數分析

Scheffe’ 法 K 均值法

單因子變異數分析

未分類資料集 已分類資料集

多元逐步迴歸法

Pred(l) 比較預估模式精確性 建構軟體工作量預估模式

MMRE

(5)

五、資料分析及建構預估模式

本研究設計採用 ISBSG[5]資料集來進 行資料分析及建構預估模式。ISBSG 是一 個非營利性的國際組織,組織成員主要是 來自美國、英國以及澳洲等國家的軟體度 量指標協會。ISBSG 致力於累積一個軟體 專案開發的知識體,透過分析及研究以獲 得相關經驗,並將其所累積的軟體開發實 務經驗對外公開。截至 2001 年為止 ISBSG 的資料儲藏所 7.0 版中共有 1,238 筆專案資 料,包含有 53 個不同的欄位。ISBSG 的 專案蒐集程序對於資料的品質有很清楚的 分級,由 ISBSG 的品質審核員們將這些專 案資料分為 A、B 及 C 三級。A 級表示資 料幾乎都滿足所有規範的準則,B 級表示 資料基本上有達到要求,但仍有證據足以 顯示出待質疑的問題,C 級則是未達基本 要求具有明顯缺陷的資料。

(一) 資料篩選

步驟1: 首 先 必 須 從 ISBSG 資 料 儲 藏 所 1,238 筆專案資料中選擇所欲分析 的資料品質。由於 ISBSG 建議任何 使用該資料儲藏所做統計分析的 研究至少需採用 A 級或 B 級的資 料,而且等級為 A 和 B 的這些資料 共佔所有專案資料的 83.6%,因 此,本研究決定採用資料品質等級 為 A 和 B 的所有資料。

步驟2: 確定計算開發工作量時所要涵蓋 的人力資源範圍。本研究挑選的是 所佔比率超過一半的等級 1 開發團 隊工作量,包含有專案團隊、專案 管理及專案行政等人員。

步驟3: 在功能點的計算標準部份,本研究 採 用 的 是 所 佔 比 率 將 近 85% 的 IFPUG 為功能點的計算標準。

因此透過上述的篩選共留下 591 筆可 供分析的專案資料。

(二) 確定工作量影響因子

步驟1: 從眾多的欄位挑選出潛在的工作 量影響因子,本研究依照一般工作 量影響因子的分群共整理出 14 個

潛在的因子,並列出其遺漏值所佔 比率,為不使遺漏值對預估模式造 成太多的影響,本研究刪除掉遺漏 值 佔 40% 以 上 的 工 作 量 影 響 因 子,最後共留下功能點數、開發團 隊大小、開發型態、開發平台、程 式語言型態、是否使用方法論、如 何取得方法以及應用型態這 8 個因 子。

步驟2: 本研究所欲分析的依變數僅有開 發工作量,主要工作量影響因子中 為比率等級的有功能點數以及開 發團隊大小,其餘的因子都是名目 尺度。另因為比率尺度的因子皆呈 偏 態 ( 左 ) 的 分 佈 , 故 將 值 轉 換 (transform)成對數(logarithmic)使之 呈常態分佈[8]。功能點數與工作量 及開發團隊大小與工作量的相關 散佈圖,顯示皆為直線正相關。開 發團隊大小與工作量的直線關係 有一筆雜訊值,故將之刪除共剩下 590 筆專案資料。最後利用 Pearson 積差相關分析檢定比率等級因子 與工作量皆有顯著相關。

步驟3: 本研究利用單因子變數分析分別 檢定每一個名目等級因子對工作 量的影響是否有達顯著關係,顯著 性小於 0.05 表示有達顯著。完成分 析 後 達 到 顯 著 影 響 的 有 開 發 型 態、開發平台、程式語言型態以及 如何取得方法 4 個因子。

因此本研究最後用來建構預估模式的 預測變數共有功能點數、開發團隊大小、

開發型態、開發平台、程式語言型態、以 及如何取得方法這 6 個工作量影響因子。

(三) 確定各工作量影響因子類別

步驟1: 比率等級因子的分類:首先將每一 個比率值都視為一個獨立的次序 項。然後以 k-mean 來分群,一開 始 k 設定為 10,透過 k-mean 與單 因子變異數分析的結合決定其最 佳的分類方式。最後「功能點數」

因子得到 2 群的分類方式與工作量 的關係最達顯著,其分法為功能點 數 9~204 和 206~17518 這 2 類。而

(6)

「開發團隊大小」因子則是以 3 群 的分類方式與工作量的關係最達 顯著,其分法為開發團隊大小為 1~4 人、5~11 人和 12~49 人這 3 類。

步驟2: 名目等級因子的分類:本研究採用 Scheffe’方法對各名目等級因子重 新分類。

最後本研究將這 6 個工作量影響因子 的類別整理如表一所示:

表一 工作量影響因子分類結果彙整 因子 原類別 新類別 功能

點數 比率型 9~204 206~17518 開發

團隊 大小

比率型

1~4 5~11 12~49 開發

型態 加強 新開發 重新開發

加強

新開發和重新開發

開發 平台

個人電腦 中型主機 大型主機

個人電腦 中大型主機 程式

語言 型態

3GL 4GL

程式碼產生器

4GL

3GL 和程式碼產生

如何 取得 方法

購買 自行開發 混合型

購買

自行開發和混合

(四) 建構預估模式

完成工作量影響因子分類後,在開始 產生預估模式前必須要選擇測試樣本,由 於這 590 筆專案資料中尚含有遺漏值,因 此在選擇測試樣本時僅考慮不含任何遺漏 值的專案資料,經過刪減後全部有 171 筆 是不含遺漏值的專案資料。故本研究假設 每一個分類後子資料集其不含遺漏值的專 案總數為 n,則針對每一個資料集隨機抽 取 10*n/171 次測試樣本,並且每次抽取 n*10%筆測試樣本。

分開每次隨機抽取的測試樣本後,其 餘剩下的專案資料則用來建構迴歸方程 式。每一類的資料集都會產生 10*n/171 組 不同的預估模式,再分別將它們的測試樣 本代入各組預估模式中求出它們各自的 MMRE 以及 Pred(0.25),然後對每一類資 料 集 所 產 生 的 預 估 模 式 之 係 數 、 R-Squared、MMRE 以及 Pred(0.25)求其平 均值,利用這些平均值來做精確度的比較。

六、結果與發現

在 6 個工作量影響因子中,依功能點 大小分類的預估結果比較如表二所示:

表二 依功能點大小分類的預估結果比較 項 目 \ 類 別 未 分 類 9~204 206-1751

8

隨 機 次 數 10 4 6

測 試 樣 本 數 17 7 10 學 習 樣 本 數 573 277 296 2.184 3.324 1.696 取對數的功

能點 0.561 0.507 0.612 取對數的開

發團隊大小 0.839 0.839 0.831

開發型態

開發平台

程式語言型

0.25

0.287 如何取得方

0.464

0.558 R-Squared 0.757 0.559 0.734 MMRE 0.079 0.058 0.056 Pred(0.25) 0.976 1 1

依 6 個工作量影響因子分類的子資料 集與未分類資料集所建構預估模式精確度 的比較的實驗結果,可以彙整出以下的發 現:

(一) 依比率等級的工作量影響因子軟體 大小(功能點數)與開發團隊大小(最 大團隊人數)將軟體專案資料分類可 以提昇軟體成本預估模式的精確性。

(二) 依名目等級的工作量影響因子(開發 型態、開發平台、程式語言型態及如 何取得方法)進行分類,其預估模式 的精確度並不會提昇。其中開發型態 的新開發與重新開發類別、開發平台 的個人電腦類別、程式語言型態的 4GL 以及如何取得方法的自行開發 和混合類別其預估的精確度比未分 類時有些許的降低。

(三) 由於這 6 個工作量影響因子中功能 點數及開發團隊大小與開發工作量 的顯著相關程度遠比其它 4 個工作 量影響因子大許多,因此本研究推論 相關程度愈大的因子其分類後的預 估精確度愈有可能提高。

在資料分析與模式建構的過程中,針 對 ISBSG 資料集「遺漏值太多」與「部份

(7)

工作量影響因子的類別太多」這二點因素 會影響預估的結果。首先第一個因素是遺 漏值太多導致許多專案在建構模式時無法 派上用場,而影響成本預估模式的可靠度 及可信度。同時這也造成部份工作量影響 因子因所佔遺漏值太多而無法分析。

第二個因素是有些工作量影響因子 (例如程式語言、組織型態及應用型態等) 的類別太多,致使各類別的專案數過少,

因此當要分析及使用這些因子時有許多類 別必須省略或與其它類別組合。

七、計畫成果自評

本研究的主要貢獻是探討將軟體歷史 專案資料依照各工作量影響因子分類以提 昇工作量預估模式的精確度的影響。本研 究是國內外第一篇依工作量影響因子將專 案資料分類對軟體工作量預估模式精確性 影響之研究。研究發現以功能點數及開發 團隊大小工作量影響因子的分類能夠提昇 工作量預估模式的精確性,並發現其最佳 的分類方式,可供軟體開發組織日後使用。

本研究是依工作量影響因子將專案資 料分類,並採用多元逐步迴歸法建構預估 模式,後續研究者亦可採用本研究的流程 與方法應用在其它建構模式技術,例如類 神經、迴歸樹或灰色系統等。此外,本研 究是從資料分類的觀點來探討軟體工作量 預估模式精確度的影響,後續研究者亦可 採用本研究的流程與方法應用在其它軟體 預估模式,例如軟體大小、成本、時程預 估或在開發初期來預估日後完成軟體系統 的品質。

本專題計畫之研究成果已經發表在資 訊管理技術與實務發展研討會論文集,並 刊登在研討會的論文集;目前亦已經完成 英文學術論文的草稿,打算在近期內將此 專題研究成果投稿至國際學術期刊上。

八、參考文獻

[1] 孫文祥,談軟體專案失敗的六大關 ,民國八十九年。

[2] 張紹勳、張紹評、林秀娟,SPSS For Windows 統計分析─初等統計與高等 統計(下冊),民國 91 年 5 月版。

[3] 楊連瑛,台灣訂製型軟體成本估算模 式之研究,交通大學資訊管理研究所 碩士論文,民國 83 年。

[4] B.W. Boehm, “Software Engineering Economics,” Englewood Cliff, NJ:

Prentice-Hall, 1981.

[5] The Benchmark-Release7, Int’l Software Benchmarking Standards Group, Warrandyte, Australia, 2001.

[6] F. Walkerden and R. Jeffery, “An Empirical Study of Analogy-based Software Effort Estimation,” Empirical Software Engineering, 42, June 1999, pp. 135-158.

[7] K. Srinivasan and D. Fisher, “Machine Learning Approaches to Estimating Software Development Effort,” IEEE Transactions on Software Engineering, 21, February 1995, pp. 126-137.

[8] L. Angelis, I. Stamelos and M. Morisio,

“ Building a Software Cost Estimation Model Based on Categorical Data,”

IEEE, 2001.

[9] L. Briand, K. El Emam, K. Maxwell, D.

Surmann and I. Wieczorek, ”An Assessment and Comparison of Common Software Cost Estimation Models,” Proc. Int’l Conf. Software Engineering, 1999, pp. 313-322

[10] L. Briand, T. Langley and I.

Wieczorek, ”A Replicated Assessment and Comparison of Common Software Cost Estimation Modeling Techniques,”

Proc. Int’l Conf. Software Engineering, 2000, pp.377-386

[11] Ross Jeffery, Melanie Ruhe and Isabella Wieczorek, “Using Public Domain Metrics to Estimate Software Development Effort,” IEEE, 2001.

[12] S.D. Conte, H.E. Dunsmore and V.Y.

Shen, “Software Engineering Metrics and Models,” The Benjamin/Cummings Publishing Company, Inc., 1986.

參考文獻

相關文件

In developing LIBSVM, we found that many users have zero machine learning knowledge.. It is unbelievable that many asked what the difference between training and

Variable symbols: Any user-defined symbol xxx appearing in an assembly program that is not defined elsewhere using the ( xxx) directive is treated as a variable, and

SaaS 軟體即服務 ( Software as a Service) 建立在 PaaS 、 IaaS

The share of India & Taiwan in the World economy and discussed how world export-import market is increasing year by year.. The data shows us that the business between these

There are 100K transactions and average size (length) of transactions is 10 and average size of the maximal potentially frequent itemset is 4. The result is shown

The aim of this study is to develop and investigate the integration of the dynamic geometry software GeoGebra (GGB) into eleventh grade students’.. learning of geometric concepts

In the development of data acquisition interface, matlab, a scientific computing software, was applied to acquire ECG data with real-time signal processing.. The developed

In this study, the Taguchi method was carried out by the TracePro software to find the initial parameters of the billboard.. Then, full factor experiment and regression analysis