東軟成功案例:用 Parasoft 的 C++ Test 改善軟件開發(fā)過(guò)程
東軟軟件股份有限公司(以下稱東軟)是中國(guó)國(guó)內(nèi)最大的軟件公司之一,是中國(guó)國(guó)內(nèi)領(lǐng)先的軟件供應(yīng)商。在中國(guó)國(guó)內(nèi)取得一系列輝煌成就后,開始在國(guó)際市場(chǎng)嶄露頭角,已經(jīng)進(jìn)入汽車電子、DVD 等嵌入式軟件開發(fā)領(lǐng)域以及其他開發(fā)領(lǐng)域,客戶遍及日本、美國(guó)、歐洲等國(guó)家,客戶包括 ALPINE、TOSHIBA、SONY Ericsson 等知名企業(yè)。目前國(guó)際業(yè)務(wù)發(fā)展迅速、新的領(lǐng)域被不斷擴(kuò)展,構(gòu)成了有影響力的客戶群,國(guó)際影響日益擴(kuò)大。
東軟嵌入式業(yè)務(wù)發(fā)展很快,業(yè)務(wù)量增加迅速;如何在快速的發(fā)展中,改善開發(fā)過(guò)程、提高開發(fā)效率、保證產(chǎn)品品質(zhì)的問(wèn)題顯得日益重要。為此 Neusoft 分析了原有的開發(fā)過(guò)程后認(rèn)為:編碼階段、測(cè)試階段的花費(fèi)時(shí)間很大,并且問(wèn)題也比較多,改善的潛力比較大。在編碼階段,東軟盡管制定了詳細(xì)的編碼規(guī)范,要求工程師在編碼時(shí)候遵守,但由于代碼的規(guī)模大、人員較多,Review 基本采用人工的方式,致使 Coding Review 花費(fèi)了相當(dāng)多的工作量,而且效果不是很顯著。
在測(cè)試階段,單體測(cè)試投入很多工作量編寫 Test Cases,測(cè)試也花費(fèi)了大量時(shí)間;從測(cè)試的結(jié)果,東軟發(fā)現(xiàn) Test Cases 不能保證覆蓋代碼中所有的 Case。盡管東軟加強(qiáng)了Test Cases 的Review,但效果沒(méi)有明顯的改善。
C++ Test 的 Coding Standard 提供了 Effective C++/ More Effective C++/ MISRA 等16 類規(guī)則(總計(jì) 500 多條)供我們選擇,它提供 MISRA(汽車工業(yè)軟件編碼標(biāo)準(zhǔn)), 這是東軟嵌入式軟件開發(fā)所遵從的編碼規(guī)范,對(duì)東軟開發(fā)非常適用。另外由于東軟具有很多的客戶,每個(gè)客戶都對(duì)編碼規(guī)范有各自的要求,并且要求的非常細(xì)致具體。C++ Test 的Coding Standard 除了提供的 500 多條規(guī)則外,C++ Test 還具有 Rule Wizard 的功能,用戶可以根據(jù)自己需求原型化定制自己的 Coding Rules,可以說(shuō) C++ Test 的 Rule Wizard 完美地滿足了東軟的需求。
例如:
1.東軟的編碼規(guī)范對(duì)變量、函數(shù)的名字要加類型前綴;如結(jié)構(gòu)體指針數(shù)組的命名要這樣描述 apstXXXX(XXXX 為結(jié)構(gòu)體名稱,a 代表數(shù)組,p 代表指針,st 代表結(jié)構(gòu)體)。用Rule Wizard 可以方便定義如下規(guī)則(如圖 1)2.東軟的編碼規(guī)范對(duì)對(duì)判斷語(yǔ)句規(guī)定,將變量寫在“==“的后邊,常量放在“==”的前邊。用Rule Wizard 可以方便定義如下規(guī)則(如圖 2)
【圖 1: 變量命名的規(guī)范 】

目前有 2 個(gè)項(xiàng)目應(yīng)用了 C++ Test 工具,從項(xiàng)目的過(guò)程數(shù)據(jù)來(lái),編碼階段和測(cè)試階段的效率得到一定的改善,各個(gè)階段輸出的產(chǎn)品質(zhì)量也有一定的提高,客戶對(duì)開發(fā)的效率和產(chǎn)品的質(zhì)量非常滿意。從目前的使用效果看,可以說(shuō)應(yīng)用 C++ Test 有效的改善了東軟的開發(fā)過(guò)程、提高了開發(fā)效率、提高了產(chǎn)品品質(zhì)。相信隨著使用經(jīng)驗(yàn)的積累、使用范圍(更多項(xiàng)目)的擴(kuò)大,將根本改善東軟的開發(fā)過(guò)程,產(chǎn)生巨大的生產(chǎn)力,并且不斷促進(jìn)產(chǎn)品品質(zhì)的提高。