軟件工程導(dǎo)論第五版復(fù)習(xí)重點(diǎn)_第1頁
軟件工程導(dǎo)論第五版復(fù)習(xí)重點(diǎn)_第2頁
軟件工程導(dǎo)論第五版復(fù)習(xí)重點(diǎn)_第3頁
軟件工程導(dǎo)論第五版復(fù)習(xí)重點(diǎn)_第4頁
軟件工程導(dǎo)論第五版復(fù)習(xí)重點(diǎn)_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 軟件工程學(xué)概述2 可行性研究3 需求分析4 形式化說明技術(shù)5 總體設(shè)計6 詳細(xì)設(shè)計7 實(shí)現(xiàn)8 維護(hù)9 面向?qū)ο笙嚓P(guān)內(nèi)容10 軟件項目管理第第1 1章章 軟件工程學(xué)概述軟件工程學(xué)概述1 1、什么是軟件危機(jī)?、什么是軟件危機(jī)?P1P12 2、軟件危機(jī)產(chǎn)生的原因有哪些?、軟件危機(jī)產(chǎn)生的原因有哪些?P3P33 3、什么是軟件工程?、什么是軟件工程?P5P54 4、軟件工程方法學(xué)包含哪些要素?、軟件工程方法學(xué)包含哪些要素?P9P95 5、在軟件過程中有哪些模型?他們各自的特點(diǎn)、在軟件過程中有哪些模型?他們各自的特點(diǎn)是哪些?是哪些?P15P15P22P22第第2 2章章 可行性研究可行性研究1 1、可

2、行性研究的目的是什么?P252、應(yīng)從哪些方面研究可行性?P253、如何畫系統(tǒng)流程圖?P27P304、如何畫數(shù)據(jù)流圖?P30P375、了解數(shù)據(jù)字典及成本效益分析。數(shù)據(jù)流圖數(shù)據(jù)流圖(Data Flow DiagramData Flow Diagram,DFDDFD)是描述系統(tǒng)中數(shù)據(jù)流)是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,它標(biāo)識了一個系統(tǒng)的邏輯輸入和邏輯輸出,以程的圖形工具,它標(biāo)識了一個系統(tǒng)的邏輯輸入和邏輯輸出,以及把邏輯輸入轉(zhuǎn)換為邏輯輸出所需的加工處理。及把邏輯輸入轉(zhuǎn)換為邏輯輸出所需的加工處理。2.42.4數(shù)據(jù)流圖數(shù)據(jù)流圖數(shù)據(jù)存儲數(shù)據(jù)存儲數(shù)據(jù)源點(diǎn)數(shù)據(jù)源點(diǎn)或終點(diǎn)或終點(diǎn)處處 理理加工名數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)流名

3、文件名實(shí)體名箭箭 頭頭圓或橢圓圓或橢圓單或雙杠單或雙杠矩形框矩形框還有一些輔助的圖例還有一些輔助的圖例: :一、數(shù)據(jù)流圖的圖符一、數(shù)據(jù)流圖的圖符四種基本圖形符號:四種基本圖形符號:TAB*CTAB*CTAB+CTAB+CTABC+TABC+* 與與 + 或或互斥+2.42.4數(shù)據(jù)流圖數(shù)據(jù)流圖舉例:舉例:儲戶儲戶1記錄存款信息打印存款信息存款單存款信息存款存單3計算利息4打印利息清單存款信息利息值利息清單D1存款信息存款信息2第第3 3章章 需求分析需求分析1 1、需求分析的基本任務(wù)是什么?、需求分析的基本任務(wù)是什么?P46-P48P46-P482 2、分析建模、分析建模 2.1什么是模型?什么

4、是模型? 模型:就是為了理解事物而對事物做出的一種模型:就是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。通常,模型由一組圖形抽象,是對事物的一種無歧義的書面描述。通常,模型由一組圖形符號和組織這些符號的規(guī)則組成。符號和組織這些符號的規(guī)則組成。 2.22.2數(shù)據(jù)模型(數(shù)據(jù)模型(E-RE-R)、)、 功能模型(功能模型(2.42.4節(jié)數(shù)據(jù)流圖)、節(jié)數(shù)據(jù)流圖)、 行為模型行為模型(狀態(tài)轉(zhuǎn)換圖是行為模型的基礎(chǔ))(狀態(tài)轉(zhuǎn)換圖是行為模型的基礎(chǔ))3 3、要從哪些方面驗證軟件需求?、要從哪些方面驗證軟件需求?P60P60第第4 4章章 形式化說明技術(shù)形式化說明技術(shù)軟件工軟件工程的使程的

