第7章--編碼(1)分析_第1頁(yè)
第7章--編碼(1)分析_第2頁(yè)
第7章--編碼(1)分析_第3頁(yè)
第7章--編碼(1)分析_第4頁(yè)
第7章--編碼(1)分析_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 第7章 實(shí)現(xiàn)軟件過(guò)程模型軟件過(guò)程模型軟軟件件生生命命周周期期 編碼 軟件測(cè)試基礎(chǔ)l 單元測(cè)試l 集成測(cè)試l 確認(rèn)測(cè)試l 白盒測(cè)試l 黑盒測(cè)試 調(diào)試 軟件可靠性3:4 題1:假設(shè)愛(ài)國(guó)者導(dǎo)彈單發(fā)命中率為80%,問(wèn)3發(fā)齊射命中率為多少? 答:3發(fā)都不命中才算不命中因此“不命中率”(1-80%)3 = 0.8%命中率 = 1 - 0.8% = 99.2%敵機(jī)幾乎有來(lái)無(wú)回5 題2:波音777飛機(jī)由300萬(wàn)個(gè)零件組成,每個(gè)零件的合格率達(dá)到99.9999%,問(wèn)整架飛機(jī)的合格率是多少? 答: 只要一個(gè)零件不合格,整架飛機(jī)就有問(wèn)題 整架飛機(jī)的合格率 = (99.9999%)3000000= 你猜多少? 5%6

2、 問(wèn)題出在哪里?首先該題的解答沒(méi)有錯(cuò)但是飛機(jī)確實(shí)是最安全的交通工具之一 制造飛機(jī)不是題目中說(shuō)的這么簡(jiǎn)單不是簡(jiǎn)單的把零件組裝起來(lái)就可以需要“全面質(zhì)量管理”:模塊化:模塊化7 例如假設(shè)整架飛機(jī)可分成5個(gè)子系統(tǒng),每個(gè)子系統(tǒng)60萬(wàn)個(gè)零件如果只是簡(jiǎn)單的組裝,每個(gè)子系統(tǒng)的合格率為(0.999999)600000=54.9%如果對(duì)每個(gè)子系統(tǒng)進(jìn)行嚴(yán)格的測(cè)試,可以發(fā)現(xiàn)其中99%的問(wèn)題,則合格率為1-(1-54.9%)*(1-99%)=99.5%再把這5個(gè)子系統(tǒng)組裝起來(lái)并測(cè)試,整架飛機(jī)的合格率就可以保證8 引申出一題:假設(shè)一個(gè)程序員平均每寫(xiě)100行代碼就會(huì)犯一個(gè)錯(cuò)誤,假設(shè)一個(gè)程序有1萬(wàn)行,問(wèn)合格率是多少? 答:平

3、均每寫(xiě)100行代碼就會(huì)犯一個(gè)錯(cuò)誤因此正確寫(xiě)出一行代碼的概率是99%整個(gè)程序要正確,一句錯(cuò)誤的代碼都不能有整個(gè)程序正確的概率 = (99%)10000= 2.2510-44 09 啟發(fā) 沒(méi)有不出錯(cuò)的程序(除非特別簡(jiǎn)單) 但是通過(guò)有效的質(zhì)量管理可以保證大部分錯(cuò)誤都被發(fā)現(xiàn) 充分的需求分析、合理的設(shè)計(jì)、正確的編程、徹底的測(cè)試 每一步 在每一個(gè)7.1 7.1 編碼編碼概念:概念:就是把軟件設(shè)計(jì)結(jié)果翻譯成就是把軟件設(shè)計(jì)結(jié)果翻譯成用某種程序設(shè)計(jì)用某種程序設(shè)計(jì)語(yǔ)言語(yǔ)言書(shū)寫(xiě)的程序。書(shū)寫(xiě)的程序。是將設(shè)計(jì)轉(zhuǎn)化為計(jì)算機(jī)能夠理解的是將設(shè)計(jì)轉(zhuǎn)化為計(jì)算機(jī)能夠理解的形式。形式。102022年年6月月20日星期一日星期一111

