第6章 編碼及代碼審查_第1頁
第6章 編碼及代碼審查_第2頁
第6章 編碼及代碼審查_第3頁
第6章 編碼及代碼審查_第4頁
第6章 編碼及代碼審查_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1軟件工程軟件工程項目管理項目管理可行性與可行性與需求分析需求分析 系統(tǒng)系統(tǒng)設計設計編碼編碼測測試試維維護護軟件工程與項目管理的主要環(huán)節(jié)軟件工程與項目管理的主要環(huán)節(jié)第六章第六章 編碼及代碼審查編碼及代碼審查 3目錄目錄o程序設計語言程序設計語言o編碼規(guī)約編碼規(guī)約o代碼審查代碼審查46.1 程序設計語言程序設計語言o程序設計語言的分類:程序設計語言的分類:6.1.1 6.1.1 程序設計語言的分類程序設計語言的分類 語言的等級劃分,程序設計語言可以分為語言的等級劃分,程序設計語言可以分為機器語機器語言言、匯編語言匯編語言和和高級語言高級語言三類。三類。 高級語言從應用特點上可以分為高級語言從應用

2、特點上可以分為基礎語言基礎語言(例:(例:FORTRANFORTRAN,COBOLCOBOL)、)、結構化語言結構化語言(例:(例: PASCALPASCAL,C C)、)、專用語言專用語言(例:(例:PROLOGPROLOG,BLISSBLISS);從語言);從語言內(nèi)在特點可以分為內(nèi)在特點可以分為系統(tǒng)實現(xiàn)語言系統(tǒng)實現(xiàn)語言(例:(例:C C語言)、語言)、靜態(tài)高級語言靜態(tài)高級語言(例:(例:FORTRANFORTRAN、COBOLCOBOL)、)、塊結構塊結構高級語言高級語言(例:(例:PASCALPASCAL,ALGOLALGOL)、)、動態(tài)高級語動態(tài)高級語言言;從語言的執(zhí)行方式劃分:;從語

3、言的執(zhí)行方式劃分:解釋語言和編譯語解釋語言和編譯語言言。 高級語言有:高級語言有:JavaJava、C C、C+C+、VCVC、C#C#、VBVB等。等。6.1.2 6.1.2 程序設計語言的特性程序設計語言的特性o 工程特性:工程特性: 語言可移植性語言可移植性 開發(fā)工具的可用性開發(fā)工具的可用性 語言的可重用性語言的可重用性 語言的可維護性語言的可維護性 6.1.2 6.1.2 程序設計語言的特性程序設計語言的特性o 心理特性:心理特性: 二義性二義性 簡潔性簡潔性 局部性和順序性局部性和順序性 傳統(tǒng)性傳統(tǒng)性86.1.3 編程語言的選擇編程語言的選擇o選擇程序設計語言的標準選擇程序設計語言的

4、標準n 從用戶方面考慮從用戶方面考慮 若由用戶自己維護軟件,應選擇用戶熟若由用戶自己維護軟件,應選擇用戶熟 悉的程序設計語言。悉的程序設計語言。n 從程序員方面考慮從程序員方面考慮 軟件開發(fā)人員的知識水平和心理因素等;軟件開發(fā)人員的知識水平和心理因素等;9n 從軟件的可移植性考慮從軟件的可移植性考慮 如果目標系統(tǒng)將在不同的計算機環(huán)境下如果目標系統(tǒng)將在不同的計算機環(huán)境下運行,或者預期使用的壽命很長,則需運行,或者預期使用的壽命很長,則需要選擇一種標準化程度高,并且程序可要選擇一種標準化程度高,并且程序可移植性好的語言實現(xiàn)設計。移植性好的語言實現(xiàn)設計。n 從應用領域考慮從應用領域考慮不同的程序設計

5、語言有著不同的適用范不同的程序設計語言有著不同的適用范圍。圍。101 1、以下屬于第三代程序設計語言的選項是(、以下屬于第三代程序設計語言的選項是( )。)。A. A. 機器語言機器語言B. B. 現(xiàn)代語言現(xiàn)代語言C. C. 匯編語言匯編語言D. SQLD. SQL語言語言112 2、以下描述錯誤的是(、以下描述錯誤的是( )。)。A. A. 程序設計語言的特性和程序設計風格,會深刻程序設計語言的特性和程序設計風格,會深刻地影響軟件的質(zhì)量和可維護性地影響軟件的質(zhì)量和可維護性B. B. 為了保證程序編碼的質(zhì)量,程序員必須深刻理為了保證程序編碼的質(zhì)量,程序員必須深刻理解、熟練掌握并正確地運用程序設

