VB教程第6_7章軟件開發(fā)方法_第1頁
VB教程第6_7章軟件開發(fā)方法_第2頁
VB教程第6_7章軟件開發(fā)方法_第3頁
VB教程第6_7章軟件開發(fā)方法_第4頁
VB教程第6_7章軟件開發(fā)方法_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 1、軟件的定義、軟件的定義程序程序是按事先設(shè)計(jì)的功能和性能是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列要求執(zhí)行的指令序列數(shù)據(jù)數(shù)據(jù)是使程序能正常操縱的信息是使程序能正常操縱的信息的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)文檔文檔是與程序開發(fā)、維護(hù)和使用是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文材料有關(guān)的圖文材料定義定義 軟件開發(fā)和維護(hù)過程中遇到的一系列嚴(yán)重軟件開發(fā)和維護(hù)過程中遇到的一系列嚴(yán)重問題問題表現(xiàn)表現(xiàn)e用戶很不滿意用戶很不滿意e質(zhì)量很不可靠(產(chǎn)品無評價(jià)手段)質(zhì)量很不可靠(產(chǎn)品無評價(jià)手段)e軟件不可維護(hù)軟件不可維護(hù)e對軟件開發(fā)成本和進(jìn)度的估算很不準(zhǔn)確對軟件開發(fā)成本和進(jìn)度的估算很不準(zhǔn)確e沒有適當(dāng)?shù)奈臋n沒有適當(dāng)?shù)奈臋ne軟件成

2、本比重上升軟件成本比重上升e軟件供不應(yīng)求軟件供不應(yīng)求產(chǎn)生的原因:產(chǎn)生的原因: (1) 軟件是邏輯的系統(tǒng)部件不是物理的系軟件是邏輯的系統(tǒng)部件不是物理的系 統(tǒng)部件,以程序和文檔形式存在統(tǒng)部件,以程序和文檔形式存在 (2) 軟件規(guī)模越來越大,功能越來越強(qiáng),軟件規(guī)模越來越大,功能越來越強(qiáng), 軟件結(jié)構(gòu)非常復(fù)雜軟件結(jié)構(gòu)非常復(fù)雜結(jié)論:結(jié)論:軟件危機(jī)產(chǎn)生的根本原因與軟件產(chǎn)品的特軟件危機(jī)產(chǎn)生的根本原因與軟件產(chǎn)品的特征和軟件產(chǎn)品開發(fā)與維護(hù)的方法不正確有關(guān)征和軟件產(chǎn)品開發(fā)與維護(hù)的方法不正確有關(guān) 解決軟件危機(jī)的根本出路:解決軟件危機(jī)的根本出路: (1) 認(rèn)識問題的原因所在,吸取前人的經(jīng)驗(yàn)認(rèn)識問題的原因所在,吸取前人的

3、經(jīng)驗(yàn) (2) 要有相應(yīng)的理論、技術(shù)、工具要有相應(yīng)的理論、技術(shù)、工具4 軟件工程軟件工程軟件工程的目的在于獲得廉價(jià)的、能在實(shí)際軟件工程的目的在于獲得廉價(jià)的、能在實(shí)際機(jī)器上高效和可靠地工作的軟件。為此需要機(jī)器上高效和可靠地工作的軟件。為此需要建立并應(yīng)用牢固的建立并應(yīng)用牢固的工程工程準(zhǔn)則準(zhǔn)則和和方法。方法。軟件工程軟件工程定義很多,其定義很多,其核心思想核心思想是:是:“采用采用工程化的原理和方法對軟件進(jìn)行計(jì)劃、開發(fā)工程化的原理和方法對軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù)和維護(hù)”,因此需要建立和應(yīng)用,因此需要建立和應(yīng)用工程工程準(zhǔn)則準(zhǔn)則和和方法。方法。6.1.2 6.1.2 軟件生存周期軟件生存周期 e計(jì)劃計(jì)劃時(shí)