4、 程序設(shè)計(jì)語(yǔ)言的特性及選擇一、1.1.結(jié)構(gòu)特性結(jié)構(gòu)特性結(jié)構(gòu)化程序設(shè)計(jì)主要包括兩方面:(1) 在編寫(xiě)程序時(shí),強(qiáng)調(diào)使用幾種基本控制結(jié)構(gòu)強(qiáng)調(diào)使用幾種基本控制結(jié)構(gòu),通過(guò)組合嵌套,形成程序的控制結(jié)構(gòu)。盡可能盡可能避免使用避免使用GOTO語(yǔ)句語(yǔ)句。(2) 在程序設(shè)計(jì)過(guò)程中,盡量采用自頂向下和逐自頂向下和逐步細(xì)化步細(xì)化的原則,由粗到細(xì),一步步展開(kāi)。12 1、使用語(yǔ)言中的、等有限的基本控制結(jié)構(gòu)表示程序邏輯。 2、選用的控制結(jié)構(gòu)只準(zhǔn)許有和和。 3、程序語(yǔ)句組成組成,每塊只有和。 4、復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來(lái)實(shí)現(xiàn)。13一、 2. 2. 工程特性工程特性 (1) (1) 可移植性:可移植性:指程序從

5、一個(gè)計(jì)算機(jī)環(huán)境移植到另一個(gè)計(jì)算機(jī)環(huán)境的容易程度,計(jì)算機(jī)環(huán)境是指不同機(jī)型、不同的操作系統(tǒng)版本及不同的應(yīng)用軟件包。 要增加可移植性,應(yīng)考慮以下幾點(diǎn):在設(shè)計(jì)時(shí)要增加可移植性,應(yīng)考慮以下幾點(diǎn):在設(shè)計(jì)時(shí)模塊與操作模塊與操作系統(tǒng)特性系統(tǒng)特性不應(yīng)該有高度聯(lián)系不應(yīng)該有高度聯(lián)系; 要使用要使用標(biāo)準(zhǔn)的語(yǔ)言標(biāo)準(zhǔn)的語(yǔ)言,要使用,要使用標(biāo)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)操作準(zhǔn)的數(shù)據(jù)庫(kù)操作,盡量,盡量不使用擴(kuò)充結(jié)構(gòu)不使用擴(kuò)充結(jié)構(gòu); 對(duì)程序中各種對(duì)程序中各種可變可變信息,均應(yīng)參數(shù)化信息,均應(yīng)參數(shù)化,以便于修改。,以便于修改。14 (2) 開(kāi)發(fā)工具的可利用性:指有效的軟件開(kāi)發(fā)工具可以縮短編碼時(shí)間,改進(jìn)源代碼的質(zhì)量。 目前,許多編程語(yǔ)言都嵌入到一

6、套完整的軟件開(kāi)發(fā)環(huán)境里。這些開(kāi)發(fā)工具為:交互式調(diào)試器、交叉編譯器、屏交互式調(diào)試器、交叉編譯器、屏幕格式定義工具、報(bào)表格式定義工具、圖形開(kāi)發(fā)環(huán)境、菜幕格式定義工具、報(bào)表格式定義工具、圖形開(kāi)發(fā)環(huán)境、菜單系統(tǒng)和宏處理程序等。單系統(tǒng)和宏處理程序等。 (3) 軟件的可重用性:指編程語(yǔ)言能否提供可重用的軟件成分,如模塊子程序可通過(guò)模塊子程序可通過(guò)源代碼剪貼源代碼剪貼、包含和繼承等方、包含和繼承等方式實(shí)現(xiàn)軟件重用。式實(shí)現(xiàn)軟件重用。(效率)(效率) 可重用軟件在組裝時(shí),從接口到算法都可能調(diào)整, 需考慮額外代價(jià)。2022年年6月月20日星期一日星期一15 (4) (4) 可維護(hù)性:可維護(hù)性:指源程序的可維護(hù)性對(duì)

