1. 程式人生 > >軟體成本估算中的功能點分析

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

隨著計算機技術的發展,現在的計算機環境與傳統的環境已經有了天壤之別。因此,軟體工程人員一直在尋找一種可以廣泛應用的度量單位。這個度量單位需要獨立於開發所採用的技術,支援需求收集、估計、專案管理和質量度量的需要。功能點分析就是能夠滿足上述需求的選擇。
    經驗證明,應用功能點分析來度量軟體的規模是非常可靠的,尤其是在專案估計、變更管理、生產率度量和功能需求的溝通等方面。
    很多人問,功能點分析是否適用於評價現在應用越來越多的計算機環境,例如,實時的嵌入式編碼和麵向物件的程式設計方法。既然功能點是從使用者的角度按功能來表達開發的工作產品,那麼它是獨立於所採用的技術或工具的。
    以下是對功能點分析方法和潛在收益的介紹。
功能點分析介紹
    功能點分析的初衷之一是讓專案組和客戶可以使用同一方法定義功能需求。結果證明,理解客戶需求最好的辦法是站在客戶的角度分析軟體系統產生的結果,從而來確定客戶關心的問題。因此,功能點分析的一個主要的目標就是從使用者的角度定義系統的能力。為了達到這個目標,專家們分析了人們對計算機系統的不同使用方式。從使用者的觀點來看,系統是從五個基本方面幫助他們進行工作的:其中兩項是終端使用者的資料需求,因此稱作“資料功能”;另外三項強調客戶對資料的可呼叫性,稱作“交易功能”。
功能點的五個要素
· 資料功能
o 內部邏輯檔案
o 外部介面檔案
· 交易功能
o 外部輸入
o 外部輸出
o 外部查詢
    內部邏輯檔案:這是第一項資料功能,使客戶可以使用他們負責維護的資料。例如駕駛員在起飛行前通過顯示器輸入一系列航行資料,這些資料儲存在一個檔案裡備用,並可以在執行過程中進行修改。因此,駕駛員負責維護包含航行資訊的檔案。資料在系統中的邏輯分組是由終端使用者維護的,我們把它叫做“內部邏輯檔案”(ILF)。
    外部介面檔案:這是第二項資料功能,也和資料的邏輯分組有關。在這種情況下,使用者不負責維護資料,資料在另一系統中駐留由其他使用者進行維護。該資料只供系統使用者參考使用。例如:飛行中,駕駛員可能需要參考某衛星或地面定位系統的定位資料。駕駛員不負責更新這些資料但要參考使用。這樣,這些只供參考使用的其他系統的資料分組就稱為外部介面檔案(EIF)。
    以下的功能的重點是客戶可以呼叫ILF和EIF中資料的能力,主要包括:維護、查詢、輸出資料。這類功能稱為交易功能。
    外部輸入:這是第一項交易功能,是指使用者可以根據需要通過增、刪、改來維護內部邏輯檔案。例如,駕駛員在飛行前和飛行中可以增加、刪除、修改航行資訊。此時,飛行員使用的功能是外部輸入(EI)。外部輸入使使用者可以維護ILF。
    外部輸出:下一項交易功能是使使用者可以輸出結果。例如:駕駛員能夠分別顯示地面速度、實際氣流速度和經過校準的氣流速度。顯示結果就是經過呼叫維護資料和參考資料獲得的。在功能點術語中,顯示的結果就稱為“外部輸出”(EO)。
    外部查詢:最後一項交易功能是指使用者可以通過計算機系統選擇特定的資料並顯示結果。為了獲得這項結果,使用者要輸入選擇資訊抓取符合條件的資料。此時沒有對資料的處理,是直接從所在的檔案抓取資訊。例如:駕駛員要顯示預先設定的地形圖,輸出的結果就是直接從資訊存貯位置提取的資訊;這裡我們稱作“外部查詢”(EQ)。
