电竞比分网-中国电竞赛事及体育赛事平台

分享

2種常見軟件項目工作量估算方法簡述

 軟件造價bscea 2019-06-18

前言

  本文的目標讀者是從事軟件行業(yè)想快速了解軟件開發(fā)過程工作量評估的人員。軟件工作量評估方法很多,如代碼行法、類比法、WBS、故事點、用例點、NESMA、FPA、cosmic、COCOMOⅡ等。本文只是選取主流評估方法進行簡述,每一種方法在實際操作過程中有若干條計數(shù)規(guī)則,在此并未闡述,并不能作為評估工作的實施指南。實際使用方法時,需以各方法發(fā)布機構(gòu)發(fā)布的官方文檔為準。 

一、 功能點 FPA 方法

(一)    簡介 

  FPA 是從用戶角度出發(fā)度量軟件規(guī)模的一種方法。它從用戶的角度出發(fā),將系統(tǒng)分為數(shù)據(jù)功能和事物功能兩大類,分別根據(jù)具體的規(guī)則來計算功能點,最后結(jié)合系統(tǒng)的特征因子來調(diào)整功能點數(shù), 從而得到最終的系統(tǒng)規(guī)模。


  FPA 較適用于商業(yè)數(shù)據(jù)處理、管理信息系統(tǒng)的估算,因為它能更好地反映系統(tǒng)需求上的復雜度和數(shù)量。從滿足客戶需求的角度講,F(xiàn)PA 具有階段性,對用戶早期參與項目管理、項目經(jīng)理制定項目計劃更有意義。

(二)    重要概念

功能點估算法是從用戶視角出發(fā),對軟件的規(guī)模從邏輯設計的角度進行度量的標準方法。 

在功能點估算的過程中,以下概念應貫穿始終: 

1、    用戶視角 

用戶視角(User View)是指功能點被用戶所認可,由用戶需求書面正式描述,且獨立于所采用的開發(fā)技術(shù)。 

2、    穿越系統(tǒng)邊界 

穿越系統(tǒng)邊界(Application Boundary)是指數(shù)據(jù)或控制信息由系統(tǒng)內(nèi)發(fā)送到系統(tǒng)外,或由系統(tǒng)外發(fā)送到系統(tǒng)內(nèi)。
是否穿越系統(tǒng)邊界是 FPA 重要的判斷標準。

3、    IPO 的異同

輸入(Input)、處理過程(Process)和輸出(Output)的同與不同亦是FPA 重要的判斷標準。 

(三)    FPA 估算方法基本步驟 

1、 收集可得的文檔

文檔可以包括需求、數(shù)據(jù)/對象模型、類圖、數(shù)據(jù)流圖、用例、過程描述、報表顯示、界面顯示、用戶手冊,以及其它軟件開發(fā)文檔。 

2、 確定計數(shù)范圍和邊界并識別功能用戶需求

計數(shù)范圍和邊界需識別計數(shù)目的。不同的計數(shù)目的決定了計數(shù)范圍和軟件邊界的劃分。實際使用過程中通常為系統(tǒng)的管理邊界, 特殊系統(tǒng)會以架構(gòu)為邊界。 

3、 度量數(shù)據(jù)功能

數(shù)據(jù)功能的計算工序(Counting Procedures)包括以下活動:


FPA 將數(shù)據(jù)功能分為兩類,分別為內(nèi)部邏輯文件(ILF)和外部接口文件(EIF)。 

1)    識別內(nèi)部邏輯文件 ILF 

內(nèi)部邏輯文件(Internal Logical File,簡稱ILF)是在系統(tǒng)邊界內(nèi)部維護的一組用戶可識別的邏輯上相關的數(shù)據(jù)或控制信息。ILF 的首要目的是保存由被度量系統(tǒng)的一個或多個基本流程維護的數(shù)據(jù)。 

2)    識別外部接口文件EIF 

外部接口文件(External Interface File,簡稱 EIF)是用戶可識別的、邏輯相關的數(shù)據(jù)組或控制信息組,其由被度量應用所引用,但在另一應用邊界內(nèi)維護。EIF 的主要目的是保存由被度量應用的一個或多個基本過程引用的數(shù)據(jù)。這意味著一個應用的 EIF 必定是另一個應用的ILF。 

3)    識別數(shù)據(jù)功能 DET  

