軟體工程論文參考

才智咖 人氣:4.45K

軟體工程論文參考

軟體工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。下面小編為大家搜尋整理了軟體工程論文參考,希望對大家有所幫助。

軟體工程論文參考

程式碼審查中軟體工程實施的重要性

摘要:軟體工程的實施,使得軟體質量有了明顯的提升,在取得成效之餘,不應忽視程式碼審查的重要作用,本文闡述了程式碼審查的不可替代性並給出了軟體工程實施過程中的具體做法.

關鍵詞:軟體工程;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.