1. 程式人生 > >功能點(FP)估演算法(三) 調整因子

功能點(FP)估演算法(三) 調整因子

用功能點估演算法計算軟體專案功能點時會用到調整因子(或稱調整係數)。功能點的調整係數是通過通用系統特性及其影響程度來評定的,對每個常規系統特性的評估由其影響程度(DI)而定,分為0-5級:ITPUB個人空間8IZ,w1j)A
    0 毫無影響
    1 偶然影響
    2 適度影響
    3 一般影響

    4 重要影響

    5 強烈影響

    然後依次對以下14個系統常規特性進行打分,並帶入以下計算公式算出功能點的調整因子。
    Value Adjustment Factor=( sum of (DI) * 0.01 ) + 0.65

計算調整因子

1. 資料通訊
    資料通訊指的是應用程式直接與處理器通訊的程度。通常我們都是通過某種通訊手段來實現在一個應用中所使用的資料或者控制資訊。連線到本地控制器上的終端被認為是通訊設施,協議則指兩個系統或裝置之間進行通訊時使用的一種約定。所有的資料通訊連結都需要某種協議。

0          應用程式是單純的批處理或者PC stand-alone
1 應用程式是一種批處理過程,但是包含遠端資料的錄入或遠端列印
2 應用程式是一種批處理過程,但是包含遠端資料的錄入和遠端列印
3 應用程式包括線上資料收集或者包括批處理或查詢系統的遠端處理的前端應用
4 應用程式不單只是前端應用,但是僅支援一種遠端處理通訊協議
5 應用程式不單只是前端應用,還支援多於一種的遠端處理通訊協議


2. 分散式資料處理
    分散式資料處理是應用在內部元件之間傳遞資訊的程度。這個特性是在應用邊界內體現的。

0          應用程式不支援元件之間的資料傳輸和處理功能
1 應用程式為使用者可能進行的處理準備資料(例如使用電子表格或者資料庫
等)
2 應用程式所準備的資料是為了在系統另外一個元件上傳輸和處理,並非為終端使用者所處理。
3 分散式處理和資料傳輸是線上的,並且是單向的
4 分散式處理和資料傳輸是線上的,並且是雙向的
5 由系統中最恰當的元件動態地執行處理功能


3. 效能
    效能是吞吐量、處理時間等指標對開發的影響。使用者所提出的效能要求將直接影響到系統的設計、實施、安裝和支援。

0          使用者沒有提出效能方面的要求
1 使用者提出了效能和設計方面的要求,但不需要採取特定措施
2 響應時間和吞吐量在系統峰值時是關鍵的,但是不需要採取相應的CPU使用方面的特殊設計。處理的最後期限是在下一個工作日。
3 在任何時候響應時間和吞吐量都是關鍵的,但是不需要採取相應的CPU使用方面的特殊設計。處理的完成期限比較嚴格。
4 除了上面一項的要求外,由於對需求的要求比較嚴格,在設計階段就要進行效能分析。
5 除了上面一項的要求之外,在設計和實施階段需要使用效能分析工具來判斷效能要求的完成情況。


4. 大業務量配置
    大業務量配置是指計算機資源對應用開發的影響程度。大業務量的執行配置對設計有特殊要求,是必須考慮的一個系統特性。

0          沒有提出明確的執行方面的限制
1 有執行方面的限制,但是不需要採取特別的措施以滿足執行限制
2 提出了一些安全和時間方面的限制
3 應用程式的某些部分對處理器有特定的要求
4 提出的執行限制對應用的中央處理器或者專用處理器有特殊的要求
5 除上面一項之外,還對應用的分散式元件提出了限制


