1. 程式人生 > >IFPUG功能點估算規模

IFPUG功能點估算規模

IFPUG功能點分析介紹
引言
IFPUG的功能點分析(FPA)方法是一種目前被廣泛接受的關於軟體規模度量的有效方法。目前越來越多的組織在運用這個方法進行軟體規模的度量。故在此對功能點分析做一些簡單的介紹,以供大家瞭解。
FPA簡介
FPA是從使用者角度出發度量軟體規模的一種方法。它從使用者的角度出發,將系統分為資料功能和交易功能兩大類,分別根據具體的規則來計算功能點,最後結合系統的特徵因子來調整功能點數,從而得到最終的系統規模。
具體的度量步驟如下所示:
確定功能點計數型別
識別軟體的應用邊界
識別資料功能以確定其複雜度以及UFP
識別事務功能以確定其複雜度以及UFP
確定UFP數
確定值調整因子
計算調整FP數
這裡的使用者指的是使用者功能性需求的任何人和/或任何時候與軟體通訊或互動的任何人或事物。
所謂使用者可識別是指為處理而定義的需求或/和能被使用者和軟體開發者贊同和讀懂的資料組。
所以一定要注意功能點評估的方法一定是從使用者角度出發,並能夠得到使用者的認可,它與具體採用何種開發語言,何種技術方案無關。
關於功能點計數型別
功能點計數型別在IFPUG的FPA中分為三類:新開發型別、增強型別、應用系統。
其中新開發型別簡單的來說就是從無到有的開發一個系統;
增強型別簡單的來說就是在原有系統基礎上新增、完善甚至刪除已有的功能。
應用系統則是指對已經存在的系統進行功能點計數。
這三種類型的系統在計算功能點的時候會採用不同的計算方法。
關於應用邊界
在FPA中強調在進行FPA之前一定要定義應用的邊界。因為這關係到後續在計算功能點的時候相關型別功能的識別以及最終的規模。
而所謂應用邊界就是定義範圍,從使用者的角度出發,確定哪些業務包含在應用中,而哪些業務在應用之外。
關於資料功能
在FPA中將資料功能分為兩類:
1、內部邏輯檔案(Internal Logical File, ILF)
2、外部介面檔案(External Interface File, EIF)
這裡的檔案指的是一組使用者可識別的邏輯資料或者控制資訊。它與我們在具體實現時設計出來的物理模型是無關的。
內部邏輯檔案(ILF)指的是一組使用者可識別的在應用邊界內且被維護的邏輯相關資料或者控制資訊。ILF的主要目的是通過應用的一個或幾個基本處理過程維護資料。
而外部介面檔案(EIF)指的是一組在應用邊界內被查詢,但是在其它應用中被維護的、使用者可識別的、邏輯相關資料或者控制資訊。
從以上的定義可以看出來ILF與EIF的最大區別在於ILF會被應用維護,而EIF不會被應用維護。
識別ILF和EIF的有效工具是資料流圖。
具體的ILF和EIF的識別規則在這裡不詳述,可以參照IFPUG的實踐手冊(CPM)。
在我們識別了ILF和EIF之後,我們就需要計算它們的複雜度。在FPA中採用下面兩個指標來計算ILF和EIF的複雜度:
1、資料元素型別(Data Element Types, DET)
2、記錄元素型別(Record Element Types, RET)
其中一個DET就是一個唯一的使用者可認知的,不重複的資料域。類似於資料庫表中的欄位,但不完全相同。
而一個RET就是一個ILF或者EIF內使用者可認知的資料元素子集。
在FPA中有給ILF和EIF的DET以及RET定義詳細的計算規則,可參考CPM。
根據對每個ILF和EIF計算出來的DET和RET的數量,在FPA中就會將ILF和EIF劃分為低,中,高三個複雜度等級。具體的劃分規則可參照CPM。
關於交易功能
在FPA中將交易功能劃分為三種:
1、 外部輸入(External Input, EI)
2、 外部輸出(External Output, EO)
3、 外部查詢(External inQuery, EQ)
這裡的EI指的是處理來自應用邊界之外的資料或控制資訊的基本處理過程。EI的主要目的是維護一個或多個ILF並且/或者改變系統的行為。
EO指的是嚮應用邊界之外發送資料或控制資訊的基本處理過程.EO的主要目的是通過邏輯處理方式向用戶呈現資訊,而不只是直接恢復資料或控制資訊。該處理邏輯必須包含至少一個數學公式或計算過程,或生成派生資料。一個EO也可能維護一個或多個ILF和/或改變系統行為。
EQ指的是嚮應用邊界之外發送資料或控制資訊的基本處理過程. EQ的主要目的是通過恢復資料或控制資訊向用戶呈現資訊。該處理邏輯不包括任何的數學公式或計算過程,不會生成任何的派生資料。EQ處理過程中既不會維護任何ILF,也不會改變系統行為。
在FPA中有定義詳細的對EI、EO、EQ三者的識別規則,在此不詳述。通常,這三種功能就是對使用者提出的功能性需求的分類。它關注的物件是具體的每一個功能。
對於交易功能,在FPA中採用DET和FTR(引用檔案型別)兩個指標來計算它們的複雜度。
其中FTR指的是一個被交易功能讀取或維護的ILF或者是一個被交易功能讀取的EIF。
根據對每個EI、EO、EQ計算出來的DET和FTR的數量,在FPA中也將它們劃分為低、中、高三個複雜度等級。具體劃分規則可參見CPM。
根據以上計算出來的資料功能和交易功能的複雜度,FPA綜合很多軟體專案的資料,提供了一個複雜度與功能點的對應表,具體參見CPM。
根據上表識別出每個資料功能和交易功能的功能點,然後求和即為未經調整的功能點數(Unadjusted Function Point)
關於調整係數
在上面計算出來的未經調整的功能點數沒有考慮到系統的非功能性需求,因此,FPA有定義14個系統調整因子來針對系統的非功能性需求來計算調整係數。這14個系統調整因子分別是:
1.資料通訊 8.線上升級
2.分散式資料處理 9.複雜處理
3.效能 10.可重用性
4.資源需求 11.易安裝性
5.事務頻率 12.易操作性
6.線上資料輸入 13.多點執行
7.終端使用者效率 14.易變更
對於以上的每一個影響因子,FPA將其影響程度定義為以下的5個等級。
0 毫無影響
1 偶然影響
2 偏下影響
3 一般影響
4 重大影響
5 強烈影響
每個特徵因子都有定義詳細的識別規則,可參考CPM。
功能點調整係數(Value Adjustment Factor, VAF)=(TDI×0.01)+0.65。
其中TDI指以上14個特徵因子影響程度分值的和。根據以上的公式可以知道,VAF的值在0.65~1.35範圍內。
計算已調整功能點(Adjusted Function Point, AFP)
根據在第一步中識別的功能點計數型別,計算已調整功能點的公式有不同。其中新開發專案功能點計算公式為:
AFP=(UFP+CFP)×VAF
其中,UFP=未調整功能點總數
CFP=轉換功能點
此處轉換功能指系統安裝時需要用到,但不直接提供給終端使用者使用的功能。通常是實現諸如資料轉換這樣的功能。
有關其他兩種型別的已調整功能點計算公式參見CPM。
關於功能點的應用
功能點計算出來了,那它跟我們的工作有什麼樣的聯絡呢?通常,在專案規劃及執行階段,可以利用功能點來預估專案的人力費用、品質等。
例如,根據行業經驗資料,Java語言開發時,一個功能點的生產時間在1~1.4天內(此處的生產時間僅指軟體開發活動,它通常包含需求分析、設計、編碼、測試等活動,但不包含專案管理、軟體維護等支援性且因專案要求的不同而差異較大的活動)。那麼我們就可以根據計算出來的功能點推算出專案可能的人力。典型公式:專案總生產人力=專案功能點數×生產效率。
在專案結束後來計算功能點,有助於我們根據實際的生產時間來計算單位內部的生產效率等度量指標。典型公式:生產效率=專案總生產人力/專案功能點數
重要的是,由於功能點分析是一個從使用者角度出發的,與實現細節無關的評估方法,所以利用功能點計算出來相關資料(諸如生產效率、缺陷率等),有助於增強企業間生產能力比較的可信度,也有助於在行業內形成有比較基準的資料,作為企業運營過程中的參考。
後記
以上僅僅對IFPUG的FPA的相關概念進行了簡單的介紹。目的是起到一個引導的作用,讓讀者瞭解IFPUG的FPA的基本內容。真正要實踐FPA還需要讀者仔細去研習CPM(Counting Practices Manual),當前最新版本為4.2.1