7、復(fù)雜的軟件開(kāi)發(fā)項(xiàng)目的重要性。 如易于把詳細(xì)設(shè)計(jì)翻譯為源程序易于把詳細(xì)設(shè)計(jì)翻譯為源程序、易于修改需易于修改需要變化的源程序要變化的源程序。因此,源程序的可讀性、語(yǔ)言的文檔化特性對(duì)軟件的可維護(hù)性具有重大的影響。2022年年6月月20日星期一日星期一16一、3. 技術(shù)特性 對(duì)軟件工程各階段有一定的影響, 特別是確定了軟件需求之后,程序設(shè)計(jì)語(yǔ)言的特性就顯得非常重要要求:要求:17 是選擇語(yǔ)言的關(guān)鍵因素, 有下列幾種類(lèi)型。 該計(jì)算需要大量的標(biāo)準(zhǔn)庫(kù)函數(shù), 以便處理復(fù)雜的數(shù)值計(jì)算, 可供選用的語(yǔ)言有: (1) FORTRAN語(yǔ)言( FORmula TRANslator ): 是世界上第一個(gè)被正式第一個(gè)被正式

8、推廣應(yīng)用的計(jì)算機(jī)語(yǔ)言推廣應(yīng)用的計(jì)算機(jī)語(yǔ)言,產(chǎn)生于1954年,經(jīng)過(guò)FORTRAN 0到FORTRAN , 又相繼擴(kuò)展為FORTRAN 77,F(xiàn)ORTRAN 90,通過(guò)幾個(gè)版本不斷的更新,使它不僅面向科學(xué)計(jì)算,數(shù)據(jù)處理能力也極強(qiáng)科學(xué)計(jì)算,數(shù)據(jù)處理能力也極強(qiáng)。18 早在1951年,美國(guó)IBM公司約翰貝克斯(John Backus)針對(duì)匯編語(yǔ)言的缺點(diǎn)著手研究開(kāi)發(fā)FORTRAN語(yǔ)言,并于1954年在紐約正式對(duì)外發(fā)布。 到1957年第一個(gè)FORTRAN編譯器在IBM704計(jì)算機(jī)上實(shí)現(xiàn),并首次成功運(yùn)行了FORTRAN程序。 20世紀(jì)60代末,結(jié)構(gòu)化程序設(shè)計(jì)方法提出后,許多計(jì)算機(jī)廠商開(kāi)始對(duì)FORTRAN 66

9、進(jìn)行不同程度的擴(kuò)充,引入了結(jié)構(gòu)化特征。 20世紀(jì)80年代末,F(xiàn)ORTRAN 77結(jié)構(gòu)化和現(xiàn)代化的研究開(kāi)始興起, FORTRAN 90的推出,使傳統(tǒng)FORTRAN語(yǔ)言具有了現(xiàn)代氣息。 Windows平臺(tái)下,微軟公司將FORTRAN 90無(wú)縫集成在Developer Studio集成開(kāi)發(fā)環(huán)境之中,推出了Microsoft FORTRAN PowerStation 4.0,使FORTRAN 90真正實(shí)現(xiàn)了可視化編程 Linux平臺(tái)下,其gcc編譯器默認(rèn)支持fortran,另外有Intel,Sun Studio,openMPI,Photran等共享編譯器和PGI,Absoft,lachy, IBM,S

10、GI,HP等多個(gè)版本的商業(yè)編譯器2022年年6月月20日星期一日星期一19 (2) Pascal語(yǔ)言: 產(chǎn)生于60年代末, 具有很強(qiáng)的數(shù)據(jù)和過(guò)程結(jié)構(gòu)化的能力,它是第一個(gè)體現(xiàn)體現(xiàn)結(jié)構(gòu)化編程思想的語(yǔ)言結(jié)構(gòu)化編程思想的語(yǔ)言, 由于它語(yǔ)言簡(jiǎn)明、數(shù)據(jù)類(lèi)型豐富、程序結(jié)構(gòu)嚴(yán)謹(jǐn),許多算法都用類(lèi)Pascal來(lái)概括。用Pascal語(yǔ)言寫(xiě)程序,也有助于培養(yǎng)良好的編程風(fēng)格。(Delphi結(jié)合使用,圖形用戶界面開(kāi)發(fā)環(huán)境) (3) C C語(yǔ)言:語(yǔ)言:產(chǎn)生于70年代初,最初用于描述,后來(lái)發(fā)展成具有很強(qiáng)功能的語(yǔ)言,支持復(fù)雜的,具有豐富靈活的。此外還具有,使程序運(yùn)行效率高。 適于編寫(xiě)系統(tǒng)軟件,三維,二維圖形和動(dòng)畫(huà),具體應(yīng)用比如