5. 事務處理率ITPUB個人空間d(K!x:@&F W5cr
    事務處理率是業務交易處理速度對系統的設計、實施、安裝和支援等的影響。

0          預計不會出現週期性的高峰事務處理期
1 預計會有周期性的高峰事務處理期(例如:每月、每季、每年)
2 預計每週都會出現高峰事務處理期
3 預計每天都會出現高峰事務處理期
4 使用者在應用程式需求或者服務級別協議中對事務率要求很高,因此必須在設計階段進行效能分析。
5 使用者在應用程式需求或者服務級別協議中對事務率要求很高,因此必須進行效能分析並在設計、開發和安裝階段中使用到效能分析工具。


6. 線上資料輸入
    線上資料輸入是指資料通過互動的方式輸入系統的程度。系統中包括線上資料輸入和控制資訊功能。

0          所有事務都是批處理的
1 1%~7%的事務是以互動式的方式進行資料錄入
2 8%~15%的事務是以互動式的方式進行資料錄入
3 16%~23%的事務是以互動式的方式進行資料錄入
4 24%~30%的事務是以互動式的方式進行資料錄入
5 30%以上的事務是以互動式的方式進行資料錄入

7. 終端使用者效率
    終端使用者效率是指對應用的人文因素及使用的便捷程度等的考慮程度。
    如下功能設計是針對終端使用者效率的:
  • 頁面導航
  • 選單
  • 線上幫助或文件
  • 游標自動跳轉
  • 可以滾動
  • 線上遠端列印
  • 預定義的功能鍵
  • 線上做批量提交任務
  • 游標可以選取介面上的資料
  • 使用者使用大量反白顯示、重點顯示、下劃線或其他的標識
  • 線上copy使用者文件
  • 滑鼠拖動功能
  • 彈出窗體
  • 使用最少的介面完成某種商業功能
  • 雙語言支援(如果選擇了這個就算4項)
  • 語言支援(如果選擇了這個就算6項)
0          以上的一個都不包括
1 包括以上的1~3個
2 包括以上的4~5個
3 包括以上的6個或以上,但是沒有使用者對於效率的要求
4 包括以上的6個或以上,對使用者使用效率有較高要求,因而必須考慮使用者方面的設計(例如,最少擊鍵次數、儘可能提供預設值、模版的使用)
5 包括以上的6個或以上,使用者對效率的要求使得開發人員必須使用特定的工具和流程以判定使用者對效率的要求已經被達成


8. 線上更新ITPUB個人空間
    線上更新是指內部邏輯檔案ILF被線上更新的程度。應用系統提供線上更新內部邏輯檔案的功能。

0          沒有線上更新
1 包含1~3 個控制檔案的線上更新。更新的流量低,恢復容易。
2 包含對4 個以上控制檔案的線上更新。更新的流量低,恢復容易。
3 包含對主要ILF 的更新。
4 除了3 之外,在設計和實施中要考慮對資料丟失的防範。
5 除了4 之外,大量的資料恢復工作要考慮成本因素,同時包含了高度自動化的恢復流程。

9. 複雜處理
    複雜處理描述了邏輯處理對應用開發的影響程度。它包含以下要素:
  • 敏感控制(例如特殊的稽核過程)和/或程式特定的安全處理
  • 大量的邏輯處理
  • 大量的數學處理
  • 因為例外處理造成的需要重新處理的情況(例如,由TP中斷、資料值缺少和驗證失敗導致的ATM事務)
  • 多種可能的輸入/輸出造成的複雜處理
0          上面一個都不滿足
1 只滿足一個
2 只滿足兩個
3 滿足三個
4 滿足四個
5 都滿足


10. 可複用性
    應用系統中的應用和程式碼經過特殊設計、開發和支援,可以在其他應用系統中複用。

0          沒有可複用的程式碼
1 程式碼在應用之內複用
2 應用中被其他使用者複用的部分不足10%
3 應用中被不止一個使用者使用的部分超過10%
4 應用遵從一種易於複用的方式被打包和文件化。使用者在原始碼級客戶化該應用。
5 應用按照一種易於複用的方式被打包和文件化。使用者使用使用者引數來對該應用進行客戶化。


11. 易安裝性

    易安裝性指應用系統的轉換和安裝容易度對開發的影響程度。系統測試階段提供了轉換和安裝計劃/轉換工具。

0          使用者對安裝沒有特定的要求
1 使用者對安裝沒有特定的要求,但有特定的安裝環境要求
2 使用者提出了安裝和轉化的要求,轉化/安裝指南被經過測試提供給使用者。但是轉化的影響對該應用不重要。
3 使用者提出了安裝和轉化的要求,轉化/安裝指南被經過測試提供給使用者。轉化的影響對該應用來說是重要的。
4 除了2 的要求之外,需要提供經過測試的自動化的安裝和轉化工具。
5 除了3 的要求之外,需要提供經過測試的自動化的安裝和轉化工具。


12. 易操作性
    易操作性指的是應用對執行的影響程度,如有效啟動、備份和恢復規程的影響。易操作性是應用提供的一種特性,它最小化了手工操作的要求。

0          使用者沒有指定除正常備份程式外的其它特定操作
1 提供高效的啟動、備份和恢復程序,但需要人手操作
2 提供高效的啟動、備份和恢復程序,不需要人手操作(當作兩項計算)
3 應用程式對磁帶的需求最小化
4 應用程式對硬拷貝處理的需求最小化
5 程式設計成無人操作模式。無人操作模式的意思是除了啟動和關閉之外,不需要對系統進行操作。程式的其中一個功能就是錯誤自動恢復。


13. 多場地
    多場地指應用系統經特殊設計、開發可以在多個組織、多個地點應用的程度。

0          使用者需求不含多場地和組織的要求
1 考慮了多場地的要求,但是設計要求應用在不同的場地使用相同的軟硬體環境
2 考慮了多場地的要求,但是設計要求應用在不同的場地使用類似的軟硬體環境
3 考慮了多場地的要求,同時設計支援應用在不同的場地使用不同的軟硬體環境
4 在1 或者2 的要求之上,提供了經過測試的多場地的文件和支援計劃
5 在3 的要求之上,提供了經過測試的多場地的文件和支援計劃

14. 支援變更
    支援變更是指應用在設計上考慮支援處理邏輯和資料結構變化的程度。
    可以具有如下的特性:
  • 提供可以處理簡單要求的彈性查詢和報告功能,如對一個ILF進行與(或)邏輯
  • 提供可以處理一般複雜度要求的彈性查詢和報告功能,如對多於一個的ILF進行與(或)邏輯(當作兩項計算)
  • 提供可以處理複雜要求的彈性查詢和報告功能,如對一個或多個ILF進行與(或)邏輯的組合(當作三項計算)
  • 業務控制資料被儲存到使用者通過線上互動程序維護的表中,但變更只會在第二個工作日生效
  • 業務控制資料被儲存到使用者通過線上互動程序維護的表中,且變更即時生效
0         一個都不滿足
1 合計滿足一個
2 合計滿足二個
3 合計滿足三個
4 合計滿足四個
5 合計滿足五個

計算調整後的功能點個數

    國際IFPUG組織將軟體專案分為三類,功能點估演算法適用於任何一類專案,其計算公式中的術語請詳見表1。

  • 功能點的原始計算公式:

    FP Count =UFP * VAF

  • 新開發專案

    有時新開發的軟體專案也需要與其他現存的軟體系統進行整合。例如:一個企業新開發的MIS內部管理系統經常會與財務系統進行整合。這時除了考慮本身專案的功能點個數外,還要考慮系統整合或資料遷移部分的工作量。因此,其功能點計算公式如下:
    FP Count =(UFP+CFP)* VAF

  • 二次開發的專案
        有時新開發的軟體專案是在原有基礎上進行二次開發的,只是為了增加一些新功能。因此,其功能點計算公式如下:
        FP Count = ADD * VAF
  • 功能增強的專案
        功能增強專案的功能點估算比較複雜。在計算功能點前大家需要計算有哪些是新增加的功能,哪些是被修改的功能,哪些是屬於資料遷移或系統整合的功能。然後計算新系統技術複雜度的調整因子“VAFA”,並在此基礎上計算系統功能點的數量。當然,此類專案也會去掉一些原有功能,那麼在原有系統的技術複雜度基礎上重新計算功能點的調整因子“VAFB”,再計算所去掉功能貢獻的功能點數量。因此,其功能點計算公式如下:
        FP Count = [(ADD+CHGA+CFP)* VAFA]+(DEL * VAFB)

表1 功能點技術公式術語

術語 英文 中文含義 ADD Added functionality 被新增的功能點個數 CFP Conversion functionality 被轉換的功能點個數 CHGA UFP of changed functionality after enhancement 功能增強後所改動的功能所貢獻的未調整的功能點個數 DEL Deleted functionality 被刪除的功能點個數 UFP Unadjusted functional point count 未調整的功能點個數 VAF

Value adjustment factor

VAF=(sum of(DI)* 0.01)+ 0.65

功能點的調整因子的計算公式
VAF=(sum of(DI)* 0.01)+ 0.65 VAFA Value adjustment factor after enhancement 功能增強後的功能點調整因子 VAFB Value adjustment factor before enhancement 功能增強前的功能點調整因子