4、期有問題定義和可行性研時(shí)期有問題定義和可行性研究兩個(gè)階段究兩個(gè)階段 e開發(fā)時(shí)期有需求分析、系統(tǒng)設(shè)計(jì)、編碼和開發(fā)時(shí)期有需求分析、系統(tǒng)設(shè)計(jì)、編碼和測試四個(gè)階段測試四個(gè)階段 e運(yùn)行時(shí)期主要是系統(tǒng)維護(hù)階段運(yùn)行時(shí)期主要是系統(tǒng)維護(hù)階段 問題定義可行性研究需求分析軟件設(shè)計(jì)編碼測試維護(hù)典型的軟件生存周期 開發(fā)階段維護(hù)階段(軟件系統(tǒng)目標(biāo)與范圍說明書)(可行性論證報(bào)告)(需求說明書)定義階段(設(shè)計(jì)說明書)(程序)(測試報(bào)告)(軟件維護(hù)報(bào)告)1 1 計(jì)劃時(shí)期計(jì)劃時(shí)期計(jì)劃時(shí)期的主要任務(wù)計(jì)劃時(shí)期的主要任務(wù): :調(diào)查和分析調(diào)查和分析調(diào)查用戶需求調(diào)查用戶需求分析新系統(tǒng)的主要目標(biāo),分析開發(fā)該分析新系統(tǒng)的主要目標(biāo),分析開發(fā)該系

5、統(tǒng)的可行性。系統(tǒng)的可行性。計(jì)劃時(shí)期還應(yīng)制定出人力、資源及進(jìn)計(jì)劃時(shí)期還應(yīng)制定出人力、資源及進(jìn)度計(jì)劃。度計(jì)劃。2 2 開發(fā)時(shí)期開發(fā)時(shí)期開發(fā)時(shí)期的任務(wù)開發(fā)時(shí)期的任務(wù) 設(shè)計(jì)和實(shí)現(xiàn)設(shè)計(jì)和實(shí)現(xiàn)設(shè)計(jì)包括:需求分析、軟件設(shè)計(jì)設(shè)計(jì)包括:需求分析、軟件設(shè)計(jì)實(shí)現(xiàn)包括:編碼和測試實(shí)現(xiàn)包括:編碼和測試 把設(shè)計(jì)和實(shí)現(xiàn)分成兩步走,目的是在把設(shè)計(jì)和實(shí)現(xiàn)分成兩步走,目的是在開發(fā)初期讓程序人員集中全力搞好軟件的開發(fā)初期讓程序人員集中全力搞好軟件的邏輯結(jié)構(gòu),避免過早地為實(shí)現(xiàn)的細(xì)節(jié)分散邏輯結(jié)構(gòu),避免過早地為實(shí)現(xiàn)的細(xì)節(jié)分散精力。精力。需求分析需求分析其任務(wù)在于弄清用戶對軟件系統(tǒng)的全部需其任務(wù)在于弄清用戶對軟件系統(tǒng)的全部需求,并用求,并

6、用 “ “需求規(guī)格說明書需求規(guī)格說明書” ” 的形式的形式準(zhǔn)確地表達(dá)出來。準(zhǔn)確地表達(dá)出來。 軟件設(shè)計(jì)軟件設(shè)計(jì)主要任務(wù)是將需求轉(zhuǎn)變?yōu)檐浖谋硎拘问街饕蝿?wù)是將需求轉(zhuǎn)變?yōu)檐浖谋硎拘问?,有時(shí)又可細(xì)分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì),有時(shí)又可細(xì)分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)。設(shè)計(jì)階段要編寫設(shè)計(jì)文檔。設(shè)計(jì)階段要編寫設(shè)計(jì)文檔。編碼編碼即按照選定的語言,把設(shè)計(jì)的過程性即按照選定的語言,把設(shè)計(jì)的過程性描述翻譯為源程序。與描述翻譯為源程序。與“需求分析需求分析”或或“設(shè)計(jì)設(shè)計(jì)”相比,相比,“編碼編碼”要簡單得多要簡單得多,所,所以通常由編碼員(以通常由編碼員(codercoder)或初級程)或初級程序員擔(dān)任。序員擔(dān)任。 測試測試

7、 是開發(fā)時(shí)期最后一個(gè)階段。是開發(fā)時(shí)期最后一個(gè)階段。 按照不同的層次,又可細(xì)分為單元測試按照不同的層次,又可細(xì)分為單元測試、綜合測試、確認(rèn)測試和系統(tǒng)測試等步驟、綜合測試、確認(rèn)測試和系統(tǒng)測試等步驟。測試是保證軟件質(zhì)量的重要手段。測試是保證軟件質(zhì)量的重要手段。 測試階段的文檔稱為測試階段的文檔稱為“測試報(bào)告測試報(bào)告”,包,包括測試計(jì)劃、測試用例與測試結(jié)果等內(nèi)容括測試計(jì)劃、測試用例與測試結(jié)果等內(nèi)容。 3 3 運(yùn)行時(shí)期運(yùn)行時(shí)期 運(yùn)行時(shí)期是軟件生存周期的最后一運(yùn)行時(shí)期是軟件生存周期的最后一個(gè)時(shí)期。軟件人員在這一時(shí)期的工個(gè)時(shí)期。軟件人員在這一時(shí)期的工作,主要是做好軟件維護(hù)作,主要是做好軟件維護(hù)。6.1.3