11、單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā)。2022年年6月月20日星期一日星期一20 數(shù)據(jù)處理與數(shù)據(jù)庫(kù)應(yīng)用可供選用的語(yǔ)言如下: (1) Cobol語(yǔ)言( COmmonBusinessOrientedLanguage面向商業(yè)的語(yǔ)言): 產(chǎn)生于 50 年代末, 是廣泛用于商業(yè)數(shù)據(jù)處理的語(yǔ)廣泛用于商業(yè)數(shù)據(jù)處理的語(yǔ)言言,它具有極強(qiáng)的數(shù)據(jù)定義能力,程序說(shuō)明與硬件環(huán)境說(shuō)明分開(kāi), 數(shù)據(jù)描述與算法描述分開(kāi),結(jié)構(gòu)嚴(yán)謹(jǐn)層次分明, 說(shuō)明采用類(lèi)英語(yǔ)的語(yǔ)法結(jié)構(gòu),。在企業(yè)管理中,數(shù)值計(jì)算并不復(fù)雜,但數(shù)據(jù)處理信息量卻很大。對(duì)各種類(lèi)型的數(shù)據(jù)進(jìn)行 收集、存儲(chǔ)、傳送、分類(lèi)、排序、計(jì)算及打印報(bào)表、輸出圖象是它的強(qiáng)項(xiàng)。2022年年6月月20日星期一

12、日星期一21 (2) 最初是為, 目前不同的軟件開(kāi)發(fā)公司有了不同的擴(kuò)充版本, 如 80 年代后期我國(guó)引入Informix-SQL, Microsoft-SQLMicrosoft-SQL可以方便地對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取管理。可以方便地對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取管理。 (3,原來(lái)的第2代語(yǔ)言(如FORTRAN,Cobol)第3代語(yǔ)言(如Pascal, C等)受硬件和操作系統(tǒng)的局限,其開(kāi)發(fā)工具不能滿足新技術(shù)發(fā)展的需求,因此,在70年代末,提出了第4代語(yǔ)言的概念, 4GL的主要特征是:具有“面向問(wèn)題面向問(wèn)題”、“非過(guò)程化程度高”等特點(diǎn),可以成數(shù)量級(jí)地提高軟件生產(chǎn)率,縮短軟件開(kāi)發(fā)周期,因此贏得了很多用戶。 4GL以以數(shù)

13、據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)所提供的功能為核心,所提供的功能為核心,進(jìn)一步構(gòu)造了開(kāi)發(fā)高層軟件系統(tǒng)的開(kāi)發(fā)環(huán)境,如報(bào)表生成、多窗口表格設(shè)計(jì)、菜單生成系統(tǒng)報(bào)表生成、多窗口表格設(shè)計(jì)、菜單生成系統(tǒng)等,為用戶提供了一個(gè)良好的應(yīng)用開(kāi)發(fā)環(huán)境。4GL的代表性軟件系統(tǒng)有:PowerBuilder、和INFORMOX-4GL等。22 實(shí)時(shí)處理軟件一般對(duì)性能的要求很高, 可選用的語(yǔ)言有: 是面向機(jī)器的,它可以完成高級(jí)語(yǔ)言無(wú)法滿足要求的特殊功能,如與外部設(shè)備之間的一些接口操作。是美國(guó)國(guó)防部出資開(kāi)發(fā)的,主要用于適時(shí)、 并發(fā)和嵌入系統(tǒng)的語(yǔ)言。Ada語(yǔ)言是在Pascal基礎(chǔ)上開(kāi)發(fā)出來(lái)的,但其功能更強(qiáng)、更復(fù)雜。它提供了一組豐富的