調整因素
    除了以上的功能要素外,功能點分析中還要考慮兩方面的調整因素:
    功能複雜性:第一個調整因子,是指要考慮各個功能的複雜性。功能複雜性是由某一功能的資料分組和資料元素共同決定的。計算資料元素和無重複的資料分組個數後,將數值和複雜性矩陣對照,就可以確定該功能的複雜性屬於高、中、低。以上的五個功能要素(ILF,EIF,EI,EO和EQ),每個都有各自的複雜性矩陣。以下是外部輸出的複雜性矩陣。

通過對所有的功能要素的分析並將結果相加,就獲得了“未調整的功能點數”
數值調整因子:未調整的功能點數要乘以第二類調整因子——數值調整因子。該因子是通過考察系統的技術和執行特點獲得的,主要是通過考察14個方面的特點得到結果,它們是:
1. 資料通訊 應用系統中的資料和控制資訊通過通訊設施傳送或接收。
2. 分散式資料處理 應用系統在應用範圍內具有分散式資料或處理功能。
3. 執行 客戶提出或批准的應用系統的執行目標可以是:響應速度、處理量、對設計、開發、執行和支援的影響(或可能的影響)
4. 大業務量配置 大使用者量配置對設計有特殊要求,是應用系統的一個特性。
5. 交易率 交易率很高並影響設計、開發、安裝和支援。
6. 線上資料輸入 系統中包括線上資料輸入和控制資訊功能。
7. 終端使用者效率 線上功能強調了對使用者效率的要求。
8. 線上更新 應用系統包括線上更新內部邏輯檔案的功能。
9. 複雜處理 應用系統有進行復雜處理的特點。
10.可複用性 應用系統中的應用和程式碼經過特殊設計、開發和支援,可以在其他應用系統中複用。
11.易安裝性 應用系統的轉換和安裝容易。 系統測試階段提供了轉換和安裝計劃和/或轉換工具。
12.易操作性 應用系統具有易操作性。系統測試階段,提供了可以有效啟動、備份和恢復規程。
13.多地址 應用系統經特殊設計、開發、支援可以在多個組織、多個地點安裝。
14.支援變更 應用系統經特殊設計、開發、支援,可以支援變更。
    計算時,根據以上的這些因子對系統的影響進行評分,對利用該分數對“未調整的功能點數”可以影響到35%,結果就是“經調整的功能點數”。
功能點計算的實施
    計算功能點的實施有幾種方法,Q/P管理集團認為進行有條理的專題研討可以非常有效、準確地收集的必要資料。專題研討可以讓計算者從功能的層面建立應用系統的表示,對其他參與人員瞭解功能點也有幫助。
功能點計算需要的文件很少,但是準確性和效率卻是由文件的質量決定的。可以使用的文件包括:
· 設計文件 · 顯示設計 · 資料需求(內部、外部) · 使用者介面說明
    專題研討時,除了記錄功能點計算的結果,還要儲存描述應用系統的圖表以及對各個功能的詳細討論。