8、6.1.3 軟件開發(fā)模型軟件開發(fā)模型1 1 傳統(tǒng)的軟件開發(fā)模型傳統(tǒng)的軟件開發(fā)模型 瀑布模型瀑布模型 基于生存期的開發(fā)范型基于生存期的開發(fā)范型自頂向下,逐步細(xì)化自頂向下,逐步細(xì)化每一步都要求給出相應(yīng)的技術(shù)文檔每一步都要求給出相應(yīng)的技術(shù)文檔主要特點(diǎn)主要特點(diǎn) 堅(jiān)持堅(jiān)持結(jié)構(gòu)化結(jié)構(gòu)化( (將邏輯實(shí)現(xiàn)與物理實(shí)將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開現(xiàn)分開) )思想和強(qiáng)調(diào)思想和強(qiáng)調(diào)文檔文檔齊套,是齊套,是瀑布開發(fā)模型的兩條重要準(zhǔn)則。瀑布開發(fā)模型的兩條重要準(zhǔn)則。瀑布模型瀑布模型 快速原型模型快速原型模型需求分析需求分析原型開發(fā)原型開發(fā)最終系統(tǒng)設(shè)計(jì)最終系統(tǒng)設(shè)計(jì)原型評價(jià)原型評價(jià)最終系統(tǒng)實(shí)現(xiàn)最終系統(tǒng)實(shí)現(xiàn)用戶用戶反饋反饋快速原型范型

9、快速原型范型 (1) (1) 建立原型建立原型 (2) (2) 實(shí)現(xiàn)最終軟件實(shí)現(xiàn)最終軟件原型開發(fā)范型的最大原型開發(fā)范型的最大優(yōu)點(diǎn)優(yōu)點(diǎn): : 用戶的用戶的早期介入早期介入2 2 面向?qū)ο箝_發(fā)模型面向?qū)ο箝_發(fā)模型 面向?qū)ο笏枷氲淖钪匾卣鳎敲嫦驅(qū)ο笏枷氲淖钪匾卣?,是在解題空間中引入了在解題空間中引入了“對象對象”的的概念,使之逼真地模擬問題空間概念,使之逼真地模擬問題空間中的客觀實(shí)體,從而達(dá)到與人類中的客觀實(shí)體,從而達(dá)到與人類的思維習(xí)慣相一致。的思維習(xí)慣相一致。 結(jié)構(gòu)化技術(shù)結(jié)構(gòu)化技術(shù)組件技術(shù)組件技術(shù)面向?qū)ο蠹夹g(shù)面向?qū)ο蠹夹g(shù)COM、EJB 6.2 6.2 結(jié)構(gòu)化開發(fā)方法結(jié)構(gòu)化開發(fā)方法兩種程序設(shè)計(jì)

10、方法兩種程序設(shè)計(jì)方法程序設(shè)計(jì)的兩次飛躍程序設(shè)計(jì)的兩次飛躍結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)e程序程序= =數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)+ +算法算法面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)e程序程序 = = 對象對象 + + 消息消息 兩類軟件工程方法兩類軟件工程方法傳統(tǒng)軟件工程傳統(tǒng)軟件工程e軟件分析軟件分析 總體設(shè)計(jì)總體設(shè)計(jì) 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 面面向過程的編碼向過程的編碼 測試測試 面向?qū)ο筌浖こ堂嫦驅(qū)ο筌浖こ蘣軟件分析與對象抽取軟件分析與對象抽取 對象詳細(xì)設(shè)計(jì)對象詳細(xì)設(shè)計(jì) 面向?qū)ο蟮木幋a面向?qū)ο蟮木幋a 測試測試 6.2.1 6.2.1 基本思路:把整個(gè)系統(tǒng)開發(fā)過程分成若基本思路:把整個(gè)系統(tǒng)開發(fā)過程分成若干階段,

