(完整word版)軟件工程導(dǎo)論(第6版)知識(shí)點(diǎn)總結(jié)、復(fù)習(xí)課.doc_第1頁(yè)
(完整word版)軟件工程導(dǎo)論(第6版)知識(shí)點(diǎn)總結(jié)、復(fù)習(xí)課.doc_第2頁(yè)
(完整word版)軟件工程導(dǎo)論(第6版)知識(shí)點(diǎn)總結(jié)、復(fù)習(xí)課.doc_第3頁(yè)
(完整word版)軟件工程導(dǎo)論(第6版)知識(shí)點(diǎn)總結(jié)、復(fù)習(xí)課.doc_第4頁(yè)
(完整word版)軟件工程導(dǎo)論(第6版)知識(shí)點(diǎn)總結(jié)、復(fù)習(xí)課.doc_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、復(fù)習(xí)課-酷愛 YC第一章1、什么是軟件危機(jī),什么是軟件工程軟件危機(jī) 是指在計(jì)算機(jī)軟件開發(fā)、使用與維護(hù)過程中遇到的一系列嚴(yán)重問題和難題。它包括兩方面: (1) 如何開發(fā)軟件,以滿足對(duì)軟件日益增長(zhǎng)的需求;(2) 如何維護(hù)數(shù)量不斷膨脹的已有軟件。軟件工程 :采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件,并有效地維護(hù)它。2、完整的軟件配置由哪些內(nèi)容組成軟件配置主要包括程序,文檔和數(shù)據(jù)等成分。3、軟件生命周期分為哪3 個(gè)時(shí)期和 8 個(gè)階段,每個(gè)階段的任務(wù) (工作 )分別是什么,重要性如何概括地說,軟

2、件生命周期由軟件定義 、軟件開發(fā) 和運(yùn)行維護(hù) 3 個(gè)時(shí)期組成1 、軟件定義 (系統(tǒng)分析 ) 。軟件定義時(shí)期的任務(wù)是:確定軟件開發(fā)工程必須完成的總目標(biāo);確定工程的可行性;導(dǎo)出實(shí)現(xiàn)工程目標(biāo)應(yīng)該采用的策略及系統(tǒng)必須完成的功能;估計(jì)完成該項(xiàng)工程需要的資源和成本,并且制定工程進(jìn)度表。這個(gè)時(shí)期的工作通常又稱為系統(tǒng)分析,由系統(tǒng)分析員負(fù)責(zé)完成。軟件定義時(shí)期通常進(jìn)一步劃分成3 個(gè)階段,即問題定義、可行性研究和需求分析。(1) 問題定義 ,確定系統(tǒng)要解決的問題是什么。成果:關(guān)于問題性質(zhì)、工程目標(biāo)和工程規(guī)模的報(bào)告。(2) 可行性研究 ,確定問題是否有可用的、能行得通的解 (包括:技術(shù)、經(jīng)濟(jì)、操作、社會(huì)等方面的可行性

3、 )。這個(gè)階段的任務(wù)不是具體解決問題,而是研究問題的范圍,探索這個(gè)問題是否值得去解,是否有可行的解決辦法。成果:可行性研究報(bào)告。(3) 需求分析 ,確定軟件系統(tǒng)的必須實(shí)現(xiàn)的功能、必須達(dá)到的性能、必須滿足的運(yùn)行環(huán)境要求。系統(tǒng)分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經(jīng)過用戶確認(rèn)的系統(tǒng)邏輯模型。通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和簡(jiǎn)要的算法表示系統(tǒng)的邏輯模型。在需求分析階段確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和實(shí)現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ),因此必須準(zhǔn)確完整地體現(xiàn)用戶的要求。 成果:軟件需求規(guī)格說明書 (SRS),內(nèi)容包括:系統(tǒng)的邏輯模型;系統(tǒng) (子系統(tǒng) )的名稱、功能描述、接口、基本數(shù)據(jù)結(jié)構(gòu)、性能、設(shè)計(jì)需求

4、、開發(fā)標(biāo)準(zhǔn)、驗(yàn)收原則等。2 、軟件開發(fā)。開發(fā)時(shí)期具體設(shè)計(jì)和實(shí)現(xiàn)在前一個(gè)時(shí)期定義的軟件,它通常由下述4 個(gè)階段組成:總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼和單元測(cè)試,綜合測(cè)試。其中前兩個(gè)階段又稱為系統(tǒng)設(shè)計(jì),后兩個(gè)階段又稱為系統(tǒng)實(shí)現(xiàn)。(1) 總體設(shè)計(jì) (概要設(shè)計(jì) ),回答“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)” 。建立系統(tǒng)的總體結(jié)構(gòu),劃分子系統(tǒng);確定系統(tǒng)由哪些模塊組成,各子系統(tǒng)間、各模塊間的關(guān)系 (包括定義各子系統(tǒng)接口界面和各功能模塊的接口,設(shè)計(jì)全局?jǐn)?shù)據(jù)庫(kù)或數(shù)據(jù)結(jié)構(gòu),規(guī)定設(shè)計(jì)約束,制定組裝測(cè)試計(jì)劃 )。成果:概要設(shè)計(jì)說明書、數(shù)據(jù)庫(kù)或數(shù)據(jù)結(jié)構(gòu)說明書、系統(tǒng)的組裝 (集成 )測(cè)試計(jì)劃等文檔。(2) 詳細(xì)設(shè)計(jì) 任務(wù)就是把解法具體化, 也就