功能點分析的優勢
    採用功能點分析作為度量單位的企業認識了到它的很多優勢:改進了專案的估計、促進了對專案的理解、保持較高的生產率;有利於管理專案需求的變更和需求的收集。以下對各項優勢進行詳細介紹:
    軟體專案估計:軟體專案的估計既是科學也是藝術,估計時需要考慮很多因素,其中最重要的有兩項。第一項是在預定期限內交付產品的規模。可以按上述方法進行估計;第二項是開發每個功能點需要的時間,或者稱作交付產品生產率,它可以根據歷史資料計算或使用行業標準資料,通常表示為功能點/小時(FP/Hr)。我們可以利用它來計算同類項目的工作量(即:專案總工時=專案功能點估計值XFP/Hr)。
    開發效率(生產率):功能點分析中,通常會很自然的用到或計算出生產率資料。由於功能點分析是一種獨立的技術,因此可以用來比較不同的開發工具和平臺的開發效率。更重要的是,我們可以用它來獲得某一工具或平臺的生產率資料(即:FP/Hr)。確定了生產率資料後,就可以按上述方法來進行專案估計,或跟蹤軟體過程改進對生產率所產生的影響。除了交付產品生產率,功能點還可以用來評價需要進行維護地系統的支援需求。在這項分析中,生產率是根據每人每年可以支援的功能點數來確定的。通過和其他系統比較,就可以確定哪個系統需要的支援最多。這樣可以幫助公司確定那些維護需求很高的產品的維護、替代策略。
    專案範圍變更管理:使正在開發的專案可以方便地進行變更管理,這是功能點的又一個優勢。專案批准後,使用功能點進行估計的專案在識別、跟蹤和溝通新需求和需求的變更時就很容易。客戶提出新的顯示或效能要求時,專案可以計算功能點數的變化並按生產率計算工作量;根據計算結果來分析需求的變更對預算和工作量的影響,這樣,使用者和專案組就可以確定該需求相對成本和進度的重要程度。專案結束後,將實際的功能點數與估計功能點數進行比較可以確定需求收集技術的有效性。這種分析有助於改進需求定義技術。
    溝通功能需求:這是功能點方法研製的初衷之一。由於可以迴避專業科技術語、注重使用者需求,因此它是與使用者溝通的出色的工具。這項技術可以用於和客戶進行面談、記錄聯合應用設計(JAD)的結果。形成的文件可以作為描述客戶需求和技術需求的框架。
    綜上所述,功能點分析是準確確定規模、記錄和溝通系統功能的有效技術。它已經成功用於估計傳統的資料處理系統和實時嵌入式系統的功能,例如倉庫管理機器人和飛機電子系統。隨著計算機環境複雜性的增加,功能點分析越來越成為準確評價和反映我們所開發、維護的軟體系統的優良工具。

相關推薦

軟體成本估算功能分析

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

如何正確區分軟體成本估算的邏輯資料與物理資料?

我們在進行軟體專案成本估算時經常容易混淆邏輯資料與物理資料。下面我們談談二者間的區別,以便我們正確的進行軟體成本估算。 邏輯資料一般是交易記錄、賬號資訊、客戶資訊等型別的資料。而物理資料是資料庫表、檢視;軟體的頁面;物理檔案(如DOC);登錄檔等。 一個物理檔案中可以包含多種邏輯資料

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

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

軟體成本估算:什麼是軟體因素調整因子?開發/測試因素調整因子?如何獲得?