14、實(shí)時(shí)特性, 包括多任務(wù)處理、中斷處理、任務(wù)間同步與通信等, 它還提供了許多程序包供程序員選擇。通過(guò)修訂,已成為安全、高效和靈活的面向?qū)ο蟮木幊陶Z(yǔ)言。它被譽(yù)為第四代計(jì)算機(jī)語(yǔ)言的成功代表23 如果編寫(xiě)操作系統(tǒng)、編譯系統(tǒng)等系統(tǒng)軟件時(shí),可選用匯編語(yǔ)言、C語(yǔ)言、Pascal語(yǔ)言和Ada語(yǔ)言。 如果要完成知識(shí)庫(kù)系統(tǒng)、專(zhuān)家系統(tǒng)、決策支持系完成知識(shí)庫(kù)系統(tǒng)、專(zhuān)家系統(tǒng)、決策支持系統(tǒng)、推理工程、語(yǔ)言識(shí)別、模式識(shí)別、機(jī)器人視角及統(tǒng)、推理工程、語(yǔ)言識(shí)別、模式識(shí)別、機(jī)器人視角及自然語(yǔ)言處理自然語(yǔ)言處理等人工智能領(lǐng)域內(nèi)的系統(tǒng),應(yīng)選擇的語(yǔ)言如下: 24是一種,產(chǎn)生于60年代初,它特別適用于組合問(wèn)題中的符號(hào)運(yùn)算和表處理,因此用

15、于定理證明、樹(shù)的搜索和其他問(wèn)題的求解。近年來(lái)Lisp廣泛應(yīng)用于專(zhuān)家系統(tǒng)的開(kāi)發(fā), 對(duì)定義知識(shí)庫(kù)系統(tǒng)中的事實(shí)、規(guī)則和相應(yīng)的推理相對(duì)要容易一些。是一種,產(chǎn)生于70年代初,它提供了支持知識(shí)表示的特性,每一個(gè)程序由一組表示事實(shí)、規(guī)則和推理的子句組成, 比較接近于自然語(yǔ)言,符合人的思維方式。2022年年6月月20日星期一日星期一25 有時(shí)編程語(yǔ)言的選擇依賴(lài)于開(kāi)發(fā)的方法,來(lái)開(kāi)發(fā),要求能快速實(shí)現(xiàn)原型,因此宜采用4GL。,宜采用面向?qū)ο蟮恼Z(yǔ)言編程。面向?qū)ο蟮恼Z(yǔ)言: (1) C+ (2) Java:26 良好的編程環(huán)境不但有效提高軟件生產(chǎn)率, 同時(shí)能減少錯(cuò)誤,有效提高軟件質(zhì)量。 可視化的軟件開(kāi)發(fā)環(huán)境, 如Visu

16、al BASIC, Visual C, Visual FoxPro及Delphi(面向?qū)ο蟮腜ascal)等,都提供了強(qiáng)有力的調(diào)試工具, 幫助你快速形成高質(zhì)量的軟件。27 科學(xué)計(jì)算、實(shí)時(shí)處理和人工智能領(lǐng)域中的問(wèn)題算法較復(fù)雜, 而數(shù)據(jù)處理、數(shù)據(jù)庫(kù)應(yīng)用和系統(tǒng)軟件領(lǐng)域內(nèi)的問(wèn)題,數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,因此選擇語(yǔ)言時(shí)可考慮是否有完成復(fù)雜算法的能力選擇語(yǔ)言時(shí)可考慮是否有完成復(fù)雜算法的能力, 或者有構(gòu)造復(fù)雜數(shù)據(jù)結(jié)構(gòu)的能力。2022年年6月月20日星期一日星期一28 有時(shí)編程語(yǔ)言的選擇與軟件開(kāi)發(fā)人員的知識(shí)水平及心理因素有關(guān),新的語(yǔ)言雖然有吸引力,但軟件開(kāi)發(fā)人員若熟悉某種語(yǔ)言,軟件開(kāi)發(fā)人員若熟悉某種語(yǔ)言, 而且有類(lèi)