5、是回答:“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢 ?”,設(shè)計(jì)每個(gè)程序模塊的內(nèi)部細(xì)節(jié),包括數(shù)據(jù)結(jié)構(gòu)、算法以及各程序模塊間的接口信息,并設(shè)計(jì)模塊的單元測(cè)試計(jì)劃。成果:詳細(xì)設(shè)計(jì)規(guī)格說明和單元測(cè)試計(jì)劃等詳細(xì)設(shè)計(jì)文檔。以上 (1)、 (2) 又合稱為軟件設(shè)計(jì)。(3) 編碼和單元測(cè)試 這個(gè)階段的關(guān)鍵任務(wù)是寫出正確的容易理解、 容易維護(hù)的程序模塊。根據(jù)詳細(xì)設(shè)計(jì)規(guī)格說明,選用某種程序設(shè)計(jì)語言把詳細(xì)設(shè)計(jì)的結(jié)果轉(zhuǎn)化為機(jī)器可運(yùn)行的源程序模塊;運(yùn)行和調(diào)試每一個(gè)程序模塊;每編寫出一個(gè)程序模塊的源程序,調(diào)試通過后,即對(duì)該模塊進(jìn)行單元測(cè)試。成果:按一定規(guī)則存在盤上的通過了單元測(cè)試的各功能模塊的集合;詳細(xì)的單元測(cè)試報(bào)告等文檔。(4)

6、綜合測(cè)試 通過各種類型的測(cè)試 (及相應(yīng)的調(diào)試 )使軟件達(dá)到預(yù)定的要求。最基本的測(cè)試是集成測(cè)試和驗(yàn)收測(cè)試。成果:滿足概要設(shè)計(jì)要求、可運(yùn)行軟件系統(tǒng)和源程序清單;組裝測(cè)試報(bào)告等文檔。驗(yàn)收測(cè)試報(bào)告、項(xiàng)目開發(fā)總結(jié)報(bào)告,向用戶提交的源程序清單、最終用戶手冊(cè)、操作手冊(cè)等文檔資料;由專家、用戶負(fù)責(zé)人、軟件開發(fā)和管理人員組成軟件評(píng)審小組對(duì)軟件驗(yàn)收測(cè)試報(bào)告、測(cè)試結(jié)果和軟件進(jìn)行評(píng)審,最終驗(yàn)收軟件產(chǎn)品。以上 (3)、 (4) 又合稱為軟件實(shí)現(xiàn)。三種不同的軟件測(cè)試:?jiǎn)卧獪y(cè)試、集成測(cè)試、驗(yàn)收測(cè)試。3 、軟件運(yùn)行與維護(hù)軟件技術(shù)人員通過各種維護(hù)活動(dòng)使軟件系統(tǒng)持久滿足用戶需要。通常有 4 類維護(hù)活動(dòng):改正性維護(hù),也就是診斷和改

7、正在使用過程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù),即修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù),即根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟件使它更完善;預(yù)防性維護(hù),即修改軟件為將來的維護(hù)活動(dòng)預(yù)先做準(zhǔn)備。成果:更新后的軟件產(chǎn)品;準(zhǔn)確記錄維護(hù)活動(dòng)的文檔。4、幾種傳統(tǒng)軟件工程生命周期模型:瀑布模型:基本思想、主要優(yōu)點(diǎn)傳統(tǒng)的瀑布模型基本思想 :瀑布模型嚴(yán)格按照軟件生存周期各個(gè)階段來進(jìn)行開發(fā),上一階段的輸出即是下一階段的輸入,并強(qiáng)調(diào)每一階段的嚴(yán)格性。它規(guī)定了各階段的任務(wù)和應(yīng)提交的成果及文檔,每一階段的任務(wù)完成后,都必須對(duì)其階段性產(chǎn)品(主要是文檔 )進(jìn)行評(píng)審,通過后才能開始下一階段的工作。因此,它是一種以文檔作為驅(qū)動(dòng)的模型。優(yōu)點(diǎn):可

8、強(qiáng)迫開發(fā)人員采用規(guī)范的方法;嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證??焖僭湍P停夯舅枷牖舅枷?:軟件開發(fā)人員根據(jù)用戶提出的軟件基本需求快速開發(fā)一個(gè)原型,以便向用戶展示軟件系統(tǒng)應(yīng)有的一部分或全部功能和性能,同時(shí)使用戶熟悉系統(tǒng)。在征求用戶對(duì)原型的初步意見后,進(jìn)一步使需求全面化、精確化,并據(jù)此改進(jìn)、完善原型。如此迭代,直到軟件開發(fā)人員和用戶都通過原型確認(rèn)軟件系統(tǒng)的需求并達(dá)成一致的理解為止。軟件需求確定后,便可進(jìn)行設(shè)計(jì),編碼、測(cè)試等以后的各個(gè)開發(fā)步驟。增量模型:基本思想、主要優(yōu)點(diǎn)基本思想 :把一個(gè)軟件產(chǎn)品劃分為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、

