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