5、使用方法用方法非形式化:用自然語言描述需求規(guī)格說明非形式化:用自然語言描述需求規(guī)格說明半形式化:用數(shù)據(jù)流圖或?qū)嶓w半形式化:用數(shù)據(jù)流圖或?qū)嶓w聯(lián)系圖聯(lián)系圖建立模型建立模型形式化:描述系統(tǒng)性質(zhì)的基于數(shù)學(xué)的技術(shù)形式化:描述系統(tǒng)性質(zhì)的基于數(shù)學(xué)的技術(shù)1、有窮狀態(tài)機(jī)P67P722、Petri網(wǎng)技術(shù)P72P751、在設(shè)計過程中,總體設(shè)計一般有哪兩個主要階段組成?P812、什么模塊化?模塊獨(dú)立性包含哪些內(nèi)容?度量準(zhǔn)則是什么?P85P893、啟發(fā)規(guī)則有哪些?P90P924、描繪軟件結(jié)構(gòu)的圖形工具P92-P945、面向數(shù)據(jù)流的設(shè)計方法P95P1025.25.2設(shè)計原理設(shè)計原理u 模塊是程序?qū)ο笥忻值募侠?,過程

6、、函數(shù)、子程序、宏等,是構(gòu)成軟件系統(tǒng)結(jié)構(gòu)的基本元素。u 模塊化就是將系統(tǒng)劃分為若干個模塊,每個模塊完成一個子功能模塊化的目的是將系統(tǒng)“分而治之”,模塊化能夠降低問題的復(fù)雜性,使軟件結(jié)構(gòu)清晰,易閱讀、易理解,易于測試和調(diào)試,因而也有助于提高軟件的可靠性。5.2.55.2.5模塊獨(dú)立模塊獨(dú)立 “模塊模塊”,又稱,又稱“構(gòu)件構(gòu)件”,一般指用一個名字可調(diào)用的一段程,一般指用一個名字可調(diào)用的一段程序。它一般具有如下序。它一般具有如下三個基本屬性三個基本屬性:功能功能 即指該模塊實(shí)現(xiàn)什么功能,做什么事情。必須注意:模塊即指該模塊實(shí)現(xiàn)什么功能,做什么事情。必須注意:模塊功能,應(yīng)是該模塊本身的功能加上它所調(diào)用

7、的所有子模塊的功能。功能,應(yīng)是該模塊本身的功能加上它所調(diào)用的所有子模塊的功能。邏輯邏輯 即描述模塊內(nèi)部怎么做。即描述模塊內(nèi)部怎么做。狀態(tài)狀態(tài) 即該模塊使用時的環(huán)境和條件。即該模塊使用時的環(huán)境和條件。所謂模塊的獨(dú)立性,所謂模塊的獨(dú)立性,是指軟件系統(tǒng)中每個模塊只涉及軟件要是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能求的具體的子功能,而,而和軟件系統(tǒng)中其他模塊的接口是簡單的和軟件系統(tǒng)中其他模塊的接口是簡單的。即功能專一即功能專一,模塊之間無過多的相互作用的模塊模塊之間無過多的相互作用的模塊。這種類型的模塊可以并行開發(fā),模塊獨(dú)立性越強(qiáng),開發(fā)越容這種類型的模塊可以并行開發(fā),模塊獨(dú)立性越強(qiáng),開發(fā)越容

8、易。獨(dú)立性強(qiáng)的模塊,還能減少錯誤的影響,使模塊容易組合、易。獨(dú)立性強(qiáng)的模塊,還能減少錯誤的影響,使模塊容易組合、修改及測試。修改及測試。5.2.5 5.2.5 模塊獨(dú)立性模塊獨(dú)立性模塊獨(dú)立性的度量標(biāo)準(zhǔn)是兩個定性準(zhǔn)則模塊獨(dú)立性的度量標(biāo)準(zhǔn)是兩個定性準(zhǔn)則: 用于描述模塊之間聯(lián)系的緊密程度。用于描述模塊之間聯(lián)系的緊密程度。 用于描述模塊內(nèi)部聯(lián)系的緊密程度。用于描述模塊內(nèi)部聯(lián)系的緊密程度。 模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)該是具有高內(nèi)聚性和的低耦模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)該是具有高內(nèi)聚性和的低耦合度。合度。 變換中心變換輸入輸出圖圖5.8 變換型數(shù)據(jù)流圖的基本模型變換型數(shù)據(jù)流圖的基本模型 圖 事務(wù)型數(shù)據(jù)流圖的基本

9、模型事務(wù)中心輸入流接收路徑加工路徑l變換分析設(shè)計:把具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模變換分析設(shè)計:把具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)式映射成軟件結(jié)構(gòu)。不具有顯著的事務(wù)特點(diǎn)不具有顯著的事務(wù)特點(diǎn)。l雖然在任何情況下都可以使用變換分析方法設(shè)計軟件結(jié)構(gòu),但雖然在任何情況下都可以使用變換分析方法設(shè)計軟件結(jié)構(gòu),但是在是在數(shù)據(jù)流具有明顯的事務(wù)特點(diǎn)數(shù)據(jù)流具有明顯的事務(wù)特點(diǎn)時,也就是有一個明顯的時,也就是有一個明顯的“發(fā)發(fā)射中心射中心”(事務(wù)中心事務(wù)中心)時,還是以采用事務(wù)分析方法為宜。時,還是以采用事務(wù)分析方法為宜。l兩者的主要差別僅在于由數(shù)據(jù)流圖到軟件結(jié)構(gòu)的映射方法不同。兩者的主