6、計語言的特解、熟練掌握并正確地運用程序設計語言的特性性C. C. 高效的程序代碼能縮短開發(fā)周期,并減少維護高效的程序代碼能縮短開發(fā)周期,并減少維護代價代價D. D. 只要程序設計語言選擇的好就可以設計出高效只要程序設計語言選擇的好就可以設計出高效的程序代碼,對于程序的結構沒有要求的程序代碼,對于程序的結構沒有要求123 3、以下屬于選擇程序設計語言的標準的選項是(以下屬于選擇程序設計語言的標準的選項是( )。)。A. 選擇用戶熟悉的程序設計語言選擇用戶熟悉的程序設計語言B. 從程序員知識水平和心理因素等方面考慮從程序員知識水平和心理因素等方面考慮C. 從軟件的可移植性考慮從軟件的可移植性考慮D

7、. 以上三項都屬于以上三項都屬于131、4GL語言屬于第三代程序設計語言(語言屬于第三代程序設計語言( )。)。2、程序設計這一階段的工作是把詳細設計中,具、程序設計這一階段的工作是把詳細設計中,具體的過程性描述內(nèi)容,翻譯成某一種程序設計體的過程性描述內(nèi)容,翻譯成某一種程序設計語言編寫的源程序(語言編寫的源程序( )。)。3、選擇程序設計語言只需要從程序員技術層面考、選擇程序設計語言只需要從程序員技術層面考慮(慮( )。)。4、高效的程序代碼能縮短開發(fā)周期,并減少維護、高效的程序代碼能縮短開發(fā)周期,并減少維護代價(代價( )。)。5、為了保證程序編碼的質(zhì)量,程序員必須深刻理、為了保證程序編碼的

8、質(zhì)量,程序員必須深刻理解、熟練掌握并正確地運用所有程序設計語言解、熟練掌握并正確地運用所有程序設計語言的特性。此外,還要求源程序具有良好的結構的特性。此外,還要求源程序具有良好的結構和良好的程序設計風格(和良好的程序設計風格( )。)。14156.2 編程規(guī)約編程規(guī)約o程序設計風格程序設計風格n 也稱編程風格。指人們編制程序時所表也稱編程風格。指人們編制程序時所表現(xiàn)出來的特點、習慣、邏輯思路。良好現(xiàn)出來的特點、習慣、邏輯思路。良好的編程風格可以減少編碼錯誤,減少讀的編程風格可以減少編碼錯誤,減少讀程序的時間,從而提高軟件的開發(fā)效率。程序的時間,從而提高軟件的開發(fā)效率。16n 源程序文檔化源程序

9、文檔化 n 數(shù)據(jù)說明數(shù)據(jù)說明n 語句結構語句結構 n 滿足運行工程學的輸入輸出風格滿足運行工程學的輸入輸出風格 注意從這幾個方面培養(yǎng)和學習良好的注意從這幾個方面培養(yǎng)和學習良好的編程風格,使編出的程序清晰易讀,編程風格,使編出的程序清晰易讀,易于測試與維護,從而提高軟件的易于測試與維護,從而提高軟件的質(zhì)量。質(zhì)量。主要從以下方面注意編程風格主要從以下方面注意編程風格17(1)恰當?shù)臉俗R符)恰當?shù)臉俗R符1.源程序文檔化源程序文檔化18(2)適當?shù)淖⑨專┻m當?shù)淖⑨宱夾在程序中的注釋是程序員與日后的夾在程序中的注釋是程序員與日后的程序讀者之間通信的重要手段。注釋程序讀者之間通信的重要手段。注釋決不是可有