11、每個(gè)階段進(jìn)行若干活動,每項(xiàng)干階段,每個(gè)階段進(jìn)行若干活動,每項(xiàng)活動應(yīng)用一系列標(biāo)準(zhǔn)、規(guī)范、方法和技活動應(yīng)用一系列標(biāo)準(zhǔn)、規(guī)范、方法和技術(shù),完成一個(gè)或者多個(gè)任務(wù),形成符合術(shù),完成一個(gè)或者多個(gè)任務(wù),形成符合給定規(guī)范的產(chǎn)品。分而治之給定規(guī)范的產(chǎn)品。分而治之“結(jié)構(gòu)化結(jié)構(gòu)化”的含義:用一組規(guī)范的步驟的含義:用一組規(guī)范的步驟、準(zhǔn)則和工具來進(jìn)行某項(xiàng)工作、準(zhǔn)則和工具來進(jìn)行某項(xiàng)工作。核心思想核心思想: :自頂向下和逐步求精自頂向下和逐步求精SASA方法的特點(diǎn)方法的特點(diǎn)使用描述需求說明書的規(guī)范工具使用描述需求說明書的規(guī)范工具( (數(shù)據(jù)流圖、數(shù)據(jù)詞典、小說明(數(shù)據(jù)流圖、數(shù)據(jù)詞典、小說明(加工邏輯的描述加工邏輯的描述))

12、, ) , 使文檔規(guī)范使文檔規(guī)范化化 基本手段基本手段: :分解和抽象分解和抽象 分解分解: :大問題分割成小問題大問題分割成小問題, ,分別解決分別解決 抽象抽象: :把細(xì)節(jié)略去把細(xì)節(jié)略去, ,先考慮最本質(zhì)屬性先考慮最本質(zhì)屬性SASA方法方法分析步驟:分析步驟:e建立建立當(dāng)前系統(tǒng)的當(dāng)前系統(tǒng)的具體模型具體模型e抽象抽象出當(dāng)前系統(tǒng)的出當(dāng)前系統(tǒng)的邏輯模型邏輯模型e建立建立目標(biāo)系統(tǒng)的目標(biāo)系統(tǒng)的邏輯模型邏輯模型e對目標(biāo)系統(tǒng)做完整的描述??紤]人機(jī)界對目標(biāo)系統(tǒng)做完整的描述??紤]人機(jī)界面和其它一些問題面和其它一些問題主要描述工具:主要描述工具:e 數(shù)據(jù)流圖數(shù)據(jù)流圖 表達(dá)需求表達(dá)需求 e 數(shù)據(jù)詞典數(shù)據(jù)詞典 記

13、錄數(shù)據(jù)的邏輯定義記錄數(shù)據(jù)的邏輯定義 數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)(DFD) 數(shù)據(jù)流圖(數(shù)據(jù)流圖(Data Flow DiagramData Flow Diagram)是描述系統(tǒng))是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具。它標(biāo)識了一個(gè)系統(tǒng)中數(shù)據(jù)流程的圖形工具。它標(biāo)識了一個(gè)系統(tǒng)的的邏輯輸入邏輯輸入和和邏輯輸出邏輯輸出以及把邏輯輸入轉(zhuǎn)換以及把邏輯輸入轉(zhuǎn)換為邏輯輸出所需要的為邏輯輸出所需要的加工處理加工處理 帳卡帳卡存折存折取取 款款 信信 息息存折存折核查核查付款付款登錄登錄無余拒付無余拒付儲戶儲戶付款信息付款信息可行性可行性數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)(DFD) 數(shù)據(jù)流圖以圖形的方式表達(dá)了系統(tǒng)中的信息數(shù)據(jù)流圖以

14、圖形的方式表達(dá)了系統(tǒng)中的信息變換和傳遞的過程變換和傳遞的過程基本符號:基本符號:數(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ù)流圖(DFD)(DFD) SA方法要求:先全局后局部、先整體后細(xì)方法要求:先全局后局部、先整體后細(xì) 節(jié)、先抽象后具體節(jié)、先抽象后具體 總體數(shù)據(jù)流圖總體數(shù)據(jù)流圖 局部數(shù)據(jù)流圖局部數(shù)據(jù)流圖逐步細(xì)化逐步細(xì)化數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)(DFD) 一個(gè)復(fù)雜的軟件其數(shù)據(jù)流圖通常分為頂一個(gè)復(fù)雜的軟件其數(shù)據(jù)

15、流圖通常分為頂層、中間層和底層層、中間層和底層e頂層:頂層:是一個(gè)高度抽象的軟件系統(tǒng)的邏是一個(gè)高度抽象的軟件系統(tǒng)的邏輯模型輯模型 e中間層:中間層:它既是上一層的加工的分解結(jié)它既是上一層的加工的分解結(jié)果,又是下一層若干加工的抽象果,又是下一層若干加工的抽象e底層:底層:由基本加工構(gòu)成。所謂基本加工由基本加工構(gòu)成。所謂基本加工是指不能再進(jìn)行分解的加工是指不能再進(jìn)行分解的加工數(shù)據(jù)詞典數(shù)據(jù)詞典(DD) (DD) SASA方法方法使用使用數(shù)據(jù)詞典數(shù)據(jù)詞典(Data Dictionary)對數(shù)據(jù)流名、數(shù)據(jù)存儲名、數(shù)據(jù)項(xiàng)名、基對數(shù)據(jù)流名、數(shù)據(jù)存儲名、數(shù)據(jù)項(xiàng)名、基本加工名進(jìn)行詳細(xì)說明本加工名進(jìn)行詳細(xì)說明 數(shù)