10、要差別僅在于由數(shù)據(jù)流圖到軟件結(jié)構(gòu)的映射方法不同。第第6 6章章 詳細(xì)設(shè)計詳細(xì)設(shè)計1 1、結(jié)構(gòu)程序設(shè)計中有哪幾種基本控制結(jié)構(gòu)?、結(jié)構(gòu)程序設(shè)計中有哪幾種基本控制結(jié)構(gòu)?P108P1082 2、了解人機(jī)界面的設(shè)計。、了解人機(jī)界面的設(shè)計。3 3、掌握過程設(shè)計的工具(程序流程圖、盒圖、掌握過程設(shè)計的工具(程序流程圖、盒圖、PADPAD圖,圖,判定樹)判定樹)P114P119P114P1194 4、面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法(、面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法(JacksonJackson圖)圖)5 5、程序復(fù)雜度的定量度量(、程序復(fù)雜度的定量度量(McCabeMcCabe)6.16.1結(jié)構(gòu)程序設(shè)計結(jié)構(gòu)程序設(shè)計圖圖6.1

11、 3種基本的控制結(jié)構(gòu)種基本的控制結(jié)構(gòu)6.16.1結(jié)構(gòu)程序設(shè)計結(jié)構(gòu)程序設(shè)計圖圖6.2 其他常用的控制結(jié)構(gòu)其他常用的控制結(jié)構(gòu)6.3.1 6.3.1 程序流程圖程序流程圖 程序流程圖是最早出現(xiàn)且使用較為廣泛的算法表達(dá)工具之一,能夠有效地描述問題求解過程中的程序邏輯結(jié)構(gòu)。程序流程圖中經(jīng)常使用的基本符號如圖6.3所示。圖圖6.3 程序流程圖中使用的符號程序流程圖中使用的符號uNS圖又稱為盒圖,它是為了保證結(jié)構(gòu)化程序設(shè)計而由Nassi和Shneiderman共同提出的一種圖形工具。u在NS圖中,所有的程序結(jié)構(gòu)均使用矩形框表示,它可以清晰地表達(dá)結(jié)構(gòu)中的嵌套及模塊的層次關(guān)系。uNS圖中,基本控制結(jié)構(gòu)的表示符號

12、如圖6.4所示。6.3.2 N-S6.3.2 N-S圖圖6.3.2 N-S6.3.2 N-S圖圖圖圖6.4 盒圖的基本符號盒圖的基本符號圖圖6.5 PAD6.5 PAD中基本符號中基本符號(a)(a)順序結(jié)構(gòu);順序結(jié)構(gòu);(b) (b) 分支結(jié)構(gòu);分支結(jié)構(gòu);(c) (c) 多分支多分支CASECASE結(jié)構(gòu);結(jié)構(gòu);(d) (d) 當(dāng)型循環(huán);當(dāng)型循環(huán);(e)(e);直到型循環(huán);直到型循環(huán);(f) (f) 語句標(biāo)號;(語句標(biāo)號;(g g)定義)定義6.3.3 PAD6.3.3 PAD圖圖6.3.3 PAD6.3.3 PAD圖圖圖圖6.6 使用使用PAD圖提供的定義功能來逐步求精的例子圖提供的定義功能來

13、逐步求精的例子6.4 6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法 Jackson方法和方法和Warnier方法是最著名的兩個面方法是最著名的兩個面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法uJackson方法是由英國的M.A.Jackson在1975年首先提出的,他同時還提出了與這種方法配套使用的、用于描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu)的圖形工具,被稱為Jackson圖。uJackson方法從目標(biāo)系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)入手,導(dǎo)出程序框架結(jié)構(gòu),再補(bǔ)充其他細(xì)節(jié),就可得到完整的程序結(jié)構(gòu)圖。u這一方法對輸入、輸出數(shù)據(jù)結(jié)構(gòu)明確的中、小型系統(tǒng)特別有效,如商業(yè)應(yīng)用中的文件、表格處理。該方法也可與其他方法結(jié)

14、合,用于模塊的詳細(xì)設(shè)計。6.4 6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法圖6.8 三種基本結(jié)構(gòu)在Jackson圖中的表示符號(a) 順序結(jié)構(gòu);(b) 選擇結(jié)構(gòu);(c);循環(huán)結(jié)構(gòu)6.4.1 Jackson6.4.1 Jackson圖圖(a)(c)(b)6.4 6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法圖圖6.9 改進(jìn)的改進(jìn)的Jackson圖圖6.5 6.5 程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量 定量度量程序復(fù)雜程度的方法很有價值:把程序的定量度量程序復(fù)雜程度的方法很有價值:把程序的復(fù)雜程度復(fù)雜程度乘以乘以適當(dāng)常數(shù)適當(dāng)常數(shù)即可即可估算出軟件中錯誤的數(shù)量估算出軟件中錯誤