17、而且有類(lèi)似項(xiàng)目的開(kāi)發(fā)經(jīng)驗(yàn),往往愿選擇原有的語(yǔ)言。似項(xiàng)目的開(kāi)發(fā)經(jīng)驗(yàn),往往愿選擇原有的語(yǔ)言。 開(kāi)發(fā)人員應(yīng)仔細(xì)地分析軟件項(xiàng)目的類(lèi)型, 敢于學(xué)習(xí)新知識(shí),掌握新技術(shù)。2022年年6月月20日星期一日星期一29 程序?qū)嶋H上也是一種供人閱讀的文章,有一個(gè)問(wèn)題。應(yīng)該使程序具有良好的風(fēng)格。 (1 1)源程序文檔化)源程序文檔化30 符號(hào)名的命名符號(hào)名的命名 符號(hào)名即標(biāo)識(shí)符,包括符號(hào)名即標(biāo)識(shí)符,包括模塊名、變量名、常量名、模塊名、變量名、常量名、標(biāo)號(hào)名、子程序名、標(biāo)號(hào)名、子程序名、 、數(shù)據(jù)區(qū)名、數(shù)據(jù)區(qū)名以及以及緩沖區(qū)名緩沖區(qū)名等。等。 這些名字應(yīng)能反映它所代表的實(shí)際東西,這些名字應(yīng)能反映它所代表的實(shí)際東西,應(yīng)有一

18、應(yīng)有一定實(shí)際意義。定實(shí)際意義。例如,表示次數(shù)的量用例如,表示次數(shù)的量用TimesTimes,表,表示總量的用示總量的用TotalTotal,表示平均值的用,表示平均值的用AverageAverage,表,表示和的量用示和的量用SumSum等。等。 名字不是越長(zhǎng)越好名字不是越長(zhǎng)越好,應(yīng)當(dāng)選擇精煉的意義明確的,應(yīng)當(dāng)選擇精煉的意義明確的名字。名字。必要時(shí)可使用縮寫(xiě)名字必要時(shí)可使用縮寫(xiě)名字,但這時(shí)要注意縮,但這時(shí)要注意縮寫(xiě)寫(xiě),并且要,并且要給每一個(gè)名字加注釋給每一個(gè)名字加注釋。同。同時(shí),在一個(gè)程序中,一個(gè)變量只應(yīng)用于一種用途。時(shí),在一個(gè)程序中,一個(gè)變量只應(yīng)用于一種用途。31 程序的注釋程序的注釋 夾在

19、程序中的注釋是夾在程序中的注釋是程序員程序員與與日后日后的的程程序讀者序讀者之間之間通信的重要手段通信的重要手段。 注釋注釋決不是可有可無(wú)決不是可有可無(wú)的。的。 一些正規(guī)的程序文本中,注釋行的數(shù)量一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個(gè)源程序的占到整個(gè)源程序的1/31/3到到1/21/2,甚至更多。,甚至更多。 注釋分為注釋分為序言性注釋序言性注釋和和功能性注釋功能性注釋。32序言性注釋序言性注釋 通常置于通常置于每個(gè)程序模塊的開(kāi)頭部分每個(gè)程序模塊的開(kāi)頭部分,它應(yīng)當(dāng)給出程序的,它應(yīng)當(dāng)給出程序的整體說(shuō)明整體說(shuō)明,對(duì)于,對(duì)于理解程序本身具有引導(dǎo)作理解程序本身具有引導(dǎo)作用。用。 序言性注釋包括:序

20、言性注釋包括: 程序程序標(biāo)題標(biāo)題; 有關(guān)本模塊有關(guān)本模塊功能和目的功能和目的的說(shuō)明;的說(shuō)明; 主要主要算法算法; 接口接口說(shuō)明:包括調(diào)用形式,參數(shù)描述,子程說(shuō)明:包括調(diào)用形式,參數(shù)描述,子程序清單;序清單;33 有關(guān)數(shù)據(jù)描述:重要的變量及其用途變量及其用途,約束或限制條件,以及其它有關(guān)信息; 模塊位置:在哪一個(gè)源文件中,或隸屬于哪一個(gè)軟件包; 開(kāi)發(fā)簡(jiǎn)歷:模塊設(shè)計(jì)者,復(fù)審者,復(fù)審日期,修改日期及有關(guān)說(shuō)明等。34功能性注釋功能性注釋 功能性注釋功能性注釋嵌在源程序體中,用以描述其后的語(yǔ)嵌在源程序體中,用以描述其后的語(yǔ)句或程序段是在句或程序段是在,或是執(zhí)行了下面的或是執(zhí)行了下面的語(yǔ)句會(huì)怎么樣,而不要

