功能點過程
Adams Wang (umlchina)
1 目的
本規程的目的是基于軟件需求產生軟件規模的估計。功能點是基于應用軟件的外部、內部特性以及軟件性能的,一種間接的軟件規模的測量。功能點與軟件成本具有重大的成本估計關系(CER:Cost Estimating Relationship)。功能點可以作為經驗統計參數化軟件成本估計公式和模型的輸入,以對軟件的成本進行估計。功能點方法被廣泛的認可在信息系統、數據庫密集型、4GL應用系統開發的規模測量。
2 范圍
功能點是對軟件功能和規模的間接定量測量,它基于客觀的外部應用接口和主觀的內部應用復雜度以及總體的性能特征。該規程由三個邏輯部分組成:決定未調整的功能點計數、加權因子和功能點。
決定未調整的功能計數包括對外部輸入、外部輸出、外部查詢、內部邏輯文件和外部接口文件的計數。決定加權因子包括劃定系統、輸入和輸出、應用復雜度的級別。決定功能點包括將未調整的功能點和加權因子整合在一起。
功能點具有兩個獨立的目標。第一個目標是作為軟件測量、對比和分析(如,軟件度量方法)的基礎。第二個,也是更重要的目標是作為軟件成本估計模型(如,公式)和產出工作量(如,工時)工具的輸入,軟件成本估計模型和工具則基于功能點和工作量之間的經驗成本估計關系(CER)。
3 角色和職責
任務經理:任務經理負責為軟件成本估計進行對功能點的估計。任務經理必須基于外部應用接口估計未調整功能點,和基于應用程序的復雜度和性能對加權因子進行估計。 任務經理必須輔助決定功能點以及從技術人員處獲取輸入。
下列任務承擔責任:
! 6.1 決定未調整功能點計數
! 6.2 決定加權因子
! 6.3 決定功能點
4 輸入
事務和文件清單:應用軟件功能和規模的間接的定量測量基于外部應用接口客觀的數量,如:外部輸入、外部輸出、外部查詢、內部邏輯文件和外部接口文件。
! 外部輸入:數據由外向內跨越邊界的基本處理過程。數據可能來自于數據輸入屏幕、電子輸入或其它應用程序。數據可以是控制信息或業務信息。如果數據是業務信息,它用于維護一個或多個內部邏輯文件。如果數據是控制信息,它不必更新內部邏輯文件。
! 外部輸出:導出的數據由內向外跨越邊界的基本處理過程。數據創建發送給其它應用的報表或輸出文件。這些報表和文件由一個或多個內部邏輯文件和外部接口文件所創建。
! 外部查詢:包括輸入和輸出構件的基本處理過程。輸入和輸出構件導致一個或多個內部邏輯文件和外部接口文件的數據檢索。該信息被發送出應用程序邊界。輸入過程不會更新任何內部邏輯文件以及輸出不包含導出的數據。
! 內部邏輯文件:完全駐留在應用程序內部的邏輯相關數據的用戶可識別的組,通過外部輸入所維護。
! 外部接口文件:僅用于引用目的的邏輯相關數據的用戶可識別的組。數據完全駐留在應用程序外部,由其它應用程序所維護。外部接口文件是其它應用程序的內部邏輯文件。
下列任務需要輸入條件:
! 6.1 決定未調整功能點計數
系統的總體特性:間接和主觀的應用軟件功能和規模的測量基于內部應用復雜度和整體性能特性級別的劃分,如系統、輸入和輸出以及應用復雜度。
以下的任務需要輸入條件:
! 6.2 決定加權因子
5 輸出
功能點:功能點作為軟件成本估計基礎,是軟件規模、功能和復雜度的測量。
下列任務需要輸出條件:
! 6.3 決定功能點
6 步驟
6.1 決定未調整功能點:
決定未調整功能點的數目包括對外部輸入、外部輸出、外部查詢、內部邏輯文件和外部接口文件的計數。
6.1.1 決定外部輸入:
外部輸入是數據由外向內跨越邊界的基本處理過程。數據可能來自于數據輸入屏幕、電子輸入或其它應用程序。數據可以是控制信息或業務信息。如果數據是業務信息,它用于維護一個或多個內部邏輯文件。如果數據是控制信息,它不必更新內部邏輯文件。
對于低、平均或高,將數目分別乘以3、4或6。
6.1.2 決定外部輸出:
外部輸出是導出的數據由內向外跨越邊界的基本處理過程。數據創建發送給其它應用的報表或輸出文件。這些報表和文件由一個或多個內部邏輯文件和外部接口文件所創建。
對于低、平均或高,將數目分別乘以4、5或7。
6.1.3 決定外部查詢:
外部查詢是包括輸入和輸出構件的基本處理過程。輸入和輸出構件導致一個或多個內部邏輯文件和外部接口文件的數據檢索。該信息被發送出應用程序邊界。輸入過程不會更新任何內部邏輯文件以及輸出不包含導出的數據。
對于低、平均或高,將數目分別乘以3、4或6。
6.1.4 決定內部邏輯文件:
內部邏輯文件是完全駐留在應用程序內部的邏輯相關數據的用戶可識別的組,通過外部輸入所維護。
對于低、平均或高,將數目分別乘以7、10或15。
6.1.5 決定外部接口文件:
外部接口文件是僅用于引用目的的邏輯相關數據的用戶可識別的組。數據完全駐留在應用程序外部,由其它應用程序所維護。外部接口文件是其它應用程序的內部邏輯文件。
對于低、平均或高,將數目分別乘以5、7或10。
6.1.6 決定未調整功能點總數:
將帶有權重的外部輸入、外部輸出、外部查詢、內部邏輯文件和外部接口文件總和在一起。其結果即為未調整功能點。
6.2 決定加權因子:
決定加權因子包括劃系統復雜度、輸入和輸出復雜度和應用復雜度的級別。
6.2.1 劃分系統復雜度級別:
采用0~5的分值劃分每個系統復雜度,分別代表無影響(no influence)、偶爾(incidental)、適度(moderate)、平均(average)、重大(significant)和根本(essential)。
6.2.1.1 劃分數據通訊復雜度的級別:
具有多少數據通訊設備?
數據通訊描述了應用軟件與處理器直接通訊的程度。應用軟件使用的數據和控制信息在數據設備上發送和接收。局部直接與控制單元連接的終端被認為會使用通訊設備。協議是一系列規約,它允許在兩個系統和設備之間傳輸或交換信息。所有的數據通訊鏈接需要某種協議。
以下是記分的指南:
0 應用軟件是單純的批處理或獨立的PC。
1 應用軟件是批處理,但具有遠程的數據入口或者遠程打印。
2 應用軟件是批處理,但具有遠程的數據入口和遠程打印。
3 應用軟件包括在線連接至批處理或查詢系統的數據搜集或TP(遠程處理)終端。
4 應用軟件不僅僅是終端,并且支持一種通訊協議。
5 應用軟件不僅僅是終端,并且支持多種通訊協議。
遠程處理現在非常普遍。僅僅10%的項目是“低于平均”的分值2或以下;56%則具有“高于平均”的分值4或5。
對銀行項目和個人PC開發的項目,該分值較低。從1991至1996,它具有持續降低的趨勢,從高于平均水平降至平均水平。
6.2.1.2 劃分分布式處理復雜度的級別:
分布式數據和功能如何被處理?
分布式數據處理描述了應用軟件在各個組成部分之間數據傳送的程度。分布式數據或功能處理是應用軟件邊界內部的一種特性。
以下是記分的指南:
0 應用軟件無系統組件之間的數據傳輸或功能處理。
1 應用軟件為系統其它組件上的最終用戶處理,如PC電子表格或PC DBMS準備數據。
2 數據為傳輸做出準備,接著被傳輸以及在其它系統組件上被處理(并非最終用戶處理)。
3 單方向的在線的分布式處理和數據傳輸。
4 雙向的在線的分布式處理和數據傳輸。
5 功能處理動態的在相應的系統組件上執行。
在所有的常見系統特征中,該值取“低于平均值”具有非常大的比例。其統計分布是雙峰值的:系統要么是單機,或者分布式處理是作為系統一種比較重要的特性。
在工程系統中往往具有更多的分布式處理。分布式處理在中范圍的平臺上較其它平臺上更為普遍。分布式處理在交易/生產系統和辦公信息系統中較管理信息系統和決策支持系統更為普遍。新的開發項目較改進項目中更重要一些。
6.2.1.3 劃分性能復雜度的級別:
用戶對響應時間或吞吐量是否有所要求?
性能描述了對響應時間和吞吐量性能方面考慮對應用軟件開發的影響程度。用戶以響應或吞吐量所陳述或認可的性能目標,影響著(或將影響)設計、開發、安裝以及支持。
以下是記分的指南:
0 用戶沒有特殊的性能需求。
1 性能和設計需求被陳述和評審,但不需要特殊的活動。
2 響應時間或吞吐量在峰值時間是關鍵的。對CPU利用沒有特殊的設計。處理的極限在日后考慮。
3 響應時間或吞吐量在所有的工作時間是關鍵的。對CPU利用沒有特殊的設計。與其它交互系統處理極限方面的需求是強制的。
4 迫切的用戶性能需求,要求在設計階段進行性能分析方面的工作。
該特征具有較分散的分布:32%的項目低于平均值,30%的項目處于平均水平,38%的項目高于均值。
性能對于交易/生產系統較管理系統更為重要。新的開發項目較改進項目中更重要一些。
6.2.1.4 劃分配置項負載復雜度的級別:
對當前的硬件平臺的使用程度?
配置項的使用程度描述了計算機資源對應用軟件開發的影響程度。需要特殊設計考慮的滿負荷運行的操作配置,是應用軟件的一個特征。例如,用戶想在現有的或指定的滿載設備上使用應用軟件。
以下是記分的指南:
0 沒有明顯的或隱式的操作限制。
1 存在操作約束,但限制較典型的應用較小。限制不需要特殊的工作。
2 存在某些安全性或時序的考慮。
3 特殊應用軟件部分存在特殊的對處理器的需求。
4 所要求的操作限制對中心處理器或主要處理器上的應用軟件需要特殊的限制。
5 另外,在系統的分布式組件上存在特殊的限制。
本特性的分值普遍較低:66%低于均值,20%處于平均水平,14%高于均值。
交易/生產系統和辦公信息系統的分值較管理信息系統和決策支持系統低。新的開發項目較改進項目中低;中等項目較其它平臺高;工程系統較高。從3GL項目至4GL項目,分值會增高。
6.2.1.5 決定系統復雜度的級別:
4個帶權重的分值相加即為系統復雜度。
6.2.2 劃分輸入和輸出復雜度的級別:
采用0~5的分值劃分每個輸入和輸出復雜度,分別代表無影響(no influence)、偶爾(incidental)、適度(moderate)、平均(average)、重大(significant)和根本(essential)。
6.2.2.1 劃分事務率復雜度:
事務執行的頻繁程度?
事務率描述了業務交易(事務)影響應用軟件開發的程度。如果事物率高,它會影響設計、開發、安裝和支持。
以下是記分的指南:
0 預計沒有峰值的事務處理周期。
1 預計存在峰值的事務處理周期(如:月、季、年)。
2 預計每周存在峰值的事務處理。
3 預計每日存在峰值的事務處理。
4 用戶需求中要求高的事務率或者服務級別的約定足夠的高,要求在設計階段進行性能分析。
5 用戶需求中要求高的事務率或者服務級別的約定足夠的高,要求在設計階段進行性能分析。另外,需要在設計、開發和/或安裝階段使用性能分析工具。
事務率的分值在分布在0~4的范圍內;5分情況較少。
事務率在銀行系統中較一般情況重要性高,在工程系統中則較低。在大型機其它平臺重要性高。盡管可能期望對于事務/生產系統而言,重要程度高一些,但在應用類型之間沒有重大的差別。從1991年至1996年,該分值有著穩定的提高。
6.2.2.2 劃分在線數據項復雜度:
百分之多少的信息是在線輸入的?
在線數據項描述了數據通過交互式事務輸入的程度。應用軟件提供在線數據項和控制功能。
以下是記分的指南:
0 所有的事務以批處理的形式處理。
1 1%至7%的事務是交互式數據項。
2 8%至15%的事務是交互式數據項。
3 16%至23%的事務是交互式數據項。
4 24%至30%的事務是交互式數據項。
5 超過30%的事務是交互式數據項。
直到現在,該特性在所有的調整因子中是最高的,并且變化是最少的。60%的項目對該特性的取值為5分,最大的可能值。
根據IFPUG指南,5分意味著超過30%的事務包括交互式數據項。對于現在而言,作為閥值可能30%過低;較高的取值可能能夠提供更有用的區別。
對于單個機構COBOL!主機/銀行項目,該分值較低(通常3分)。而5分的取值近乎適用于其它一切情況。
6.2.2.3 劃分用戶使用效率復雜度:
應用軟件是否就最終用戶使用效率上有所設計?
最終用戶使用效率描述了對人為因素和應用軟件用戶的易用性的考慮程度。在先功能強調了最終用戶使用效率的設計(如,漫游幫助、菜單、在線幫助和文檔、自動游標移動、滾動條、在線事務的遠程打印以及預定義功能鍵)。
以下是記分的指南:
0 無
1 上文中的1或3項。
2 上文中的4或5項。
3 上文中的6項以上,但無特定相關于使用效率的用戶需求。
4 上文中的6項以上,用戶使用效率的需求要求就人的因素安排設計任務(例如,最少擊鍵次數、最大化默認值、模板的使用)。
5 上文中的6項以上,用戶使用效率的需求要求使用特殊的工具以展示達到即定的目標。
該特性具有廣泛的分布,有些高分值的趨勢:34%低于均值, 43%高于平均值。
用戶使用效率對于信息管理系統較事務/生產系統重要。對于新開發項目,該分值較增強項目低,并具有較扁平的分布。同樣的,從3GL項目至4GL項目,分值會增高。
6.2.2.4 劃分在線更新復雜度:
多少內部邏輯文件會被在線的事務更新?
在線更新描述了內部邏輯文件在線更新的程度。應用軟件為內部邏輯文件提供在線更新。
以下是記分的指南:
0 無
1 在線更新1至3個控制文件。更新量較少,恢復容易。
2 在線更新4個或4個以上的控制文件。更新量較少,恢復容易。
3 在線更新大量的控制文件。
4 另外,遺失數據的保護是關鍵的,并在系統中進行特定的設計和編碼實現。
5 另外,大數據量帶來了恢復過程中的成本考慮。需要最少人為干涉的高度自動化的恢復步驟。
在線更新的分值傾向高(半數高于均值),但大多數在3~4,5分較少。
事務/生產系統的分值較高。個人PC平臺比其它平臺低。同樣的,從3GL項目至4GL項目,分值會增高。
6.2.2.5 決定輸入和輸出復雜度:
4個帶權重的分值相加即為輸入和輸出復雜度。
6.2.3 劃分應用軟件復雜度的級別:
采用0~5的分值劃分每個應用軟件復雜度,分別代表無影響(no influence)、偶爾(incidental)、適度(moderate)、平均(average)、重大(significant)和根本(essential)。
6.2.3.1 劃分復雜處理復雜度:
應用軟件是否具有大量的邏輯或數學處理?
復雜度處理描述了處理邏輯對應用軟件開發的影響程度。以下是一些處理情況:靈敏度控制、特殊的監控處理、安全性處理、邏輯處理、數學運算、異常處理、復雜度處理以及設備無關性。
以下是記分的指南:
0 無靈敏度控制、邏輯處理、數學運算、異常處理或復雜度處理。
1 包括靈敏度控制、邏輯處理、數學運算、異常處理或復雜度處理中的任何一種。
2 包括靈敏度控制、邏輯處理、數學運算、異常處理或復雜度處理中的任何兩種
3 包括靈敏度控制、邏輯處理、數學運算、異常處理或復雜度處理中的任何三種
4 包括靈敏度控制、邏輯處理、數學運算、異常處理或復雜度處理中的任何四種
5 包括所有的靈敏度控制、邏輯處理、數學運算、異常處理或復雜度處理。
該特性具有正態分布,主要分布在均值3,0和5的分值較少。
復雜處理的分值在大型機上是最高的,而微機上是最低的;在3GL項目中最高,4GL項目中最低。該分值在新的項目中較增強型的項目高,并具有較扁平的分布。處理復雜度從1991年~1996年穩定的增高。
6.2.3.2 劃分重用性復雜度:
應用軟件開發以滿足一個或是多個用戶的需要?
重用性描述了應用軟件和軟件中的代碼特定的被設計、開發和支持,以在其它軟件中重用的程度。
以下是記分的指南:
0 無重用代碼。
1 可重用代碼在應用軟件中重用。
2 10%以下的應用軟件考慮多個用戶的需要。
3 10%以上的應用軟件考慮多個用戶的需要。
4 應用軟件特定的被打包和/或文檔化以易于重用,應用軟件被用戶在源代碼級別客戶化。
5 應用軟件特定的被打包和/或文檔化以易于重用,應用軟件通過用戶參數維護的方式被客戶化使用。
重用性的重要性通常較低,59%項目低于均值,僅有14%高于平均值,但它處于非;旌系臓顟B。
決策支持系統中重用性考慮比其它類型多一些,而個人PC上的重用性的考慮較大型機少。
6.2.3.3 劃分安裝容易程度復雜度:
轉換和安裝的困難程度多大?
安裝的容易程度描述了環境的變化對應用軟件開發的影響程度。轉換和安裝的容易程度是應用軟件的特性之一。轉換和安裝計劃和/或轉換工具在系統測試階段被提供和測試。
以下是記分的指南:
0 用戶未提出特殊的要求,安裝不需要特殊的調整。
1 用戶未提出特殊的要求,但安裝不需要特殊的調整。
2 用戶提出轉換和安裝的要求,轉換和安裝指南被提供和測試。項目中轉換的因素不被認為是重要的因素。
3 用戶提出轉換和安裝的要求,轉換和安裝指南被提供和測試。項目中轉換的因素被認為是重要的因素。
4 在2的基礎上,自動轉換和安裝工具被提供和測試。
5 在3的基礎上,自動轉換和安裝工具被提供和測試。
該特性具有最廣泛的分布性,總的來說分值較低(54%低于均值,22%高于均值),但是兩種極端的情況均有體現。安裝的容易程度在20%的項目中不被考慮,而在15%的項目中非常重要。
增強型項目的分值比新開發的項目高;大型機比其它平臺高;工程系統比其它業務領域高。
6.2.3.4 劃分操作容易程度復雜度:
應用軟件在啟動、備份和恢復的有效性/自動化程度?
操作的容易特征描述了應用軟件在操作方面(如,啟動、備份和恢復過程)的考慮程度。操作的容易程度是應用軟件的特性之一。應用軟件最小化人工活動,如磁盤的mount、文件處理和直接的現場人工干涉。
以下是記分的指南:
0 除了平常的備份過程,用戶沒有要求特殊操作上的考慮。
1 任意一種人工啟動、備份和恢復;自動啟動、備份和恢復;磁盤mount的最小化;或文檔(paper)處理最小化。
2 任意兩種人工啟動、備份和恢復;自動啟動、備份和恢復;磁盤mount的最小化;或文檔(paper)處理最小化。
3 任意三種人工啟動、備份和恢復;自動啟動、備份和恢復;磁盤mount的最小化;或文檔(paper)處理最小化。
4 任意四種人工啟動、備份和恢復;自動啟動、備份和恢復;磁盤mount的最小化;或文檔(paper)處理最小化。
5 應用程序設計為無人操作。無人操作意味除了啟動和關閉系統,系統不需要操作員的干涉。自動錯誤恢復是應用軟件的特色。
操作容易程度是不怎么考慮的問題。該特性的分值近乎最低:62%低于均值,僅有14%高于平均值。分值分布在0~3,2是最普遍的情況。
當項目根據應用類型分組時,出現的唯一重大的差異:信息管理系統和決策支持系統的分值較交易/生產系統和辦公信息系統高。
6.2.3.5 劃分多個地點復雜度:
應用軟件是否設計支持多個地點場所/機構?
多個場所描述了應用軟件被開發以適于多個地點和用戶機構的程度。應用軟件特定的被設計、開發、支持,以工不同的組織機構在不同地點安裝。
以下是記分的指南:
0 用戶需求不需要考慮多個用戶/安裝地點的需要。
1 設計中考慮了多個場所的需要,應用軟件設計在相同的軟硬件環境中操作。
2 設計中考慮了多個場所的需要,應用軟件設計在相似的軟硬件環境中操作。
3 設計中考慮了多個場所的需要,應用軟件設計在不同的軟硬件環境中操作。
4 文檔和支持計劃被提供和測試,以支持應用軟件在不同地點的使用;應用軟件如1或2所述。
5 文檔和支持計劃被提供和測試,以支持應用軟件在不同地點的使用;應用軟件如3所述。
該特性在所有的因素中具有最低的取值:68%低于均值,33%具有最小的可能值0。
分值對于法律系統非常低,而對于工程系統較高。新開發的系統比增強或重新開發的系統高;3GL項目比其它的高;中型機比大型機高。同樣,管理系統和決策系統的分值較交易/生產系統和辦公系統高。
6.2.3.6 劃分修改容易程度復雜度:
應用軟件是否被設計以方便于修改?
修改方便描述了應用軟件被開發以利于處理邏輯或數據結構修改的程度。下列特性適用于應用軟件:處理請求的靈活的查詢和報表(如,簡單、平均和復雜)和使用每日或隔日更新的表保存業務控制數據。
以下是記分的指南:
0 無
1 任何一種簡單、平均或復雜的查詢和報表,或者即時的或隔日的業務控制數據維護。
2 任何兩種簡單、平均或復雜的查詢和報表,或者即時的或隔日的業務控制數據維護。
3 任何三種簡單、平均或復雜的查詢和報表,或者即時的或隔日的業務控制數據維護。
4 任何四種簡單、平均或復雜的查詢和報表,或者即時的或隔日的業務控制數據維護。
5 所有五種簡單、平均或復雜的查詢和報表,或者即時的或隔日的業務控制數據維護。
該特性的每個分值均有較好的體現,但普遍較低:53%低于均值,20%高于平均值。分布是雙峰值的,兩個通常的取值是0和3。
對于3GL項目取值較低,4GL項目較高。新開發的項目低;大型機低;工程項目高。并不令人奇怪,該特性對信息管理系統和決策支持系統較重要,而交易/生產系統的重要性較低。
6.2.3.7 決定應用復雜度
6個帶權重的分值相加即為應用軟件復雜度。
6.2.4 決定加權因子:
系統復雜度、輸入和輸出復雜度和應用軟件復雜度相加即為加權因子的值。
6.3 決定功能點:
決定包括未調整功能點和加權因子的功能點。
6.3.1 決定復雜度因子:
將加權因子乘以0.01,加上0.65,作為復雜度因子。
6.3.2 決定功能點:
將未調整功能點和復雜度因子相加得到功能點。
參考資料
Ø Fischman, Lee, Evolving Function Points, Crosstalk, February 2001.
Ø Garmus, David, & Herron, David, Function Point Analysis: Measurement Practices for Successful Software Projects, Addison Wesley, 2001.
Ø International Function Point User’s Group (IFPUG), Function Point Counting Practices Manual (Release 4.1), May 1999.
Ø Longstreet, D., Function Points Step by Step, Longstreet Consulting, Inc., January 1999.
Ø Lokan, C. J., An Empirical Analysis of Function Point Adjustment Factors, University of South Wales, December 1998.
Ø Garmus, David, & Herron, David, Measuring the Software Process: A Practical Guide to Functional Measurements, Prentice Hall, 1996.
Ø Albrecht, Allan J., Measuring Application Development Productivity, Proceedings SHARE/GUIDE IBM Applications Development Symposium, October 1979.
文章來源于領測軟件測試網 http://www.kjueaiud.com/