代碼行分析方法常見的軟件規(guī)模估算方法
測試工作量的估計(jì)往往和軟件開發(fā)的規(guī)模是緊密相關(guān)的.很多軟件公司往往是在估計(jì)了即將要開發(fā)的軟件規(guī)模后才做測試工作量的估計(jì),然后求和得出項(xiàng)目的最終工作量估計(jì).這種方法比較適用于有經(jīng)驗(yàn)積累,測試和開發(fā)模式穩(wěn)定的公司或項(xiàng)目,提供了一個比較準(zhǔn)確,有參考的數(shù)字.但同時由于其完全依賴其前提-開發(fā)工作量的估計(jì),顯得比較脆弱,如果開發(fā)工作量出現(xiàn)較大偏差,測試工作量也就變得毫無用處.在加之代碼行本身就存在著許多問題和局限,所以在選擇其做為項(xiàng)目估算方法時需要好好了解它的原理,優(yōu)缺點(diǎn)進(jìn)而有選擇性的使用.
代碼行, 是來源與英文line of code.那么代碼行分析方法就是就是對軟件產(chǎn)品的源代碼的行數(shù)進(jìn)行測量.但是仔細(xì)想想,可能會有以下疑問:
是計(jì)算物理行數(shù),還是程序的命令數(shù)量?
空行是否計(jì)算?
注釋是否計(jì)算?
預(yù)定義文件是否計(jì)算?
不同版本如何計(jì)算?
這里面是否設(shè)計(jì)到一系列的規(guī)則定義問題?
開發(fā)過程種的配置腳本,編譯腳本是否計(jì)算?
共享文件(例如共享的開發(fā)庫文件種的頭部文件)如何計(jì)算?
那么現(xiàn)在的一般規(guī)則是計(jì)算物理行數(shù),不計(jì)算空行,不計(jì)算注釋.對于其他選項(xiàng),一般為計(jì)算源文件根目錄下的所有文件.所以代碼行指的是指所有的可執(zhí)行的源代碼行數(shù),包括可交付的工作控制語言 (JCL : job control language) 語句、數(shù)據(jù)定義、數(shù)據(jù)類型聲明、等價聲明、輸入 / 輸出格式聲明等。常使用的單位有: SLOC(single line of code)、KLOC(thousand lines of code)、 LLOC(logical line of code)、PLOC(physical line of code)、NCLOC (non-commented line of code)、DSI(delivered source instruction)。其中SLOC和KLOC比較常用.
代碼行分析方法對技術(shù)人員是有意義的,因?yàn)樗拇_從某種程序上反映了軟件的規(guī)模,并且是物理上可測量的.但是這種方法也存在如下諸多問題.
在需求、計(jì)劃、設(shè)計(jì)階段因?yàn)楸旧頉]有代碼行,需要靠估算來解決??傮w上估算準(zhǔn)確度不高,除非有多年的類似項(xiàng)目經(jīng)驗(yàn)。估算的準(zhǔn)確程度取決于是否有同類項(xiàng)目的數(shù)據(jù)和估算人員的經(jīng)驗(yàn)。在編碼、測試、實(shí)施階段可以直接數(shù)出來。
在滿足客戶的要求以及反映進(jìn)度方面的能力差強(qiáng)人意,對于管理者意義不大.因此項(xiàng)目很難從整體上跟蹤代碼行數(shù)的指標(biāo)采取行動.
近來可視化編程工具的大量采用,以及模板庫,類庫的廣泛采用,在程序的結(jié)果中有大量自動生成的代碼或者復(fù)雜的自動配置腳本或資源文件設(shè)置,在采用這些工具的項(xiàng)目中,用代碼行分析方法得到數(shù)值的意義已經(jīng)大大降低.
對于不同的編程語言來說,代碼行也缺乏可信轉(zhuǎn)換方式.
盡管代碼行方法有很多缺點(diǎn),但是由于它容易使用,操作成本低(如果采用適當(dāng)?shù)闹С止ぞ?,還是推薦使用代碼行作為軟件項(xiàng)目管理的參考和補(bǔ)充手段.