我們在進行軟體成本評估時,經常會用到兩個重要的因子——軟體因素調整因子及開發/測試因素調整因子。那麼,什麼是軟體因素調整因子?什麼是開發/測試因素調整因子呢?這兩個重要引數我們如何獲得?      所謂軟體因素調整因子,指由於軟體自身特點對生產率產生的影響所需考慮的因子(例如,要解決的問題複

軟體成本估算4大方法解析

當下行業內在進行軟體成本估算時,常用的有4種估算方法。這4種軟體成本估算方法分別是: 以“估”為主的——經驗法和類推法。 以“算”為主的——類比法和方程法。 下面我們分別介紹一下這4大軟體成本估算方法。 經驗法:經驗法也叫專家法,是由行業內經驗豐富的專家背靠前一起依據自己的行

淺析軟體成本估算之NESMA方法的3種應用場景(轉載)

NESMA為荷蘭軟體度量協會的簡稱(Netherland Software Measurement Association),NESMA功能點方法是五種ISO國際功能點標準之一,不但易學易用、快速、經濟,而且容易開發和建立使用者自己特有的估算模型。 在五種國際標準中,只有NESMA方法定

能源行業軟體成本第三方評估應用案例分析

一、組織簡介 單位型別:內部乙方 所屬行業:能源 應用場景:專案核算 應用部門簡介:該公司為某大型石油集團的下屬子公司,主要業務是為集團公司提供資訊系統技術開發和諮詢服務,專注於地理資訊系統(GIS)、綜合業務管理資訊系統、圖形影象及網路應用軟體的研究、設計、開發與建設,以及數字管道

淺析軟體成本估算之NESMA方法的3種應用場景

NESMA為荷蘭軟體度量協會的簡稱(Netherland Software Measurement Association),NESMA功能點方法是五種ISO國際功能點標準之一,不但易學易用、快速、經濟,而且容易開發和建立使用者自己特有的估算模型。 在五種國際標準中,只有NESMA方法定

淺談持續整合構建在網際網路軟體測試專案應用與分析·

一、引言 在網際網路資訊時代,隨著Internet的快速增長及Web應用的不斷髮展,使其快速滲透到商業、電子商務、軍事、工業、教育等領域和個人生活的各個方面,對我們的生活及工作產生了深遠的影響。在當今市場需求和Internet技術進步的不斷推動下,Web應用日益增加,網際網路的軟體規模不斷擴大,

敏捷開發績效管理之七:敏捷開發生產率(下)(簡化功能分析,NESMA,兩級簡化)

這是敏捷開發績效管理的第七篇。(之一,之二,之三,之四,之五,之六,之七)續前文……功能點估算第一級簡化上次說到只用資料+操作就能準確計算規模,聽起來夠簡單了,但其實還不夠。誰能在剛拿出2頁紙的需求文件時(假設昨天老闆在酒桌上剛從客戶那記下來的),就猜出有多少個操作?而且還不

功能分析模型

某日接近中午,莫名被產品經理拉入小黑屋,曰:做個專案估算。一看客戶發過來的估算模板,驚呆,How old are you!怎麼老是你!這不正是一年多前我在老東家總是沒空看完的FFPA(Fast Function Point Analyse)! 以前是各種藉口不

淺析軟體開發專案的需求分析

【摘要】在軟體開發專案中,需求分析是關乎軟體專案開發成敗的重要因素。現在的軟體專案中返工開銷佔了總開銷很大比例,而導致返工的主要原因是需求分析不明確。針對這一情況,文章闡述了軟體開發中需求分析任務、需求分析過程、需求分析方法、需求分析變更問題,以及如何確保需求分析質量的措施

軟體研發成本估算過程估算人員需要注意這2

在軟體研發成本估算過程中,估算人員除了採用科學的方法之外還需要注意以下2點: a) 基準資料:在採用方程法、類比法或類推法對工作量、工期和成本進行估算過程中,應充分利用基準資料。 ——對於委託方和第三方,建議使用或參考行業基準資料(由北京軟體造價評估技術創新聯盟每年釋出的年度軟體行業

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

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

使用python的結巴分詞作詞雲圖,對微信功能進行輔助分析

工作室任務:基於知乎評論,分析微信功能點,做一次分享會。 一、原料和準備 1.從網上爬蟲的文件,儲存為txt文件,本例來源https://www.zhihu.com/question/23178234?from=groupmessage&isappinstalled

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

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

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

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

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

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

軟體研發成本估算成本的構成及含義?如何計算?

我們在對一個軟體專案的研發成本進行估算時,除了要使用成本估算常用公式之外,還應該瞭解一下軟體研發成本的構成及含義,這樣更有助於我們系統的理解軟體研發成本估算的內容及過程。 軟體研發成本包含直接成本和間接成本。依據軟體行業特點,直接成本又分為直接人力成本和直接非人力成本,而間接成本分為間接

軟體成本度量體系建設應用案例分析

面臨問題: 1、如何量化研發部門的研發產出和價值: 隨著該行組織級量化管理的不斷提升,高層領導對資訊化管理提出了新的要求,金融資訊化每年投入了大量的人力,如何能客觀地量化相應的產出? 2、傳統功能點方法(IFPUG)難以應用在專案早期: 2008年軟體中心引入的IFPUG傳統