9、集成和測(cè)試,并逐個(gè)添加到軟件產(chǎn)品中去,逐步向用戶提交產(chǎn)品。每個(gè)構(gòu)件能夠完成特定的功能優(yōu)點(diǎn):( 1 )軟件的實(shí)現(xiàn)和維護(hù)階段沒有明顯的分界線;( 2 )用戶在很短時(shí)間內(nèi)就可以使用產(chǎn)品的部分功能( 3 )用戶適應(yīng)新產(chǎn)品的時(shí)間較充裕( 4 )構(gòu)件的分解要易于測(cè)試、規(guī)模適中( 5 )軟件的體系結(jié)構(gòu)是開放的,易于擴(kuò)充和維護(hù)螺旋模型:引入的原因,與瀑布模型、快速原型模型的聯(lián)系基本思想 :軟件風(fēng)險(xiǎn)是任何軟件開發(fā)項(xiàng)目中都普遍存在的實(shí)際問題,項(xiàng)目越大,軟件越復(fù)雜,承擔(dān)該項(xiàng)目所冒的風(fēng)險(xiǎn)也越大。軟件風(fēng)險(xiǎn)可能在不同程度上損害軟件開發(fā)過程和軟件產(chǎn)品質(zhì)量。構(gòu)建原型是一種能使某些類型的風(fēng)險(xiǎn)降至最低的方法。螺旋模型的基本思想是

10、,使用原型及其他方法來盡量降低風(fēng)險(xiǎn)。聯(lián)系:簡(jiǎn)化的螺旋模型是在快速原型模型的基礎(chǔ)上擴(kuò)展而成的,把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。完整的螺旋模型,將瀑布模型與原型模型結(jié)合起來,并且加入前兩種模型均忽略了的風(fēng)險(xiǎn)分析瀑布模型 的優(yōu)點(diǎn):有利于大型軟件開發(fā)過程中人員的組織、管理,有利于軟件開發(fā)方法和工具的研究,從而提高了大型軟件項(xiàng)目開發(fā)的質(zhì)量和效率。瀑布模型的缺點(diǎn):(1 )開發(fā)過程一般不能逆轉(zhuǎn),否則代價(jià)太大;( 2)實(shí)際的項(xiàng)目開發(fā)很難嚴(yán)格按該模型進(jìn)行;(3)客戶往往很難清楚地給出所有的需求,而該模型卻要求如此。( 4)軟件的實(shí)際情況必須到項(xiàng)目開發(fā)的后期客戶才能看到,這要求客戶有足夠

11、的耐心。瀑布模型的使用范圍:(1)用戶的需求非常清楚全面,且在開發(fā)過程中沒有或很少變化;( 2)開發(fā)人員對(duì)軟件的應(yīng)用領(lǐng)域很熟悉; (3)用戶的使用環(huán)境非常穩(wěn)定; (4)開發(fā)工作對(duì)用戶參與的要求很低??焖僭湍P?的優(yōu)點(diǎn):(1 )可以得到比較良好的需求定義,容易適應(yīng)需求的變化;( 2)有利于開發(fā)與培訓(xùn)的同步; ( 3)開發(fā)費(fèi)用低、開發(fā)周期短且對(duì)用戶更友好??焖僭湍P偷娜秉c(diǎn):(1)客戶與開發(fā)者對(duì)原型理解不同; ( 2) 準(zhǔn)確的原型設(shè)計(jì)比較困難;(3 ) 不利于開發(fā)人員的創(chuàng)新。快速原型模型的使用范圍:(1 )對(duì)所開發(fā)的領(lǐng)域比較熟悉而且有快速的原型開發(fā)工具; (2 )項(xiàng)目招投標(biāo)時(shí),可以以原型模型作為

12、軟件的開發(fā)模型;( 3)進(jìn)行產(chǎn)品移植或升級(jí)時(shí),或?qū)σ延挟a(chǎn)品原型進(jìn)行客戶化工作時(shí),原型模型是非常適合的。增量模型 的優(yōu)點(diǎn):(1 )采用增量模型的優(yōu)點(diǎn)是人員分配靈活,剛開始不用投入大量人力資源;( 2 )如果核心產(chǎn)品很受歡迎,則可增加人力實(shí)現(xiàn)下一個(gè)增量;( 3)可先發(fā)布部分功能給客戶,對(duì)客戶起到鎮(zhèn)靜劑的作用。增量模型的缺點(diǎn):(1 )并行開發(fā)構(gòu)件有可能遇到不能集成的風(fēng)險(xiǎn),軟件必須具備開放式的體系結(jié)構(gòu);( 2 )增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。增量模型的使用范圍:( 1)進(jìn)行已有產(chǎn)品升級(jí)或新版本開發(fā)