10、可無的。決不是可有可無的。o一些正規(guī)的程序文本中,注釋行的數(shù)一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個源程序的量占到整個源程序的13到到12,甚至更多。甚至更多。19(3)標準的書寫格式)標準的書寫格式o書寫表達式時,恰當使用空格或圓括號書寫表達式時,恰當使用空格或圓括號等作隔離符。例如等作隔離符。例如 :應將應將(A(A17)ANDNOT(B17)ANDNOT(B49)ORC 49)ORC 寫成寫成(A(A17) AND NOT (B17) AND NOT (B49) OR C49) OR Co在注釋段的周圍加上邊框。在注釋段的周圍加上邊框。o用分層縮進的寫法顯示選擇結構和循環(huán)用分層縮進的寫

11、法顯示選擇結構和循環(huán)20n 在設計階段已經(jīng)確定了數(shù)據(jù)結構的組織在設計階段已經(jīng)確定了數(shù)據(jù)結構的組織及其復雜性。在編寫程序時,則需要注及其復雜性。在編寫程序時,則需要注意數(shù)據(jù)說明的風格意數(shù)據(jù)說明的風格n 為了使程序中數(shù)據(jù)說明更易于理解和維為了使程序中數(shù)據(jù)說明更易于理解和維護,必須注意以下幾點:護,必須注意以下幾點: 2. 數(shù)據(jù)說明數(shù)據(jù)說明21(1 1)數(shù)據(jù)說明的次序應當規(guī)范化)數(shù)據(jù)說明的次序應當規(guī)范化 在程序中數(shù)據(jù)說明,應按下列次序進行:在程序中數(shù)據(jù)說明,應按下列次序進行: 常量說明常量說明 變量類型說明變量類型說明 1)整型量說明;)整型量說明;2)實型量說明;)實型量說明; 3)字符量說明;)

12、字符量說明;4)邏輯量說明)邏輯量說明 數(shù)組說明數(shù)組說明 公用數(shù)據(jù)塊說明公用數(shù)據(jù)塊說明 所有的文件說明所有的文件說明 22(2 2)數(shù)據(jù)說明語句中變量安排有序化)數(shù)據(jù)說明語句中變量安排有序化n 當多個變量名在一個說明語句中說明時,當多個變量名在一個說明語句中說明時,應當對這些變量按字母的順序排列。帶標應當對這些變量按字母的順序排列。帶標號的全程數(shù)據(jù)也應當按字母的順序排列。號的全程數(shù)據(jù)也應當按字母的順序排列。(3 3)使用注釋說明復雜數(shù)據(jù)結構)使用注釋說明復雜數(shù)據(jù)結構233. 3. 語句結構語句結構2425264.4.輸入輸出方法輸入輸出方法6.3.1 6.3.1 代碼審查的目的和形式代碼審查的

13、目的和形式o 代碼審查是一個開發(fā)人員與架構師集中與討代碼審查是一個開發(fā)人員與架構師集中與討論代碼的過程。代碼審查就是以組為單位閱論代碼的過程。代碼審查就是以組為單位閱讀代碼,是一系列規(guī)程和錯誤檢查技術的集讀代碼,是一系列規(guī)程和錯誤檢查技術的集合。合。代碼審查是一種非常有效的程序驗證技代碼審查是一種非常有效的程序驗證技術,對于典型的程序來說,可以查出最多達術,對于典型的程序來說,可以查出最多達7070的邏輯設計錯誤和編碼錯誤。的邏輯設計錯誤和編碼錯誤。o 代碼審查的形式主要有幾種代碼審查的形式主要有幾種: :同行評審;管同行評審;管理評審;單人評審;代碼檢查。理評審;單人評審;代碼檢查。 6.3

14、.2 6.3.2 代碼審查小組和代碼審查內(nèi)容代碼審查小組和代碼審查內(nèi)容o 代碼審查的小組成員一般由三至五人組成,代碼審查的小組成員一般由三至五人組成,大型項目評審組人員最多可能會多達大型項目評審組人員最多可能會多達1010人左人左右,但通常是由四人組成。右,但通常是由四人組成。o 除項目評審組人員外,評審活動中還有的角除項目評審組人員外,評審活動中還有的角色是項目經(jīng)理和質(zhì)量保證人員。色是項目經(jīng)理和質(zhì)量保證人員。o 代碼審查過程中,在代碼檢查的時間和地點代碼審查過程中,在代碼檢查的時間和地點上的選擇上,應避免所有的外部干擾。上的選擇上,應避免所有的外部干擾。o 代碼的審查內(nèi)容主要有:代碼的編寫規(guī)