16、據(jù)流圖中包含的所有元素定義數(shù)據(jù)流圖中包含的所有元素定義的集合構(gòu)成了數(shù)據(jù)詞典的集合構(gòu)成了數(shù)據(jù)詞典 DD是是SA方法的主要工具方法的主要工具數(shù)據(jù)詞典數(shù)據(jù)詞典(DD) (DD) 數(shù)據(jù)詞典中條目類型數(shù)據(jù)詞典中條目類型e數(shù)據(jù)流條目數(shù)據(jù)流條目常用符號常用符號 = + | ( ) e文件條目文件條目 列出文件記錄的組成數(shù)據(jù)項(xiàng)組織方式列出文件記錄的組成數(shù)據(jù)項(xiàng)組織方式e數(shù)據(jù)項(xiàng)條目數(shù)據(jù)項(xiàng)條目 數(shù)據(jù)單項(xiàng)定義,包括類型、取值范圍數(shù)據(jù)單項(xiàng)定義,包括類型、取值范圍e加工條目加工條目 加工的精確描述,小說明加工說明加工的精確描述,小說明加工說明6.2.2 6.2.2 結(jié)構(gòu)化設(shè)計(jì)(結(jié)構(gòu)化設(shè)計(jì)(SDSD)在軟件需求分析階段,已

17、搞清楚了軟件在軟件需求分析階段,已搞清楚了軟件“做什做什么么”的問題,需求通過規(guī)格說明書描述,這也的問題,需求通過規(guī)格說明書描述,這也是目標(biāo)系統(tǒng)的邏輯模型。是目標(biāo)系統(tǒng)的邏輯模型。進(jìn)入了設(shè)計(jì)階段,要把軟件進(jìn)入了設(shè)計(jì)階段,要把軟件“做什么做什么”的邏輯的邏輯模型變換為模型變換為“怎么做怎么做”的物理模型,設(shè)計(jì)的結(jié)的物理模型,設(shè)計(jì)的結(jié)果反映在果反映在“設(shè)計(jì)規(guī)格說明書設(shè)計(jì)規(guī)格說明書”文檔中。文檔中。描述了軟件的總體的體系結(jié)構(gòu),稱為軟件總體描述了軟件的總體的體系結(jié)構(gòu),稱為軟件總體設(shè)計(jì)或結(jié)構(gòu)設(shè)計(jì)。對結(jié)構(gòu)進(jìn)一步細(xì)化,稱為詳設(shè)計(jì)或結(jié)構(gòu)設(shè)計(jì)。對結(jié)構(gòu)進(jìn)一步細(xì)化,稱為詳細(xì)設(shè)計(jì)或結(jié)構(gòu)設(shè)計(jì)。細(xì)設(shè)計(jì)或結(jié)構(gòu)設(shè)計(jì)。 SD方法

18、的基本思想根據(jù)根據(jù)SASA方法中的數(shù)據(jù)流圖建立一個(gè)良好的模方法中的數(shù)據(jù)流圖建立一個(gè)良好的模塊結(jié)構(gòu)圖塊結(jié)構(gòu)圖運(yùn)用模塊化的設(shè)計(jì)原理控制系統(tǒng)的復(fù)雜性,運(yùn)用模塊化的設(shè)計(jì)原理控制系統(tǒng)的復(fù)雜性,即設(shè)計(jì)出模塊相對獨(dú)立的,模塊結(jié)構(gòu)圖深度即設(shè)計(jì)出模塊相對獨(dú)立的,模塊結(jié)構(gòu)圖深度、寬度都適當(dāng)?shù)模瑔稳肟趩纬隹诘?,單一功、寬度都適當(dāng)?shù)?,單入口單出口的,單一功能的模塊結(jié)構(gòu)的軟件結(jié)構(gòu)圖。能的模塊結(jié)構(gòu)的軟件結(jié)構(gòu)圖。評價(jià)模塊結(jié)構(gòu)圖質(zhì)量的標(biāo)準(zhǔn):評價(jià)模塊結(jié)構(gòu)圖質(zhì)量的標(biāo)準(zhǔn):模塊之間的聯(lián)模塊之間的聯(lián)系越松散越好,而模塊內(nèi)各成分之間的聯(lián)系系越松散越好,而模塊內(nèi)各成分之間的聯(lián)系越緊湊越好越緊湊越好SDSD方法的設(shè)計(jì)原理方法的設(shè)計(jì)原理l模塊

