胡文伯
國家開發(fā)銀行信息科技局 北京 100037
基于功能點進行銀行信息系統(tǒng)研發(fā)精細化管理的思考與探索
胡文伯
國家開發(fā)銀行信息科技局 北京 100037
在銀行信息系統(tǒng)研發(fā)過程中,基于功能點可以進行系統(tǒng)規(guī)模度量和研發(fā)指標分析,通過對功能點研發(fā)生命周期的全面跟蹤,能有效提高研發(fā)精細化管理的水平。
功能點;研發(fā)管理;NESMA
近年來隨著互聯(lián)網金融的快速興起,各家銀行面臨越來越激烈的競爭。在新的形勢下,為了快速響應市場多元化的需求,各家銀行都積極探索對研發(fā)流程進一步優(yōu)化,期望通過精細化管理提升自身研發(fā)水平,使得IT開發(fā)能夠實現(xiàn)高質量的交付,從而快速響應業(yè)務發(fā)展的要求。
1.1 基于CMMI打造研發(fā)過程體系
多年以來,各大銀行為了實現(xiàn)信息系統(tǒng)開發(fā)的高質量,提升軟件研發(fā)過程的規(guī)范性和可度量性,基本上都引入了軟件能力成熟度集成模型(CMMI)。通過引入CMMI體系模型,各大銀行建立起一套可定義、可管理并可持續(xù)改進完善的研發(fā)過程管理體系,實現(xiàn)了研發(fā)管理過程的標準化和規(guī)范化。
1.2 引入功能點度量標準
自2009年中國軟件行業(yè)協(xié)會系統(tǒng)與軟件過程改進分會將功能點方法引入中國。各大銀行均陸續(xù)將功能點方法引入到軟件規(guī)模度量過程中,并開始基于功能點對軟件研發(fā)項目進行工作量、交付速率、測試用例覆蓋率、缺陷密度等與功能點相關的指標進行測量和分析,有效的提升了研發(fā)管理水平的精細化。
2.1 功能點分析方法簡介
功能點方法是從用戶視角出發(fā),依據一定規(guī)則,通過量化的方式來估量軟件的規(guī)模。其核心思想是把軟件按照不同類型的組件進行分解,從而確定軟件的功能點數(shù)量。目前有多種功能點分析方法納入ISO國際標準,包括COSMIC、IFPUG、MkⅡ和NESMA功能點法等,其中IFPUG和NESMA功能點法應用最為廣泛。
2.2 NESMA功能點方法介紹
NESMA方法分為預算功能點法、快速功能點法和詳細功能點法,分別適用于需求不清晰的項目預算階段、需求明晰的立項或招標階段,以及軟件設計和數(shù)據庫設計完成后的決算階段。預算功能點法只識別邏輯文件和接口文件??焖俟δ茳c法除了識別邏輯文件和接口文件,還需要識別基本過程。詳細功能點法則是在快速功能點法的基礎上,引入了衡量復雜度的因子,詳細功能點方法在使用過程中與IFPUG功能點方法基本等效。
3.1 基于功能點在研發(fā)管理中進行分析
銀行系統(tǒng)研發(fā)從立項開始到上線完成一般可劃分為4個階段,具體包括立項階段、需求階段、開發(fā)測試階段和上線階段,功能點分析作在各個研發(fā)階段均可起到分析和評估的作用。在立項階段,利用預算功能點法進行項目規(guī)模的測量,有助于給出明確的預算申請依據,使得預算過程更加透明。在需求階段,由于快速功能點法要求需求清晰,在需求評審過程中會促進需求分析工作精準度的提高。在開發(fā)階段,通過對交付速率的計算可以監(jiān)控開發(fā)的進度。在測試階段,通過測試用例覆蓋度的計算,可以對測試用例的質量進行衡量;此外,缺陷密度也是衡量開發(fā)質量的一個重要指標。
表1 交易功能功能點跟蹤矩陣參考表頭
表2 數(shù)據功能(EIF)功能點跟蹤矩陣表頭
3.2 基于功能點在研發(fā)管理中進行跟蹤
(1)需求跟蹤矩陣
研發(fā)管理過程中對于需求的跟蹤通常是使用需求跟蹤矩陣。通過使用需求跟蹤矩陣,可以對需求的設計、開發(fā)、測試和上線狀態(tài)進行跟蹤管理。然而需求跟蹤矩陣一般是基于業(yè)務需求用例,對于比較復雜、涉及面廣的需求,難以實現(xiàn)精細化跟蹤管理。具體不足包括:一是無法體現(xiàn)實現(xiàn)該需求的功能是否完成了軟件、數(shù)據庫和接口等相關設計;二是無法跟蹤實現(xiàn)該需求的相關功能是否都進行了單元測試;三是無法跟蹤該需求的所有測試用例是否都編寫、測試和執(zhí)行完成;四是對于部分功能上線的需求難以進行上線跟蹤。
(2)功能點跟蹤矩陣
由于功能點方法本身就是一種把復雜的系統(tǒng)分解為較小的組件進行評估的方法,因此我們可以通過對功能點進行跟蹤,解決需求跟蹤矩陣難以實現(xiàn)開發(fā)過程精細化跟蹤管理的問題。功能點跟蹤矩陣與需求跟蹤矩陣形式類似,目的是將需求、設計、開發(fā)、測試、用戶驗收和上線有機融合起來,確保每一個上線的功能點都經過設計、測試和驗收,從而提高系統(tǒng)研發(fā)質量。
功能點基本組件分為交易功能和數(shù)據功能兩類,其中交易功能分為外部輸入(EI)、外部查詢(EQ)、外部輸出(EO),主要與業(yè)務數(shù)據的增、刪、改、查和統(tǒng)計分析有關。簡化后的交易功能功能點跟蹤矩陣參考表頭示意如表1所示。
數(shù)據功能分為內部邏輯文件(ILF)、外部接口文件(EIF)兩類。其中ILF通常與數(shù)據庫中的表有關;EIF通常與外部系統(tǒng)的數(shù)據有關。簡化后的數(shù)據功能(ILF)功能點跟蹤矩陣和數(shù)據功能(EIF)功能點跟蹤矩陣表頭分別示意如表2所示。
需要指出的是功能點跟蹤矩陣(交易功能)中的設計通常是針對操作功能進行設計,指軟件設計文檔;功能點跟蹤矩陣(數(shù)據功能)中的設計通常是針對數(shù)據庫和接口進行設計,指數(shù)據庫設計文檔和接口設計文檔。此外,在實際應用中可以結合系統(tǒng)研發(fā)特點完善表頭,例如增加需求重要度、評審信息、狀態(tài)信息、上線版本、上線時間等。
使用功能點跟蹤矩陣的能有效提升管理精細化并提升系統(tǒng)交付質量,具體包括:一是使用功能點跟蹤客觀上提高了需求的質量,對于進一步提升需求管理水平,實現(xiàn)需求條目化和結構化有著推動效果。二是通過功能點把設計納入到跟蹤的范疇,加強了系統(tǒng)研發(fā)過程中對設計的管理。三是加強了對系統(tǒng)修改把控的能力,由于功能點具備新增、修改和刪除的調整因子,對于修改和刪除的功能點可以追溯到原始功能設計文檔和測試用例并做相應調整。四是提升了配置管理能力,在研發(fā)過程中如果需要將部分需求單獨提前上線,基于功能點跟蹤矩陣可以進行有效分析和管理,降低了版本管理的風險。
3.3 基于功能點進行研發(fā)管理的不足
任何一套方法論都不是萬能的,雖然基于功能點進行研發(fā)管理的分析和跟蹤,可以量化項目管理和提升交付質量。但是功能點方法任有一些不足之處,具體包括:一是需要增加培訓成本和研發(fā)成本,由于功能點估算相對比較專業(yè),熟悉使用需要一定過程,對于新接觸的研發(fā)人員需要進行培訓,同時功能點的拆分和確認流程也會提升整體的研發(fā)成本。二是快速功能點估算準確度在某些特殊場景下與實際偏差較大,由于快速功能點法只考慮可見部分的復雜度,對系統(tǒng)內部復雜性考慮太少,同時也沒有考慮系統(tǒng)集成帶來的額外開銷。在對數(shù)據分析類和平臺類系統(tǒng)進行估算時會與實際有較大偏差。三是沒有考慮質量因素和技術因素,在非功能性需求越來越被銀行研發(fā)團隊重視的今天,功能點方法通常只站在用戶角度考慮功能性需求,對于非功能性需求的涵蓋能力有限。
F830.49
A