15、范代碼的審查內(nèi)容主要有:代碼的編寫規(guī)范(注釋的書寫格式、命名規(guī)范、代碼組織結(注釋的書寫格式、命名規(guī)范、代碼組織結構)、技術處理規(guī)范(異常處理、日志處構)、技術處理規(guī)范(異常處理、日志處理)、業(yè)務實現(xiàn)等。理)、業(yè)務實現(xiàn)等。 6.3.3 6.3.3 代碼審查過程代碼審查過程o 代碼審查輸入及入口準則:代碼審查輸入及入口準則:o 代碼審查的步驟代碼審查的步驟 制定評審計劃;制定評審計劃; 評審準備;評審準備; 評審會議;評審會議; 對評審結果采取行動;對評審結果采取行動; 評審結果跟蹤;評審結果跟蹤; 提交和歸檔。提交和歸檔。 30程序設計程序設計 課后習題課后習題o 以下屬于第三代程序設計語言的

16、以下屬于第三代程序設計語言的選項是(選項是( )。)。A. A. 機器語言機器語言B. B. 現(xiàn)代語言現(xiàn)代語言C. C. 匯編語言匯編語言D. SQLD. SQL語言語言31程序設計程序設計 課后習題課后習題2. 2. 結構化程序設計主要強調(diào)的是結構化程序設計主要強調(diào)的是( )。)。A A程序的規(guī)模程序的規(guī)模 B. B. 程序的效率程序的效率C. C. 程序設計語言的先進性程序設計語言的先進性 D. D. 程序易讀性程序易讀性D32程序設計程序設計 課后習題課后習題3. 3. 以下符合編碼風格要求的是以下符合編碼風格要求的是( )。)。o 盡可能把程序編得短些盡可能把程序編得短些 o 用有意義

17、的變量名用有意義的變量名C.C.注釋越少越好注釋越少越好 D.D.盡可能多地使用盡可能多地使用GOTOGOTO語句語句B334. 4. 下列屬于標準的書寫格式下列屬于標準的書寫格式( )。)。A.A.書寫時適當使用空格分隔書寫時適當使用空格分隔B.B.一行寫入多條語句一行寫入多條語句C.C.嵌套結構不使用分層縮進的寫法嵌套結構不使用分層縮進的寫法D.D.程序中不加注釋程序中不加注釋A345. 5. 以下描述錯誤的是(以下描述錯誤的是( )。)。A. 程序設計語言的特性和程序設計風格,會程序設計語言的特性和程序設計風格,會深刻地影響軟件的質(zhì)量和可維護性深刻地影響軟件的質(zhì)量和可維護性B. 為了保證

18、程序編碼的質(zhì)量,程序員必須深為了保證程序編碼的質(zhì)量,程序員必須深刻理解、熟練掌握并正確地運用程序設計語言刻理解、熟練掌握并正確地運用程序設計語言的特性的特性C. 高效的程序代碼。能縮短開發(fā)周期,并減高效的程序代碼。能縮短開發(fā)周期,并減少維護代價少維護代價D. 只要程序設計語言選擇的好就可以設計出只要程序設計語言選擇的好就可以設計出高效的程序代碼,對于程序的結構沒有要求高效的程序代碼,對于程序的結構沒有要求356. 6. 以下屬于選擇程序設計語言的標以下屬于選擇程序設計語言的標準的選項是(準的選項是( )。)。A. A. 選擇用戶熟悉的程序設計語言選擇用戶熟悉的程序設計語言B. B. 從程序員知識水平和心理因素等從程序員知識水平和心理因素等方面考慮方面考慮C. C. 從軟件的可移植性考慮從軟件的可移植性考慮D. D. 以上三項都屬于以上三項都屬于36o 高效的程序代碼。能縮短開發(fā)周高效的程序代碼。能縮短開發(fā)周期,并減少維護代價。(期,并減少維護代價。( )o 程序設計語言的特性和程序設計程序設計語言的特性和程序設計風格,會深刻地影響軟件的質(zhì)量風格,會深刻地影響軟件的質(zhì)量和可維護性。(和可維護性。( )對對對對37o 程序設計語言中應絕對禁止使用程序設計語言中應絕對禁止使用GOTOGOTO語句。(語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論