15、的數(shù)量以以及及軟件開發(fā)需要用的工作量軟件開發(fā)需要用的工作量,定量度量的結(jié)果可以用來,定量度量的結(jié)果可以用來比較兩個不同的設(shè)計比較兩個不同的設(shè)計或或兩個不同算法的優(yōu)劣兩個不同算法的優(yōu)劣;程序的定;程序的定量的復(fù)雜程度可以作為模塊規(guī)模的精確限度。量的復(fù)雜程度可以作為模塊規(guī)模的精確限度。6.5 6.5 程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量u McCabe方法根據(jù)程序控制流的復(fù)雜程度定量度量程方法根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度,這樣度量出的結(jié)果稱為程序的環(huán)形復(fù)雜序的復(fù)雜程度,這樣度量出的結(jié)果稱為程序的環(huán)形復(fù)雜度。度。u 為了突出表示程序的控制流,人們通常使用流圖為了突出表示程序

16、的控制流,人們通常使用流圖(也稱也稱為程序圖為程序圖)。所謂流圖實(shí)質(zhì)上是。所謂流圖實(shí)質(zhì)上是“退化了的退化了的”程序流程圖,程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)對數(shù)據(jù)的具體它僅僅描繪程序的控制流程,完全不表現(xiàn)對數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。操作以及分支或循環(huán)的具體條件。6.5 6.5 程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量圖圖6.16 把程序流程圖影射成流圖把程序流程圖影射成流圖6.5.1 6.5.1 計算環(huán)形復(fù)雜度的方法計算環(huán)形復(fù)雜度的方法第第7 7章章 實(shí)現(xiàn)實(shí)現(xiàn)1、編碼2、測試技術(shù)P139P1693、調(diào)試的途徑有哪些?P1684、軟件可靠性和可用性的基本概念P16

17、9u 編碼:把軟件設(shè)計結(jié)果翻譯成用某種程序語言書寫的程序。u 測試:軟件測試的目的是在軟件投入生產(chǎn)性運(yùn)行前,盡可能多的發(fā)現(xiàn)軟件中的錯誤。 實(shí)現(xiàn)實(shí)現(xiàn)編碼和測試編碼和測試7.27.2軟件測試基礎(chǔ)軟件測試基礎(chǔ)u 軟件測試:為發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。軟件測試:為發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。u 軟件測試的準(zhǔn)則(盡早和不斷的測試、徹底測試的不軟件測試的準(zhǔn)則(盡早和不斷的測試、徹底測試的不可能、軟件測試是有風(fēng)險的行為、并非所有的軟件錯誤可能、軟件測試是有風(fēng)險的行為、并非所有的軟件錯誤都能恢復(fù)、反向思維邏輯、由小到大的測試范圍、避免都能恢復(fù)、反向思維邏輯、由小到大的測試范圍、避免檢查自己的代碼

18、、追溯至用戶需求)檢查自己的代碼、追溯至用戶需求)u 測試方法(黑盒測試和白盒測試)測試方法(黑盒測試和白盒測試)u 測試步驟(模塊測試、子系統(tǒng)測試、系統(tǒng)測試、驗收測試步驟(模塊測試、子系統(tǒng)測試、系統(tǒng)測試、驗收測試、平行運(yùn)行)測試、平行運(yùn)行)模塊模塊模塊接口測試模塊接口測試局部數(shù)據(jù)結(jié)構(gòu)測試局部數(shù)據(jù)結(jié)構(gòu)測試重要路徑測試重要路徑測試錯誤處理測試錯誤處理測試邊界條件測試邊界條件測試I/O I/O 參數(shù)值的個數(shù)、類參數(shù)值的個數(shù)、類型、次序、格式是否正型、次序、格式是否正確,確,I/OI/O文件屬性、操作文件屬性、操作是否正確等。是否正確等。數(shù)據(jù)說明是否正確、數(shù)據(jù)說明是否正確、一致,變量及其初一致,變量

19、及其初值定義是否正確等。值定義是否正確等。檢查檢查“錯誤處錯誤處理程序理程序”本身本身的錯誤。的錯誤。邊界條件常包括循環(huán)邊邊界條件常包括循環(huán)邊界,最大最小值、控制界,最大最小值、控制流中等于、大于、小于流中等于、大于、小于的比較值等。的比較值等。重要重要路徑通常是指完成路徑通常是指完成模塊功能的主要路徑,模塊功能的主要路徑,一般是控制結(jié)構(gòu)。一般是控制結(jié)構(gòu)。也稱模塊測試(也稱模塊測試(modulemodule testing testing ) )7.3.1 7.3.1 單元測試重點(diǎn)單元測試重點(diǎn)語語句句覆覆蓋蓋判判定定覆覆蓋蓋條條件件覆覆蓋蓋判判定定條條件件覆覆蓋蓋條條件件組組合合覆覆蓋蓋弱弱強(qiáng)

