功能點(diǎn)與代碼行,誰將最后勝出?一

字號(hào):

功能點(diǎn)與代碼行,作為兩種度量方法已經(jīng)長期并存又競爭,他們的支持者已進(jìn)行了大量的爭論,如今這種爭論仍未停息。人們似乎想看到:功能點(diǎn)與代碼行,到底誰將最后勝出?
    眾所周知,用“平方米”可以衡量住房大小,用“臺(tái)”可以表示汽車數(shù)量,然而,長久以來,軟件產(chǎn)品的規(guī)模(Size)度量卻是個(gè)爭論不休的問題。
    不論是對(duì)軟件開發(fā)企業(yè)、還是對(duì)軟件用戶,軟件規(guī)模度量的重要性都是不容置疑的。因?yàn)樗鼧O大影響著甲方對(duì)發(fā)包產(chǎn)品的成本估算、乙方對(duì)自身開發(fā)成本的預(yù)測(cè)、乙方對(duì)開發(fā)過程的量化管理等諸多方面。
    比如,A軟件項(xiàng)目的規(guī)模是100功能點(diǎn),我們根據(jù)行業(yè)基準(zhǔn)(Benchmarking)知道平均成本是5000元/功能點(diǎn),那么本項(xiàng)目的成本預(yù)測(cè)就是50萬元;我們又根據(jù)行業(yè)基準(zhǔn)知道平均生產(chǎn)率為1功能點(diǎn)/人天,則計(jì)算得到項(xiàng)目需要投入100個(gè)人天的工作量,這些計(jì)算的結(jié)果將成為簽定合同的依據(jù)和軟件項(xiàng)目管理的基礎(chǔ)。
    功能點(diǎn)與代碼行,作為兩種度量方法已經(jīng)長期并存又競爭,他們的支持者已進(jìn)行了大量的爭論,如今這種爭論仍未停息。
    人們似乎想看到:功能點(diǎn)與代碼行,到底誰將最后勝出?
    國際軟件工程權(quán)威專家Roger S. Pressman在2001年曾經(jīng)對(duì)LOC和FP的辯論結(jié)果進(jìn)行總結(jié)[1]:
    代碼行的支持者認(rèn)為,LOC是所有軟件開發(fā)項(xiàng)目的生成品,并且很容易進(jìn)行計(jì)算;許多現(xiàn)有的軟件估算模型使用LOC作為輸入,并且關(guān)于LOC已經(jīng)有大量的文獻(xiàn)數(shù)據(jù)。
    代碼行的反對(duì)者認(rèn)為,LOC測(cè)量依賴于程序設(shè)計(jì)語言;它們對(duì)設(shè)計(jì)的很好但較小的程序會(huì)產(chǎn)生不利的評(píng)判;它們不適合于非過程語言;它們?cè)诠浪銜r(shí)需要一些可能難以得到的信息(例如,在分析和設(shè)計(jì)之前,計(jì)劃者就必須估算要產(chǎn)生的LOC)。
    功能點(diǎn)(及其擴(kuò)展)的支持者認(rèn)為:FP和程序設(shè)計(jì)語言無關(guān),使得它既適合于傳統(tǒng)的語言,也可用于非過程語言;它是基于項(xiàng)目開發(fā)初期就可能得到的數(shù)據(jù)。
    反對(duì)者聲稱:該方法需要某種“人的技巧”,因?yàn)橛?jì)算是基于主觀的而非客觀的數(shù)據(jù);信息域(及其它維)的計(jì)算可能難以搜集事后信息;FP沒有直接的物理含義— 它僅僅是個(gè)數(shù)據(jù)而已。
    究竟如何看待這些爭論?筆者認(rèn)為應(yīng)該用發(fā)展的眼光來判斷,特別是考慮近年來軟件開發(fā)技術(shù)的迅猛發(fā)展以及國際軟件產(chǎn)業(yè)商業(yè)模式的變革趨勢(shì)。
    最近的技術(shù)發(fā)展包括諸如可視化編程工作的大量采用,以及摸板庫、類庫的廣泛采用,在程序的結(jié)果中有大量的自動(dòng)生成的代碼、復(fù)雜的自動(dòng)配置腳本或資源文件設(shè)置,在采用這些工具的項(xiàng)目中,用LOC分析方法得到的數(shù)據(jù)的意義已經(jīng)大大降低了[2]。
    從產(chǎn)業(yè)商業(yè)模式來看,由于軟件系統(tǒng)已經(jīng)變的的更大和更復(fù)雜,軟件工程化分工加劇,專門從事軟件下游業(yè)務(wù)的商業(yè)組織大量涌現(xiàn),特別是隨著國際產(chǎn)業(yè)轉(zhuǎn)移帶來的服務(wù)外包的巨大發(fā)展,需求和架構(gòu)設(shè)計(jì)等上游工程與詳細(xì)設(shè)計(jì)、編碼、測(cè)試、信息錄入和處理等下游工程分別在不同的組織中實(shí)現(xiàn)。上下游組織之間在業(yè)務(wù)管理和開發(fā)技術(shù)方面的的溝通需要更加標(biāo)準(zhǔn)化的度量語言。而實(shí)際上,LOC從來沒有在滿足客戶需求方面有什么重大意義,代碼行數(shù)對(duì)客戶來說沒有什么實(shí)際意義,客戶關(guān)心的是“功能”。
    有研究者[2]認(rèn)為,LOC在幫助管理者開展項(xiàng)目管理方面也差強(qiáng)人意,LOC只是對(duì)技術(shù)人員有一定意義。
    實(shí)際上,LOC帶來的誤導(dǎo)越來越嚴(yán)重,以至于的軟件度量專家,美國軟件生產(chǎn)率研究所的首席科學(xué)家Capers,Jones指出,“使用代碼行數(shù)進(jìn)行涉及多種語言和生命周期活動(dòng)的生產(chǎn)率研究,應(yīng)該被認(rèn)為是一種職業(yè)的不良實(shí)踐?!?BR>