13、, 增量模型是非常適合的;(2)對(duì)完成期限嚴(yán)格要求的產(chǎn)品,可以使用增量模型;(3 )對(duì)所開發(fā)的領(lǐng)域比較熟悉而且已有原型系統(tǒng),增量模型也是非常適合的。螺旋模型 的優(yōu)點(diǎn):(1)設(shè)計(jì)上的靈活性 ,可以在項(xiàng)目的各個(gè)階段進(jìn)行變更; (2)以小的分段來構(gòu)建大型系統(tǒng) ,使成本計(jì)算變得簡(jiǎn)單容易; (3)客戶始終參與每個(gè)階段的開發(fā),保證了項(xiàng)目不偏離正確方向以及項(xiàng)目的可控性; (4 ) 隨著項(xiàng)目推進(jìn) ,客戶始終掌握項(xiàng)目的最新信息 , 從而他或她能夠和管理層有效地交互。螺旋模型的缺點(diǎn):(1 )采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),在風(fēng)險(xiǎn)較大的項(xiàng)目開發(fā)中,如果未能夠及時(shí)標(biāo)識(shí)風(fēng)險(xiǎn),勢(shì)必造成重大損失;(

14、2 )過多的迭代次數(shù)會(huì)增加開發(fā)成本,延遲提交時(shí)間。螺旋模型的使用范圍:螺旋模型只適合于大規(guī)模的軟件項(xiàng)目。第二章什么是:經(jīng)濟(jì)可行性、技術(shù)可行性、運(yùn)行與操作可行性、法律可行性(1) 經(jīng)濟(jì)可行性 :這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過它的開發(fā)成本嗎 ?估算項(xiàng)目的開發(fā)成本和系統(tǒng)投入使用后可能帶來的利潤(rùn),進(jìn)行成本 / 效益分析,從經(jīng)濟(jì)角度判斷系統(tǒng)開發(fā)是否“合算” 。(2) 技術(shù)可行性 :使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎 ?根據(jù)客戶提出的系統(tǒng)功能、性能要求,從開發(fā)者的技術(shù)實(shí)力、以往工作基礎(chǔ)、問題的復(fù)雜性等出發(fā),判斷系統(tǒng)開發(fā)在時(shí)間、 費(fèi)用及其他各項(xiàng)約束條件限制下成功的可能性。(3) 運(yùn)行、操作可行性 :系統(tǒng)的操作方式在這

15、個(gè)用戶組織內(nèi)行得通嗎 ?主要研究系統(tǒng)的運(yùn)行方式在用戶單位是否可以被有效地實(shí)施, 是否與原有其他系統(tǒng)相矛盾;系統(tǒng)的操作規(guī)程在用戶單位內(nèi)是否可行,它包括人事、科技政策、管理方法等等。(4) 法律可行性 :系統(tǒng)的開發(fā)使用,在當(dāng)國(guó)當(dāng)?shù)禺?dāng)時(shí)合法嗎?利用軟件工程的方法設(shè)計(jì)開發(fā)軟件系統(tǒng)的過程第三章需求分析的基本任務(wù)1. 確定需求 - 確定對(duì)系統(tǒng)的綜合要求(1) 功能需求 (2) 性能需求 (3) 可靠性和可用性需求 (4) 出錯(cuò)處理需求(5) 接口需求 (6) 約束 (7) 逆向需求 (8) 將來可能提出的要求2. 建立數(shù)據(jù)模型 - 利用圖形工具描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)并將數(shù)據(jù)結(jié)構(gòu)規(guī)范化,建立數(shù)據(jù)模型3. 導(dǎo)出系統(tǒng)

16、的邏輯模型 - 通常用數(shù)據(jù)流圖、實(shí)體 - 聯(lián)系圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典和主要的處理算法描述整個(gè)邏輯模型4. 編寫需求規(guī)格說明書5. 修正系統(tǒng)開發(fā)計(jì)劃本階段結(jié)束形成的基本文檔軟件需求規(guī)格說明書結(jié)構(gòu)化分析應(yīng)建立哪三大模型,分別用什么工具描述數(shù)據(jù)模型 數(shù)據(jù)流圖功能模型 實(shí)體 - 聯(lián)系圖( E-R 圖)行為模型 狀態(tài)圖數(shù)據(jù)流圖、 E-R 圖、狀態(tài)轉(zhuǎn)換圖的構(gòu)成數(shù)據(jù)流圖 - 系統(tǒng)邏輯功能的描述工具4 種成分:源點(diǎn)和終點(diǎn),處理,數(shù)據(jù)存儲(chǔ),數(shù)據(jù)流E-R 圖:實(shí)體 (即數(shù)據(jù)對(duì)象 )- 矩形框,關(guān)系 - 菱形框,屬性 - 橢圓形或圓角矩形狀態(tài)轉(zhuǎn)換圖 :狀態(tài),事件,狀態(tài)轉(zhuǎn)換數(shù)據(jù)字典: 數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合

17、,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素進(jìn)行定義的集合。它的作用正是在軟件分析和設(shè)計(jì)的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。數(shù)據(jù)流圖 和數(shù)據(jù)字典 共同構(gòu)成系統(tǒng) 可行性研究階段 的邏輯模型。數(shù)據(jù)字典的實(shí)現(xiàn)(1) 用 Case 工具中的數(shù)據(jù)字典處理程序?qū)?shù)據(jù)字典進(jìn)行生成和編輯;(2) 通過手工制作卡片來制作數(shù)據(jù)字典。 每張卡片上保存描述一個(gè)數(shù)據(jù)的信息, 主要應(yīng)該包含下述這樣一些信息:名字、別名、描述、定義、位置。第五章1、總體設(shè)計(jì)過程包含哪兩個(gè)工作階段,各完成什么任務(wù)第一階段:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的物理實(shí)現(xiàn)方案(1) 設(shè)想 (完善 )供選擇的方案 (2) 選取合理的方案 (3) 推薦最佳方案第二階段:結(jié)構(gòu)

