第2章 文獻探討
2.1 功能點分析法要項(terms)之呈現方式
功能點分析法未調整功能點估算所需要項包含了靜態的檔案(data)概念與動 態的交易(transaction)概念。透過實體關係圖表達功能點分析法中靜態檔案概念的 呈現,如資料項(Data Element Type,DET)、紀錄(Record Element Type,RET)、邏輯 檔案(Logical Files)。
而以資料流程圖表達功能點分析法中動態交易(transaction)概念的呈現,如外 部輸入(External input,EI)、外部輸出(External Output,EO)、外部查詢(External
inquiry,EQ)。
為了能夠讓抽象之概念具體化,故[2]擷取實體關係圖與資料流程圖之部分元 素並進行整合,做為未調整功能點要項之呈現,此種整合兩者圖示而成之新的設 計規格圖示稱為 ER-DFD。
透過 ER-DFD 設計規格進行功能點估算前,必須先瞭解 ER-DFD 如何呈現未 調整功能點之估算要項。
第二章 文獻探討
資料來源:[2]
圖 2-1 ER-DFD 範例
如圖 2-1 為 ER-DFD 之範例,ER-DFD 引入實體關係圖之實體(entity)、關聯 基數(relationship cardinalities)、屬性(attribute)、主鍵(primary key)、外部鍵(foreign
key)等概念,引入資料流程圖程序(process)、資料流(dataflow)及系統界線(system boundary)等概念。其中:
1. 實體(entity):以實線方形表示。如 entity 1、entity 2 及 entity 3。
2. 關聯(relationship):若關聯基數為 1 對 1、1 對多,則以線段表示,線段連接 實體的兩端對於關聯基數不同而有不同之表示。若關聯基數為多對多,則需 轉化為兩個 1 對多的關聯,而連接此兩個 1 對多之關聯稱為關聯實體
(associative entity,如圖 2-1 的 R1),視同實體並以實線方形表示。
3. 屬性(attribute):鍵值(key)屬性以黑色圓形加線段表示。非鍵值屬性則以白色
圓形加線段表示。複合鍵值(如 b1、b2 兩者形成一鍵值),則以一鍵值屬性跨
過非鍵值屬性表示。而外部鍵(foreign key)則從具有鍵值之實體延伸出一線段
到外部鍵所在實體之外部鍵屬性(如 R1 之 a1 屬性與 b1 屬性均為外部鍵)。
4. 程序(process):以實線橢圓形表示。如 process 1、process 2、user 等。
5. 系統界線(system boundary):以虛線方形表示。系統界線區隔出欲估算之系 統、外部系統及使用者。系統界線內稱為內部系統,系統界線外則稱為外部 系統。
(1) 外部系統:提供資料至內部系統以利程序之進行,如 process 2 參考 entity 3 之 d1,d2 屬性。
(2) 使用者(user):以橢圓形表示。使用者泛指操作系統的人[3],在 ER-DFD 中 以程序表示,如 user 傳遞 a1,a2,b1,b2,c1 屬性給 process1。
6. 資料流(dataflow):本研究於 ER-DFD 圖示上將資料流區分為兩類:
(1)一般資料流(data flow):以「實心線段加上箭號」表示,代表的執行該程序 時所需傳遞之資料,稱為欄位(field)。每一個資料流均須標示出所傳遞欄位 資訊,若是資料流上欄位的名稱與實體的屬性名稱相同時,表示兩者所指的 是相同資料,當資料流上的屬性資訊並未對應到實體的任何屬性,則代表此 欄位是經由計算所衍生出來的資訊,稱為衍生欄位(derived field)。如圖 2-1 的 total 欄位。
(2)系統回應資料流:以「虛線加上箭號」表示,代表傳遞內部系統回應(system
response)訊息至外部,如在程序處理過程中發生錯誤的錯誤訊息(error
message)、確認程序是否應該進行下一步處理或已處理完成的確認訊息
(confirmation message )。或者由外部進入內部系統之觸發訊息。系統回應資
料流表示著一種訊號的傳遞,故該資料流上並無屬性資訊。
2.2 功能點分析法估算歷程
功能點分析法將使用者需求之功能與軟體系統開發所使用之技術分開估 算,因此在需求分析階段早期即可進行使用者所需功能規模之估算[2]。
功能點分析法估算歷程如圖 2-2 所示,本研究將之歸納為六個階段:
資料來源:[3] part I p2-3 圖 2-2 功能點分析法估算歷程示意圖
一、 決定功能點估算功能點專案對象類型:
對象包括「新開發專案(development project)」、「欲調整專案(enhancement
project)」及「現存應用系統(Application )」 。這三種專案類型之估算內容差異如下:
1. 新開發專案:重新依據使用者需求重新開發一個符合使用者需求之軟體系統 [14]。隨著專案開發階段運作,必須時時注意每一階段之軟體功能是否變更,並 再次進行未調整功能點之估算,以確保各個估算要項與所需求之功能能夠一致。
2. 欲調整專案之計數:當專案將目前的軟體系統功能加以變更,所做的新增、
修改、刪除之功能性部分[14],強調估算所變更的功能。
3. 現存應用系統之計數:現存系統提供給使用者的功能之估算。另外,如圖 2-3
所示,當「新軟體專案開發完成」為最初的現存系統計數,當對此軟體系統產生 調整需求時,即進行專案的調整(enhancement),當欲調整專案完成時,該現存系 統之功能點計數必須隨著功能的調整進行更新功能點計數,更新功能點計數後的 系統,就取代之前現存系統之計數而產生新的現存系統計數。因此,現存系統之 計數除了針對現有的系統進行功能點計數外,對於新開發完成的軟體系統或者已 調整完成的軟體系統也屬於現存系統之計數。
資料來源:[3]
圖 2-3 新開發專案與欲調整專案對現存系統計數之關係
由於本研究針對已提出的實作系統之研究進行改良,故僅針對開發專案之類 型為對象。
二、決定估算系統之系統界線(Application boundary)
在確認應用程式界線之前首先必須決定計數的範圍(counting scope),計數範 圍可能涵蓋所採購的套裝軟體、也可能是包含所有要外包(outsourcing)的應用程式 也可能僅是侷限於應用程式內執行某特定功能的模組(如人力資源系統的薪資計 算模組)。而應用程式界線則是將計算範圍區隔出功能點所要計算的要項。若沒有 定義出應用程式界線,則以下所探討之功能型態就無法被辨識。
本研究同[2]之假設,從新開發專案所給定的 ER-DFD 已經標明出系統界線。
應用程式界線區隔出「欲測量的系統(本研究稱為內部系統)」 、 「其它應用系 統(本研究稱為外部系統)」或「使用者領域(user domain)」三者(如圖 2-4)。系統
界線是區分功能點估算要項之重要依據。
三、識別系統所具備的「功能類型(Function Type)」
功能型態可分為兩種: 「檔案功能類型(Data Function Type)」、「交易功能類型
(Transactional Function Type)」 。
資料來源:[14]
圖 2-4 系統所具備功能型態關係圖
1. 「檔案功能類型(Data Function Type)」 :檔案功能代表系統提供給使用者之 功能必須要符合內部系統檔案需求及外部系統檔案需求[3]。如圖 2-4,檔案功能 類型可區分成「內部邏輯檔案(Internal Logical Files)」及「外部介面檔案(External
Interface Files)」 。檔案(file)在內部系統內維護(maintain)者,稱之為「內部邏輯檔 案」 ;檔案若是由外部系統維護者,稱之為「外部介面檔案」 。檔案(file)指的是一 組具有邏輯相關的資料(資料在 ER-DFD 稱為實體(entity)),並非一般所指的實體 檔案[3]。識別應用系統所具備的檔案功能類型是屬於「內部邏輯檔案」 、 「外部介 面檔案」之識別規則,請參考第 3 章。
本研究首先進行識別內部系統所具備的之檔案功能類型,下一步則是識別該 檔案類型所使用到的「資料項(Data Element Type,DET)」個數及「記錄(Record
使用者領域
內部系統
系統界線 系統界線
Element Type,RET)」個數,根據此兩者並對照表 2-1 即得出檔案功能類型之複雜 度(complexity),根據複雜度之等級對照表 2-2 即可得出該檔案功能類型之未調整 功能點。
表 2-1 ILF 及 EIF 的複雜度矩陣
Function Points
Components Low Average High
ILF 7 10 15
EIF 5 7 10
表 2-2 ILF 及 EIF 功能點轉換表
2. 「交易功能類型(Transactional Function Type)」 :交易功能代表軟體系統提 供給使用者依所需功能對不同檔案進行處理的能力[3]。
交易功能類型可區分成「外部輸入(External Input,EI)」、「外部查詢(External
Inquiry,EQ)」及「外部輸出(External Output,EO)」 。
識別應用系統所具備的交易(Transactional)類型是屬於「外部輸入」 、 「外部查 詢」或「外部輸出」之識別規則,請參考第 3 章。
當交易類型確定後,下一步則是識別該交易使用的「資料項(Data Element
Type)」個數」及「檔案類型參考(File Type Referenced)」個數,分別查表 2-3、表
2-4 即得出交易功能類型之複雜度,根據複雜度等級查表 2-5 即可得出該交易功能
類型之未調整功能點。
表 2-3 外部輸入複雜度矩陣
表 2-4 外部查詢/外部輸出複雜度矩陣
複雜度等級 估算要項
低 中 高
ILF 7 10 15
EIF 5 7 10
EI 3 4 6 EQ 4 5 7 EO 3 4 6 表 2-5 各個估算要項之複雜度所對應之未調整功能點評比
四、計算未調整功能點(unadjusted function point)的總數
估算上述五種功能類型所使用的資料項數(Data Elements)、紀錄數(Record
Elements)及檔案類型數參考數(File Type Reference),即可得出相關複雜度,由複 雜度即可得出對應之未調整功能點。將所有未調整功能點予以加總,得出內部系 統之總未調整功能點,未調整功能點計算公式如表 2-6。
UFP= ∑ ∑
∈Types ∈ i
ij Complexity j
ij
W
N
Types={ILF、EIF、EI、EO、EQ},Complexity={Low、Average、High}。
N
ij:第 i 種類型所具備第 j 種複雜度之個數。
W
ij:第 i 種類型所具備第 j 種複雜度所對應之權重(即未調整功能點)。
表 2-6 未調整功能點計算公式
五、計算「數值調整因子(value adjustment factor,VAF)」
[3]歸納出了 14 項可能受到技術層面所影響之特性,稱為「一般系統特性 (General System Characteristic,GSC)」(如附錄 1),其目的是要對「未調整功能點」
進行調整,得出最後「已調整功能點」 。
VAF=0.65+0.01×TDI (1)0.65 及 0.01:常數值。(2)TDI: ∑
= 14
1 i