19、化模塊化 指解決一個(gè)復(fù)雜問題時(shí)自頂向下逐層把軟件系指解決一個(gè)復(fù)雜問題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。每個(gè)模塊完成一個(gè)特定統(tǒng)劃分成若干模塊的過程。每個(gè)模塊完成一個(gè)特定的子功能,所有的模塊按某種方法組裝起來,成為的子功能,所有的模塊按某種方法組裝起來,成為一個(gè)整體,完成整個(gè)系統(tǒng)所要求的功能。模塊化是一個(gè)整體,完成整個(gè)系統(tǒng)所要求的功能。模塊化是軟件解決復(fù)雜問題所具備的手段,為了說明這一點(diǎn)軟件解決復(fù)雜問題所具備的手段,為了說明這一點(diǎn),可將問題的復(fù)雜性和工作量的關(guān)系進(jìn)行推理,可將問題的復(fù)雜性和工作量的關(guān)系進(jìn)行推理l抽象抽象l模塊獨(dú)立模塊獨(dú)立 模塊化(模塊化(module)module)模塊

20、:模塊:在程序中是數(shù)據(jù)說明、可執(zhí)行語句等在程序中是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,或者是單?dú)命名和編址的程序?qū)ο蟮募希蛘呤菃为?dú)命名和編址的元素,如高級語言中的過程、函數(shù)、子程序元素,如高級語言中的過程、函數(shù)、子程序等等。在軟件的體系結(jié)構(gòu)中,模塊是可組合等等。在軟件的體系結(jié)構(gòu)中,模塊是可組合、分解和更換的單元。模塊具有以下幾種基、分解和更換的單元。模塊具有以下幾種基本屬性:本屬性:接口:接口:指模塊的輸入與輸出。指模塊的輸入與輸出。功能:功能:指模塊實(shí)現(xiàn)什么功能。指模塊實(shí)現(xiàn)什么功能。邏輯:邏輯:描述內(nèi)部如何實(shí)現(xiàn)要求的功能及所需描述內(nèi)部如何實(shí)現(xiàn)要求的功能及所需的數(shù)據(jù)。的數(shù)據(jù)。模塊獨(dú)立性模

21、塊獨(dú)立性(module independence)模塊獨(dú)立性:每個(gè)模塊只完成系統(tǒng)要求模塊獨(dú)立性:每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。系最少且接口簡單。模塊獨(dú)立性有兩個(gè)定性的度量標(biāo)準(zhǔn):模塊獨(dú)立性有兩個(gè)定性的度量標(biāo)準(zhǔn): 內(nèi)聚內(nèi)聚( () )和和耦合耦合( () )模塊間耦合性越小越好模塊間耦合性越小越好模塊內(nèi)聚性越大越好模塊內(nèi)聚性越大越好模塊的設(shè)計(jì)準(zhǔn)則模塊的設(shè)計(jì)準(zhǔn)則通過模塊的分解和合并,提高模塊獨(dú)立性通過模塊的分解和合并,提高模塊獨(dú)立性模塊調(diào)用個(gè)數(shù)最好不要超過模塊調(diào)用個(gè)數(shù)最好不要超過5個(gè)個(gè)降低模塊接口的復(fù)雜性降低模塊接口的復(fù)雜

22、性模塊的作用域應(yīng)該在控制域之內(nèi)模塊的作用域應(yīng)該在控制域之內(nèi)模塊應(yīng)該設(shè)計(jì)成單入口單出口模塊應(yīng)該設(shè)計(jì)成單入口單出口模塊的大小要適中,一般在模塊的大小要適中,一般在50條語句左右條語句左右6.2.3 6.2.3 詳細(xì)設(shè)計(jì)和編碼詳細(xì)設(shè)計(jì)和編碼三種基本控制結(jié)構(gòu)三種基本控制結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)詳細(xì)設(shè)計(jì)的描述工具:詳細(xì)設(shè)計(jì)的描述工具:程序流程圖程序流程圖方框圖(方框圖(N-SN-S圖)圖)問題分析圖(問題分析圖(PADPAD圖)圖)偽碼(偽碼(PDLPDL語言)語言)N-SN-S圖也叫做盒圖。過程設(shè)計(jì)語言過程設(shè)計(jì)語言(Process Design Language ,PDL)