18、設(shè)計(jì)階段 ,確定軟件的結(jié)構(gòu)(1) 功能分解,從實(shí)現(xiàn)的角度細(xì)化邏輯模型(2) 設(shè)計(jì)軟件結(jié)構(gòu)(3) 設(shè)計(jì)數(shù)據(jù)庫(kù)(4) 制定測(cè)試計(jì)劃(5) 書寫文檔(6) 審查和復(fù)審2、軟件工程的中心課題是控制軟件的復(fù)雜度;在總體設(shè)計(jì)階段,軟件復(fù)雜度主要體現(xiàn)為模塊獨(dú)立性(和全局?jǐn)?shù)據(jù)結(jié)構(gòu)復(fù)雜度);描述模塊獨(dú)立性的兩個(gè)指標(biāo)分別是耦合和內(nèi)聚3、耦合的含義, 1-8 級(jí)耦合的具體含義,耦合級(jí)別的排列耦合(Coupling):是對(duì)軟件結(jié)構(gòu)內(nèi) 不同模塊之間 相互關(guān)聯(lián)程度的強(qiáng)弱的度量。它取決于各個(gè)模塊之間接口的復(fù)雜程度、進(jìn)入或訪問一個(gè)模塊的點(diǎn)以及哪些信息通過接口傳遞。耦合度可以分為若干級(jí)別:(1) 非直接耦合 - 兩個(gè)模塊沒有直

19、接關(guān)系 (如模塊 1 和模塊 2) ,每一個(gè)都能獨(dú)立地工作而不需要另一個(gè)模塊的存在。非直接耦合兩個(gè)模塊間的獨(dú)立性最強(qiáng)。非直接耦合(2) 數(shù)據(jù)耦合 - 兩個(gè)模塊彼此間通過參數(shù)交換信息, 而且交換的信息僅僅是簡(jiǎn)單的數(shù)據(jù)信息。這屬于松散耦合。(3) 標(biāo)記耦合 - 兩個(gè)模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)參數(shù)加以聯(lián)系 (不是簡(jiǎn)單數(shù)據(jù),而是記錄、數(shù)組等 ),則稱這兩個(gè)模塊間存在標(biāo)記偶合。數(shù)據(jù)耦合特征耦合 (標(biāo)記耦合 )(4) 特征耦合 - 屬于標(biāo)記耦合,把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞,而被調(diào)用的模塊只需要使用其中一部分?jǐn)?shù)據(jù)元素。 P39控制耦合公共環(huán)境耦合(5) 控制耦合 - 一個(gè)模塊通過傳送開關(guān)、標(biāo)志、名字等控制信息,明

20、顯地控制選擇另一模塊的某部分功能。控制耦合增加了理解和編程的復(fù)雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了相互依賴。去除模塊間控制耦合的方法:a.將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行b. 被調(diào)用模塊分解成若干單一功能模塊(6) 外部耦合 - 一組模塊都訪問同一全局簡(jiǎn)單變量, 而且不是通過參數(shù)傳遞該全局變量的信息。(7) 公共環(huán)境耦合 - 兩個(gè)或多個(gè)模塊通過一個(gè)公共數(shù)據(jù)環(huán)境相互作用。 公共環(huán)境可以是全程變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)、任何存儲(chǔ)介質(zhì)上的文件、物理設(shè)備等等。公共環(huán)境耦合的復(fù)雜程度隨耦合的模塊個(gè)數(shù)而變化,當(dāng)耦合的模塊個(gè)數(shù)增加時(shí)復(fù)雜程度顯著增加。公共環(huán)境偶合必不可少 ,但耦

21、合模塊的數(shù)目應(yīng)盡量少。(8) 內(nèi)容耦合 P41內(nèi)容耦合4、內(nèi)聚的含義, 1-7 級(jí)內(nèi)聚的具體含義,內(nèi)聚級(jí)別的排列內(nèi)聚(Cohesion ):標(biāo)志同一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展。高內(nèi)聚:模塊內(nèi)部完成單一的處理;低內(nèi)聚:模塊內(nèi)部各部分關(guān)聯(lián)不緊密,完成分散的多個(gè)處理任務(wù);設(shè)計(jì)時(shí)應(yīng)該力爭(zhēng)做到高內(nèi)聚。內(nèi)聚度也可以分為若干級(jí)別:(1) 偶然內(nèi)聚 - 當(dāng)模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)也很松散,則稱這種模塊為偶然內(nèi)聚模塊,它的內(nèi)聚程度最低。(2) 邏輯內(nèi)聚 - 把幾種相關(guān)功能或邏輯上相似的功能組合在一個(gè)模塊內(nèi), 每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種

22、功能。偶然類聚邏輯類聚(3) 時(shí)間內(nèi)聚 - 一個(gè)模塊包含若干必須在同一段時(shí)間內(nèi)執(zhí)行的任務(wù)。例如系統(tǒng)初始化模塊、系統(tǒng)結(jié)束模塊、緊急故障處理模塊等均是時(shí)間性聚合模塊。(4) 過程內(nèi)聚 - 一個(gè)模塊內(nèi)的處理元素是相關(guān)的且僅有控制聯(lián)系, 各處理元素必須以特定次序執(zhí)行。ClearInputResetCountClosebufferFilesignalCalculatFilee(5) 通信內(nèi)聚 - 模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)和 (或)產(chǎn)生同一個(gè)輸出數(shù)據(jù)。(6) 順序內(nèi)聚 - 一個(gè)模塊內(nèi)的處理元素既包含數(shù)據(jù)聯(lián)系也包含控制聯(lián)系, 而且這些處理必須順序執(zhí)行 (通常一個(gè)處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素

23、的輸入數(shù)據(jù))。12334(7) 功能內(nèi)聚 - 一個(gè)模塊中各個(gè)部分都是完成某單一功能必不可少的組成部分, 或者說該模塊中所有部分都是為了完成同一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的,則稱該模塊為功能內(nèi)聚模塊。功能內(nèi)聚是最高程度的內(nèi)聚。信息內(nèi)聚 - 這種模塊完成多個(gè)簡(jiǎn)單功能, 各個(gè)功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一項(xiàng)功能有一個(gè)唯一的入口點(diǎn)。這個(gè)模塊將根據(jù)不同的要求,確定該執(zhí)行哪一個(gè)功能。由于這個(gè)模塊的所有功能都是基于同一個(gè)數(shù)據(jù)結(jié)構(gòu),因此,它是一個(gè)信息內(nèi)聚的模塊。功能內(nèi)聚信息內(nèi)聚信息內(nèi)聚模塊可以看成是多個(gè)功能內(nèi)聚模塊的組合,并且達(dá)到信息的隱蔽。即把某個(gè)數(shù)據(jù)結(jié)構(gòu)、資源或設(shè)備隱蔽在一個(gè)模塊內(nèi),不為別

