第六章 編 碼.ppt_第1頁
第六章 編 碼.ppt_第2頁
第六章 編 碼.ppt_第3頁
第六章 編 碼.ppt_第4頁
第六章 編 碼.ppt_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),第六章 編 碼,作為軟件工程的個(gè)步驟,編碼是設(shè)計(jì)的必然結(jié)果,因此,程序的質(zhì)量主要取決于軟件設(shè)計(jì)的質(zhì)量。但是,程序設(shè)計(jì)語言的特性和編碼途徑也會(huì)對(duì)程序的可靠性、可讀性、可測試性和可維護(hù)性產(chǎn)生深遠(yuǎn)的影響。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),6.1程序設(shè)計(jì)語言,1程序設(shè)計(jì)語言分類 從應(yīng)用特點(diǎn)看,高級(jí)語言可以分為基礎(chǔ)語言、結(jié)構(gòu)化語言和專用語言三類。 從語言的內(nèi)在特點(diǎn)看,高級(jí)語言可以分為系統(tǒng)實(shí)現(xiàn)語言、靜態(tài)高級(jí)語言、塊結(jié)構(gòu)高級(jí)語言和動(dòng)態(tài)高級(jí)語言等四類。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software

2、Engineer),2 程序設(shè)計(jì)語言的特點(diǎn) 下面從幾個(gè)不同側(cè)面簡單討論程序設(shè)計(jì)語言的特點(diǎn): 名字說明 類別說明 初始化程序 對(duì)象的局部性 程序模塊 循環(huán)控制結(jié)構(gòu) 分支控制結(jié)構(gòu) 異常處理 獨(dú)立編譯,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),3程序設(shè)計(jì)語言的選擇 在實(shí)際選用語言時(shí),重要的實(shí)用標(biāo)準(zhǔn)有下述幾條: 語言自身的功能 系統(tǒng)用戶的要求 編碼和維護(hù)成本 可以使用的編譯程序 可以使用的軟件工具 軟件的兼容性 軟件的可移植性 系統(tǒng)規(guī)模 程序員的知識(shí),計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),6.2編碼風(fēng)格,良好的編碼風(fēng)格有助于編寫出可靠而又容易

3、維護(hù)的程序,編碼的風(fēng)格在很大程度上決定著程序的質(zhì)量。 1 源程序文檔化 1)標(biāo)識(shí)符的命名 2)程序的注釋 3)標(biāo)準(zhǔn)的書寫格式,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),2 數(shù)據(jù)說明 為了使數(shù)據(jù)更容易理解和維護(hù),必須注意下述幾點(diǎn): 數(shù)據(jù)說明的次序應(yīng)該標(biāo)準(zhǔn)化(例如,按照數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)類型確定說明的次序)。有次序就容易查閱,因此能夠加速測試、調(diào)試和維護(hù)的過程。 說明的先后次序固定。例如,按照常量說明、簡單變量類型說明、數(shù)組說明、公用數(shù)據(jù)塊說明、所有文件說明的順序說明。 當(dāng)多個(gè)變量名字在一個(gè)語句中說明時(shí),應(yīng)該按字母順序排列這些變量。 如果設(shè)計(jì)時(shí)使用了一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),則應(yīng)

4、該用注釋說明用程序設(shè)計(jì)語言實(shí)現(xiàn)這個(gè)數(shù)據(jù)結(jié)構(gòu)的方法和待點(diǎn)。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),3語句構(gòu)造 構(gòu)造語句時(shí)應(yīng)該遵循的原則是: 使用標(biāo)準(zhǔn)的控制結(jié)構(gòu); 盡可能使用庫函數(shù); 不要為了節(jié)省空間而把多個(gè)語句寫在同一行; 盡量避免復(fù)雜的條件測試; 盡量減少對(duì)“非”條件的測試; 避免大量使用循環(huán)嵌套和條件嵌套; 利用括號(hào)使邏輯表達(dá)式或算術(shù)表達(dá)式的運(yùn)算次序清晰直觀。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),4 輸入輸出 輸入輸出風(fēng)格的規(guī)則: 對(duì)所有輸入數(shù)據(jù)都進(jìn)行校驗(yàn),保證數(shù)據(jù)的有效性; 檢查輸入項(xiàng)重要組合的合法性,必要時(shí)報(bào)告輸入狀態(tài)信息

5、; 輸入的步驟和操作盡可能簡單,保持輸入格式簡單; 輸入一批數(shù)據(jù)時(shí),不要要求用戶指定數(shù)據(jù)的數(shù)目; 明確提示交互式輸入的請(qǐng)求,詳細(xì)說明可用的選擇或邊界數(shù)值; 應(yīng)保持輸入格式與輸入語句要求的一致性; 給所有的輸出加注釋,設(shè)計(jì)良好的輸出報(bào)表; 應(yīng)允許缺省值。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),6.3程序效率,1算法對(duì)效率的影響 源程序的效率直接由詳細(xì)設(shè)計(jì)階段確定的算法的效率決定,但是,寫程序的風(fēng)格也能對(duì)程序的執(zhí)行速度和存儲(chǔ)器要求產(chǎn)生影響。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),2影響存儲(chǔ)器效率的因素 采用結(jié)構(gòu)化程序設(shè)計(jì),將程序功能合