相關推薦

IFPUG功能估算規模

IFPUG功能點分析介紹引言IFPUG的功能點分析(FPA)方法是一種目前被廣泛接受的關於軟體規模度量的有效方法。目前越來越多的組織在運用這個方法進行軟體規模的度量。故在此對功能點分析做一些簡單的介紹,以供大家瞭解。 FPA簡介FPA是從使用者角度出發度量軟體規模的一種方法。

CMMI之功能估算法---內部邏輯文件和外部接口文件

組織 種類型 字段 圖片 信息 cmm 程序 執行 external 功能點分析的步驟 在本文中將以國際標準IFPUG(International Function Point Users Group)組織提供的功能點估算法V4.1.1為基礎與大家進行講解。

使用功能估算模型評估軟體測試的工作量

功能點分析法應用在軟體測試中,它最核心的價值究竟是什麼呢? 讓我們先看看軟體開發,這是跟測試離得最近的工作型別。開發工程師工作大致可以分為“設計”和“編碼”兩步。設計一般是使用UML語言,藉助類似於Rose這樣的工具,繪製一些UC圖、類圖、ER圖等  最近有位同事問我,“天彤你搞這個功能點分析演算法,主要目

軟體成本估算之快速功能方法應用示例

1、需求示意 專案背景:某開發方為政府部門甲新開發一OA系統,以支援其網上辦公、文件流轉等電子政務需求。開發方需根據初步需求確定專案預算。本專案預算期需求較明確,開發方瞭解各功能的重用情況,並確定採用JAVA開發,無特殊質量要求,團隊為其他行業開發過此類系統。 主要功能:……收文管理