24、的模塊所知曉。5、如何將數(shù)據(jù)流圖轉(zhuǎn)換為初始的軟件結(jié)構(gòu)圖/層次圖通過變換分析 的方法第 1 步 復(fù)查基本系統(tǒng)模型。第 2 步 復(fù)查并精化數(shù)據(jù)流圖。第 3 步 確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性。第 4 步 確定輸入流和輸出流的邊界,從而孤立出變換中心。第 5 步 完成“第一級(jí)分解” 。第 6 步 完成“第二級(jí)分解” 。第 7 步 使用設(shè)計(jì)度量和啟發(fā)式規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化。6、關(guān)于模塊設(shè)計(jì)的啟發(fā)規(guī)則啟發(fā)式規(guī)則 (模塊化設(shè)計(jì)的經(jīng)驗(yàn) )1. 改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性2. 模塊規(guī)模應(yīng)該適中3. 深度、寬度、扇出和扇入都應(yīng)適當(dāng)4. 模塊的作用域應(yīng)該在控制域之內(nèi)5. 力爭(zhēng)降低模塊接口

25、的復(fù)雜程度6. 設(shè)計(jì)單入口單出口的模塊7. 模塊功能應(yīng)該可以預(yù)測(cè)第六章1、詳細(xì)設(shè)計(jì)的目的 (主要任務(wù) )目的: 為軟件系統(tǒng)的 H 圖 /SC 圖中的每一個(gè)模塊確定采用的算法(處理流程 )和模塊內(nèi)數(shù)據(jù)結(jié)構(gòu),選定某種表達(dá)工具給出精確的描述。任務(wù):用一定的工具精確描述目標(biāo)系統(tǒng),從而方便在編碼階段可以把這種描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序。(1) 確定每一模塊的算法 (處理流程 )(2) 確定每一模塊使用的局部數(shù)據(jù)結(jié)構(gòu)(3) 確定本模塊的接口和用戶界面(4) 為每一模塊設(shè)計(jì)一組測(cè)試用例 (單元測(cè)試計(jì)劃 )2、結(jié)構(gòu)化程序設(shè)計(jì)1 、什么是結(jié)構(gòu)化程序設(shè)計(jì)(1) 如果一個(gè)程序的代碼塊僅僅是通過順序、

26、選擇和循環(huán)這3 種基本控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊是單入口、單出口的,則稱這個(gè)程序是結(jié)構(gòu)化的。(2) 結(jié)構(gòu)化程序設(shè)計(jì)是盡可能少用 GO TO 語句的程序設(shè)計(jì)方法。最好僅在檢測(cè)出錯(cuò)誤時(shí)才使用 GO TO 語句,而且應(yīng)該總是使用前向GO TO 語句。(3) 如果允許使用 LEAVE(或 BREAK)結(jié)構(gòu),則不僅方便而且會(huì)使效率提高很多。 LEAVE或 BREAK 結(jié)構(gòu)實(shí)質(zhì)上是受限制的GO TO 語句,用于轉(zhuǎn)移到循環(huán)結(jié)構(gòu)外面的語句。(4) 如果只允許使用順序、 IF-THEN-ELSE 型分支和 DO-WHILE 型循環(huán)這 3 種基本控制結(jié)構(gòu),則稱為經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì);如果除了上述3 種基本控制

27、結(jié)構(gòu)之外,還允許使用DO-CASE 型多分支結(jié)構(gòu)和DO-UNTIL型循環(huán)結(jié)構(gòu),則稱為擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì);如果再加上允許使用LEAVE(或 BREAK)結(jié)構(gòu),則稱為修正的結(jié)構(gòu)化程序設(shè)計(jì)。2 、結(jié)構(gòu)化程序設(shè)計(jì)中基本的控制流程3、詳細(xì)設(shè)計(jì)的描述 -程序流程圖、盒圖、 PAD 圖:什么是,基本符號(hào)和含義,畫法1 、程序流程圖 - 又稱為程序框圖,廣泛描述過程設(shè)計(jì)的方法。基本符號(hào) (國(guó)家標(biāo)準(zhǔn) )可表示的控制結(jié)構(gòu)見前圖(結(jié)構(gòu)化程序設(shè)計(jì)中基本的控制流程)。2 、盒圖 (N-S 圖 )出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神的圖形工具的考慮,Nassi 和 Shneiderman提出了盒圖,又稱為N-S 圖。基

