33847-00劉實用軟件工程_第1頁
33847-00劉實用軟件工程_第2頁
33847-00劉實用軟件工程_第3頁
33847-00劉實用軟件工程_第4頁
33847-00劉實用軟件工程_第5頁
免費預覽已結束,剩余14頁可下載查看

下載本文檔

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

文檔簡介

1、第5章 軟件實現(xiàn) 劉金安TEL: 22022/9/9程序設計語言的性能 結構化程序設計的原則 源程序的設計風格 程序復雜性度量方法 軟件開發(fā)過程的文檔教學重點32022/9/95.1 程序設計語言選擇 完美的方案必須通過高質量的編碼來實現(xiàn)。確認軟件需求后,程序語言的技術特性就顯得非常重要了。程序設計語言的選擇應該考慮以下因素:項目的應用范圍算法和計算復雜性軟件執(zhí)行的環(huán)境性能上的考慮數(shù)據(jù)結構的復雜性軟件開發(fā)人員的知識水平等42022/9/95.2 結構化程序設計 結構程序設計的概念最早是由E.W.Dijkstra 提出來的,他指出:“可以從高級語言中取消GOTO 語句,程序質量與程序中所包含的G

2、OTO 語句的數(shù)量成反比?!薄2⒅赋鼋Y構化程序設計并非簡單的取消GOTO 語句,而是創(chuàng)立一種新的程序設計思想、方法和風格,以顯著提高軟件生產(chǎn)率和質量。 52022/9/95.2 結構化程序設計 GOTO語句可以靈活跳轉,如果不加限制,它的確會破壞結構化設計風格。其次, GOTO語句經(jīng)常帶來錯誤或隱患。 大量采用GOTO語句實現(xiàn)控制路徑,會使程序路徑變得復雜而且混亂,因此要嚴格控制GOTO語句的使用。 5.2.1 關于GOTO語句的爭論62022/9/95.2 結構化程序設計 程序結構是按功能劃分為若干個基本模塊;各模塊之間的關系盡可能簡單,在功能上相對獨立;使用順序、選擇、循環(huán)等基本控制結構表

3、示程序邏輯;控制結構只準許有一個入口和一個出口;程序語句組成容易識別的模塊,每個模塊必須有一個入口和一個出口;復雜結構應該用基本控制結構進行組合嵌套來實現(xiàn);嚴格控制GOTO語句,在可以改善程序性能,同時又不影響或者損害程序可讀性的情況下才可以使用GOTO語句。 5.2.2 結構化程序設計的原則 72022/9/95.2 結構化程序設計 在詳細設計和編碼階段,應當采取自頂向下,逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,進而翻譯成一系列用某種程序設計語言寫成的程序。 5.2.3 程序設計自頂向下,逐步求精 82022/9/95.2 結構化程序設計 自頂向下,逐步求精方法的優(yōu)

4、點:自頂向下,逐步求精方法符合人們解決復雜問題的普遍規(guī)律??商岣哕浖_發(fā)的成功率和生產(chǎn)率;用先全局后局部,先整體后細節(jié),先抽象后具體的逐步求精的過程開發(fā)出來的程序具有清晰的層次結構,因此程序容易閱讀和理解;程序自頂向下,逐步細化,分解成一個樹形結構;程序清晰和模塊化,使得在修改和重新設計一個軟件時,可復用的代碼量最大;每一步工作僅在上層結點的基礎上做不多的設計擴展,便于檢查;有利于設計的分工和組織工作。 92022/9/95.3 源程序設計風格 程序實際上也是一種供人閱讀的表達思想的一段文字,只不過它不是用自然語言而是用程序設計語言編寫的。因此,一個邏輯上雖正確但雜亂無章的程序是沒有什么價值的

5、,因為它無法供人閱讀,也難以測試、排錯和維護。所以程序的設計風格就顯得尤為重要。102022/9/95.3 源程序設計風格 源程序的文檔化一般表現(xiàn)為以下幾個方面:標識符的命名準則 程序的注釋 書寫格式 5.3.1 源程序文檔化 標識符就是程序設計中涉及的模塊名、變量名、常量名、函數(shù)名、數(shù)據(jù)區(qū)名、緩沖區(qū)名等等,它的命名必須一般遵循一定的原則,但是往往不同的開發(fā)小組有不同的命名方式,但是都遵守一定的準則:要能顧名思義,名字應能反映它所代表的實際含義;應當選擇精煉的意義明確的名字,不要太長;在一個程序中,一個變量只應用于一種用途,不能同時代表多個含義。 112022/9/95.3 源程序設計風格 語