軟體成本估算中的功能分析

隨著計算機技術的發展,現在的計算機環境與傳統的環境已經有了天壤之別。因此,軟體工程人員一直在尋找一種可以廣泛應用的度量單位。這個度量單位需要獨立於開發所採用的技術,支援需求收集、估計、專案管理和質量度量的需要。功能點分析就是能夠滿足上述需求的選擇。     經驗證明,應用功能點分析來度量軟體的規模是非常可靠

關於軟體規模——功能評估的問題(二)

進行功能點評估已有四五個月,其中不乏種種苦惱。 關於EO與EQ的定義解釋問題,這真的是中華文化的博大精深問題,見仁見智,還是理解不夠通透? EO:外部輸出; EQ:外部查詢; EO和EQ:主要目的都是呈現資訊給使用者; EO的處理邏輯:至少包含以下四項中的任何一項:

功能方法概述

項目管理 成本 工作量 工業 規模 什麽是功能點方法簡單的說,功能點方法是一種估算軟件項目大小的方法,它是從用戶視角出發,通過量化系統功能來度量軟件的規模,這種度量主要基於系統的邏輯設計。功能點規模度量方法在國際上的應用已經比較廣泛,並且已經取代代碼行成為最主流的軟件規模度量方法。功能點方

C#、Java中的一些小功能總結(持續更新......)

grid datagrid item 其他 cnblogs hid roc oid sha 前言:在項目中,有時候一些小的功能點,總是容易讓人忽略,但是這些功能加在項目中往往十分的有用,因此筆者在這裏總結項目中遇到的一些實用的小功能點,以備用,並持續更新...... 1.禁

echarts圖例組件擊顯示功能(默認功能擊消失)