28、本符號(hào)和表示的結(jié)構(gòu)舉例3、PAD 圖PAD 是問題分析圖 (problem analysis diagram),用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易(a) 順序(先執(zhí)行P1 后執(zhí)行 P2);(b) 選擇( IF C THEN P1 ELSE P2 );(c)CASE 型多分支; (d)WHILE 型循環(huán)( WHILE C DO P);(e)UNTIL 型循環(huán)( REPEA PUNTIL C ) ;(f) 語句標(biāo)號(hào);( g ) g 定義使用 PAD 圖提供的定義功能來逐步求精的例子4、在詳細(xì)設(shè)計(jì)階段,軟件復(fù)雜度主要體現(xiàn)為程序的復(fù)雜程度,可用程序模塊的環(huán)形復(fù)雜度 (

29、McCabe 方法)來度量,或用 Halstead 方法來度量5、環(huán)形復(fù)雜度 (McCabe 方法 )來度量計(jì)算工具 :流圖 - 退化了的程序流程圖McCabe方法根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度,這樣度量出的結(jié)果稱為程序的環(huán)形復(fù)雜度 。為了突出表示程序的控制流,人們通常使用流圖(也稱為程序圖 )。所謂流圖實(shí)質(zhì)上是“退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)對(duì)數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。計(jì)算方法: 3 種方法(1) 流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度區(qū)域:由邊和結(jié)點(diǎn)圍成的面積稱為區(qū)域。當(dāng)計(jì)算區(qū)域數(shù)時(shí)應(yīng)該包括圖外部未被圍起來的那個(gè)區(qū)域。即流圖的封閉區(qū)域數(shù)加 1

30、。(2) 流圖的環(huán)形復(fù)雜度 V(G)=E-N+2 ,其中, E 是流圖中邊的條數(shù), N 是結(jié)點(diǎn)數(shù)。(3) 流圖的環(huán)形復(fù)雜度 V(G)=P+1 ,其中, P 是流圖中判定結(jié)點(diǎn)的數(shù)目。6、Halstead方法來度量 -計(jì)算方法Halstead方法是另一個(gè)著名的方法,它根據(jù)程序中運(yùn)算符和操作數(shù)的總數(shù)來度量程序的復(fù)雜程度。計(jì)算復(fù)雜度的方法:在圖形界面(或 Web 界面 )環(huán)境下,尤其是在交互系統(tǒng)的中,一個(gè)模塊的頁(yè)面數(shù)以及每個(gè)頁(yè)面上的項(xiàng)目數(shù),也是模塊復(fù)雜程度度量的依據(jù)。第七章1、編碼風(fēng)格涉及的一系列內(nèi)容源程序?qū)嶋H上也是一種供人閱讀的文檔,有一個(gè)文檔的風(fēng)格問題。應(yīng)該使程序具有良好的風(fēng)格。源程序代碼的邏輯簡(jiǎn)

31、明清晰、易讀易懂是好程序的一個(gè)重要標(biāo)準(zhǔn)。源程序文檔化 (程序內(nèi)部的文檔 )數(shù)據(jù)說明語句構(gòu)造輸入輸出設(shè)計(jì)程序的效率2、單元測(cè)試、集成測(cè)試、確認(rèn)/ 驗(yàn)收測(cè)試,測(cè)試計(jì)劃(包括用例 )在什么時(shí)候書寫形成單元測(cè)試: - 模塊測(cè)試模塊測(cè)試的目的是保證每個(gè)模塊作為一個(gè)單元能正確運(yùn)行,所以模塊測(cè)試通常又稱為單元測(cè)試。在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是詳細(xì)設(shè)計(jì)和編碼的錯(cuò)誤。集成測(cè)試:子系統(tǒng)測(cè)試 - 局部(模塊 子系統(tǒng))子系統(tǒng)測(cè)試是按軟件結(jié)構(gòu)把經(jīng)過單元測(cè)試的若干模塊放在一起形成一個(gè)子系統(tǒng)來測(cè)試。模塊相互間的協(xié)調(diào)和通信是這個(gè)測(cè)試過程中的主要問題,因此,這個(gè)步驟著重測(cè)試模塊間的接口。系統(tǒng)測(cè)試 - 全局(子系統(tǒng) 完整系統(tǒng))

32、系統(tǒng)測(cè)試是,按軟件結(jié)構(gòu),把經(jīng)過測(cè)試的若干子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來測(cè)試。在這個(gè)過程中不僅應(yīng)該發(fā)現(xiàn)設(shè)計(jì)和編碼的錯(cuò)誤,還應(yīng)該驗(yàn)證系統(tǒng)確實(shí)能提供需求說明書中指定的功能,而且系統(tǒng)的動(dòng)態(tài)特性也符合預(yù)定要求。在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說明中的錯(cuò)誤。不論是子系統(tǒng)測(cè)試還是系統(tǒng)測(cè)試,都兼有檢測(cè)和組裝兩重含義,通常合稱為集成測(cè)試。驗(yàn)收測(cè)試 - 用戶參與驗(yàn)收測(cè)試把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試,測(cè)試內(nèi)容與系統(tǒng)測(cè)試基本類似,但是它是在用戶積極參與下進(jìn)行的, 而且可能主要使用實(shí)際數(shù)據(jù)(系統(tǒng)將來要處理的信息 )進(jìn)行測(cè)試。驗(yàn)收測(cè)試的目的是驗(yàn)證系統(tǒng)確實(shí)能夠滿足用戶的需要,在這個(gè)測(cè)試步驟中發(fā)

