當(dāng)前位置: 首頁(yè) > 自學(xué)考試 > 自學(xué)考試備考資料 > 自考“軟件工程”復(fù)習(xí)大綱及試驗(yàn)指導(dǎo)(3)

自考“軟件工程”復(fù)習(xí)大綱及試驗(yàn)指導(dǎo)(3)

更新時(shí)間:2009-10-19 15:27:29 來(lái)源:|0 瀏覽0收藏0

自學(xué)考試報(bào)名、考試、查分時(shí)間 免費(fèi)短信提醒

地區(qū)

獲取驗(yàn)證 立即預(yù)約

請(qǐng)?zhí)顚憟D片驗(yàn)證碼后獲取短信驗(yàn)證碼

看不清楚,換張圖片

免費(fèi)獲取短信驗(yàn)證碼

  第三章 結(jié)構(gòu)化設(shè)計(jì)

  1. 軟件設(shè)計(jì)階段的主要任務(wù)、方法、階段:

  需求分析階段的主要任務(wù)是確定系統(tǒng)必須“做什么”,形成軟件的需求規(guī)格說(shuō)明書,軟件設(shè)計(jì)階段的主要任務(wù)是確定系統(tǒng)“怎么做”,從軟件需求規(guī)格說(shuō)明書出發(fā),形成軟件的具體設(shè)計(jì)方案,軟件設(shè)計(jì)可以采用多種方法,如結(jié)構(gòu)化設(shè)計(jì)方法、面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法、面向?qū)ο蟮脑O(shè)計(jì)方法等,結(jié)構(gòu)化軟件設(shè)計(jì)可以分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。

  2. 總體設(shè)計(jì)階段的主要任務(wù)及其內(nèi)容:

  總體設(shè)計(jì)階段的主要任務(wù)是把系統(tǒng)的功能需求分配給軟件結(jié)構(gòu),形成軟件的模塊結(jié)構(gòu)圖(MSD),在結(jié)構(gòu)圖中矩形表示功能單元,稱為“模塊”,連接上下層模塊的線段表示它們之間的調(diào)用關(guān)系,在總體設(shè)計(jì)階段,每個(gè)模塊還處于黑盒子級(jí),模塊通過(guò)外部特征標(biāo)識(shí),名字、輸入、輸出。

  3. 總體設(shè)計(jì)的表示形式及其內(nèi)容(層次圖、HIPO圖、結(jié)構(gòu)圖):

  層次圖是軟件總體設(shè)計(jì)階段最常使用的表示形式之一,用來(lái)描繪軟件的層次結(jié)構(gòu),圖中的每個(gè)方框代表一個(gè)模塊,方框間的連線表示模塊的調(diào)用關(guān)系,層次圖很適合于在自頂向下設(shè)計(jì)軟件的過(guò)程中使用;

  HIPO圖是由美國(guó)IBM公司發(fā)明的“層次圖+輸入/處理/輸出圖”的英文縮寫,HIPO圖實(shí)際上由H圖和IPO圖兩部分組成,H圖就是上面提到的層次圖,為了能使HIPO圖具有可跟蹤性,在H圖里除了最頂層的方框之外,每個(gè)方框都加了編號(hào);

  結(jié)構(gòu)圖和層次圖類似,圖中每個(gè)方框代表一個(gè)模塊,方框之間的箭頭(或直線)表示模塊的調(diào)用關(guān)系,在結(jié)構(gòu)圖中通常還用帶注釋的箭頭表示模塊調(diào)用過(guò)程中來(lái)回傳遞的信息,尾部是空心圓表示傳遞的是數(shù)據(jù),實(shí)心圓表示傳遞的是控制信息。

  4. 模塊及其組成:

  模塊是執(zhí)行一個(gè)特殊任務(wù)或?qū)崿F(xiàn)一個(gè)特殊的抽象數(shù)據(jù)類型的一組例程和數(shù)據(jù)結(jié)構(gòu),模塊由兩部分組成,接口和實(shí)現(xiàn)模塊功能的執(zhí)行機(jī)制。

  5. 面向數(shù)據(jù)流的設(shè)計(jì)方法(綜合應(yīng)用):

  面向數(shù)據(jù)流的設(shè)計(jì)方法把數(shù)據(jù)流圖映射成為軟件結(jié)構(gòu),數(shù)據(jù)流圖的類型決定了映射的方法,數(shù)據(jù)流圖可以分為變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖,具有較明顯的輸入、變換(或稱主加工)和輸出界面的數(shù)據(jù)流圖稱為變換型數(shù)據(jù)流圖,數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理模塊,這個(gè)處理模塊根據(jù)輸入數(shù)據(jù)的類型在若干動(dòng)作序列中選出一個(gè)來(lái)執(zhí)行,這類數(shù)據(jù)流圖稱為事務(wù)型數(shù)據(jù)流圖,并且稱這個(gè)模塊為事務(wù)中心,它完成如下任務(wù),接收輸入數(shù)據(jù)、分析數(shù)據(jù)并確定數(shù)據(jù)類型、根據(jù)數(shù)據(jù)類型選取一條活動(dòng)通路。

  6. 評(píng)價(jià)軟件設(shè)計(jì)質(zhì)量的主要準(zhǔn)則(模塊化、抽象、耦合、內(nèi)聚)及詳細(xì)內(nèi)容:

  模塊化是好的軟件設(shè)計(jì)的一個(gè)基本準(zhǔn)則;

  抽象就是抽出事務(wù)的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié),模塊是按照不同的抽象級(jí)別安排的,高層抽象模塊向讀者隱藏了功能實(shí)現(xiàn)的細(xì)節(jié),這就是信息隱蔽,模塊之間相互隱藏自身的實(shí)現(xiàn)細(xì)節(jié)對(duì)一個(gè)好的設(shè)計(jì)來(lái)說(shuō)是至關(guān)重要的;

  耦合是對(duì)不同模塊之間相互依賴程度的度量,緊密耦合是指兩個(gè)模塊之間存在著很強(qiáng)的依賴關(guān)系,松散耦合是指兩個(gè)模塊之間存在一些依賴關(guān)系,但他們之間的連接比較弱,無(wú)耦合是指模塊之間根本沒有任何連接;

  耦合的強(qiáng)度依賴于以下四個(gè)因素,一個(gè)模塊對(duì)另一個(gè)模塊的引用,一個(gè)模塊向另一個(gè)模塊傳遞的數(shù)據(jù)量,一個(gè)模塊施加到另一個(gè)模塊的控制的數(shù)量,模塊之間接口的復(fù)雜程度;

  從強(qiáng)到弱的幾種常見的耦合類型,內(nèi)容耦合,一個(gè)模塊直接修改或操作另一個(gè)模塊的數(shù)據(jù);公共耦合,兩個(gè)以上的模塊共同引用一個(gè)全局?jǐn)?shù)據(jù)項(xiàng);控制耦合,一個(gè)模塊在界面上傳遞一個(gè)信號(hào)控制另一個(gè)模塊,接收信號(hào)的模塊的動(dòng)作根據(jù)信號(hào)值進(jìn)行調(diào)整,稱為控制耦合;標(biāo)記耦合,若兩個(gè)模塊至少有一個(gè)通過(guò)界面?zhèn)鬟f的公共參數(shù)包含內(nèi)部結(jié)構(gòu);數(shù)據(jù)耦合,模塊間通過(guò)參數(shù)傳遞基本類型的數(shù)據(jù),數(shù)據(jù)耦合是最簡(jiǎn)單的耦合形式,系統(tǒng)中至少必須存在這種類型的耦合;

  內(nèi)聚度量的是一個(gè)模塊內(nèi)部各成分之間相互關(guān)聯(lián)的強(qiáng)度,如果一個(gè)模塊的所有成分都直接參與并且對(duì)于完成同一功能來(lái)說(shuō)都是最基本的,則該模塊是高內(nèi)聚的;

  從低到高的幾種常見的內(nèi)聚類型,偶然內(nèi)聚,一個(gè)模塊的各個(gè)成分之間毫無(wú)關(guān)系;邏輯內(nèi)聚,幾個(gè)邏輯上相關(guān)的功能被放在同一模塊中;時(shí)間內(nèi)聚,一個(gè)模塊完成的功能必須在同一時(shí)間內(nèi)執(zhí)行,但這些功能只是因?yàn)闀r(shí)間因素關(guān)聯(lián)在一起;過(guò)程內(nèi)聚,一個(gè)模塊內(nèi)部的處理成分是相關(guān)的,而且這些處理必須以特定的次序執(zhí)行;通信內(nèi)聚,一個(gè)模塊的所有成分都操作同一數(shù)據(jù)集或生成同一數(shù)據(jù)集;順序內(nèi)聚,一個(gè)模塊的各個(gè)成分和同一個(gè)功能密切相關(guān),而且一個(gè)成分的輸出作為另一個(gè)的成分;功能內(nèi)聚,最理想的內(nèi)聚是功能內(nèi)聚,模塊的所有成分對(duì)于完成單一的功能都是基本的;

  內(nèi)聚和耦合是密切相關(guān)的,在進(jìn)行軟件設(shè)計(jì)時(shí),應(yīng)力爭(zhēng)做到強(qiáng)內(nèi)聚、弱耦合。

  7. 結(jié)構(gòu)化設(shè)計(jì)的啟發(fā)式規(guī)則:

  改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性,模塊規(guī)模應(yīng)該適中,深度、寬度、扇入和扇出應(yīng)適中,模塊的作用域應(yīng)該在控制域之內(nèi),力爭(zhēng)降低模塊接口的復(fù)雜性,模塊功能應(yīng)該可以預(yù)測(cè);

  模塊的作用域定義為受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合,模塊的控制域是這個(gè)模塊本身以及所有直接或間接從屬于它的模塊的集合。

  8. 結(jié)構(gòu)化分析與結(jié)構(gòu)化設(shè)計(jì)的區(qū)別:

  結(jié)構(gòu)化分析得到數(shù)據(jù)流圖、數(shù)據(jù)字典等,屬于邏輯模型,結(jié)構(gòu)化設(shè)計(jì)得到模塊結(jié)構(gòu)圖,屬于程序模型。

  9. 詳細(xì)設(shè)計(jì)階段的目標(biāo)、表現(xiàn)、內(nèi)容:

  詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定怎樣具體的實(shí)現(xiàn)所要求的系統(tǒng),詳細(xì)設(shè)計(jì)以總體設(shè)計(jì)階段的工作為基礎(chǔ),但又不同于總體設(shè)計(jì),主要表現(xiàn)在,在總體設(shè)計(jì)階段,數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以比較抽象的方式描述,詳細(xì)設(shè)計(jì)要提供關(guān)于算法的更多細(xì)節(jié);

  詳細(xì)設(shè)計(jì)的模塊包含實(shí)現(xiàn)對(duì)應(yīng)的總體設(shè)計(jì)的模塊所需要的處理邏輯,主要有,詳細(xì)的算法,數(shù)據(jù)表示和數(shù)據(jù)結(jié)構(gòu),實(shí)施的功能和使用的數(shù)據(jù)之間的關(guān)系。

  10.結(jié)構(gòu)化程序的三種基本結(jié)構(gòu),結(jié)構(gòu)化設(shè)計(jì)的目標(biāo):

  結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu),并且只包含順序、選擇和循環(huán)三種結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計(jì)的目標(biāo)之一是使程序的控制流程線性化,即程序的動(dòng)態(tài)執(zhí)行順序符合靜態(tài)書寫結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計(jì)的觀點(diǎn)是要求設(shè)計(jì)好結(jié)構(gòu)的程序。

  11.詳細(xì)設(shè)計(jì)的任務(wù),詳細(xì)設(shè)計(jì)的工具及其內(nèi)容特點(diǎn):

  詳細(xì)設(shè)計(jì)的任務(wù)是給出軟件模塊結(jié)構(gòu)中各個(gè)模塊的內(nèi)部過(guò)程描述,也就是模塊內(nèi)部的算法設(shè)計(jì),詳細(xì)設(shè)計(jì)的工具可以分為圖形、表格、語(yǔ)言三種,包括程序流程圖、盒圖(N-S圖)、PAD圖、類程序設(shè)計(jì)語(yǔ)言(PDL);

  程序流程圖中使用的主要符號(hào)包括順序、選擇、循環(huán)結(jié)構(gòu),它的主要缺點(diǎn)如下,程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過(guò)早的考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu),程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制,程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu);

  PAD是問(wèn)題分析圖的英文縮寫,它用二維樹形結(jié)構(gòu)的圖表示程序的控制流,PAD圖的主要優(yōu)點(diǎn)如下,使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號(hào)所設(shè)計(jì)出來(lái)的程序必然是結(jié)構(gòu)化程序,PAD圖所描述的程序結(jié)構(gòu)十分清晰,用PAD圖表現(xiàn)程序邏輯,易讀、易懂、易記,很容易將PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序,既可用于表示程序邏輯,也可用于描述數(shù)據(jù)結(jié)構(gòu),PAD圖的符號(hào)支持自頂向下逐步求精的使用,PAD圖是面向高級(jí)程序設(shè)計(jì)語(yǔ)言的;

  類程序設(shè)計(jì)語(yǔ)言也稱為偽碼,它是用正文形式表示數(shù)據(jù)結(jié)構(gòu)和處理過(guò)程的設(shè)計(jì)工具,PDL具有以下特點(diǎn),關(guān)鍵字的固定語(yǔ)法,提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說(shuō)明和模塊化的手段,自然語(yǔ)言的自由語(yǔ)法,用于描述處理過(guò)程和判定條件,數(shù)據(jù)說(shuō)明的手段,既包括簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu),模塊定義和調(diào)用的技術(shù),提供各種接口描述模式;

  PDL作為一種設(shè)計(jì)工具有如下一些優(yōu)點(diǎn),可以作為注釋直接插在源程序中間,可以使用普通的正文編輯程序或文字處理系統(tǒng),很方面的完成PDL的書寫和編輯工作,已經(jīng)有自動(dòng)處理程序存在,而且可以自動(dòng)由PDL生成程序代碼,PDL的缺點(diǎn)是不如圖形工具形象直觀,描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),不如判定表或判定樹清晰簡(jiǎn)單。

  本章設(shè)計(jì)題為DFD到模塊結(jié)構(gòu)圖的轉(zhuǎn)換和詳細(xì)設(shè)計(jì)工具的具體應(yīng)用,為筆試和試驗(yàn)的必考題型,非常重要,請(qǐng)考生參考輔導(dǎo)第256頁(yè)(1)~(7)題,務(wù)必每一種題型都熟練掌握。

  本章與上一章的設(shè)計(jì)題是軟件工程科目的重點(diǎn),大約占筆試的35%,占試驗(yàn)的70%,并且前面四章的所有內(nèi)容大約占筆試的60%,希望讀者重點(diǎn)掌握。

?全國(guó)各地2008年10月自考網(wǎng)上成績(jī)查詢匯總
?環(huán)球網(wǎng)校2009年自考課程查看

更多信息請(qǐng)?jiān)L問(wèn):自學(xué)考試頻道    自學(xué)考試論壇    自學(xué)考試博客圈

分享到: 編輯:環(huán)球網(wǎng)校

資料下載 精選課程 老師直播 真題練習(xí)

自學(xué)考試資格查詢

自學(xué)考試歷年真題下載 更多

自學(xué)考試每日一練 打卡日歷

0
累計(jì)打卡
0
打卡人數(shù)
去打卡

預(yù)計(jì)用時(shí)3分鐘

環(huán)球網(wǎng)校移動(dòng)課堂APP 直播、聽課。職達(dá)未來(lái)!

安卓版

下載

iPhone版

下載

返回頂部