21、解釋下面怎么做。語(yǔ)句會(huì)怎么樣,而不要解釋下面怎么做。 例如,例如, / /* * ADD AMOUNT TO TOTAL ADD AMOUNT TO TOTAL * */ / TOTAL = AMOUNT TOTAL = AMOUNTTOTALTOTAL上面注視不清楚,如果注明把月銷(xiāo)售額計(jì)入年度上面注視不清楚,如果注明把月銷(xiāo)售額計(jì)入年度總額,便使讀者理解了下面語(yǔ)句的意圖:總額,便使讀者理解了下面語(yǔ)句的意圖: / /* * ADD MONTHLY-SALES TO ANNUAL-TOTAL ADD MONTHLY-SALES TO ANNUAL-TOTAL * */ / TOTAL = AMOU

22、NT TOTAL = AMOUNTTOTALTOTAL 要點(diǎn)要點(diǎn) 描述一段程序,而不是每一個(gè)語(yǔ)句;描述一段程序,而不是每一個(gè)語(yǔ)句; 用縮進(jìn)和空行,使程序與注釋容易區(qū)別;用縮進(jìn)和空行,使程序與注釋容易區(qū)別; 注釋要正確。注釋要正確。35 視覺(jué)組織視覺(jué)組織 空格、空行和移行空格、空行和移行 恰當(dāng)?shù)乩们‘?dāng)?shù)乩每崭窨崭?,可以,可以突出運(yùn)算的突出運(yùn)算的優(yōu)先性優(yōu)先性,避免發(fā)生運(yùn)算的錯(cuò)誤。例,避免發(fā)生運(yùn)算的錯(cuò)誤。例如如 ,將表達(dá)式,將表達(dá)式 ( (A A17)17)ANDNOTANDNOT( (B B49)49)ORCORC寫(xiě)成寫(xiě)成 ( (A A17) 17) AND NOTAND NOT ( (B B

23、49) 49) OR COR C 自然的程序段之間可用自然的程序段之間可用空行空行隔開(kāi);隔開(kāi); 移行移行也叫做也叫做向右縮格向右縮格。它是指程序。它是指程序中的各行不必都在左端對(duì)齊,都從中的各行不必都在左端對(duì)齊,都從第一格起排列。這樣做使程序完全第一格起排列。這樣做使程序完全分不清層次關(guān)系。分不清層次關(guān)系。 對(duì)于對(duì)于選擇語(yǔ)句選擇語(yǔ)句和和循環(huán)語(yǔ)句循環(huán)語(yǔ)句,把其中,把其中的程序段語(yǔ)句向右做的程序段語(yǔ)句向右做階梯式移行階梯式移行。使程序的邏輯結(jié)構(gòu)更加清晰。使程序的邏輯結(jié)構(gòu)更加清晰。例如,兩重選擇例如,兩重選擇結(jié)構(gòu)嵌套,寫(xiě)成結(jié)構(gòu)嵌套,寫(xiě)成下面的移行形式,下面的移行形式,層次就清楚得多。層次就清楚得多。

24、36(2) (2) 數(shù)據(jù)說(shuō)明數(shù)據(jù)說(shuō)明在設(shè)計(jì)階段已經(jīng)確定了數(shù)據(jù)結(jié)構(gòu)的組織及其復(fù)雜性。在設(shè)計(jì)階段已經(jīng)確定了數(shù)據(jù)結(jié)構(gòu)的組織及其復(fù)雜性。在編寫(xiě)程序時(shí),在編寫(xiě)程序時(shí),則則需要注意數(shù)據(jù)說(shuō)明的風(fēng)格。需要注意數(shù)據(jù)說(shuō)明的風(fēng)格。為了使程序中數(shù)據(jù)說(shuō)明更易于理解和維護(hù),必須注意為了使程序中數(shù)據(jù)說(shuō)明更易于理解和維護(hù),必須注意以下幾點(diǎn)以下幾點(diǎn): : a.數(shù)據(jù)說(shuō)明的次序應(yīng)該標(biāo)準(zhǔn)化數(shù)據(jù)說(shuō)明的次序應(yīng)該標(biāo)準(zhǔn)化。有次序易查閱,能加有次序易查閱,能加速測(cè)試、調(diào)試和維護(hù)的過(guò)程。速測(cè)試、調(diào)試和維護(hù)的過(guò)程。 例如:數(shù)據(jù)說(shuō)明例如:數(shù)據(jù)說(shuō)明 數(shù)據(jù)類(lèi)型說(shuō)明數(shù)據(jù)類(lèi)型說(shuō)明 常量說(shuō)明常量說(shuō)明 簡(jiǎn)單變量類(lèi)型說(shuō)明簡(jiǎn)單變量類(lèi)型說(shuō)明 數(shù)組說(shuō)明數(shù)組說(shuō)明 公用數(shù)