23、也稱程序描述語言(也稱程序描述語言(Program Description Program Description LanguageLanguage), ,又稱為偽碼(又稱為偽碼(pseudo codepseudo code)。屬于文字形式的表達(dá)工具。它并非真正的。屬于文字形式的表達(dá)工具。它并非真正的代碼,也不能在計(jì)算機(jī)上執(zhí)行,但形式上與代碼,也不能在計(jì)算機(jī)上執(zhí)行,但形式上與代碼相似。它是一種用于描述模塊算法設(shè)計(jì)代碼相似。它是一種用于描述模塊算法設(shè)計(jì)和處理細(xì)節(jié)的語言。和處理細(xì)節(jié)的語言。PDLPDL具有嚴(yán)格的關(guān)鍵字具有嚴(yán)格的關(guān)鍵字外層語法,用于定義控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和外層語法,用于定義控制結(jié)構(gòu)、

24、數(shù)據(jù)結(jié)構(gòu)和模塊接口,而它表示實(shí)際操作和條件的內(nèi)層模塊接口,而它表示實(shí)際操作和條件的內(nèi)層語法又是靈活自由的,使用自然語言的詞匯語法又是靈活自由的,使用自然語言的詞匯。PDL PDL 特特 點(diǎn)點(diǎn)所有關(guān)鍵字都有固定語法,以便提供結(jié)構(gòu)化控制結(jié)所有關(guān)鍵字都有固定語法,以便提供結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊的特征。構(gòu)、數(shù)據(jù)說明和模塊的特征。描述處理過程的說明性語言沒有嚴(yán)格的語法。描述處理過程的說明性語言沒有嚴(yán)格的語法。具有數(shù)據(jù)說明機(jī)制,包括簡單的與復(fù)雜的數(shù)據(jù)說具有數(shù)據(jù)說明機(jī)制,包括簡單的與復(fù)雜的數(shù)據(jù)說明。明。具有模塊定義和調(diào)用機(jī)制,因此開發(fā)人員應(yīng)根據(jù)具有模塊定義和調(diào)用機(jī)制,因此開發(fā)人員應(yīng)根據(jù)系統(tǒng)編程所用的

25、語種,說明系統(tǒng)編程所用的語種,說明PDLPDL表示的有關(guān)程序表示的有關(guān)程序結(jié)構(gòu)。結(jié)構(gòu)。結(jié)構(gòu)化編碼方法結(jié)構(gòu)化編碼方法程序的正確性程序的正確性可讀性、可理解性、可測試性、可維護(hù)性可讀性、可理解性、可測試性、可維護(hù)性面向?qū)ο箝_發(fā)方法面向?qū)ο箝_發(fā)方法 OOSD一、面向?qū)ο蠓治鲆?、面向?qū)ο蠓治?OOA)二、面向?qū)ο笤O(shè)計(jì)二、面向?qū)ο笤O(shè)計(jì)(OOD) 三、面向?qū)ο缶幊倘?、面向?qū)ο缶幊?OOP)O Object-bject-O Oriented riented D DesignesignO Object-bject-O Oriented riented P Programingrograming O Objec

26、t-bject-O Oriented riented A Analysisnalysis 面向?qū)ο蟮姆治觯好嫦驅(qū)ο蟮姆治觯?需求分析:分析系統(tǒng)的功能、性能、約束。需求分析:分析系統(tǒng)的功能、性能、約束。 領(lǐng)域分析:重點(diǎn)在于對問題域中的概念進(jìn)行描述。領(lǐng)域分析:重點(diǎn)在于對問題域中的概念進(jìn)行描述。面向?qū)ο蟮脑O(shè)計(jì):面向?qū)ο蟮脑O(shè)計(jì):重點(diǎn)在于職責(zé)分配和交互設(shè)重點(diǎn)在于職責(zé)分配和交互設(shè)計(jì),定義那些最終用面向?qū)ο蟪绦蛟O(shè)計(jì)語言實(shí)計(jì),定義那些最終用面向?qū)ο蟪绦蛟O(shè)計(jì)語言實(shí)現(xiàn)的邏輯軟件組成部分類?,F(xiàn)的邏輯軟件組成部分類。面向?qū)ο竺嫦驅(qū)ο蟮姆治龅姆治觯∣OA)面向?qū)ο竺嫦驅(qū)ο蟮脑O(shè)計(jì)的設(shè)計(jì)(OOD)面向?qū)ο竺嫦驅(qū)ο蟮木幊痰木?/p>

