等級考試公共基礎考點分析之軟件工程基礎(4)

字號:

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