- 估算技術教程
- 估算技術 - 首頁
- 估算技術 - 概述
- 估算技術 - 功能點
- 估算技術 - 功能點計數
- 估算技術 - 用例
- 估算技術 - 德爾菲法
- 估算技術 - 三點估算
- 估算技術 - PERT
- 估算技術 - 類比估算
- 估算技術 - 工作分解結構
- 估算 - 撲克計劃
- 估算技術 - 測試
- 估算技術資源
- 估算技術 - 快速指南
- 估算技術 - 資源
- 估算技術 - 討論
估算技術 - 功能點計數過程
功能點計數過程包含以下步驟:
步驟 1 - 確定計數型別。
步驟 2 - 確定計數邊界。
步驟 3 - 識別使用者所需的每個基本過程 (EP)。
步驟 4 - 確定唯一的 EP。
步驟 5 - 測量資料功能。
步驟 6 - 測量事務功能。
步驟 7 - 計算功能規模(未調整的功能點計數)。
步驟 8 - 確定價值調整因子 (VAF)。
步驟 9 - 計算調整後的功能點計數。
注意 - 在 CPM 4.3.1 中,通用系統特性 (GSC) 變為可選,並移至附錄。因此,可以跳過步驟 8 和步驟 9。
步驟 1:確定計數型別
功能點計數有三種類型:
- 開發功能點計數
- 應用功能點計數
- 增強功能點計數
開發功能點計數
功能點可以在開發專案的各個階段(從需求到實施階段)進行計數。這種型別的計數與新開發工作相關,可能包括原型,這些原型可能作為臨時解決方案被要求,支援轉換工作。這種型別的計數稱為基線功能點計數。
應用功能點計數
應用計數計算為交付的功能點,不包括任何轉換工作(原型或臨時解決方案)以及可能已經存在的現有功能。
增強功能點計數
當在生產後對軟體進行更改時,這些更改被視為增強。為了確定此類增強專案的規模,功能點計數會在應用程式中被新增、更改或刪除。
步驟 2:確定計數邊界
邊界表示被測應用程式與外部應用程式或使用者域之間的邊界。(參見圖 1)
要確定邊界,請了解:
- 功能點計數的目的
- 被測應用程式的範圍
- 哪些應用程式如何維護哪些資料
- 支援這些應用程式的業務領域
步驟 3:識別使用者所需的每個基本過程
將功能使用者需求分解成最小的活動單元,該單元滿足以下所有條件:
- 對使用者有意義。
- 構成完整的事務。
- 是獨立的。
- 使被計應用程式的業務處於一致狀態。
例如,功能使用者需求 - “維護員工資訊”可以分解成更小的活動,例如新增員工、更改員工、刪除員工和查詢員工資訊。
因此,識別的每個活動單元都是一個基本過程 (EP)。
步驟 4:確定唯一的基本過程
比較兩個已識別的 EP,如果它們滿足以下條件,則將它們計為一個 EP(相同的 EP):
- 需要相同的 DET 集。
- 需要相同的 FTR 集。
- 需要相同的處理邏輯來完成 EP。
不要將具有多種處理邏輯的 EP 拆分成多個 EP。
例如,如果您已將“新增員工”識別為一個 EP,則不應將其分成兩個 EP 以考慮員工可能有也可能沒有家屬這一事實。EP 仍然是“新增員工”,並且處理邏輯和 DET 存在差異以考慮家屬。
步驟 5:測量資料功能
將每個資料功能分類為 ILF 或 EIF。
資料功能應分類為:
內部邏輯檔案 (ILF),如果它由被測應用程式維護。
外部介面檔案 (EIF),如果它被引用,但不是由被測應用程式維護。
ILF 和 EIF 可以包含業務資料、控制資料和基於規則的資料。例如,電話交換由所有三種類型組成 - 業務資料、規則資料和控制資料。業務資料是實際的呼叫。規則資料是呼叫如何透過網路路由,控制資料是交換機如何相互通訊。
考慮以下文件以計數 ILF 和 EIF:
- 擬議系統的目標和約束。
- 有關當前系統的文件(如果存在此類系統)。
- 使用者感知的目標、問題和需求的文件。
- 資料模型。
步驟 5.1:為每個資料功能計數 DET
應用以下規則為 ILF/EIF 計數 DET:
為透過執行 EP 在 ILF 或 EIF 中維護或檢索的每個唯一使用者可識別、非重複欄位計數一個 DET。
當兩個或多個應用程式維護和/或引用相同的資料功能時,僅計算被測應用程式使用的那些 DET。
為使用者建立與另一個 ILF 或 EIF 的關係所需的每個屬性計數一個 DET。
審查相關屬性以確定它們是分組並計為單個 DET,還是計為多個 DET。分組將取決於 EP 在應用程式中如何使用屬性。
步驟 5.2:為每個資料功能計數 RET
應用以下規則為 ILF/EIF 計數 RET:
- 為每個資料功能計數一個 RET。
- 為以下每個額外的 DET 邏輯子組計數一個額外的 RET。
- 具有非鍵屬性的關聯實體。
- 子型別(第一個子型別除外)。
- 屬性實體,在除強制 1:1 之外的關係中。
步驟 5.3:確定每個資料功能的功能複雜度
| RET | 資料元素型別 (DET) | ||
|---|---|---|---|
| 1-19 | 20-50 | >50 | |
| 1 | L | L | A |
| 2 到 5 | L | A | H |
| >5 | A | H | H |
功能複雜度:L = 低;A = 中;H = 高
步驟 5.4:測量每個資料功能的功能規模
| 功能複雜度 | ILF 的 FP 計數 | EIF 的 FP 計數 |
|---|---|---|
| 低 | 7 | 5 |
| 中 | 10 | 7 |
| 高 | 15 | 10 |
步驟 6:測量事務功能
要測量事務功能,以下是必要的步驟:
步驟 6.1:對每個事務功能進行分類
事務功能應分類為外部輸入、外部輸出或外部查詢。
外部輸入
外部輸入 (EI) 是一個基本過程,它處理來自邊界外部的資料或控制資訊。EI 的主要目的是維護一個或多個 ILF 和/或更改系統的行為。
必須應用以下所有規則:
資料或控制資訊來自應用程式邊界之外。
如果進入邊界的不是更改系統行為的控制資訊,則至少維護一個 ILF。
對於已識別的 EP,以下三個陳述之一必須適用:
處理邏輯與應用程式中其他 EI 執行的處理邏輯不同。
識別的資料元素集與應用程式中其他 EI 識別的資料元素集不同。
引用的 ILF 或 EIF 與應用程式中其他 EI 引用的檔案不同。
外部輸出
外部輸出 (EO) 是一個基本過程,它將資料或控制資訊傳送到應用程式邊界之外。EO 包括超出外部查詢的額外處理。
EO 的主要目的是透過除檢索資料或控制資訊之外或除了檢索資料或控制資訊之外的其他處理邏輯向用戶呈現資訊。
處理邏輯必須:
- 包含至少一個數學公式或計算。
- 建立派生資料。
- 維護一個或多個 ILF。
- 更改系統的行為。
必須應用以下所有規則:
- 將資料或控制資訊傳送到應用程式邊界之外。
- 對於已識別的 EP,以下三個陳述之一必須適用:
- 處理邏輯與應用程式中其他 EO 執行的處理邏輯不同。
- 識別的資料元素集與應用程式中其他 EO 不同。
- 引用的 ILF 或 EIF 與應用程式中其他 EO 引用的檔案不同。
此外,以下規則之一必須適用:
- 處理邏輯包含至少一個數學公式或計算。
- 處理邏輯至少維護一個 ILF。
- 處理邏輯更改系統的行為。
外部查詢
外部查詢 (EQ) 是一個基本過程,它將資料或控制資訊傳送到邊界之外。EQ 的主要目的是透過檢索資料或控制資訊向用戶呈現資訊。
處理邏輯不包含任何數學公式或計算,也不建立任何派生資料。在處理過程中不維護任何 ILF,也不更改系統的行為。
必須應用以下所有規則:
- 將資料或控制資訊傳送到應用程式邊界之外。
- 對於已識別的 EP,以下三個陳述之一必須適用:
- 處理邏輯與應用程式中其他 EQ 執行的處理邏輯不同。
- 識別的資料元素集與應用程式中其他 EQ 不同。
- 引用的 ILF 或 EIF 與應用程式中其他 EQ 引用的檔案不同。
此外,以下所有規則必須適用:
- 處理邏輯從 ILF 或 EIF 檢索資料或控制資訊。
- 處理邏輯不包含數學公式或計算。
- 處理邏輯不更改系統的行為。
- 處理邏輯不維護 ILF。
步驟 6.2:為每個事務功能計數 DET
應用以下規則為 EI 計數 DET:
審查所有跨越(進入和/或退出)邊界的元素。
為在事務功能處理期間跨越(進入和/或退出)邊界的每個唯一使用者可識別、非重複屬性計數一個 DET。
即使有多個訊息,也為傳送應用程式響應訊息的能力為每個事務功能僅計數一個 DET。
對於啟動操作(即使有多種方法可以這樣做),每個事務功能只計算一個DET。
以下專案不計為DET -
事務功能在邊界內生成並儲存到ILF而不退出邊界的屬性。
諸如報表標題、螢幕或面板識別符號、列標題和屬性標題之類的文字。
應用程式生成的標記,例如日期和時間屬性。
分頁變數、頁碼和定位資訊,例如“211行中的第37至54行”。
導航輔助工具,例如使用“上一個”、“下一個”、“第一個”、“最後一個”及其圖形等效項在列表中導航的能力。
應用以下規則來計算EO/EQ的DET -
審查所有跨越(進入和/或退出)邊界的元素。
為在事務功能處理期間跨越(進入和/或退出)邊界的每個唯一使用者可識別、非重複屬性計數一個 DET。
即使有多個訊息,也為傳送應用程式響應訊息的能力為每個事務功能僅計數一個 DET。
對於啟動操作(即使有多種方法可以這樣做),每個事務功能只計算一個DET。
以下專案不計為DET -
在邊界內生成且不跨越邊界的屬性。
諸如報表標題、螢幕或面板識別符號、列標題和屬性標題之類的文字。
應用程式生成的標記,例如日期和時間屬性。
分頁變數、頁碼和定位資訊,例如“211行中的第37至54行”。
導航輔助工具,例如使用“上一個”、“下一個”、“第一個”、“最後一個”及其圖形等效項在列表中導航的能力。
步驟6.3:計算每個事務功能的FTR
應用以下規則來計算EI的FTR -
- 為維護的每個ILF計算一個FTR。
- 為在EI處理期間讀取的每個ILF或EIF計算一個FTR。
- 對於每個既維護又讀取的ILF,只計算一個FTR。
應用以下規則來計算EO/EQ的FTR -
- 為在EP處理期間讀取的每個ILF或EIF計算一個FTR。
此外,應用以下規則來計算EO的FTR -
- 為在EP處理期間維護的每個ILF計算一個FTR。
- 對於每個由EP既維護又讀取的ILF,只計算一個FTR。
步驟6.4:確定每個事務功能的功能複雜度
| FTR | 資料元素型別 (DET) | ||
|---|---|---|---|
| 1-4 | 5-15 | >=16 | |
| 0-1 | L | L | A |
| 2 | L | A | H |
| >=3 | A | H | H |
功能複雜度:L = 低;A = 中;H = 高
確定每個EO/EQ的功能複雜度,但EQ必須至少具有1個FTR -
EQ必須至少具有1個FTR FTR |
資料元素型別 (DET) | ||
|---|---|---|---|
| 1-4 | 5-15 | >=16 | |
| 0-1 | L | L | A |
| 2 | L | A | H |
| >=3 | A | H | H |
功能複雜度:L = 低;A = 中;H = 高
步驟6.5:衡量每個事務功能的功能規模
根據其功能複雜度衡量每個EI的功能規模。
| 複雜度 | 功能點計數 |
|---|---|
| 低 | 3 |
| 中 | 4 |
| 高 | 6 |
根據其功能複雜度衡量每個EO/EQ的功能規模。
| 複雜度 | EO的功能點計數 | EQ的功能點計數 |
|---|---|---|
| 低 | 4 | 3 |
| 中 | 5 | 4 |
| 高 | 6 | 6 |
步驟7:計算功能規模(未調整的功能點計數)
要計算功能規模,應遵循以下步驟 -
步驟7.1
回顧您在步驟1中發現的內容。確定計數型別。
步驟7.2
根據型別計算功能規模或功能點計數。
- 對於開發功能點計數,轉到步驟7.3。
- 對於應用程式功能點計數,轉到步驟7.4。
- 對於增強功能點計數,轉到步驟7.5。
步驟7.3
開發功能點計數包含兩個功能元件 -
專案使用者需求中包含的應用程式功能。
專案使用者需求中包含的轉換功能。轉換功能僅在安裝時提供,用於轉換資料和/或提供其他使用者指定的轉換需求,例如特殊轉換報表。例如,現有的應用程式可能會被新的系統取代。
DFP = ADD + CFP
其中,
DFP = 開發功能點計數
ADD = 開發專案交付給使用者的函式規模
CFP = 轉換功能的規模
ADD = ILF的功能點計數 + EIF的功能點計數 + EI的功能點計數 + EO的功能點計數 + EQ的功能點計數
CFP = ILF的功能點計數 + EIF的功能點計數 + EI的功能點計數 + EO的功能點計數 + EQ的功能點計數
步驟7.4
計算應用程式功能點計數
AFP = ADD
其中,
AFP = 應用程式功能點計數
ADD = 開發專案交付給使用者的函式規模(不包括任何轉換功能的規模),或應用程式在計數時存在的任何功能。
ADD = ILF的功能點計數 + EIF的功能點計數 + EI的功能點計數 + EO的功能點計數 + EQ的功能點計數
步驟7.5
增強功能點計數考慮以下四個功能元件 -
- 新增到應用程式的功能。
- 在應用程式中修改的功能。
- 轉換功能。
- 從應用程式中刪除的功能。
EFP = ADD + CHGA + CFP + DEL
其中,
EFP = 增強功能點計數
ADD = 增強專案新增的功能規模
CHGA = 增強專案更改的功能規模
CFP = 轉換功能的規模
DEL = 增強專案刪除的功能規模
ADD = ILF的功能點計數 + EIF的功能點計數 + EI的功能點計數 + EO的功能點計數 + EQ的功能點計數
CHGA = ILF的功能點計數 + EIF的功能點計數 + EI的功能點計數 + EO的功能點計數 + EQ的功能點計數
CFP = ILF的功能點計數 + EIF的功能點計數 + EI的功能點計數 + EO的功能點計數 + EQ的功能點計數
DEL = ILF的功能點計數 + EIF的功能點計數 + EI的功能點計數 + EO的功能點計數 + EQ的功能點計數
步驟8:確定價值調整因子
在CPM 4.3.1中,GSC被設定為可選,並移動到附錄中。因此,可以跳過步驟8和步驟9。
價值調整因子 (VAF) 基於14個GSC,這些GSC對正在計數的應用程式的一般功能進行評級。GSC是獨立於技術的使用者業務約束。每個特徵都具有相關的描述,以確定影響程度。
| 通用系統特徵 | 簡要描述 |
|---|---|
| 資料通訊 | 有多少通訊設施可以幫助將資訊傳輸或交換到應用程式或系統? |
| 分散式資料處理 | 如何處理分散式資料和處理功能? |
| 效能 | 使用者是否需要響應時間或吞吐量? |
| 大量使用的配置 | 應用程式將執行的當前硬體平臺的使用頻率如何? |
| 事務速率 | 每天、每週、每月等執行事務的頻率是多少? |
| 線上資料輸入 | 多少百分比的資訊是線上輸入的? |
| 終端使用者效率 | 應用程式是否針對終端使用者效率而設計? |
| 線上更新 | 有多少ILF透過線上事務更新? |
| 複雜處理 | 應用程式是否具有廣泛的邏輯或數學處理? |
| 可重用性 | 應用程式是否是為了滿足一個或多個使用者的需求而開發的? |
| 安裝簡易性 | 轉換和安裝有多困難? |
| 操作簡易性 | 啟動、備份和恢復程式的有效性和/或自動化程度如何? |
| 多個站點 | 應用程式是否專門設計、開發和支援在多個組織的多個站點安裝? |
| 促進變更 | 應用程式是否專門設計、開發和支援以促進變更? |
影響程度範圍在0到5的範圍內,從無影響到強烈影響。
| 評級 | 影響程度 |
|---|---|
| 0 | 不存在或無影響 |
| 1 | 偶然影響 |
| 2 | 中等影響 |
| 3 | 平均影響 |
| 4 | 重大影響 |
| 5 | 始終強烈影響 |
確定14個GSC中每個GSC的影響程度。
由此獲得的14個GSC值的總和稱為總影響程度 (TDI)。
TDI = ∑14 影響程度
接下來,計算價值調整因子 (VAF) 為
VAF = (TDI × 0.01) + 0.65
每個GSC可以從0到5變化,TDI可以從(0 × 14)到(5 × 14)變化,即0(當所有GSC都較低時)到70(當所有GSC都較高時),即0 ≤ TDI ≤ 70。因此,VAF可以在0.65(當所有GSC都較低時)到1.35(當所有GSC都較高時)的範圍內變化,即0.65 ≤ VAF ≤ 1.35。
步驟9:計算調整後的功能點計數
根據使用VAF的FPA方法(V4.3.1之前的CPM版本),這由以下公式確定:
調整後的功能點計數 = 未調整的功能點計數 × VAF
其中,未調整的功能點計數是在步驟7中計算的功能規模。
由於VAF可以在0.65到1.35之間變化,因此VAF對最終調整後的功能點計數的影響為±35%。
功能點的益處
功能點很有用 -
在衡量解決方案的規模而不是問題的規模時。
因為功能點計數只需要需求。
因為它獨立於技術。
因為它獨立於程式語言。
在估算測試專案時。
在估算整個專案成本、進度和工作量時。
在合同談判中,因為它提供了一種與業務部門更輕鬆溝通的方法。
因為它量化併為軟體中函式的實際用途、介面和目的分配了一個值。
在建立與其他指標(如小時、成本、人員數量、持續時間和其他應用程式指標)的比率時。
功能點儲存庫
國際軟體基準標準組織 (ISBSG) 發展和維護兩個IT資料儲存庫。
- 開發和增強專案
- 維護和支援應用程式
開發和增強專案儲存庫中擁有超過6,000個專案。
資料以Microsoft Excel格式交付,方便您進一步分析,或者您甚至可以將資料用於其他目的。
可以從以下地址購買ISBSG儲存庫許可證:http://www.isbsg.com/
當使用折扣碼“IFPUGMembers”時,ISBSG為IFPUG會員提供線上購買10%的折扣。
可以在以下地址找到ISBSG軟體專案資料釋出更新:http://www.ifpug.org/isbsg/
COSMIC和IFPUG合作製作了軟體非功能和專案需求術語表。可以從以下地址下載:cosmic-sizing.org