20、強(qiáng)7.6 7.6 白盒測試技術(shù)白盒測試技術(shù) 語句覆蓋語句覆蓋: 選擇足夠的測試用例,使得程序中每個語選擇足夠的測試用例,使得程序中每個語句至少都能被執(zhí)行一次。句至少都能被執(zhí)行一次。 判定覆蓋判定覆蓋: 執(zhí)行足夠的測試用例,使得程序中每個判執(zhí)行足夠的測試用例,使得程序中每個判定至少都獲得一次定至少都獲得一次“真真”值和值和“假假”值。值。 條件覆蓋條件覆蓋:執(zhí)行足夠的測試用例,使得判定中的每個:執(zhí)行足夠的測試用例,使得判定中的每個條件獲得各種可能的結(jié)果。條件獲得各種可能的結(jié)果。 判定判定/ /條件覆蓋條件覆蓋: 執(zhí)行足夠的測試用例,使得判定中執(zhí)行足夠的測試用例,使得判定中每個條件取到各種可能的值

21、,并使每個判定取到各種可能每個條件取到各種可能的值,并使每個判定取到各種可能的結(jié)果。的結(jié)果。 條件組合覆蓋條件組合覆蓋: 執(zhí)行足夠的例子,使得每個判定中條執(zhí)行足夠的例子,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。件的各種可能組合都至少出現(xiàn)一次。白盒法白盒法常用的覆蓋標(biāo)準(zhǔn)常用的覆蓋標(biāo)準(zhǔn)等等價價分分類類法法邊邊值值分分析析法法錯錯誤誤推推測測法法黑盒法黑盒法 不考慮程序的內(nèi)部結(jié)構(gòu)與特性,不考慮程序的內(nèi)部結(jié)構(gòu)與特性,只根據(jù)程序功能或程序的外部特性只根據(jù)程序功能或程序的外部特性設(shè)計測試用例。設(shè)計測試用例。7.7 7.7 黑盒測試技術(shù)黑盒測試技術(shù)l 調(diào)試調(diào)試(也稱為糾錯)作為成功測試的后果出現(xiàn),也

22、就是說,(也稱為糾錯)作為成功測試的后果出現(xiàn),也就是說,調(diào)試是在測試發(fā)現(xiàn)錯誤之后排除錯誤的過程。調(diào)試是在測試發(fā)現(xiàn)錯誤之后排除錯誤的過程。l 調(diào)試過程調(diào)試過程如下圖所示:如下圖所示:7.8 7.8 調(diào)試調(diào)試7.8 7.8 調(diào)試途徑調(diào)試途徑l 軟件可靠性的定義:軟件可靠性的定義:對于軟件可靠性有許多不同的定義,對于軟件可靠性有許多不同的定義,其中多數(shù)人承認(rèn)的一個定義是:其中多數(shù)人承認(rèn)的一個定義是:軟件可靠性是程序在給定軟件可靠性是程序在給定的時間間隔內(nèi),按照規(guī)格說明書的規(guī)定成功地運(yùn)行的概率的時間間隔內(nèi),按照規(guī)格說明書的規(guī)定成功地運(yùn)行的概率l 軟件可用性的一個定義:軟件可用性的一個定義: 軟件可用性

23、是程序在軟件可用性是程序在給定的時給定的時間點(diǎn)間點(diǎn),按照規(guī)格說明書的規(guī)定,成功地運(yùn)行的概率。,按照規(guī)格說明書的規(guī)定,成功地運(yùn)行的概率。7.9 7.9 調(diào)試調(diào)試1、軟件維護(hù)的定義P1792、了解軟件維護(hù)的特點(diǎn)3、軟件維護(hù)過程中維護(hù)組織包括哪些人員?P1828.4 決定軟件的可維護(hù)性的因素有哪些?P185P1868.5 軟件再工程過程8.18.1軟件維護(hù)的定義軟件維護(hù)的定義l 軟件維護(hù)軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足新的需求而修改軟件的過程。按照不同的維護(hù)目的,維護(hù)工作新的需求而修改軟件的過程。按照不同的維護(hù)目的,維護(hù)工作可分成可分成

24、4類。類。u完善性維護(hù)完善性維護(hù)(Perfective Maintenance):擴(kuò)充原有系統(tǒng)的):擴(kuò)充原有系統(tǒng)的功能,提高原有系統(tǒng)的性能,滿足用戶的實(shí)際需要。功能,提高原有系統(tǒng)的性能,滿足用戶的實(shí)際需要。u糾錯性維護(hù)糾錯性維護(hù)(Corrective Maintenance):對在測試階段未):對在測試階段未能發(fā)現(xiàn)的,在軟件投入使用后才逐漸暴露出來的錯誤的測能發(fā)現(xiàn)的,在軟件投入使用后才逐漸暴露出來的錯誤的測試、診斷、定位、糾錯以及驗證、修改的回歸測試過程。試、診斷、定位、糾錯以及驗證、修改的回歸測試過程。u適應(yīng)性維護(hù)適應(yīng)性維護(hù)(Adaptive Maintenance):): 要使運(yùn)行的軟件要

