ch07 Writing the Programs_第1頁
ch07 Writing the Programs_第2頁
ch07 Writing the Programs_第3頁
ch07 Writing the Programs_第4頁
ch07 Writing the Programs_第5頁
已閱讀5頁,還剩54頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、Software Engineering 信息學院計算機系信息學院計算機系 李薇李薇 Chapter 7 Writing the Programs Shari L. Pfleeger Joann M. Atlee 4th Edition Contents 7.1 Programming Standards and Procedures 7.2 Programming Guidelines 7.3 Documentation 7.4 The Programming Process Chapter 7 Objectives Standards for programming Guidelines

2、for reuse Using design to frame the code Internal and external documentation 7.1 Programming Standards and Procedures 評估已有代碼 參加評審,檢查自己或別人的代碼 團隊的開發,需要協作和協調 因此,在開始編寫代碼之前,必須了解你的組織機構 的標準和過程。 許多公司有自己的編程標準。 7.1 Programming Standards and Procedures Standards for you methods of code documentation Standards

3、for others Integrators, maintainers, testers Prologue documentation Matching design with implementation Low coupling, high cohesion, well-defined interfaces 7.2 Programming Guidelines 不管使用何種語言,每個程序構件都至少包括3個方 面的內容: Control Structures Algorithms Data Structures 7.2 Programming Guidelines Control Struc

4、tures 不管什么類型的設計,都要使程序結構能夠反映出設 計的控制結構。 Make the code easy to read Build the program from modular blocks Make the code not too specific, and not too general Use parameter names and comments to exhibit coupling among components Make the dependency among components visible (構件 之間的依賴關系必須是可見的) 7.2 Program

5、ming Guidelines Example of Control Structures Control skips around among the programs statements benefit = minimum; if (age 75) goto A; benefit = maximum; goto C; if (AGE 65) goto B; if (AGE 55) goto C; A:if (AGE 65) goto B; benefit = benefit * 1.5 + bonus; goto C; B:if (age 55) goto C; benefit = be

6、nefit * 1.5; C:next statement Rearrange the code if (age 55) benefit = minimum; elseif (AGE 65) benefit = minimum + bonus; elseif (AGE 10000) tax = tax + 1000; else tax = tax + .10*taxable_income; goto EXIT; if (taxable_income 20000) tax = tax + 1200; else tax = tax + .12*(taxable_income-10000): got

7、o EXIT; if (taxable_income 30000) tax = tax + 1500; else tax = tax + .15*(taxable_income-20000); goto EXIT; if (taxable_income 40000) tax = tax + .18*(taxable_income-30000); goto EXIT; else tax = tax + 1800. + .20*(taxable_income-40000); EXIT; 7.2 Programming Guidelines Keep the Program Simple Examp

8、le (continued) Define a tax table for each “bracket” of tax liability Simplified algorithm for (int i=2; level=1; i bracketi) level = level + 1; tax= baselevel+percentlevel * (taxable_income - bracketlevel); BracketBasePercent 0010 10,000100012 20,000220015 30,000370018 40,000550020 7.2 Programming

9、Guidelines General Guidelines to Preserve Quality Localize input and output Employ pseudocode(偽代碼) Revise and rewrite, rather than patch(補丁) Reuse Producer reuse: create components designed to be reused in future applications Consumer reuse: reuse components initially developed for other projects Re

10、use Producer reuse生產者復用 我們設計的組件可以在以后的項目重用 Consumer reuse消費者復用 使用以前為其他工程開發的組件 如何選擇重用部件? 1.這個部件是否提供你所需要的功能和數據 2.如果需要較小的修改,修改的費用是否少于重新編寫部件 3.該部件是否有完備的文檔,是你不必逐行的閱讀代碼就可以理解 它 4.是否有該部件測試的完整記錄和歷史版本,是你可以確信其沒有 缺陷。 同時還必須估計為使系統能與可重用部件相結合所需寫的代碼量。 7.3 Documentation Internal documentation header comment block mean

11、ingful variable names and statement labels other program comments format to enhance understanding document data (data dictionary) External documentation describe the problem describe the algorithm describe the data 編寫程序 編寫程序,要考慮以下幾個方面: (1) 了解什么是好程序; (2) 采用什么程序設計技術; (3) 遵循什么樣的編程規范; 7.3.1 Programming