echartsvar myChart = echarts.init(document.getElementById(‘main‘)); var option = { title: { text: ‘折線圖堆疊‘ }, tooltip: { trigger

Java web 常用的一些功能

end dir redirect 調整 response rect send war resp 1、轉向和重定向 1、request.getRequestDispatcher("a.jsp").forward(rquest,response); request轉發 它可以保

jenkins集成功能

jenkins集成 9.png ins jenkins clas 功能點 pos 技術 bubuko jenkins集成功能點

SylixOS功能介紹

SylixOS1.概述 SylixOS作為一款大型的國產實時操作系統,有著眾多小的功能點,本文對SylixOS功能點和部分性能點做了一個總結,具體內容如下。2.SylixOS功能大綱 基於SylixOS的1.5.3的內核,SylixOS功能大綱如圖 2.1所示。圖 2.1 SylixOS功能大綱3

kettle----功能用法總結(不定期更新)

技術分享 插入數據 ttl 指定 ima 用法 mage class 功能點 表輸入(從指定的數據庫中,讀取所查詢表的數據) 截圖如下: 允許簡易轉換: 替換SQL語句裏的變量: 從步驟插入數據: kettle----功能點用法總結(不定期更新)

小程序_常用功能

功能點 pan style nbsp AS 常用功能 url report navigate 1.路由跳轉 1 wx.navigateTo({ 2 url: ‘../report/report‘ 3 }) 小程序_常用功能點

[沫沫金]軟件單一功能,說明書編寫模板

rgb 系統 可見 padding 範圍 span ron 檢測 修改 1.1. 內控上下限設置功能功能摘要應用範圍218項目需求日期2018年8月7日 星期二功能類別新增表結構狀態新增表(關聯Item表item_id) 1.1.1. 業務需求統計分析中,在圖表顯示上下限基

快速功能度量的應用場景有哪些?

快速功能點度量的應用場景主要有以下幾種: 1、專案前期的可行性分析:採用快速功能點方法判斷專案所需完成的規模、工作量、工期和成本,從而決定組織是否能夠支撐或接受該專案。 2、確立專案範圍與標的:有助於給出明確的預算申請依據,使得預算過程更加透明,在投標過程中採用功能點報價,便於審查核

軟體成本評估之:什麼是快速功能方法?

軟體成本評估(csbmk.com)中所提到的快速功能點方法是什麼? 快速功能點方法是由北京軟體造價評估技術創新聯盟依據國際5大功能點方法ISO標準之一(ISO/IEC 24570-2005軟體工程NESMA功能尺度測量法2.1版功能點分析應用的定義和計數指南)要求提出的一種軟體規模度量方

軟體造價之:淺析快速功能方法度量的規則及過程

快速功能點方法是由北京軟體造價評估技術創新聯盟依據國際ISO標準(ISO/IEC 24570-2005軟體工程NESMA功能尺度測量法2.1版功能點分析應用的定義和計數指南)要求提出的一種軟體規模度量方法。該方法適用於軟體專案早期、中期、後期等各個階段的規模估算或測量。 採用優化後的功能

Vue.js學習記錄-11-Vue去哪兒網專案實戰:城市列表頁開發-功能概述 + City

2.城市列表頁開發 功能點概述 頁面路由跳轉(Home -> City): 點選首頁城市選擇按鈕,即可跳轉至城市列表頁。 使用者可以在搜尋欄中可輸入資訊進行城市資訊的檢索,檢索結果以列表形式展現,選定城市後會進行首頁的路由跳轉。

Vue.js學習記錄-15-Vue去哪兒網專案實戰:景點詳情頁開發-功能概述 + Detail + Banner(通用元件:Gallery、Fade)

3. 景點詳情頁開發 功能點概述 使用者首頁點選熱銷推薦景點,即可跳轉景點詳情頁面。詳情頁面包括三部分內容:頂部圖片展示、景點門票詳情、隱藏頁面頭。(拖動至下方會出現) 使用者點選頂部圖片展示,進入圖片輪播區域(全屏),可左右滑動進行圖片瀏覽