25、使運(yùn)行的軟件能適應(yīng)運(yùn)行環(huán)境的變動而修改軟件的過程。能適應(yīng)運(yùn)行環(huán)境的變動而修改軟件的過程。u預(yù)防性維護(hù)預(yù)防性維護(hù)(Preventive Maintenance):為了進(jìn)一步改善):為了進(jìn)一步改善軟件的可靠性和易維護(hù)性,或者為將來的維護(hù)奠定更好的軟件的可靠性和易維護(hù)性,或者為將來的維護(hù)奠定更好的基礎(chǔ)而對軟件進(jìn)行修改。(基礎(chǔ)而對軟件進(jìn)行修改。(8.5節(jié))節(jié))8.38.3軟件維護(hù)過程軟件維護(hù)過程圖圖8.1 維護(hù)組織維護(hù)組織8.48.4軟件的可維護(hù)性軟件的可維護(hù)性l軟件的可維護(hù)性定性地定義為: 維護(hù)人員理解、改正、改動或改進(jìn)這個軟件的難易程度。l重用:同一事物不做修改或稍加改動就在不同環(huán)境中多次重復(fù)使用

26、。l提高可維護(hù)性是支配軟件工程方法學(xué)所有步驟的關(guān)鍵目標(biāo)。1、面向?qū)ο蠓椒▽W(xué)概述P193P2002、面向?qū)ο蠼#êw第9章和第10章)3、面向?qū)ο蠓治龅幕具^程4、面向?qū)ο蟮脑O(shè)計準(zhǔn)則9.1 概述l 面向?qū)ο蠓椒▽W(xué)的面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則出發(fā)點(diǎn)和基本原則,是,是盡可能模擬人類習(xí)盡可能模擬人類習(xí)慣的思維方式,慣的思維方式,使開發(fā)軟件的方法與過程使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識盡可能接近人類認(rèn)識世界解決問題的方法與過程世界解決問題的方法與過程,也就是使描述問題的問題空間,也就是使描述問題的問題空間(也也稱為問題域稱為問題域)與實(shí)現(xiàn)解法的解空間與實(shí)現(xiàn)解法的解空間(也稱為求解域也稱為求

27、解域)在結(jié)構(gòu)上盡可在結(jié)構(gòu)上盡可能一致。能一致。u認(rèn)為客觀世界是由各種對象組成的,任何事物都是對象,認(rèn)為客觀世界是由各種對象組成的,任何事物都是對象,復(fù)雜的對象可以由比較簡單的對象以某種方式組合而成。復(fù)雜的對象可以由比較簡單的對象以某種方式組合而成。u把所有對象都劃分成各種對象類把所有對象都劃分成各種對象類(簡稱為類,簡稱為類,class),每個,每個對象類都定義了一組數(shù)據(jù)和一組方法。對象類都定義了一組數(shù)據(jù)和一組方法。u按照子類按照子類(或稱為派生類或稱為派生類)與父類與父類(或稱為基類或稱為基類)的關(guān)系,把的關(guān)系,把若干個對象類組成一個層次結(jié)構(gòu)的系統(tǒng)若干個對象類組成一個層次結(jié)構(gòu)的系統(tǒng)(也稱為類

28、等級也稱為類等級)。u對象彼此之間僅能通過傳遞消息互相聯(lián)系。對象彼此之間僅能通過傳遞消息互相聯(lián)系。類類又稱又稱對象類對象類一組具有相同屬性和一組具有相同屬性和相同操作的對象的集合相同操作的對象的集合。在一個類中,每個對象都是類的在一個類中,每個對象都是類的實(shí)例實(shí)例(instance) ,它們都可以使用類中提供的函數(shù)。,它們都可以使用類中提供的函數(shù)。類具有屬性類具有屬性,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性,類具有操作,類具有操作,它 是 對 象 的 行 為 的 抽 象 , 操 作 實(shí) 現(xiàn) 的 過 程 稱 為 方 法它 是 對 象 的 行 為 的 抽 象 , 操 作 實(shí) 現(xiàn) 的 過

29、 程 稱 為 方 法(method) ,方法有方法名,方法體和參數(shù)。,方法有方法名,方法體和參數(shù)。 由于對象是類的由于對象是類的實(shí)例實(shí)例,在進(jìn)行分析和設(shè)計時,通常把注,在進(jìn)行分析和設(shè)計時,通常把注意力集中在類上,而不是具體的對象上意力集中在類上,而不是具體的對象上。 實(shí)例:實(shí)例:實(shí)際上類是建立對象時使用的實(shí)際上類是建立對象時使用的“樣板樣板”,按照,按照這個樣板所建立的一個個具體的對象,就是類的實(shí)際例子,這個樣板所建立的一個個具體的對象,就是類的實(shí)際例子,通常稱為通常稱為實(shí)例實(shí)例。當(dāng)使用。當(dāng)使用“對象對象”這個術(shù)語時,既可以指一這個術(shù)語時,既可以指一個具體的對象,也可以泛指一般的對象,但是,當(dāng)

