由Ian Sommerville 的軟體工程[33]一書中提到,專案估算時,是需要評估軟體工程 師生產力的,這將有助於決定專案成本或時程,或是用來評估流程或技術的改善是否有
效。而評估軟體工程師生產力的度量標準,通常是以”與大小有關”(程式碼行數)、”與功
能有關”(功能點數與物件點數)的兩種度量方式。
2.3.1 選擇軟體成本估算模型
軟體工程中,用於估算軟體成本的模型有許多種,依據Magne Jørgensen and Martin Shepperd 在 2007 年所發表的文獻[21]中可以發現,截至 2004 年,軟體成本估算方法大 致被分為Regression, Expert judgment, Work breakdown, Function point, Theory…等 12 種 不同的估算方法。
其中使用Regression方法的COCOMO II[20][25](COnstructive COst MOdel 2000)模型占 了49%,以及使用Function Point的FPA[24](Function Point Analysis)模型也占了 22%,此兩
種模型占了全部估算方法的70%以上,被廣泛使用。本研究選擇以此兩種模型進行分析,
選擇一種適合本研究的軟體成本估算模型。
首先,如同該文獻的歸類,COCOMO II 模型是一個以經驗為主的模型,這個模型是 從許多軟體專案收集資料,經過資料的分析後再找出最適用的公式。另外,在Lionel C.
Briand and Isabella Wieczorek 所發表文獻中 COCOMO II 被歸類為參數型,這是因為
15
COCOMO II 模型提供了非常多的參數,這其中包含了專案特型、開發硬體條件、開發人 員經驗與素質等等…,每一個參數都有相對應的數值範圍。藉由統計程式碼行數(Lines Of source Code, LOC)代入適用的公式與正確的參數,COCOMO II 被廣泛應用於估算軟體開發 成本。使用此估算方式,估算者如何選擇參數數值,將會影響往後估算的結果。
再來,FPA 的估算方式,是以使用者的角度,計算專案程式的功能點數,來估算程
式的規模大小,進而估算軟體開發的成本,此方法並不參酌開發人員經驗、開發硬體環
境、開發工具的熟練度,專案的困難度等等…可能影響估算結果的控制變因。使用此估
算方式,功能點數的計算也會根據估算者的判斷和系統的種類而有所不同[33]。
其餘像是Expert judgment 的估算方式需要請到多位有經驗的專家來進行分析、估算,
本研究無法請到這樣的專家,故此方法亦不是用於本研究。
考慮本研究的許多不確定變因。因此本研究選擇的是COCOMO II 模型,利用參數的 方式調控各種變因,進而希望能達到準確估算開發時間成本的目的。
2.3.2 介紹 COCOMO II 模型
COCOMO 模型於 1981 年提出[25],歷史悠久,中間經過改良,直到 2000 年推出最 新的COCOMO II.2000[20]版本。我們所採用的是 COCOMO II 的初期設計模型,可用在使 用者確認需求後,初步粗略估算軟體開發成本。COCOMO II 用於初期設計模型的估算公 數系數B 則由五個因素(Scale Factor)影響,包含過去經驗、開發彈性、風險程序的使用、
團隊向心力、軟體成熟度等。如公式(3),M 則是依本研究特性而調整的乘數因子,可依
照產品可靠與複雜度(RCPX)、再利用需求(RUSE)、平台困難度(PDIF)、開發人員能力(PERS)、
16
開發人員經驗(PERX)、時程(SCED)、支援設備(FCIL)等…,7 個專案與程序的特性調整參數。
由於COCOMO II 模型是支援瀑布模型及螺旋狀模型進行軟體開發[20],而瀑布模型 與螺旋狀模型的開發方式,其實包含了有以下部分。
Requirement specification
Design
Implementation
Integrate & Testing
Maintenance
從COCOMO II 的文獻[20]告訴我們,測試及整合階段比重應該在軟體大小成長時增 加,相對的,實作階段比重則應該在軟體增大時減少。同時該文獻及其他資料[19][22]
也顯示,近代軟體開發於各階段所占的比重如表2。
Phase Percentage
Plans & Requirements (LCCR-PRR) 7%
Product design (PRR-PDR) Detail design (PDR-CDR) Code and unit test (CDR-UTC) Integration & Test (UTC-SWAR)
17%
27%-23%
37%-29%
19%-31%
Transition (SWAR-SAR) 12%
表2、Waterfall Phase Distribution Percentages[20]
稍後章節,此公式將依照本研究的特性調整各參數,估算軟體開發所需之成本。
17
三、介面程式開發方法介紹與比較
本章節將介紹本研究所使用的兩種介面開發方法的流程,並加以比較。
3.1 介面程式開發方法 1 – Hard code