33、現(xiàn)的往往是系統(tǒng)需求說明書中的錯(cuò)誤。驗(yàn)收測(cè)試也稱為確認(rèn)測(cè)試 。3、軟件測(cè)試與調(diào)試的目的軟件測(cè)試 的目的就是在軟件投入生產(chǎn)性運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。測(cè)試橫跨兩個(gè)階段:( 1)編寫出每個(gè)模塊之后就對(duì)它做必要的測(cè)試 (稱為單元測(cè)試 )。( 2)在上一階段結(jié)束之后,對(duì)軟件系統(tǒng)還應(yīng)該進(jìn)行各種綜合測(cè)試 通常由專門的測(cè)試人員承擔(dān)這項(xiàng)工作。軟件測(cè)試的直接目的是要衡量軟件產(chǎn)品是否符合預(yù)期;軟件測(cè)試的根本目的是確保軟件滿足用戶需求;調(diào)試就是通過測(cè)試發(fā)現(xiàn)軟件的錯(cuò)誤之后改正錯(cuò)誤并進(jìn)行再診斷。調(diào)試是測(cè)試階段最困難的工作。調(diào)試是在測(cè)試發(fā)現(xiàn)錯(cuò)誤之后排除錯(cuò)誤的過程。調(diào)試的任務(wù)是進(jìn)一步診斷和改正程序中潛在的錯(cuò)誤。4

34、、軟件錯(cuò)誤主要包括什么軟件錯(cuò)誤指軟件產(chǎn)品中存在的導(dǎo)致期望的運(yùn)行結(jié)果和實(shí)際運(yùn)行結(jié)果間出現(xiàn)差異的一系列問題,這些問題包括故障、失效、缺陷。1. 軟件故障 是指軟件運(yùn)行過程中出現(xiàn)的一種不希望或不可接受的內(nèi)部狀態(tài)。2. 軟件失效 是指軟件運(yùn)行時(shí)產(chǎn)生的一種不可接受的外部行為結(jié)果。3. 軟件缺陷 是存在于軟件之中的那些不希望或不可接受的偏差。5、測(cè)試用例由什么組成IEEE對(duì)于測(cè)試用例給出的定義是:測(cè)試用例是一組測(cè)試輸入、 執(zhí)行條件和預(yù)期結(jié)果,目的是要滿足一個(gè)特定的目標(biāo),例如執(zhí)行一條特定的程序路徑或檢驗(yàn)是否符合一個(gè)特定的需求。測(cè)試用例可表示成:測(cè)試用例=輸入 + 輸出 + 測(cè)試環(huán)境其中,輸入是指測(cè)試數(shù)據(jù)和操

35、作步驟;輸出是指系統(tǒng)的預(yù)期執(zhí)行結(jié)果;測(cè)試環(huán)境是指進(jìn)行軟件測(cè)試所必須的工作平臺(tái)和前提條件。6、軟件測(cè)試的方法(1) 靜態(tài)測(cè)試 -什么是靜態(tài)測(cè)試 - 對(duì)軟件 (文檔 )進(jìn)行分析、檢查和審閱,不實(shí)際運(yùn)行被測(cè)試的軟件。靜態(tài)測(cè)試約可找出30 70% 的邏輯設(shè)計(jì)錯(cuò)誤,主要工作是對(duì)需求規(guī)格說明書、軟件設(shè)計(jì)說明書、源程序做檢查和審閱(主要是閱讀文檔 ),包括:(1) 通過結(jié)構(gòu)分析、流圖分析、代碼審查,指出軟件缺陷。(2) 是否符合標(biāo)準(zhǔn)和規(guī)范;(2) 動(dòng)態(tài)測(cè)試 -什么是白盒測(cè)試 -什么是黑盒測(cè)試 -什么是動(dòng)態(tài)測(cè)試 - 通過運(yùn)行軟件來檢驗(yàn)軟件的運(yùn)行結(jié)果和動(dòng)態(tài)行為的正確性。動(dòng)態(tài)測(cè)試的兩個(gè)基本要素:被測(cè)試程序、測(cè)試用

36、例。動(dòng)態(tài)測(cè)試有兩種典型的方法:黑盒測(cè)試和白盒測(cè)試。(1) 黑盒測(cè)試定義:已經(jīng)知道了產(chǎn)品應(yīng)該具有的功能,可以針對(duì)產(chǎn)品的每個(gè) (或主要 )功能點(diǎn)設(shè)計(jì)一組用例 (包括輸入數(shù)據(jù)和預(yù)期輸出數(shù)據(jù)),通過測(cè)試來檢驗(yàn)是否每個(gè)功能都能正常使用;黑盒測(cè)試主要在以下方面進(jìn)行:(1 )/ 測(cè)試:(2) 菜單 / 幫助測(cè)試: (3) 發(fā)行測(cè)試: (4) 回歸測(cè)試黑盒測(cè)試的優(yōu)勢(shì): a.黑盒測(cè)試方法對(duì)測(cè)試人員的技術(shù)要求相對(duì)較低;b. 不需要了解程序?qū)崿F(xiàn)的細(xì)節(jié),測(cè)試團(tuán)隊(duì)與開發(fā)團(tuán)隊(duì)可以并行完成各自的任務(wù)。黑盒測(cè)試的局限性:測(cè)試結(jié)果的覆蓋度不容易度量,測(cè)試的潛在風(fēng)險(xiǎn)較高。(2) 白盒測(cè)試知道產(chǎn)品的內(nèi)部工作流程(甚至代碼 ),可以對(duì)每一條主要執(zhí)行通道設(shè)計(jì)一組用例,通過測(cè)試來檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論