30、使用個具體的對象,也可以泛指一般的對象,但是,當(dāng)使用“實(shí)例實(shí)例”這個術(shù)語時,必然是指一個具體的對象。這個術(shù)語時,必然是指一個具體的對象。幾何對象幾何對象顏色顏色位置位置移動(移動(delta:矢量):矢量)選擇(選擇(P:指針型)指針型):布爾型布爾型旋轉(zhuǎn)旋轉(zhuǎn)(角度角度)人人姓姓 名名:字符串字符串年年 齡齡: 整整 型型改換工作改換工作改換地址改換地址文件文件文件名文件名文件大小文件大小最近更新日期最近更新日期打印打印(人人)里斯里斯28繪圖員繪圖員人民路人民路8號號(人人)張山張山24程序員程序員無無類名類名屬性屬性運(yùn)算運(yùn)算 對象圖對象圖 類圖類圖 互相聯(lián)系、協(xié)同工互相聯(lián)系、協(xié)同工作等作等

31、對象之間的聯(lián)系可表示為對象間的消息傳遞,即對象之間的聯(lián)系可表示為對象間的消息傳遞,即對象間的通訊機(jī)制。對象間的通訊機(jī)制。 一個消息應(yīng)該包含以下信息:消息名、接收消息對象一個消息應(yīng)該包含以下信息:消息名、接收消息對象的標(biāo)識、服務(wù)標(biāo)識的標(biāo)識、服務(wù)標(biāo)識 、消息和方法、輸入信息、回答信息。、消息和方法、輸入信息、回答信息。在對象的操作中當(dāng)一個消息發(fā)送給某個對象時,消息在對象的操作中當(dāng)一個消息發(fā)送給某個對象時,消息包含接收對象去執(zhí)行某種操作的消息。包含接收對象去執(zhí)行某種操作的消息。屬性:姓名屬性:姓名 年齡年齡 單位單位 職稱職稱 工資工資狀態(tài):李立狀態(tài):李立 25 計算機(jī)系計算機(jī)系 講師講師 900屬

32、性:調(diào)工資屬性:調(diào)工資 評職稱評職稱 受受 聘聘方法:調(diào)工資方法:調(diào)工資 (計算公式)(計算公式) 評職稱評職稱 (步驟、條件)(步驟、條件)屬性:調(diào)工資屬性:調(diào)工資 評職稱評職稱 受受 聘聘李立,調(diào)工資(李立,調(diào)工資( )數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)數(shù)數(shù)據(jù)據(jù)值值人事處向?qū)ο蟀l(fā)消息人事處向?qū)ο蟀l(fā)消息執(zhí)行執(zhí)行的的操作操作方方法法體體類:教師類:教師對象:李立對象:李立抽象抽象實(shí)例實(shí)例抽象抽象實(shí)例實(shí)例抽象抽象方法名(參數(shù))方法名(參數(shù))圖9.7 對象、類和消息傳遞l 方法:方法:就是對象所能執(zhí)行的操作,也就是類中所定義的就是對象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。方法描述了對象執(zhí)行操作的算法,響應(yīng)消息的方

33、法。服務(wù)。方法描述了對象執(zhí)行操作的算法,響應(yīng)消息的方法。在在C+語言中把方法稱為成員函數(shù)。語言中把方法稱為成員函數(shù)。l 屬性:屬性:就是類中所定義的數(shù)據(jù),它是對客觀世界實(shí)體所就是類中所定義的數(shù)據(jù),它是對客觀世界實(shí)體所具有的性質(zhì)的抽象。類的每個實(shí)例都有自己特有的屬性值。具有的性質(zhì)的抽象。類的每個實(shí)例都有自己特有的屬性值。在在C+語言中把屬性稱為數(shù)據(jù)成員。語言中把屬性稱為數(shù)據(jù)成員。 繼承是使用現(xiàn)存的定義作為基礎(chǔ),建立新定義的技術(shù)。繼承是使用現(xiàn)存的定義作為基礎(chǔ),建立新定義的技術(shù)。是是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。在

34、定義和實(shí)現(xiàn)一個類的時候,可以在一個已經(jīng)存在的種關(guān)系。在定義和實(shí)現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎(chǔ)上來進(jìn)行,把這個已經(jīng)存在的類所定義的內(nèi)容做為自類的基礎(chǔ)上來進(jìn)行,把這個已經(jīng)存在的類所定義的內(nèi)容做為自己的內(nèi)容,并加入若干新內(nèi)容。己的內(nèi)容,并加入若干新內(nèi)容。 繼承性分:繼承性分: 單重繼承:一個子類只有一個父類。即單重繼承:一個子類只有一個父類。即子類只繼承一個父類子類只繼承一個父類 的數(shù)據(jù)結(jié)構(gòu)和方法。的數(shù)據(jù)結(jié)構(gòu)和方法。 多重繼承:一個子類可有多個父類。繼承多個多重繼承:一個子類可有多個父類。繼承多個父類的數(shù)據(jù)結(jié)父類的數(shù)據(jù)結(jié) 構(gòu)和方法。構(gòu)和方法。基類基類子類子類A子類子類B圖 9.9 繼承