數(shù)據(jù)元素類型(Data Element Types,簡稱DETs)是指在一個ILF 或EIF 內(nèi),用戶可認知的、唯一的、非重復的字段。如客戶姓名、年齡、地址、聯(lián)系方式等。 

4)    識別數(shù)據(jù)功能 RET  

記錄元素類型(Record Element Types,簡稱 RETs)是指在一個ILF 或EIF 內(nèi),用戶可認知的數(shù)據(jù)元素子集。如客戶的家庭信息為客戶信息的 RET 。

5)    確定ILF 或EIF 的貢獻度 

根據(jù)每一個已確認的 ILF 和EIF 的復雜度(DETs 和RETs 數(shù)量),對其進行分類,并賦予未調(diào)節(jié)功能點數(shù)值(Unadjusted Function Points,簡稱UFP)的過程,即為確定其貢獻度。


6)    確定ILF 或EIF 的貢獻度值 

對用戶而言,ILF 與EIF 的業(yè)務意義是完全不同。因此,對于貢獻度相同的 ILF 和EIF,其未調(diào)節(jié)功能點值是不同的。


4、 度量事物功能

事物功能的計算工序(Counting Procedures)包括以下活動:


FPA 將事物功能分為三類,外部輸入(EI)、外部輸出(EO)和外部查詢(EQ)。 

1)    識別外部輸入(EI):是處理來自系統(tǒng)邊界外部的數(shù)據(jù)或控制信息的一個基本過程。其首要目的(Primary Intent,簡稱 PI) 是維護一個或多個ILFs 或者去改變系統(tǒng)行為。 

2)    識別外部輸出(EO):是發(fā)送數(shù)據(jù)或控制信息到系統(tǒng)邊界外部的一個基本過程。其首要目的(PI)是通過處理邏輯呈現(xiàn)信息給用戶,并非或者另外檢索數(shù)據(jù)或控制信息。

3)    識別外部查詢(EQ):是發(fā)送數(shù)據(jù)或控制信息到系統(tǒng)邊界外部的一個基本過程。其首要目的(PI)是通過從一個 ILF 或EIF 檢索數(shù)據(jù)或控制信息,呈現(xiàn)信息給用戶。

4)    基本過程 

把功能用戶需求組合或分解為最小活動單元,滿足以下條件:

1)    對用戶有意義,構(gòu)成一個完整的事務; 

2)    自包含;

3)    使應用的業(yè)務保持持續(xù)狀態(tài), 

例 :功能用戶需求要求提供維護員工信息的功能。該需求被分解為較小的工作單元,如添加員工信息、修改員工信息、刪除員工信息和查詢員工信息。

5)    識別事物功能 DET 

數(shù)據(jù)元素類型(Data Element Types,簡稱DET)是指在一個EI、EO 或EQ 內(nèi),用戶可認知的、唯一的、非重復的字段。

6)    識別事物功能 FTR 

引用文件類型(File Types Referenced,簡稱FTR)是指一個交易功能讀取或維護的一個ILF,或者一個交易功能所讀取的一個
EIF。

7)    確定EI、EO 和EQ 的貢獻度 

根據(jù)每一個已確認的 EI、EO 和EQ 的復雜度(FTRs 和DETs 數(shù)量),對其進行分類,并賦予未調(diào)節(jié)功能點數(shù)值(Unadjusted Function Points)的過程,即為確定其貢獻度。



8)    確定EI、EO 和EQ 的貢獻度

我們應注意到,貢獻度相同的 EI、EQ,其未調(diào)節(jié)功能點值是相同的;與EI、EQ 貢獻度相同的 EO,其未調(diào)節(jié)功能點值略高。


5、 計算功能規(guī)模

1)    計算未調(diào)整功能點數(shù) 

UFP= ILFs+EIFs+EIs+EOs+EQs 

2)    確定系統(tǒng)調(diào)節(jié)因子 

在實際軟件項目開發(fā)過程中因技術(shù)因素和環(huán)境因素會對軟件項目工作量有不同程度的影響??筛鶕?jù)組織級基準庫設定相關調(diào)整因子(System Adjustment Factor,簡稱SAF)。如應用類型、質(zhì)量特征、開發(fā)語言、團隊背景、評估時點等。

計算調(diào)整后的功能點數(shù)  AFP=UFP*SAF 

3)    確定生產(chǎn)率PDR 

可根據(jù)系統(tǒng)特點測算組織級系統(tǒng)基準生產(chǎn)率。