27、程(OOP)面向?qū)ο蟮木幊蹋好嫦驅(qū)ο蟮木幊蹋篊+、JAVA。第第7 7章章 軟件測試與質(zhì)量保證軟件測試與質(zhì)量保證目標(biāo):目標(biāo):軟件測試是軟件測試是為了發(fā)現(xiàn)為了發(fā)現(xiàn)軟件中的錯(cuò)誤而執(zhí)軟件中的錯(cuò)誤而執(zhí)行程序的過程。行程序的過程。好的好的測試方案是盡可能地發(fā)現(xiàn)至今尚未測試方案是盡可能地發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤的測試方案。發(fā)現(xiàn)的錯(cuò)誤的測試方案。成功成功的測試則是發(fā)現(xiàn)出至今未發(fā)現(xiàn)的錯(cuò)的測試則是發(fā)現(xiàn)出至今未發(fā)現(xiàn)的錯(cuò)誤的測試。誤的測試。軟件測試的原則軟件測試的原則軟件測試策略與技術(shù)軟件測試策略與技術(shù)單元測試系統(tǒng)測試確認(rèn)測試組裝測試單元測試單元測試被測模塊被測模塊被測模塊已確認(rèn)的軟件已測模塊可交付的軟件系統(tǒng)其它元素

28、軟件需求設(shè)計(jì)信息已集成的軟件軟件測試策略軟件測試策略單元測試:人工測試、上機(jī)測試單元測試:人工測試、上機(jī)測試組裝測試:組裝測試:e漸增式組裝測試:自底向上、自頂向下漸增式組裝測試:自底向上、自頂向下e非漸增式組裝測試非漸增式組裝測試確認(rèn)測試確認(rèn)測試e有效性測試、軟件配置復(fù)查、有效性測試、軟件配置復(fù)查、測試和測試和測測試、驗(yàn)收測試試、驗(yàn)收測試系統(tǒng)測試系統(tǒng)測試 M1 自底向上測試自底向上測試 M2 M5 M4 M3 M6 組裝測試(組裝測試(驅(qū)動模塊驅(qū)動模塊從屬模塊從屬模塊) D3 自底向上測試自底向上測試 D1 M5 D2 M3 M6 自底向上測試自底向上測試 M2 M5 M4 M3 M6 D4

29、 D5 M1 自底向上測試自底向上測試 M2 M5 M4 M3 M6 M1 自頂自頂向下測試向下測試 M2 M5 M4 M3 M6 組裝測試(組裝測試(主控模塊主控模塊調(diào)用模塊調(diào)用模塊樁模塊樁模塊) M1 自頂自頂向下測試向下測試 S1 S3 S2 M1 自頂自頂向下測試向下測試 M2 S4 M4 M3 S5 M1 自頂自頂向下測試向下測試 M2 M5 M4 M3 M6 常用的測試方法常用的測試方法白盒測試白盒測試 ( (結(jié)構(gòu)測試或邏輯功能測試結(jié)構(gòu)測試或邏輯功能測試) )e將程序看作一個(gè)打開的盒子,根據(jù)程序內(nèi)部的邏輯結(jié)構(gòu)及有將程序看作一個(gè)打開的盒子,根據(jù)程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)的信息來設(shè)計(jì)或選

30、擇測試用例關(guān)的信息來設(shè)計(jì)或選擇測試用例e覆蓋程度由底到高:語句覆蓋、判定覆蓋、條件覆蓋、判定覆蓋程度由底到高:語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋條件覆蓋、條件組合覆蓋黑盒測試黑盒測試 (功能測試或數(shù)據(jù)驅(qū)動測試)(功能測試或數(shù)據(jù)驅(qū)動測試)e把程序看作一個(gè)不能打開的盒子,根據(jù)程序的需求規(guī)格說明把程序看作一個(gè)不能打開的盒子,根據(jù)程序的需求規(guī)格說明來設(shè)計(jì)測試用例來設(shè)計(jì)測試用例e方法:等價(jià)分類法、邊緣分析法、因果圖法、錯(cuò)誤推斷法方法:等價(jià)分類法、邊緣分析法、因果圖法、錯(cuò)誤推斷法 軟件人員使用白盒測試方法,主要想對程軟件人員使用白盒測試方法,主要想對程序模塊進(jìn)行如下的檢查序模塊進(jìn)行如下的檢查:e 對程序模塊的對程序模塊的至少測至少測試一次;試一次;e 對對,;e 在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;e 測試測試,等。,等。語句覆蓋語句覆蓋 :針對語

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論