35、性描述現(xiàn)存類定義現(xiàn)存類定義父類父類( (基類基類) )新類定義新類定義子類子類( (派生類派生類) )繼繼 承承圖 9.8 繼承性圖圖9.8 實(shí)現(xiàn)繼承機(jī)制的原理實(shí)現(xiàn)繼承機(jī)制的原理功能模型指明了系統(tǒng)應(yīng)功能模型指明了系統(tǒng)應(yīng)該該“做什么做什么”;動態(tài)模型明確規(guī)定了什么時候;動態(tài)模型明確規(guī)定了什么時候(即在何種狀即在何種狀態(tài)下接受了什么事件的觸發(fā)態(tài)下接受了什么事件的觸發(fā))做;對象模型則定義了做事情做;對象模型則定義了做事情的實(shí)體。的實(shí)體。對象模型是最基本最重要對象模型是最基本最重要3 3種模型之間的關(guān)系種模型之間的關(guān)系 (1) 面向?qū)ο蠓治龅娜齻€模型u 面向?qū)ο蠼J敲嫦驅(qū)ο蠓治龅年P(guān)鍵。u 面向?qū)ο蟮?/p>

36、模型包括:對象模型、動態(tài)模型和功能模型。對對象模型象模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu);動態(tài)模型動態(tài)模型描述了系統(tǒng)的互交次序;功能模型功能模型描述了系統(tǒng)的數(shù)據(jù)變換。不同的問題,三個子模型的側(cè)重程度不同,但是,對象模型是最基礎(chǔ)的、最核心的、對象模型是最基礎(chǔ)的、最核心的、最重要的最重要的。u 無論解決什么問題,首先要在問題域中提取和定義出對象模型。當(dāng)問題涉及用戶界與過程控制問題涉及用戶界與過程控制時,動態(tài)模型是重點(diǎn)動態(tài)模型是重點(diǎn)。如果問題涉及大量數(shù)據(jù)變換問題涉及大量數(shù)據(jù)變換,則功能模型非常重要功能模型非常重要。對象模型中的操作(服務(wù))可以出現(xiàn)在動態(tài)模型和功能模型內(nèi)。面向?qū)ο蠓治龅幕具^程9.3 39.3 3

37、個子模型與個子模型與5 5個層次個層次 (2) 面向?qū)ο蠓治龅奈鍌€層次 面向?qū)ο蠓治鲇晌鍌€主要活動組成:主題層、類與對象層、結(jié)構(gòu)層、屬性層和服務(wù)層,見圖9.2。 主題層 subject level類-對象層object結(jié)構(gòu)層 structure屬性層 attribute服務(wù)層 serves圖圖 對象模型的五個層次對象模型的五個層次3個子模型和5個層次1.1. 模塊化模塊化2.2. 抽象抽象3.3. 信息隱藏信息隱藏4.4. 弱耦合弱耦合5.5. 強(qiáng)內(nèi)聚強(qiáng)內(nèi)聚6.6. 可重用可重用 面向?qū)ο笤O(shè)計的準(zhǔn)則面向?qū)ο笤O(shè)計的準(zhǔn)則面向?qū)ο笤O(shè)計的準(zhǔn)則面向?qū)ο笤O(shè)計的準(zhǔn)則軟件重用軟件重用第第1010章章 軟件項目

38、管理軟件項目管理1、了解如何估算軟件規(guī)模,如何進(jìn)行工作量的估算?2、制定進(jìn)度計劃的工具有哪些?P302P3093、了解人員如何組織? 4、軟件質(zhì)量的保證措施有哪些?P316P3175、軟件配置管理P319P3216、能力成熟度模型分為哪幾級?P322P324 13.313.3進(jìn)度計劃進(jìn)度計劃軟件開發(fā)進(jìn)度計劃安排是一件困難的任務(wù),既要考慮各個子任務(wù)之間軟件開發(fā)進(jìn)度計劃安排是一件困難的任務(wù),既要考慮各個子任務(wù)之間的相互聯(lián)系,盡可能并行地安排任務(wù),又要預(yù)見潛在的問題,提供意外事的相互聯(lián)系,盡可能并行地安排任務(wù),又要預(yù)見潛在的問題,提供意外事件的處理意見。件的處理意見。 描述計劃進(jìn)度的主要工具有:一般的表格工具、甘特圖、描述計劃進(jìn)度的主要工具有:一般的表格工

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論