12、technique 結構化程序設計 面向對象程序設計 可視化程序設計 Web程序設計 插件技術 編碼選擇程序設計語言編碼選擇程序設計語言 1、程序設計語言的分類及演變 第一代:機器語言和匯編語言 第二代:FORTRAN、COBOL、ALGOL60、BASIC(GOTO) 第三代:C、PASCAL 4GL(平臺):抽象層次更高,已不再涉及太多的算法性 細節 2、程序設計語言的特點(理想的高級程序設計語言) 有良好的模塊化機制 可讀性好的控制結構和數據結構 編譯程序能夠盡可能多地發現程序代碼中的錯誤 有良好的獨立編譯機制 編碼選擇程序設計語言編碼選擇程序設計語言 總的來說,高級語言明顯由于匯編語言

13、,因此,除 了在很特殊的應用領域,或者大型系統中執行時間 非常關鍵的(或直接依賴于硬件的)一小部分代碼, 需要用匯編語言書寫之外,其他程序代碼應該一律一律 用高級語言書寫用高級語言書寫。 編碼選擇程序設計語言編碼選擇程序設計語言 選擇時,不能僅僅使用理想標準,還必須同時考慮選擇時,不能僅僅使用理想標準,還必須同時考慮 實用方面的種種限制。主要有實用方面的種種限制。主要有 1語言自身的功能。語言自身的功能。 2系統用戶的要求。系統用戶的要求。 3可以使用的編譯程序。可以使用的編譯程序。 4可以使用的軟件工具。可以使用的軟件工具。 5軟件的可移植性。軟件的可移植性。 6開發軟件系統的規模。開發軟件

14、系統的規模。 7軟件的應用領域。軟件的應用領域。 8程序設計人員的知識水平。程序設計人員的知識水平。 結構化程序設計 通常認為結構化程序設計包括以下四方面的內容: (1) 限制使用GO TO語句 (2) 逐步求精的設計方法 (3) 自頂向下的設計、編碼和調試 (4) 主程序員制的組織形式 面向對象程序設計 封裝、繼承、多態 程序以對象為基本元素,對象包含屬性和方法,設 計程序通常不采用順序結構 數據是特定對象的數據,只有對象自身的函數或過 程(方法)可以維護對象的數據(屬性) 公用的功能通常設計組件(類)以實現重用 需要分析并表達出對象之間的關系 1、編程標準 編制易于修改和維護的代碼 編制易

15、于測試的代碼 必須將編程與編文檔的工作統一起來 采用統一的標準和約定,降低程序復雜性 限定每一層的副作用,減少耦合度 盡可能地重用 2、開發規范 系統開發規范的目的是使整個系統開發過程階段清晰, 要求明確,任務具體,使之規范化,系統化和工程化, 向從事軟件開發的技術人員提供一系列行之有效的基本 準則和方法。 編程標準及開發規范編程標準及開發規范 7.3.2 編程規范 程序實際上也是一種供人閱讀的文章,有一個程序實際上也是一種供人閱讀的文章,有一個文章文章 的風格的風格問題。應該使程序具有良好的風格。問題。應該使程序具有良好的風格。 源程序文檔化源程序文檔化 數據說明數據說明 語句結構語句結構

16、編碼規范 編碼規范對于程序員而言尤為重要,有以下幾個原因: 一個軟件的生命周期中,80%的花費在于維護。 幾乎沒有任何一個軟件,在其整個生命同期中,均由最 初的開發人員來維護。 編碼規范可以改善軟件的可讀性,可以讓程序員盡快而 徹底地理解新代碼。 如果你將源碼作為產品發布,就需要確認它是否被很好 的打包并且清晰無誤,一如你已構建的其它任何產品。 為了執行規范,每個軟件開發人員必須一致遵守編碼規范。 每個人! /* Copyright (C), 1988-1999, Dcampus Network Ltd. FileName: test.cpp Author: Version : Date: D

17、escription: / 模塊描述 Version: / 版本信息 Function List: / 主要函數及其功能 1. - History: / 歷史修改記錄 David 96/10/12 1.0 build this moudle */ 函數頭部應進行注釋,列出:函數的目的函數頭部應進行注釋,列出:函數的目的/功能、功能、 輸入參數、輸出參數、返回值、調用關系(函數、表)等。輸入參數、輸出參數、返回值、調用關系(函數、表)等。 /* Function: / 函數名稱 Description: / 函數功能、性能等的描述 Calls: / 被本函數調用的函數清單 Called By: / 調用本函數的函數清單 Table Accessed: / 被訪問的表(此項僅對于牽扯到數據庫操作的程序) Table Updated: / 被修改的表(此項僅對于牽扯到數據庫操作的程序) Input: / 輸入參數說明,包括每個參數的作 / 用、取值說明及參數間關系。 Output: / 對輸出參數的說明。 Return: / 函數返回值的說明 Others: / 其它說明

溫馨提示

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

評論

0/150

提交評論