25、據(jù)塊說(shuō)明公用數(shù)據(jù)塊說(shuō)明 所有的文件說(shuō)明所有的文件說(shuō)明 整型量說(shuō)明整型量說(shuō)明 實(shí)型量說(shuō)明實(shí)型量說(shuō)明 字符量說(shuō)明字符量說(shuō)明 邏輯量說(shuō)明邏輯量說(shuō)明37 b. 當(dāng)多個(gè)變量名在一個(gè)語(yǔ)句中說(shuō)明時(shí),應(yīng)該按字母順序排列這些變量。 例如,把 integer size, length, width, cost, price 寫(xiě)成 cost, integer size, length, price, width c. 如果設(shè)計(jì)時(shí)使用了一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),則應(yīng)該用注解說(shuō)明用程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)這個(gè)數(shù)據(jù)結(jié)構(gòu)的方法和特點(diǎn)。3839(3)語(yǔ)句構(gòu)造 構(gòu)造語(yǔ)句時(shí)應(yīng)該遵循的原則是,每個(gè)語(yǔ)句都應(yīng)該簡(jiǎn)單而直接,不能為了提高效率而使程序變

26、得過(guò)分復(fù)雜;也不要刻意追求技巧性,使程序編寫(xiě)得過(guò)于緊湊。 例如:AI = AIAT; AT = AIAT; AI = AIAT; 下述規(guī)則有助于使語(yǔ)句簡(jiǎn)單明了: 不要為了節(jié)省空間而把多個(gè)語(yǔ)句寫(xiě)在同一行;盡量避免復(fù)雜的條件測(cè)試;盡量減少對(duì)“非”條件的測(cè)試; if ( !( char0 | char 9 ) ) 改成 if ( char = 0 & char = 9 ) 不要讓讀者繞彎子想。 避免大量使用循環(huán)嵌套和條件嵌套; 利用括號(hào)使邏輯表達(dá)式或算術(shù)表達(dá)式的運(yùn)算次序清晰直觀。4041(4)輸入輸出 在設(shè)計(jì)和編寫(xiě)程序時(shí)應(yīng)該考慮下述有關(guān)輸入輸出風(fēng)格的規(guī)則: 對(duì)所有的輸入數(shù)據(jù)都要進(jìn)行檢驗(yàn),識(shí)別錯(cuò)誤的輸入,以保證每個(gè)數(shù)據(jù)的有效性;(范圍) 檢查輸入項(xiàng)的各種重要組合的合法性,必要時(shí)報(bào)告輸入狀態(tài)信息;(字母、數(shù)子?) 使得輸入的步驟和操作盡可能簡(jiǎn)單,并保持簡(jiǎn)單的輸入格式; 輸入數(shù)據(jù)時(shí),應(yīng)允許使用自由格式輸入; 應(yīng)允許缺省值;42 輸入一批數(shù)據(jù)時(shí),最好使用輸入結(jié)束標(biāo)志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目; 在交互式輸入輸入時(shí),要在屏幕上使用提示符明確提示交互輸入的請(qǐng)求,指明可使用選擇項(xiàng)的種類(lèi)和取值范圍。同時(shí),在數(shù)據(jù)輸入的過(guò)程中和輸入結(jié)束時(shí),也要在屏幕上給出狀態(tài)信息;當(dāng)程序設(shè)計(jì)語(yǔ)言對(duì)輸入輸出格式有嚴(yán)格要求時(shí),應(yīng)保持

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論