6、句結構直接影響到程序的可讀性及效率,應該采用直接、簡單、清晰的構造方式,而不要為了提高效率或者顯示技巧而降低程序的清晰性和可讀性。例如:交換變量a和b的值,你可以為了提高性能寫成:a=a+b; b=a-b;a=a-b這樣看起比較費解,需要好好分析才能得到結論,但是如果借助中間變量t就清楚地多,具體表達式如下:t=a;a=b;b=t; 5.3.2 語句結構 122022/9/95.3 源程序設計風格 在編寫程序時,需要注意數(shù)據(jù)說明的風格,為了要使程序中的數(shù)據(jù)說明更易于理解和維護,必須遵循以下原則:數(shù)據(jù)說明的次序應當規(guī)范化,使數(shù)據(jù)屬性容易查找,從而有利于測試、糾錯與維護。當多個變量名用一個語句說明

7、時,應當對這些變量按字母的順序排列。例如:應該把 int weight, name, score , age; 寫成: int age , name, score, weight;如果設計了一個復雜的數(shù)據(jù)結構,應當使用注釋來說明在程序實現(xiàn)時這個數(shù)據(jù)結構的固有結構。對一些復雜的數(shù)據(jù)的說明最好放在一個說明文件中,便于查找和修改。 5.3.3 數(shù)據(jù)說明 132022/9/95.3 源程序設計風格 輸入和輸出方式,在設計和程序編碼時都應遵守下列原則:對輸入數(shù)據(jù)都進行檢驗,以保證每個數(shù)據(jù)的有效性;檢查輸入項的各種重要組合的合理性,必要時報告輸入狀態(tài)信息;對于輸入輸出操作,安排適當?shù)木彌_區(qū),以減少頻繁的信

8、息交換;使得輸入的步驟和操作盡可能簡單,并保持簡單的輸入格式;輸入數(shù)據(jù)時,應允許使用自由格式輸入;輸入一批數(shù)據(jù)時,最好使用輸入結束標志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目;要在屏幕上使用提示符明確提示交互輸入的請求,指明可使用選擇項的種類和取值范圍;同時對于多項輸入的情況下,應該給出哪些項目為必填項,哪些項目為選填項;當程序設計語言對輸入輸出格式有嚴格要求時,應保持輸入格式與輸入語句的要求的一致性;設計良好的輸出報表。5.3.4 輸入和輸出 142022/9/95.3 源程序設計風格 程序的效率是指程序的執(zhí)行速度及程序所需占用的內(nèi)存的存儲空間。設計邏輯結構清晰、高效的算法,是提高程序效率的關鍵,提高

9、程序效率的幾條準則為: 效率是一個性能要求,應當在需求分析階段給出; 軟件效率以需求為準,不應以人力所及為準; 程序的效率與編碼的質量息息相關; 良好的設計可以提高效率; 程序的效率與程序的算法選擇相關,算法效率反映為程序的執(zhí)行速度和存儲容量的要求。5.3.5 效率 152022/9/95.4 程序復雜性度量 統(tǒng)計程序的源代碼包括代碼和注釋的行數(shù),并以此行數(shù)作為程序復雜性的度量。這種方法計算簡單,與所用的高級程序設計語言類型無關。此方法基于兩個前提:程序復雜性隨著程序規(guī)模的增加不均衡地增長;控制程序規(guī)模的方法最好是采用分而治之的辦法。5.4.1 代碼行度量法 162022/9/95.4 程序復雜性度量 McCabe度量法基于一個程序模塊的程序圖中環(huán)路的個數(shù)。如果把程序流程圖中每個處理符號都退化成一個結點,原來聯(lián)結不同處理符號的流線變成連接不同結點的有向弧,這樣得到的有向圖就叫做程序流圖。其計算公式為: V(G)=m-n+2其中V(G)是強連通有向圖G中的環(huán)數(shù);m是G中的弧數(shù);n是G中的節(jié)點數(shù) 5.4.2 McCabe度量方法172022/9/95.4 程序復雜性度量 例如:如圖所示的程序流圖 其中,節(jié)點數(shù)為n=9弧數(shù)m=11則有McCabe環(huán)復雜度度量為4 5.4

溫馨提示

  • 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

提交評論