4)測算工作量 

工作量  AE=AFP*PDR 

6、 報告功能點計數(shù)結(jié)果

將功能點計數(shù)過程和工作量計數(shù)結(jié)果編寫報告呈現(xiàn)給讀者。

二、 COSMIC 方法

(一)    簡介 

COSMIC 是通用軟件度量國際聯(lián)盟的簡寫(Common Software Measurement International Consortium,COSMIC),它成立于1998 年,是一個由全球軟件度量專家組成的非盈利自愿性組織,致力于軟件規(guī)模度量方法的研究與推廣。2002 年 1 月COSMIC 所推出的全功能點規(guī)模度量方法成為了 ISO 的標準,最新標準為 ISO/IEC 19761:2011“軟件工程—COSMIC—功能規(guī)模度量方法”。

COSMIC 方法包含了一組應用模型、原則、規(guī)則和過程度量給定軟件的功能性用戶需求的方法。其結(jié)果是一個數(shù)字化的“量化數(shù)值”,根據(jù) COSMIC 方法得到的軟件功能規(guī)模。它適用于以下領域的軟件功能度量: 

    業(yè)務應用軟件,這類軟件通常用于支持業(yè)務管理。如銀行、保險、電信等。 

    實時軟件。用于過程控制和自動數(shù)據(jù)獲取軟件。如嵌入式程序、中間件。

    平臺軟件,如可復用的構(gòu)建及設備驅(qū)動程序等。

功能規(guī)模是通過“數(shù)據(jù)移動(Data movement)”的個數(shù)來度量。 

(二)    原理 

功能規(guī)模是通過“數(shù)據(jù)移動(Data movement)”的個數(shù)來度量。

(三)    度量過程 

COSMIC 方法的度量分為三個階段: 

1、    度量策略階段 

    確定度量目的 

    確定度量范圍 

    確定功能用戶 

    確定需求描述詳細程度

2、    映射階段

    識別功能處理 

    識別興趣對象與數(shù)據(jù)組(興趣對象指軟件要處理的數(shù)據(jù)對象,如客戶;數(shù)據(jù)組是一組興趣對象屬性的組 合,如客戶姓名、年齡,聯(lián)系方式等)

    識別數(shù)據(jù)屬性

    識別數(shù)據(jù)移動(輸入、輸出、讀、寫)

3、    度量階段 

    新增需求計數(shù)

    變更需求計數(shù)

    本地化規(guī)則計數(shù)(定制規(guī)則)

    生成度量報告 

(四)    數(shù)據(jù)移動種類 

 4 種類型的數(shù)據(jù)移動:輸入(Entry)、輸出(eXit)、讀(Read) 和寫(Write)。

    輸入(E),是從用戶穿越被度量系統(tǒng)的范圍傳輸數(shù)據(jù)到系統(tǒng)內(nèi)部,這里提到的用戶既包括系統(tǒng)的使用人員,也包括其他軟件或者硬件系統(tǒng)。

    輸出(X),是一個數(shù)據(jù)組從一個功能處理通過范圍移動到需要它的用戶。

    讀(R),是從永久性的存儲設備讀取數(shù)據(jù)。

    寫(W),是存儲數(shù)據(jù)到永久性的存儲設備。

(五)    示例 

用戶借閱圖書,圖書管理員需錄入借閱人信息并保存到數(shù)據(jù)庫中,同時提供查詢登記列表功能。此時錄入借閱人信息為一個輸入
CFP,提示信息為一個輸出 CFP,保存錄入信息為一個寫CFP,查詢登記列表功能查詢條件輸入為一個輸入CFP 和從數(shù)據(jù)庫讀取登記信息為一個讀CFP。然后匯總計算出總功能點數(shù)為 5 個 FP。 

原則:每一個功能必須有一個輸入,一個輸出或一個寫,即至少2 個CFP 

(六)    工作量測算

參考FPA 方法和用例點方法工作量測算方法,設定相關技術(shù)調(diào)整因子和環(huán)境調(diào)整因子以及生產(chǎn)率,測算軟件工作量。 

使用COSMIC 方法要求度量者對軟件系統(tǒng)的實現(xiàn)非常清楚,了解系統(tǒng)的內(nèi)部結(jié)構(gòu),并對系統(tǒng)能夠明確劃分出應用層級,以及層級之間的數(shù)據(jù)處理和數(shù)據(jù)移動。

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多