6、理分塊,使每個(gè)模塊或一組密切相關(guān)模塊的程序體積大小與每頁的容量相匹配,可減少頁面調(diào)度,減少內(nèi)外存交換,提高存儲(chǔ)效率。 在微處理機(jī)中如果要求使用最少的存儲(chǔ)單元,則應(yīng)選用有緊縮存儲(chǔ)器特性的編譯程序,在非常必要時(shí)可以使用匯編語言。提高執(zhí)行效率的技術(shù)通常也能提高存儲(chǔ)器效率。提高存儲(chǔ)器效率的關(guān)鍵同樣是簡單。通過程序員富有創(chuàng)造性的努力,提高軟件時(shí)間與空間效率。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),3 影響輸入輸出的因素 提高輸入輸出效率的原則: 輸入輸出操作應(yīng)當(dāng)最小化; 所有輸入輸出都應(yīng)該有緩沖,以減少用于通信的額外開銷, 對(duì)輔助存儲(chǔ)器(如磁盤)應(yīng)選用最簡單的訪問方法;

7、輔助存儲(chǔ)器的輸入輸出應(yīng)該以信息組(塊)為單位進(jìn)行; 對(duì)終端或打印機(jī)的輸入輸出,應(yīng)考慮設(shè)備特性,改善輸入輸出的質(zhì)量和速度; 任何不易理解的,對(duì)改善輸入輸出效果關(guān)系不大的措施都是不可取的; 如果“超高效的”輸入輸出很難被人理解,則不應(yīng)采用這種方法。 這些簡單原則對(duì)于軟件工程的設(shè)計(jì)和編碼兩個(gè)階段都適用。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),6.4編程安全,提高軟件質(zhì)量和可靠性的技術(shù)大致可分為兩類:一類是避錯(cuò)技術(shù),即在開發(fā)的過程中不讓差錯(cuò)潛入軟件的技術(shù);另一類是容錯(cuò)技術(shù),即對(duì)某些無法避開的差錯(cuò),使其影響減少到最小的技術(shù)。避錯(cuò)技術(shù)是進(jìn)行質(zhì)量管理,實(shí)現(xiàn)產(chǎn)品應(yīng)有質(zhì)量所不可少

8、的技術(shù),也就是軟件工程中所討論的先進(jìn)的軟件分析和開發(fā)技術(shù)及管理技術(shù)。但是,無論使用多么高明的避錯(cuò)技術(shù),也無法做到完美無缺和絕對(duì)無錯(cuò),這就需要采用容錯(cuò)技術(shù)。實(shí)現(xiàn)容錯(cuò)的主要手段是冗余程序設(shè)計(jì)和防錯(cuò)程序設(shè)計(jì)。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),1 冗余程序設(shè)計(jì) 冗余是改善系統(tǒng)可靠性的一種重要技術(shù)。在軟件系統(tǒng)中,采用冗余技術(shù)是指要解決一個(gè)問題必須設(shè)計(jì)出兩個(gè)不同的程序,包括采用不同的算法和設(shè)計(jì),而且編程人員也應(yīng)該不同。 冗余程序設(shè)計(jì)所帶來的副作用是由于文本的增加而帶來的存儲(chǔ)空間的增加,以及運(yùn)行時(shí)間的延長。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),2防錯(cuò)程序設(shè)計(jì) 在編碼即程序設(shè)計(jì)過程中,總是不可避免的會(huì)或多或少的產(chǎn)生一些錯(cuò)誤。為了避免和糾正這些錯(cuò)誤,可在編碼過程中有意識(shí)地在程序中加進(jìn)一些錯(cuò)誤檢查的措施,這就是防錯(cuò)程序設(shè)計(jì)的基本思想。防錯(cuò)程序設(shè)計(jì)可分為主動(dòng)式和被動(dòng)式兩種。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Software Engineer),1. 主動(dòng)式防錯(cuò)程序設(shè)計(jì) 主動(dòng)式防錯(cuò)程序設(shè)計(jì)是指周期性的對(duì)整個(gè)程序或數(shù)據(jù)庫進(jìn)行搜查或在空閑時(shí)搜查異常情況。 2. 被動(dòng)式防錯(cuò)程序設(shè)計(jì) 被動(dòng)式防錯(cuò)程序設(shè)計(jì)思想是指必須等到某個(gè)輸入之后才能進(jìn)行檢查,也就是達(dá)到檢查點(diǎn)時(shí),才能對(duì)程序的某些部分進(jìn)行檢查。,計(jì)算機(jī)科學(xué)與工程學(xué)院,軟件工程(Softwa

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論