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