EO 之 dest
4.8 進行交易功能類型複雜度之計算
一、 外部輸入(EI)複雜度計算:
1. 資料項(DET):根據外部輸入資料項之識別規則,計算圖 4-18 之X欄位個 數。計算<dataflow>標籤之 src 屬性為 user,dest 屬性為屬於 EI 程序之子標 籤為<field>標籤個數即可。
圖 4-18 EI DET 示意圖
2. 檔案類型參考(FTR):由程序與檔案之互動共可區分出三種類型均識別為檔 案類型參考:1.程序所維護之內部邏輯檔案(如圖 4-19 之X、圖 4-20 之
User EQ
a1,a2
a1,a3,a4
a3,a5,a6 a1,a2,a3,a4,a5,a6
[
X Y
Z
XYZ經過移除重複的屬性後,存於 BodyField 內。
[屬性資訊是存於 BottomField 內
X
部介面檔案(如圖 4-19 之YZ)。,
圖 4-19 程序所維護 ILF 及參考之 EIF
圖 4-20 程序所維護之 ILF
<dataflow src="user" dest="add_emp">
<dataflow src="add_emp" dest="employee">
<dataflow src="add_emp" dest="salaried_emp">
<dataflow src="add_emp" dest="hourly_emp">
<dataflow src="add_emp" dest="dependent">
<dataflow src="employee" dest="add_emp">
<dataflow src="dependent" dest="add_emp">
<errorflow src="add_emp" dest="user"/>
<dataflow src="user" dest="change_job_assignment">
<dataflow src="change_job_assignment" dest="job_assignment">
<dataflow src="job" dest="change_job_assignment">
<errorflow src="change_job_assignment" dest="user"/>
圖 4-21 程序所參考之 ILF
同一個 ILF 之實體集合僅能有一個實體之 mark 屬性為 1,其餘均變更為 0,透過比對 mark 屬性為 1,即可辨識出程序是否參考不同之內部邏輯檔案,以利計算該程序所參考之 FTR 個數。
圖 4-22 add_emp、change_jobassignment 之 ILFRef 之 mark 屬性變更示意圖
(1) add_emp 維護所識別之內部邏輯檔案(圖 4-19 之X),計算為 1 個 FTR。另外,
程序也可能維護多個內部邏輯檔案之情況,delete_emp 維護所識別之 2 個內部 邏輯檔案,
{job_assignment}
及{employee,salaried_emp,hourly_emp,dependent}
,(如圖 4-20 之 [\)共計算為 2 個檔案型態參考。 add_job個檔案型態參考。
(3) change_jobassignment 參考 2 個不同內部邏輯檔案內之實體集合,分別為 {employee、dependent}及{job}(如圖 4-21 之]^)共計算為 2 個檔案型態參考。。
本研究透過如下方式識別出之外部輸入之檔案參考類型個數:
1. 針對圖 4-19 之X、圖 4-20 之[\,比對附錄 5 每一個 ILF[j].Src 屬性值與表 4-10 每一個 EI[i].Dest 屬性值,若兩者相等,表示該外部輸入維護該內部邏輯檔案,
依照所維護之內部邏輯檔案個數,則累計至該外部輸入之檔案型態參考個數。
2. 針對圖 4-19 之YZ,比對附錄 5 之 ILF[j].ModuleType 屬性值為 EIF 的每一個 ILF[j].Dest 屬性值與表 4-10 EI[i].Dest 屬性值比對,若兩者相等,表示該外部輸 入參考該外部介面檔案,則累計至該外部輸入之檔案參考個數。
3. 針對圖 4-21]^,根據所蒐集之 ILFRef 相關資訊,本研究欲透過修改 4.8 節之 ILFRef[j].mark.strings[k]屬性之預設值來達到正確辨識外部輸入之檔案型態參 考個數,圖 4-22 為圖 4-21]^之 ILFRef[j].mark.strings[k]示意圖。
(1) 比對圖 4-22 ILFRef[0].src.strings[0]之值與附錄 5 之 ILF[i].isRealILF 為 true 之 ILF[0].dest.strings[1]之值,兩者相等,則將旗標變數 Found 設為 true。
(2) 比對 ILFRef[0].Src.strings[1]之值與 ILF[0].dest.strings[0]之值,兩者相等,旗 標變數 Found 已被設為 true 則表示 add_emp 參考了屬於同一個 ILF 內不同元 素,employee 與 dependent,因此將 ILFRef[0].mark.strings[1]之值由預設值「1」
變更為「0」
(3) 比對 ILFRef[1].dest.strings[0]與 ILF[1].dest.strings[0]比對,兩者相等,將其標 變數 Found 設為 true。至此已將所有 ILFRef 物件陣列比對完畢。換句話說,
每一個 mark.strings[k]屬性為預設值 1 之元素均代表不同之 ILF。
(4) 透過步驟(2)(3)將 ILFRef[j].mark.strings[k]屬性設定完畢後,將表 4-10 之 EI[i].Dest 的每一個值與附錄 7 之 ILFRef[j].Dest 比對,若兩者相等,便檢查 ILFRef[j].mark.strings[k]的每一個屬性值(因為該 EI 可能不只參考一個實 體),若為 1,則累加該外部輸入 FTR 個數。
(5) 將「維護」、「外部參考」、「內部參考」所得 FTR 累加,即為該 EI FTR 個數。
二、 外部查詢(EQ)、外部輸出(EO)之 FTR 個數計算:
由程序與檔案之互動共可區分出兩種類型,較 EI 少一種類型:即所參考之
FTR(如圖 4-23 之Y圖 4-24 之Y)及所參考之 EIF(如圖 4-23 之Z圖 4-24 之Z),均 識別為 FTR。
圖 4-23 外部查詢所參考之 ILF 與 EIF 圖 4-24 外部輸出所參考之 ILF 與 EIF 此兩種類型之比對與 EI 之作法相同,仍說明如下:
1. 針對Z,比對附錄 5 之 ILF[j].ModuleType 屬性值為 EIF 的每一個 ILF[j].Dest 屬性值與表 4-10 EQEO[i].Dest 屬性值比對,若兩者相等,表示該 EQ 或 EO 參 考該 EIF,則累計至該 EQ 或 EO 之 FTR 個數。
2. 針對Y,由於每一個 EQ 及 EO 均對 ILF 進行參考,故所參考之資訊也記錄於
Y Y
Z Z
ILFRef 物件陣列內,透過如上所述,變更個別 EQ 及 EO 所參考的不同 ILF 之 每一元素的 mark 屬性(如圖 4-25 示意圖)完成後,只要比對附錄 7 與每一個
EQEO[i].dest 屬性,若兩者相同,且 mark 屬性為 1,即列入該 EQ 或 EO 之 FTR 個數之累加。
同一個 ILF 之實體集合僅能有一個實體之 mark 屬性為 1,其餘均變更為 0,透過比對 mark 屬性為 1,即可辨識出程序是否參考不同之內部邏輯檔案,以利計算該程序所參考之 FTR 個數。
圖 4-25 inquire_emp 之 ILFRef 之 mark 屬性變更示意圖
4.9 小結
透過以人力資源系統之 ER-DFD 所產出之 XML 檔案進行功能點分析法所定 義之「維護」、「外部參考」、「內部參考」之解析,並將解析後之資訊暫存於本研 究所宣告之自訂類別所產生物件之相關屬性內,透過將識別規則轉化為演算過 程,識別出各個估算要項之未調整功能點。最後將每一要項之未調整功能點進行 加總即可得出整個系統之未調整功能點。本實作識別之結果,如附錄 11;本實作 系統採[2]之 ER-DFD 識別結果,如附錄 12;[2]實作系統識別結果如附錄 13。
本研究於人力資源系統進行自動化未調整功能點之估算與[2]之實作系統有 三個要項產生差異,分述如下:
一、 內部邏輯檔案組成元素之識別產生差異
變更為
0[dependent salaried_emp hourly_emp employee]
[dependent empl_conv_rate empl_dep empl_loc employee salaried_emp hourly_emp]
表 4-12 本研究(左)與[2](右)識別 ILF 組成元素之差異
造成如表 4-12 差異之原因在於兩者對於內部邏輯檔案之組成元素定義不同所 致,內部邏輯檔案組成元素之定義請參考表 3-3。
二、 外部介面檔案之資料項個數之識別產生差異
EIF U.F.P DET count RET count Complexity conversion_rate 5 2 1 low
本系統
location 5 6 1 low
conversion_rate 5 4 1 low
[2]之系統
E.P. Type U.F.P. DET count FTR count Complexity 本系統 inquire_emp EQ 4 13 2 average 在之屬性,conv_rate_to_base_currency,故應修正為對 conversion_rate 進行參考。
關 聯
如附錄 9 之○2 及○5 ,並將所參考之外部介面檔案列入檔案參考類型計算。
Report_Emp 之差異同 Inquire_Emp。故[2]於實體被參考的欄位定義未符合標 準。本研究列出估算人力資源系統總未調整功能點結果如表 4-15,差異之原因已
本實作系統較[2]多了兩個功能點,這兩個功能點分別來自對 inquire_emp 及
report_emp 之 FTR 計算之差異,如表 4-14 所示。
其中,W、M、C、LC、LS 來自於[6];Supspo 來自於[7]。