等級(jí)考試公共基礎(chǔ)考點(diǎn)分析之軟件工程基礎(chǔ)(4)

字號(hào):

考點(diǎn)16 設(shè)計(jì)準(zhǔn)則
    設(shè)計(jì)準(zhǔn)則包括如下幾點(diǎn):
    (l)提高模塊獨(dú)立性;
    (2)模塊規(guī)模適中;
    (3)深度、寬度、扇出和扇入適當(dāng);
    (4)使模塊的作用域在該模塊的控制域內(nèi);
    (5)應(yīng)減少模塊的接口和界面的復(fù)雜性;
    (6)設(shè)計(jì)成單入口、單出口的模塊;
    (7)設(shè)計(jì)功能可預(yù)測(cè)的模塊。
    考點(diǎn)17 詳細(xì)設(shè)計(jì)
    詳細(xì)設(shè)計(jì)主要確定每個(gè)模塊具體執(zhí)行過(guò)程,也稱(chēng)過(guò)程設(shè)計(jì)。詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。
    詳細(xì)設(shè)計(jì)的常用工具有:
    (1)程序流程圖、N一民PAD和HIPO;
    (2)判定表;
    (3)PDL(偽碼)。
    1程序流程圖
    程序流程圖是一種傳統(tǒng)的、應(yīng)用廣泛的、_巨有爭(zhēng)議的軟件設(shè)計(jì)表示工具。它用方框表示一個(gè)處理步驟,菱形代表一個(gè)邏輯條件,箭頭表示控制流。
    程序流程圖的5種控制結(jié)構(gòu)
    (1)順序型;
    (2)選擇型;
    (3)先判斷重復(fù)型;
    (4)后判斷重復(fù)型;
    (5)多分支選擇型。
    程序流程圖的主要缺點(diǎn)如下:
    (l)程序流程圖從本質(zhì)上不支持逐步求精,它誘使程序員過(guò)早地考慮程序的控制流程,不去考慮程序的全局結(jié)構(gòu);
    (2)程序流程圖中用箭頭代表控制流,使得程序員不受任何約束,可以完全不顧結(jié)構(gòu)化設(shè)計(jì)的原則,隨意轉(zhuǎn)移控制;
    (3)程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu);
    (4)程序流程圖的每個(gè)符號(hào)對(duì)應(yīng)于源程序的一行代碼,對(duì)于提高大型系統(tǒng)的可理解性作用甚微。
    2N-S圖
    為了避免流程圖在描述程序邏輯時(shí)的隨意性與靈活性,1973年Nossi和Shneiderman提出了用方框圖代替?zhèn)鹘y(tǒng)的程序流程圖,引起了人們的重視,人們也把這種圖稱(chēng)為N-S圖。方框圖中僅含5種基本的控制結(jié)構(gòu),即順序型、選擇型、多分支選擇型、WHILE重復(fù)型和UNTIL重復(fù)型。
    在方框圖中,每個(gè)處理步驟都是用一個(gè)盒子來(lái)表示的,這些處理步驟可以是語(yǔ)句或語(yǔ)句序列,在需要時(shí),盒子中還可以嵌套另一個(gè)盒子,嵌套深度一般沒(méi)有限制,只要整張圖可以在一張紙上容納下就行。
    N-S圖有以下特點(diǎn):
    (l)每個(gè)構(gòu)件具有明確的功能域;
    (2)控制轉(zhuǎn)移必須遵守結(jié)構(gòu)化設(shè)計(jì)要求;
    (3)易于確定局部數(shù)據(jù)和(或)全局?jǐn)?shù)據(jù)的作用域;
    (4)易于表達(dá)嵌套關(guān)系和模塊的層次結(jié)構(gòu)。
    3 PAD圖
    PAD是問(wèn)題分析圖(Problem Analysis Diagram)的英文縮寫(xiě)。它是繼流程圖和方框圖之后,由日本的二村良彥等人在1979年提出的又一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形表示下具。與方框圖一樣,PAD也只能描述結(jié)構(gòu)化程序允許使用的幾種基本結(jié)構(gòu)、PAD圖的一個(gè)獨(dú)特之處在于,以PAD為基礎(chǔ),遵循一個(gè)機(jī)械的規(guī)則就能方便地編寫(xiě)出程序,這個(gè)規(guī)則稱(chēng)為走樹(shù)(free Walk)。
    PAD圖的基本圖符表示5種基本控制結(jié)構(gòu)
    PAD圖有以下特征:
    (1)結(jié)構(gòu)清晰,結(jié)構(gòu)化程度高;
    (2)易于閱讀;
    (3)最左端的縱線是程序主千線,對(duì)應(yīng)程序的第一層結(jié)構(gòu);每增加一層PAD圖向右擴(kuò)展一條縱線,故程序的縱線數(shù)等于程序的層次數(shù);
    (4)程序執(zhí)行從PAD圖最左主干線上端結(jié)點(diǎn)開(kāi)始,自上而下、自左向右依次執(zhí)行,程序終止于最左主干線。
    4 PDL
    PDL又稱(chēng)偽碼(Pseudo一code),它是一種非形式化的比較靈活的語(yǔ)一言,實(shí)際上PDL語(yǔ)言是對(duì)偽碼的-種補(bǔ)充、它借助于某些高級(jí)程序語(yǔ)一言的控制結(jié)構(gòu)和一些自然語(yǔ)言的嵌套。一般說(shuō)來(lái),偽碼的語(yǔ)法規(guī)則分成外語(yǔ)法和內(nèi)語(yǔ)法外語(yǔ)法應(yīng)當(dāng)符合一般程序設(shè)計(jì)語(yǔ)言常用的程序語(yǔ)句的語(yǔ)法規(guī)則;而內(nèi)語(yǔ)法是沒(méi)有定義的,它可以用自然語(yǔ)言的一些簡(jiǎn)潔的句子、短語(yǔ)和通用的數(shù)學(xué)符號(hào)來(lái)描述程序應(yīng)該執(zhí)行的功能。
    用PDL表示的基本控制結(jié)構(gòu)的常用詞匯如下:
    順序:A/A END
    條件:IF/THEN/ELSE/ENDIF
    循環(huán):DO WHILE/ENDDO
    循環(huán):REPEAT UNTIL/ENDREPEAT
    分支:CASE OF,/WHEN/SELECT/WHEN/SELECT/ENDCASE
    PDL具備以下特征:
    (1)有為結(jié)構(gòu)化構(gòu)成元素、數(shù)據(jù)說(shuō)明和模塊化特征提供的關(guān)鍵詞語(yǔ)法;
    (2)處理部分的描述采用自然語(yǔ)言語(yǔ)法;
    (3)可以說(shuō)明簡(jiǎn)單和復(fù)雜的數(shù)據(jù)結(jié)構(gòu);
    (4)支持各種接口描述的子程序定義和調(diào)用技術(shù)。
    3.4 軟件的測(cè)試
    考點(diǎn)18 軟件測(cè)試的目的和準(zhǔn)則
    1軟件側(cè)試的目的
    (l)軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程;
    (2)一個(gè)好的測(cè)試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤;
    (3)一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤。
    2軟件側(cè)試的準(zhǔn)則
    (l)所有測(cè)試都應(yīng)追溯到需求;
    (2)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性;
    (3)充分注意測(cè)試中的群集現(xiàn)象;
    (4)程序員應(yīng)避免檢查自己的程序;
    (5)窮舉測(cè)試不可能;
    (6)妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。
    考點(diǎn)19 軟件測(cè)試技術(shù)與方法
    在軟件生命周期的各個(gè)階段,都有可能會(huì)產(chǎn)生差錯(cuò),雖然在每個(gè)階段結(jié)束之前都有嚴(yán)格的復(fù)審,以期能盡早地發(fā)現(xiàn)錯(cuò)誤。但是,經(jīng)驗(yàn)表明審查并不能發(fā)現(xiàn)所有差錯(cuò)。如果在軟件投入生產(chǎn)性運(yùn)行之前,沒(méi)有發(fā)現(xiàn)糾正軟件中的大部分錯(cuò)誤,則這些錯(cuò)誤遲早會(huì)在運(yùn)行過(guò)程中暴露出來(lái),甚至?xí)斐蓢?yán)重的后果。