- 相關(guān)推薦
代碼審查中軟件工程實施的重要性的論文
摘要:軟件工程的實施,使得軟件質(zhì)量有了明顯的提升,在取得成效之余,不應(yīng)忽視代碼審查的重要作用,本文闡述了代碼審查的不可替代性并給出了軟件工程實施過程中的具體做法.
關(guān)鍵詞:軟件工程;CMMI;代碼審查;質(zhì)量監(jiān)控;每千行代碼發(fā)現(xiàn)缺陷數(shù)
1引言
隨著CMMI認(rèn)證獲得普遍認(rèn)可,軟件工程在保證軟件質(zhì)量、提高軟件效率方面取得了矚目的成效,實施軟件工程已經(jīng)是大多數(shù)公司的共識。隨著軟件工程的實施,軟件的質(zhì)量監(jiān)控手段呈現(xiàn)多樣化,不再單純依賴軟件測試,只是在軟件質(zhì)量取得顯著可見成效的欣喜中,軟件測試的地位有弱化的傾向,帶來的問題是,軟件代碼審查作為有效的軟件質(zhì)量提升手段,在軟件工程實施中有日漸弱化并有可能消失。軟件代碼審查是軟件測試的手段之一,是在執(zhí)行動態(tài)測試之前對代碼的人工走讀排錯活動,主要方法包括個人代碼審查、項目內(nèi)交叉代碼互審、正式代碼審查。個人代碼審查在編碼過程中隨時開展,項目內(nèi)交叉代碼互審也是在編碼過程中,一般每周開展,正式代碼審查是在前兩種代碼審查的基礎(chǔ)上,可以在編碼和單元測試期間的任意時間開始。本文所講的代碼審查是指正式代碼審查,該審查需召集同行專家采用會議形式對代碼進行集中評審,集思廣益審查代碼的缺陷,是一種高效的發(fā)現(xiàn)代碼缺陷的方式。
2軟件工程化過程中的軟件質(zhì)量監(jiān)控手段
軟件工程化過程的典型模型.項目的研發(fā)過程中通常采用U模型或者V模型,將軟件研發(fā)過程劃分為不同的階段,每一個階段的工作產(chǎn)品有對應(yīng)的測試活動保證質(zhì)量。軟件工程實施時,除了通過傳統(tǒng)的測試活動保證質(zhì)量之外,還要在每個階段末進行質(zhì)量審查,以保證工作的有效性。這樣的質(zhì)量監(jiān)控手段比單純的依靠測試活動,軟件質(zhì)量的提升是顯而易見的。
3代碼審查弱化或者消失的原因
由前述的質(zhì)量監(jiān)控手段可知,軟件工程的實施需要比之前付出更多的資源、成本、時間,要設(shè)置專職的質(zhì)量保證人員、配置管理人員、要對每個小階段總結(jié)、要審查評審效果等等。
3.1資源投入增加
軟件工程的實施過程中,需要進行工作產(chǎn)品審核、階段總結(jié)、審查等導(dǎo)致需要投入較多的時間和資源,尤其是產(chǎn)品評審需要高層次的同行專家才能開展,而代碼審查隨著代碼量的增大不但需要時間的大量投入,更需要高水平人員的投入。而這些高水平的人員很大可能已經(jīng)在前期的評審等活動投入了不少的精力,在公司已經(jīng)看到明顯質(zhì)量提升的成果時,容易弱化并取消這個環(huán)節(jié)的投入。
3.2軟件測試工具功能越來越強大
隨著測試工具的功能日趨強大,缺陷的發(fā)現(xiàn)效率也越來越高,一定程度上解放了人工的付出,這也給決策層帶來代碼審查可以忽略的誤導(dǎo)。
3.3軟件質(zhì)量明顯提升
軟件工程的實施中前期的質(zhì)量控制投入、軟件測試工具的強大功能,使得軟件的缺陷已經(jīng)有明顯的降低,軟件質(zhì)量有明顯的提升,在這種情況下,單位的關(guān)注度更容易集中在其他控制手段上,弱化傳統(tǒng)的測試的工作,會導(dǎo)致代碼審查活動被裁剪。
4代碼審查的重要性
代碼審查通過集中同行專家的智慧協(xié)助項目組發(fā)現(xiàn)代碼的更多缺陷,除了本身的質(zhì)量提升的作用,帶來的另一個好處是,通過代碼審查可以協(xié)調(diào)資源,及時發(fā)現(xiàn)編碼問題并組織培訓(xùn),提高團隊整體的編碼水平。代碼審查除了除上述益處之外,之所以具有不可替代性,還因為:
4.1測試工具無法完全替代代碼審查
雖然測試工具的功能在日趨強大,且發(fā)現(xiàn)的缺陷越來越多,但是仍有其不能代替人工之處,例如:
。1)軟件的設(shè)計理念在代碼中是否得以貫徹實現(xiàn),依靠測試工具無法檢測。
。2)架構(gòu)是否與設(shè)計文檔一直,符合要求,工具無法檢測。
。3)一些謹(jǐn)慎使用的規(guī)則,依靠工具無法檢測,例如:全局變量的使用是否謹(jǐn)慎;語句的完整性,switch,每個條件是否有‘break’;注釋的正確性,無法檢查注釋的正確性;數(shù)據(jù)定義的準(zhǔn)確性,例如,對不同的環(huán)境,同樣是int的定義會對應(yīng)不同的范圍,故在特殊情況下必須明確int的位數(shù)等;嵌套的層次,只能規(guī)定不超過x層,實際編碼時不見得都要達到x-1層,越多的嵌套代碼的復(fù)雜度越高。
4.2質(zhì)量審核無法替代代碼審查
質(zhì)量審核的主要實施人是質(zhì)量保證人員,其對質(zhì)量的審核更多的是體系符合性審查,無法起到代碼審查的作用。
5實施的具體措施
代碼審查雖然有其不可替代的重要作用,但是,如果組織不當(dāng),也會帶來不利影響。主要因為:
。1)代碼審查會議若跟文檔評審會一樣,安排在一兩天內(nèi)所有模塊都要完成走讀,發(fā)現(xiàn)錯誤的機率就會大打折扣;
。2)審查會的形式若主要通過現(xiàn)場由編碼人員說明自己負(fù)責(zé)的這塊代碼的功能實現(xiàn),那么參加代碼走讀的評委會以現(xiàn)場了解為主,很少能提出意見;
。3)若無相應(yīng)的保障宣傳措施保證,評委會擔(dān)心影響關(guān)系,尤其是有領(lǐng)導(dǎo)參與時,不愿意指出別人存在的問題。故雖然代碼審查在軟件工程實施過程中具有無可替代的作用,需要加強,實施過程中應(yīng)避免出現(xiàn)上述的付作用,具體做法:
(1)專家選取時,人數(shù)不能過多3~5人比較適宜,且最好有類似開發(fā)經(jīng)驗。
(2)正式代碼審查會議前,先召開預(yù)備會,代碼開發(fā)人員講解模塊的實現(xiàn),再由評委會前通讀代碼,會議召開時,再展開討論。
(3)先采取交叉審查,后同行進行代碼審查,可以提高審查效率。
。4)不要集中完成,采用分節(jié)點進行審查的方式,例如,概設(shè)完畢時,對架構(gòu)進行代碼審查;編碼過程中,在每個單元完成,通過編譯后,進行代碼審查。
(5)針對本單位的軟件特點制定有針對性的檢查單。
。6)根據(jù)2:8原理,對20%的核心單元進行代碼審查。
6代碼審查能夠順利開展的條件
代碼審查開展的是否順利,需要具備以下條件:
。1)制度保障,軟件工程實施時,規(guī)定代碼審查為規(guī)定動作,并由QA進行過程檢查。借助于每千行代碼發(fā)現(xiàn)缺陷數(shù)、代碼審查速度和會前準(zhǔn)備時間等3個指標(biāo),分析代碼審查的效率,保障代碼審查的效果。
(2)技能保障,培訓(xùn)人員,需具備相關(guān)技能的人員。
。3)資源保障,管理層重視,在進度和質(zhì)量之間權(quán)衡時,除非必要,領(lǐng)導(dǎo)決策時優(yōu)選保證質(zhì)量活動。
。4)數(shù)據(jù)保障,合理的選取表征代碼審查的數(shù)據(jù)。
7結(jié)束語
軟件工程的實施極大的提高了軟件質(zhì)量,提高了軟件效率,只是實施過程中在關(guān)注新措施時,會對原有的優(yōu)勢活動出現(xiàn)弱化現(xiàn)象,需要實施人員及時發(fā)現(xiàn)并補足,才能做到優(yōu)勢繼續(xù)保持,弱勢得到加強,在保持的基礎(chǔ)上有更好的提升。代碼審查的數(shù)據(jù)積累是一個長期不斷完善的過程,在執(zhí)行的過程中,要合理收集數(shù)據(jù),過多或過少都可能會導(dǎo)致錯誤的效果,增加公司負(fù)擔(dān),實施人應(yīng)視具體情況調(diào)整。另外,也需借助信息化的手段來幫助收集、優(yōu)化過程,可以有效的提高效率,增強實施效果。
參考文獻
[1]張如云.代碼審查在軟件開發(fā)中的應(yīng)用研究[J].電腦開發(fā)與應(yīng)用,2014.
[2]張海潘.軟件工程導(dǎo)論[M].清華大學(xué)出版社,2005.
[3]黎連業(yè),王華,李淑春.測試技術(shù)[M].北京,清華大學(xué)出版社,2009.
【代碼審查中軟件工程實施的重要性的論文】相關(guān)文章:
軟件工程論文發(fā)表的論文04-29
幼兒音樂教育中家長參與重要性論文04-29
軟件工程論文的開題報告01-04
論文選題的重要性04-30
論文選題的重要性04-30
雙重代碼理論及其對英語學(xué)習(xí)中記憶的作用04-29
素質(zhì)教育的重要性論文07-24
畢業(yè)論文:論語文教學(xué)中的德育實施 - 語言文學(xué)畢業(yè)論文04-30
畢業(yè)論文選題的重要性04-30