軟件定義-需求分析.ppt_第1頁(yè)
軟件定義-需求分析.ppt_第2頁(yè)
軟件定義-需求分析.ppt_第3頁(yè)
軟件定義-需求分析.ppt_第4頁(yè)
軟件定義-需求分析.ppt_第5頁(yè)
已閱讀5頁(yè),還剩94頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第三章 需要分析,需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問(wèn)題。 需求分析的任務(wù)是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。 可行性研究階段產(chǎn)生的文檔,持別是數(shù)據(jù)流圖,是需求分折的出發(fā)點(diǎn)。 需求分析的結(jié)果是系統(tǒng)開發(fā)的基礎(chǔ),關(guān)系到工程的成敗和軟件產(chǎn)品的質(zhì)量。因此,必須用行之有效的方法對(duì)軟件需求進(jìn)行嚴(yán)格的審查驗(yàn)證。,需求分析的任務(wù) 1、確定對(duì)系統(tǒng)的綜合要求 1)系統(tǒng)功能要求 2)系統(tǒng)性能要求 3)運(yùn)行要求 4)將來(lái)可能提出的要求 2、分析系統(tǒng)的數(shù)據(jù)要求 數(shù)據(jù)結(jié)構(gòu)表示數(shù)據(jù)元素之間的邏輯關(guān)系3、導(dǎo)出系統(tǒng)的邏輯模型 導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型,通常用數(shù)據(jù)流

2、圖、 數(shù)據(jù)字典和主要的處理算法描述這個(gè)邏輯模型。4、修正系統(tǒng)開發(fā)計(jì)劃5、開發(fā)原型系統(tǒng),需求分析的特點(diǎn) 1、問(wèn)題的復(fù)雜性。 2、交流障礙 3、不完備性和不一致性 4、需求易變性 需求分析的原則 1、必須能夠表達(dá)相理解問(wèn)題的數(shù)據(jù)域和功能域。 2、可以把一個(gè)復(fù)雜問(wèn)題按功能進(jìn)行分解并可逐層細(xì)化 3、建模,需求分析的方法,1、功能分解方法 2、結(jié)構(gòu)化分析方法 3、信息建模方法 4、面向?qū)ο蠓治龇椒?需求說(shuō)明書的主要內(nèi)容 (1)前言:說(shuō)明項(xiàng)目的目的、范圍,所用的術(shù)語(yǔ)的定義;用到的縮略語(yǔ)和縮寫詞;資料。 (2)項(xiàng)目概述:產(chǎn)品的描述;產(chǎn)品的功能;用戶的特點(diǎn),一般的約束等。 (3)具體需求:說(shuō)明每個(gè)功能的輸入、

3、處理和輸出;外部接口需求,包括用戶接口、軟件接口、硬件接口相通信接口;性能需求;設(shè)計(jì)約束;共他需求,包括數(shù)據(jù)庫(kù)、操作等,第二節(jié) SA分析過(guò)程,結(jié)構(gòu)化分析方法(簡(jiǎn)稱SA方法)就是面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方法。 1、沿?cái)?shù)據(jù)流圖回溯 2、用戶復(fù)查 3、細(xì)化數(shù)據(jù)流圖 4、修正開發(fā)計(jì)劃 5、書寫文檔 6、審查和復(fù)審,需求分析示例教材購(gòu)銷管理系統(tǒng)(1),問(wèn)題描述:學(xué)校教材科根據(jù)業(yè)務(wù)的需要,建立一個(gè)學(xué)校教材購(gòu)銷管理系統(tǒng),提高教材采購(gòu)、銷售和信息管理的效率。,學(xué)生,張秘書,購(gòu)書申請(qǐng),王會(huì)計(jì),李出納,趙保管,學(xué)生,購(gòu)書證明,購(gòu)書申請(qǐng),購(gòu)書申請(qǐng),書,學(xué)生,審 查有效性,購(gòu)書單,開發(fā)票,開領(lǐng)書單,發(fā)

4、書,學(xué)生,有 效購(gòu)書單,發(fā)票,領(lǐng)書單,書,學(xué)生,審查并開發(fā)票,購(gòu)書單,開領(lǐng)書單,發(fā)書,學(xué)生,發(fā)票,領(lǐng)書單,書,2)去掉具體模型中的非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型,1)通過(guò)對(duì)現(xiàn)實(shí)環(huán)境的調(diào)查研究,獲得當(dāng)前系統(tǒng)的具體模型,3)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型。,需求分析示例教材購(gòu)銷管理系統(tǒng)(2),學(xué)生,審查并開發(fā)票,購(gòu)書單,開領(lǐng)書單,學(xué)生,發(fā)票,領(lǐng)書單,無(wú)效書單,4)對(duì)目標(biāo)系統(tǒng)進(jìn)行補(bǔ)充和完善,并寫出完整的需求說(shuō)明。,學(xué)生,1 審查并開發(fā)票,購(gòu)書單,2 開領(lǐng)書單,學(xué)生,發(fā)票,領(lǐng)書單,無(wú)效書單,各班學(xué)生用書表,教材存量表,5)對(duì)需求說(shuō)明進(jìn)行復(fù)審,直到確認(rèn)文檔齊全,并且符合用戶的

5、全部需求為止,需求分析示例教材購(gòu)銷管理系統(tǒng)(3),學(xué)生,教材購(gòu)銷管理系統(tǒng),書 庫(kù)保管員,1. 教材購(gòu)銷管理系統(tǒng)的頂層DFD,學(xué)生,書 庫(kù) 保管員,2. 第二層DFD圖教材購(gòu)銷系統(tǒng),購(gòu)書單,領(lǐng)書單,缺書單,進(jìn)書通知,購(gòu)書單,領(lǐng)書單,1 銷 售,2 采購(gòu),進(jìn)書通知,F2: 缺書登記表,F1: 教材存量表,缺書單,進(jìn)書通知,需求分析示例教材購(gòu)銷管理系統(tǒng)(4),1.1 審 查有效性,1.2 開發(fā)票,有效 購(gòu)書單,1.3 領(lǐng)書并 開領(lǐng)書單,發(fā)票,1.4 登記缺書,1.5 補(bǔ)售教材,F2: 缺書登記表,學(xué)生,學(xué)生,無(wú)效書單,領(lǐng)書單,領(lǐng)書單,F3: 各班學(xué)生用書表,F4: 售書登記表,補(bǔ)售書單,暫缺書單,采

6、購(gòu),3. 第三層DFD圖銷售子系統(tǒng),F1: 教材存量表,需求分析示例教材購(gòu)銷管理系統(tǒng)(5),2.3 修改教材庫(kù)存和待購(gòu)量,2.1 按 書 號(hào) 匯總?cè)睍?F2: 缺書登記表,銷售 子系統(tǒng),書庫(kù) 保管員,F1: 教材存量表,進(jìn)書通知,3. 第三層DFD圖采購(gòu)子系統(tǒng),2.2 按出版社 統(tǒng)計(jì)缺書,F5: 待購(gòu)教材表,F6: 教材一覽表,進(jìn)書通知,需求分析示例教材購(gòu)銷管理系統(tǒng)(6),數(shù)據(jù)字典(Data Directory-DD) 領(lǐng)書單 = 學(xué)院+專業(yè)+班級(jí)+學(xué)號(hào)+姓名+書號(hào)+書名+數(shù)量+日期 有效購(gòu)書單 = 領(lǐng)書單 發(fā)票= 學(xué)號(hào)+姓名+書號(hào)+書名+單價(jià)+數(shù)量+總價(jià)+書費(fèi)合計(jì) 教材存量表 = 書號(hào)+單價(jià)

7、+數(shù)量 暫缺書單 = 學(xué)號(hào)+姓名+ 書號(hào)+數(shù)量 補(bǔ)售書單 = 學(xué)號(hào)+姓名+ 書號(hào)+數(shù)量,第三節(jié) 概念模型和規(guī)范化,用戶的數(shù)據(jù)要求-需要哪些數(shù)據(jù),數(shù)據(jù)之間有哪些聯(lián)系,數(shù)據(jù)本身有哪些性質(zhì),數(shù)據(jù)的結(jié)構(gòu) 等)。 用戶的處理要求-對(duì)數(shù)據(jù)進(jìn)行哪些處理,每個(gè)處理的邏輯功能。 概念性模型(信息模型)-一種面向問(wèn)題的數(shù)據(jù)模型,是按照用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模。表示概念性數(shù)據(jù)模型的最常用方法是實(shí)體-聯(lián)系方法,采用用 ER圖的方式,這種表示又稱為ER模型。,ER模型,實(shí)體: 客觀世界中存在的且可區(qū)分的事物。 聯(lián)系: 客觀事物之間的聯(lián)系(三類-1:1,1:N,M:N) 屬性: 實(shí)體或聯(lián)系所具有的性質(zhì)。,范式,通常用

8、范式定義消除數(shù)據(jù)的冗余度(略),ER關(guān)系圖與數(shù)據(jù)庫(kù)映射關(guān)系描述,關(guān)系數(shù)據(jù)庫(kù),數(shù)據(jù)以2維表的形式進(jìn)行表示,每個(gè)表的列表示字段、行表示數(shù)據(jù)庫(kù)表的一個(gè)記錄 Primary key(主鍵): 字段的唯一標(biāo)識(shí) Foreign key(外鍵): 其它表的主鍵在該表的參考 SQL(結(jié)構(gòu)化查詢語(yǔ)言):可以進(jìn)行數(shù)據(jù)庫(kù)表記錄的操作.,ER 與數(shù)據(jù)庫(kù)映射,E-R模型映射為數(shù)據(jù)庫(kù)表: 屬性的映射 每個(gè)實(shí)體映射為一個(gè)表 實(shí)體的每個(gè)屬性映射為一個(gè)字段 每個(gè)實(shí)體的個(gè)體映射為數(shù)據(jù)庫(kù)的一個(gè)記錄 N:M關(guān)系映射為一個(gè)單獨(dú)的表 1:N關(guān)系利用外鍵進(jìn)行映射,例子: ER 關(guān)系模型與數(shù)據(jù)庫(kù)表的映射 I,City cityName,Ai

9、rport airportCode airportName,*,*,Serves,cityName Houston Albany Munich Hamburg,City Table,cityName Houston Houston Albany Munich Hamburg,Serves Table,airportCode IAH HOU ALB MUC HAM,Airport Table,airportCode IAH HOU ALB MUC HAM,airportName Intercontinental Hobby Albany County Munich Airport Hamburg

10、 Airport,Primary Key,N:M(多對(duì)多關(guān)系):將關(guān)系映射為單個(gè)表,Separate Table,例子: ER 關(guān)系模型與數(shù)據(jù)庫(kù)表的映射 II,會(huì)議 transactionID,職員 portfolioID .,N,portfolioID .,Portfolio Table,transactionID,Transaction Table,portfolioID,Foreign Key,1:N 或N:1關(guān)系 : 隱藏外鍵的處理,1,例子: ER 關(guān)系模型與數(shù)據(jù)庫(kù)表的映射 ,door doorID,sky skyID .,*,doorID,Transaction Table,doo

11、rID,1-To-1 關(guān)系,門與鑰匙關(guān)系,習(xí)題,第四節(jié). 圖形工具,層次方框圖: 用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。,產(chǎn) 品,硬 件,軟 件,服 務(wù),處理機(jī),存儲(chǔ)器,外部設(shè)備,系統(tǒng)軟件,應(yīng)用軟件,軟件服務(wù),硬件維修,培訓(xùn),操作系統(tǒng),編譯程序,軟件工具,層次方框圖的一個(gè)例子,注意:層次方框圖即可以表示數(shù)據(jù)的層次結(jié)構(gòu),也可以表示程序的層次結(jié)構(gòu),4. 圖形工具(續(xù)),Warnier 圖: 用樹形結(jié)構(gòu)描繪數(shù)據(jù)的層次結(jié)構(gòu)。,軟件 產(chǎn)品,系統(tǒng)軟件,操作系統(tǒng)(P1),編譯程序 (P2),軟件工具,編輯程序(P3),測(cè)試驅(qū)動(dòng)程序(P4),設(shè)計(jì)輔助程序(P5),應(yīng)用軟件,4. 圖形工具(續(xù)),

12、IPO 圖: 輸入/處理/輸出圖的簡(jiǎn)稱-IBM。,舊的主文件,事務(wù)文件,1、校驗(yàn)主記錄,2、校驗(yàn)事務(wù)記錄,3、更新主記錄,1、校驗(yàn)主記錄,2、有效的事務(wù)記錄,3、更新后的主文件,改進(jìn)的IPO圖的形式(P47),5. 驗(yàn)證軟件需求,從哪幾個(gè)方面驗(yàn)證軟件需求的正確性(四個(gè)方面),一致性: 任何一條需求不能和其他需求互相矛盾。 完整性: 規(guī)格說(shuō)明書應(yīng)該包括用戶需要的每一個(gè)功能和性能。 現(xiàn)實(shí)性: 指定的需求是用現(xiàn)有的硬件、軟件技術(shù)可以實(shí)現(xiàn)的。 有效性: 需求是正確有效的,確實(shí)能解決用戶面對(duì)的問(wèn)題。,驗(yàn)證軟件需求的方法,一致性:人工審查-形式化描述軟件需求,軟件工具自動(dòng)驗(yàn)證。 現(xiàn)實(shí)性: 參考以往的開發(fā)經(jīng)

13、驗(yàn),分析,仿真或模擬 完整性和一致性:原型系統(tǒng),第四章 總體設(shè)計(jì),總體設(shè)計(jì)的基本目的就是回答“概括地說(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”這個(gè)問(wèn)題。 總體設(shè)計(jì)又稱為概要設(shè)計(jì)或初步設(shè)計(jì),其任務(wù): (1)劃分出組成系統(tǒng)的物理元素-程序、文件、數(shù)據(jù)庫(kù)、人工過(guò)程和文檔 通過(guò)這個(gè)階段的工作將劃分出組成系統(tǒng)的物理元素程序、文件、數(shù)據(jù)庫(kù)、人工過(guò)程和文檔等等,但是每個(gè)物理元素仍然處于黑盒子級(jí),這些黑盒子里的具體內(nèi)容將在以后仔細(xì)設(shè)計(jì)。 (2)總體設(shè)計(jì)階段的另一項(xiàng)重要任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個(gè)程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。,1 總體設(shè)計(jì)的過(guò)程(兩個(gè)主要階段):,系統(tǒng)設(shè)計(jì):確定系統(tǒng)的具體實(shí)現(xiàn)

14、方案。 結(jié)構(gòu)設(shè)計(jì):確定軟件結(jié)構(gòu)。,設(shè)想供選擇的方案,選 取 合理的方案,推薦最佳方案,功能分解,設(shè)計(jì)軟件結(jié)構(gòu),數(shù)據(jù)庫(kù)設(shè) 計(jì),制訂測(cè)試計(jì)劃,書寫文檔,數(shù)據(jù)流圖,系統(tǒng)流程圖 組成系統(tǒng)的物理元素清單 成本/效益分析 實(shí)現(xiàn)系統(tǒng)的進(jìn)度計(jì)劃,系統(tǒng)說(shuō)明 用戶手冊(cè) 測(cè)試計(jì)劃 詳細(xì)的實(shí)現(xiàn)計(jì)劃 數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)果,審查和復(fù) 審,2 軟件設(shè)計(jì)的概念和原理,模塊是數(shù)據(jù)說(shuō)明、可執(zhí)行語(yǔ)句等程序?qū)ο蟮恼f(shuō)明。,(1)模塊化:把程序劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集總起來(lái)組成一個(gè)整體,可以完成指定的功能,滿足問(wèn)題的功能。,C(P1+P2) C(P1)+C(P2) E(P1+P2) E(P1)+E(P2),成本,

15、模塊數(shù)目,成本/模塊,接口成本,最小成本區(qū),(2)抽象 (3)信息隱蔽和局部化 信息隱蔽原理指出:使得一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。 所謂局部化是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。,模塊化和軟件成本,耦合:一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量,耦合強(qiáng)弱取決于模塊間接口的復(fù)雜程度,進(jìn)入或訪問(wèn)一個(gè)模塊的點(diǎn),以及通過(guò)接口的數(shù)據(jù)。 數(shù)據(jù)耦合:模塊之間通過(guò)參數(shù)交換數(shù)據(jù)信息。 控制耦合:模塊之間傳遞的參數(shù)含有控制信息。 公共環(huán)境耦合:兩個(gè)或多個(gè)模塊通過(guò)一個(gè)公共數(shù)據(jù)環(huán)境相互作用。 內(nèi)容耦合:如果出現(xiàn)下列情況之一,兩個(gè)模塊間就發(fā)生了內(nèi)容耦(1)一

16、個(gè)模塊訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù);2)一個(gè)模塊不通過(guò)正常入口而轉(zhuǎn)到另一個(gè)模塊的內(nèi)部;3)兩個(gè)模塊有一部分程序代碼重疊4)一個(gè)模塊有多個(gè)入口。,設(shè)計(jì)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合,完全不用內(nèi)容耦合。,數(shù)據(jù)耦合,控制耦合,公共環(huán)境耦合,內(nèi)容耦合,低,高,(4)模塊獨(dú)立-每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的子功能, 并且和其他模塊之間的關(guān)系很簡(jiǎn)單。 模塊獨(dú)立的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果,獨(dú)立的優(yōu)點(diǎn):(1)有效的模塊化的軟件比較容易開發(fā) (2)獨(dú)立的模塊比較容易測(cè)試和維護(hù) 模塊的獨(dú)立程度兩個(gè)定性標(biāo)準(zhǔn)度量:內(nèi)聚和耦合 耦合衡量不同模塊彼此間互相依賴的緊密程度; 內(nèi)聚衡

17、量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。,2 軟件設(shè)計(jì)的概念和原理 - 耦合,非直接耦合 數(shù)據(jù)耦合 特征耦合 控制耦合 外部耦合 公共耦合 內(nèi)容耦合,弱耦合,中耦合,較強(qiáng)耦合,強(qiáng)耦合,模塊1,模塊2,模塊3,模塊4,數(shù)據(jù)耦合 通過(guò)簡(jiǎn)單變量交換數(shù)據(jù),特征耦合 通過(guò)數(shù)據(jù)結(jié)構(gòu)交換數(shù)據(jù),非直接耦合 模塊之間沒(méi)有信息傳遞,模塊A,模塊B,模塊C,模塊D,模塊L,模塊N,全局性數(shù)據(jù)結(jié)構(gòu) 公共耦合,Flag=1?,S1,S2,模塊1,控制耦合 模塊之間傳遞的是控制信息,T,F,全 局 性簡(jiǎn)單變量 外部耦合,模塊A,模塊B,內(nèi)容耦合 訪問(wèn)其它模塊的內(nèi)部數(shù)據(jù) 直接跳到其他模塊內(nèi)部執(zhí)行,2 軟件設(shè)計(jì)的概念和原理

18、(續(xù)1),內(nèi)聚:一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度。 偶然內(nèi)聚:一個(gè)模塊完成一組任務(wù),任務(wù)之間的關(guān)系很松散。公共語(yǔ)句。 邏輯內(nèi)聚:若干個(gè)邏輯功能類似的任務(wù)組成一個(gè)模塊。(如模板函數(shù)) 時(shí)間內(nèi)聚:若干個(gè)任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行。如初始化工作。,低內(nèi)聚,中內(nèi)聚,高內(nèi)聚,過(guò)程內(nèi)聚:模塊內(nèi)的處理元素是相關(guān)的,且必須以特定次序執(zhí)行。 通信內(nèi)聚:模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù),和/或產(chǎn)生同一個(gè) 輸出數(shù)據(jù)。,順序內(nèi)聚:模塊中所有處理元素和同一個(gè)功能密切相關(guān),且這些處理必 須順序執(zhí)行。 功能內(nèi)聚:所有處理元素屬于一個(gè)整體,完成一個(gè)單一的功能。,模塊A,模塊B,模塊C,S1; S2;,模塊A,模塊B,模

19、塊C,模塊A,模塊B,模塊C,模塊D,2 軟件設(shè)計(jì)的概念和原理(續(xù)2),改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性 模塊規(guī)模應(yīng)該適中 深度、寬度、扇入、扇出都應(yīng)適當(dāng) 扇入:一個(gè)模塊的扇人表明有多少個(gè)上級(jí)模塊直接調(diào)用它,扇入越大則共享該模塊的上級(jí)模塊數(shù)目越多。 扇出:扇出是一個(gè)模塊直接控制(調(diào)用)的模塊數(shù)目,扇出過(guò)大意味著模塊過(guò)分復(fù)雜,需要控制和協(xié)調(diào)過(guò)多的下級(jí)模塊。 模塊的作用域應(yīng)該在控制域之內(nèi) 模塊的作用域:為受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合。 模塊的控制域:這個(gè)模塊本身以及所有直接或間接從屬于它的模塊的集合。 力爭(zhēng)降低模塊接口的復(fù)雜程度 設(shè)計(jì)單入口單出口的模塊 模塊的功能應(yīng)該可以預(yù)測(cè),3 啟發(fā)式規(guī)則,

20、4 圖形工具,層次圖和HIPO圖 層次圖用來(lái)描述軟件結(jié)構(gòu),層次圖+IPO圖= HIPO圖,正文加工系統(tǒng),輸入,輸出,編輯,加標(biāo)題,存儲(chǔ),檢索,編目錄,格式化,添加,刪除,插入,修改,合并,列表,結(jié)構(gòu)圖 方框之間的箭頭表示模塊的調(diào)用關(guān)系,帶注釋的箭頭表示模塊間來(lái)回傳遞的信息:空心圓數(shù)據(jù),實(shí)心圓控制信息。,結(jié)構(gòu)圖還可以表示模塊的選擇調(diào)用或循環(huán)調(diào)用 參見:P64,5 面向數(shù)據(jù)流的設(shè)計(jì)方法,1) 變換流 2) 事務(wù)流 3) 設(shè)計(jì)過(guò)程,時(shí)間,輸入流,輸出流,變換流,外部表示,內(nèi)部表示,信息,變換流: 信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過(guò)變換中心,經(jīng)加工處理以后再沿輸出

21、通路變換成外部形式離開軟件系統(tǒng)。當(dāng)數(shù)據(jù)流圖具有這些持征時(shí),這種信息流就叫作變換流。,這種數(shù)據(jù)流是“以事務(wù)為中心的”也就是說(shuō),數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理T,這個(gè)處理根據(jù)輸入數(shù)據(jù)的類型在若干個(gè)動(dòng)作序列中選出一個(gè)來(lái)執(zhí)行。這類數(shù)據(jù)流應(yīng)該劃為一類特殊的數(shù)據(jù)流,稱為事務(wù)流。,事務(wù),T,事務(wù)中心,活動(dòng)通路,事務(wù)中心 T 完成下述任務(wù): 接受輸入數(shù)據(jù)(事務(wù)) 分析每個(gè)事務(wù)以確定它的類型 根據(jù)事務(wù)類型選取一條活動(dòng)通路,變換流與事務(wù)流三要素,變換流三要素 輸入、輸出、變換中心 事務(wù)流三要素 事務(wù)、事務(wù)中心、活動(dòng)通路,5 面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù)),精化數(shù)據(jù)流圖,流類型,區(qū)分事務(wù)中心和數(shù)據(jù)接收通路,映射成事務(wù)結(jié)構(gòu),

22、區(qū)分輸入和輸出分支,映射成變換結(jié)構(gòu),用啟發(fā)式設(shè)計(jì)規(guī)則精化軟件結(jié)構(gòu),導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu),復(fù)查,詳細(xì)設(shè)計(jì),事務(wù)分析,變換分析,5 面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù)),變換分析: 汽車數(shù)字儀表板功能: 1) 通過(guò)A/D 轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理器接口, 2) 在發(fā)光二極管面板上顯示數(shù)據(jù), 3) 指示每小時(shí)英里數(shù)(mph),行駛的里程,每加倫油行駛的英里數(shù)(mpg)等等。 4) 指示加速或減速; 5) 超速警告:如果車速超過(guò)55英里/小時(shí),則發(fā)出超速警告鈴聲。,A/D,轉(zhuǎn)數(shù)計(jì)數(shù)器,流量傳感器,微處理機(jī),里程表,車速表,油效表,油管系統(tǒng),加速/減速指示,超速報(bào)警,5 面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù)),讀旋轉(zhuǎn)信號(hào)

23、,收集和求平均,轉(zhuǎn)換成轉(zhuǎn)/分( rpm),計(jì)算里程,確定加速 / 減速,產(chǎn)生加速/減速顯示,產(chǎn)生里程顯示,計(jì)算mph和超速值,計(jì)算燃料消耗,發(fā)出鈴聲,產(chǎn)生mph顯示,產(chǎn)生 mpg顯示,讀和校核,計(jì)算gph,旋轉(zhuǎn)信號(hào),信號(hào)/秒 SPS,SPS,SPS,rpm,rpm,箭頭指示,上箭頭,水平線,下箭頭,英里,超速值,顯示,鈴聲,mph,mph,mpg,gph,燃料流,燃料流傳感器信號(hào),Mpg 顯示,數(shù)字儀表板 控 制,接受傳感器 信 號(hào),數(shù)據(jù)轉(zhuǎn)換控制,驅(qū)動(dòng)儀表 板,輸入控制,變換控制,輸入控制,5 面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù)),設(shè)計(jì)步驟:,復(fù)查基本系統(tǒng)模型,復(fù)查并精化數(shù)據(jù)流圖,確定數(shù)據(jù)流圖具有變換特

24、性還是事務(wù)特性,確定輸入流和輸出流的邊界,劃分變換或事務(wù)中心,完成 “第一級(jí)分解”,Cm,Ca,Ct,Ce,第一級(jí)分解的方法,5 面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù)),A,D,B,C,Cm,Ca,C,B,D,A,接受傳感器 信 號(hào),轉(zhuǎn)換成rpm,收集SPS,讀旋轉(zhuǎn)信號(hào),計(jì)算gph,讀燃料流,數(shù)字儀表板 控 制,確 定加/減速,計(jì)算mph,計(jì)算gpg,計(jì)算里程,驅(qū)動(dòng)儀表板,加速/減速顯示,顯示mpg,顯示mph,顯示里程,發(fā)出鈴聲,發(fā)光二極管顯示,5 面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù)),數(shù)字儀表板 控 制,接受傳感器 信 號(hào),轉(zhuǎn)換成rpm,讀旋轉(zhuǎn)信號(hào),計(jì)算gph,讀燃料流,數(shù)字儀表板 控 制,確 定加/減速,計(jì)算

25、mph,計(jì)算gpg,計(jì)算里程,驅(qū)動(dòng)儀表板,加速/減速顯示,顯示mpg,顯示mph,顯示里程,發(fā)出鈴聲,發(fā)光二極管顯示,數(shù)字儀表板軟件系統(tǒng)經(jīng)過(guò)調(diào)整后的結(jié)構(gòu)圖,注意:紅色模塊的位置有所調(diào)整,5 面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù)),事務(wù)分析,4,3,2,總 控,接收通路,C通路,B通路,A通路,調(diào) 度,A_CTL,1,4,2+1,3,2,1,B_CTL,C_CTL,設(shè)計(jì)優(yōu)化 設(shè)計(jì)優(yōu)化應(yīng)該力求做到在有效的模塊化的前提 下使用最少量的模塊,以及在能夠滿足信息要求 的前提下使用最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)。 ,數(shù)據(jù)流圖,軟件結(jié)構(gòu),總體設(shè)計(jì)說(shuō)明書的主要內(nèi)容如下:,(1)引言:編寫目的,背景,定義,參考資料。 (2)總體設(shè)計(jì):需

26、求規(guī)定,運(yùn)行環(huán)境,基本設(shè)計(jì)概念和處理流程,結(jié)構(gòu)。 (3)接口設(shè)計(jì):用戶接口,外部接口,內(nèi)部接口。 (4)運(yùn)行設(shè)計(jì):運(yùn)行模塊組合運(yùn)行控制,運(yùn)行時(shí)間。 (5)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):邏輯結(jié)構(gòu)設(shè)計(jì),物理結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系, (6)系統(tǒng)出錯(cuò)處理設(shè)計(jì):出錯(cuò)信息,補(bǔ)救措施系統(tǒng)恢復(fù)設(shè)計(jì)。,第五章 詳細(xì)設(shè)計(jì),詳細(xì)設(shè)計(jì):過(guò)程設(shè)計(jì) 設(shè)計(jì)方法:結(jié)構(gòu)程序設(shè)計(jì) 結(jié)構(gòu)序設(shè)計(jì):一種程序設(shè)計(jì)技術(shù),它采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu) 詳細(xì)設(shè)計(jì)階段的目標(biāo): 確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng)。 精確地描述整個(gè)目標(biāo)系統(tǒng),從而在編碼階段可以把這個(gè)描述翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。,詳細(xì)設(shè)計(jì)的基本任務(wù)

27、,1算法設(shè)計(jì) 用某種圖形、表格、語(yǔ)言等工具將每個(gè)模塊處理過(guò)程的詳細(xì)算法描述出來(lái)2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 對(duì)于需求分析、概要設(shè)計(jì)確定的概念性的數(shù)據(jù)類型進(jìn)行確切的定義。 3物理設(shè)計(jì) 對(duì)數(shù)據(jù)庫(kù)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫(kù)的存儲(chǔ)記錄格式、存儲(chǔ)記錄安排和存儲(chǔ)方法,這些都依賴于具體所使用的數(shù)據(jù)庫(kù)系統(tǒng)。 4其他設(shè)計(jì) 根據(jù)軟件系統(tǒng)的類型,還可能要進(jìn)行以下設(shè)計(jì): (1)代碼設(shè)計(jì);為了提高數(shù)據(jù)的輸入、分類、存儲(chǔ)及檢索等操作的效率空間,對(duì)數(shù)據(jù)庫(kù)中的某些數(shù)據(jù)項(xiàng)的值要進(jìn)行代碼設(shè)計(jì)。(2)輸入輸出格式設(shè)計(jì)。(3)人機(jī)對(duì)話設(shè)計(jì):對(duì)于一個(gè)實(shí)時(shí)系統(tǒng),用戶與計(jì)算機(jī)顛蟹對(duì)話,因此要進(jìn)行對(duì)話方式、內(nèi)容及格式的具體

28、設(shè)計(jì)。 5編寫詳細(xì)設(shè)計(jì)說(shuō)明書 詳細(xì)設(shè)計(jì)說(shuō)明書有下列的主要內(nèi)容: (1)引言:包括編寫目的、背景、定義 (2)程序系統(tǒng)的組織結(jié)構(gòu)。(3)程序l(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明:(4)程序2(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明。(5)程序N(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明 6評(píng)審,結(jié)構(gòu)程序設(shè)計(jì),順序、選擇、循環(huán)三種基本結(jié)構(gòu),B,exp,A,A,B,exp,A,A,exp,T,F,T,T,F,F,順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),1)“While”型循環(huán),2)Do .Until 型循環(huán),結(jié)構(gòu)程序設(shè)計(jì)技術(shù)好處:,(1)自頂向下逐步求精的方法符合人類解決復(fù)雜問(wèn)題的普遍規(guī)律。 (2) 先全局后局部、先整體后細(xì)節(jié)、先抽象后具體的逐步求精過(guò)程開發(fā)出的程序有清

29、晰的層次結(jié)構(gòu),容易閱讀和理解。 (3)不使用Go To語(yǔ)句僅使用單入口單出口的控制結(jié)構(gòu)使得程序的靜態(tài)結(jié)構(gòu)和它的動(dòng)態(tài)執(zhí)行情況比較一致。 (4)控制結(jié)構(gòu)有確定的邏輯模式,編寫程序代碼只限于使用很少幾種直截了當(dāng)?shù)姆绞?,因此源程序清晰流暢,易讀易懂而且容易測(cè)試。 (5)程序清晰和模塊化使得在修改和重新設(shè)計(jì)一個(gè)軟件時(shí)可以重用的代碼量最大。 (6)程序的邏輯結(jié)構(gòu)清晰,有利于程序正確性證明。,習(xí)題,1. For(int i=0;in;i+) A 2. while(i100) A 3. Do A While( i100),非結(jié)構(gòu)化程序轉(zhuǎn)換,方法: 1、設(shè)置標(biāo)志位 2、變換結(jié)構(gòu),1 結(jié)構(gòu)程序設(shè)計(jì),經(jīng)典的結(jié)構(gòu)程序

30、設(shè)計(jì):順序,選擇,當(dāng)型循環(huán) 擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):順序,選擇+多分支,當(dāng)型循環(huán)+直到型循環(huán) 修正的結(jié)構(gòu)程序設(shè)計(jì):順序,選擇+多分支,當(dāng)型循環(huán)+直到型循環(huán),break結(jié)構(gòu),詳細(xì)設(shè)計(jì)的工具 程序流程圖,開始或停止,準(zhǔn)備,選擇,多分支選擇,注釋,預(yù)先定義的處理,子程序,循環(huán)下界,循環(huán)上界,處理,控制流,2 詳細(xì)設(shè)計(jì)的工具-盒圖(N_S圖),S1,S2,S3,條件,F,T,Else 部分,Then 部分,Case 條件,值1,值2,。,值n,Case 1 部分,Case 2 部分,Case n 部分,循環(huán)條件,Do-While 部分,循環(huán)條件,Do-Until 部分,A,特點(diǎn):1)功能域(既一個(gè)特定控制

31、結(jié)構(gòu)的作用域)明確 2)不可能任意轉(zhuǎn)移控制 3)很容易確定局部和全程數(shù)據(jù)的作用域 4)很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu),Nassi 假定 int 類型為16位整數(shù)。 需要測(cè)試216* 216* 216次。 每次1ms, 約要1萬(wàn)年,循環(huán)20次,各種組合,約520種,例二:白盒測(cè)試,7.1 基本概念(1),軟件測(cè)試的步驟:,模塊測(cè)試,子系統(tǒng)測(cè)試,系統(tǒng)測(cè)試,平行運(yùn)行,目的:保證每個(gè)模塊作為一個(gè)單元能夠正確運(yùn)行,又稱為單元測(cè)試,集成測(cè)試、組裝測(cè)試、聯(lián)合測(cè)試; 重點(diǎn)在于測(cè)試模塊之間的接口;,將經(jīng)過(guò)測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來(lái)測(cè)試; 發(fā)現(xiàn)設(shè)計(jì)和編碼的錯(cuò)誤,驗(yàn)證系統(tǒng)是否滿足需求說(shuō)明所定義

32、的功能及其動(dòng)態(tài)特性; 也稱為集成測(cè)試。,同時(shí)運(yùn)行新舊兩個(gè)系統(tǒng),并且對(duì)處理的結(jié)果進(jìn)行比較,以確定新系統(tǒng)是否滿足相關(guān)性能指標(biāo)。,驗(yàn)收測(cè)試,有用戶參加的系統(tǒng)測(cè)試; 驗(yàn)證是否滿足用戶的需要。,7.1 基本概念(2),測(cè)試階段的信息流:,測(cè)試,軟件配置,測(cè)試配置,測(cè)試結(jié)果,預(yù)期結(jié)果,評(píng)價(jià),錯(cuò)誤,錯(cuò)誤率數(shù)據(jù),調(diào)試,可靠性模型,正確,可靠性預(yù)測(cè),測(cè)試與軟件開發(fā)各個(gè)階段的關(guān)系 軟件開發(fā)過(guò)程是一個(gè)自頂向下,逐步細(xì)化的過(guò)程 軟件計(jì)劃階段定義軟件作用域 軟件需求分析建立軟件信息域、功能和性能需求、約束等 軟件設(shè)計(jì) 把設(shè)計(jì)用某種程序設(shè)計(jì)語(yǔ)言轉(zhuǎn)換成程序代碼 測(cè)試過(guò)程是依相反順序安排的自底向上,逐步集成的過(guò)程。,包括需求

33、說(shuō)明書、設(shè)計(jì)說(shuō)明書、源程序清單等,包括測(cè)試計(jì)劃和測(cè)試方案,7.1 基本概念(3),測(cè)試與軟件開發(fā)各個(gè)階段的關(guān)系 (示意圖),7.2 單元測(cè)試(1),單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位 程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。 單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。,1. 單元測(cè)試的內(nèi)容,在單元測(cè)試時(shí),測(cè)試者需要依據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書和源程序清單,了解該模塊的I/O條件和模塊的邏輯結(jié)構(gòu),主要采用白盒測(cè)試的測(cè)試用例,輔之以黑盒測(cè)試的測(cè)試用例,使之對(duì)任何合理的輸入和不合理的輸入,都能鑒別和響應(yīng)。,(1) 模塊

34、接口測(cè)試,在單元測(cè)試的開始,應(yīng)對(duì)通過(guò)被測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)試。測(cè)試項(xiàng)目包括: 調(diào)用本模塊的輸入?yún)?shù)是否正確; 本模塊調(diào)用子模塊時(shí)輸入給子模塊的參數(shù)是否正確; 全局量的定義在各模塊中是否一致;,模塊接口 局部數(shù)據(jù)結(jié)構(gòu) 重要的執(zhí)行通路 出錯(cuò)處理通路 影響上述各方面特性 的邊界條件,7.2 單元測(cè)試(2),在做內(nèi)外存交換時(shí)要考慮: 文件屬性是否正確; OPEN與CLOSE語(yǔ)句是否正確; 緩沖區(qū)容量與記錄長(zhǎng)度是否匹配; 在進(jìn)行讀寫操作之前是否打開了文件; 在結(jié)束文件處理時(shí)是否關(guān)閉了文件; 正文書寫輸入錯(cuò)誤, IO錯(cuò)誤是否檢查并做了處理。,(2) 局部數(shù)據(jù)結(jié)構(gòu)測(cè)試 不正確或不一致的數(shù)據(jù)類型說(shuō)明 使用尚未

35、賦值或尚未初始化的變量 錯(cuò)誤的初始值或錯(cuò)誤的缺省值 變量名拼寫錯(cuò)或書寫錯(cuò) 不一致的數(shù)據(jù)類型 全局?jǐn)?shù)據(jù)對(duì)模塊的影響,(3) 路徑測(cè)試 選擇適當(dāng)?shù)臏y(cè)試用例,對(duì)模塊中重要的執(zhí)行路徑進(jìn)行測(cè)試。 應(yīng)當(dāng)設(shè)計(jì)測(cè)試用例查找由于錯(cuò)誤的計(jì)算、不正確的比較或不正常的控制流而導(dǎo)致的錯(cuò)誤。 對(duì)基本執(zhí)行路徑和循環(huán)進(jìn)行測(cè)試可以發(fā)現(xiàn)大量的路徑錯(cuò)誤.,(4) 錯(cuò)誤處理測(cè)試 出錯(cuò)的描述是否難以理解 出錯(cuò)的描述是否能夠?qū)﹀e(cuò)誤定位 顯示的錯(cuò)誤與實(shí)際的錯(cuò)誤是否相符 對(duì)錯(cuò)誤條件的處理正確與否 在對(duì)錯(cuò)誤進(jìn)行處理之前,錯(cuò)誤條件 是否已經(jīng)引起系統(tǒng)的干預(yù)等,7.2 單元測(cè)試(3),(5) 邊界測(cè)試 注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的

36、比較值時(shí)出錯(cuò)的可能性。對(duì)這些地方要仔細(xì)地選擇測(cè)試用例,認(rèn)真加以測(cè)試。 如果對(duì)模塊運(yùn)行時(shí)間有要求的話,還要專門進(jìn)行關(guān)鍵路徑測(cè)試,以確定最壞情況下和平均意義下影響模塊運(yùn)行時(shí)間的因素,2. 單元測(cè)試的步驟,代碼審查:組長(zhǎng)+程序設(shè)計(jì)、編寫、測(cè)試者 模塊并不是一個(gè)獨(dú)立的程序,在考慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,用一些輔助模塊去模擬與被測(cè)模塊相聯(lián)系的其它模塊。 驅(qū)動(dòng)模塊 (driver) :調(diào)用測(cè)試單元的“主程序”,它接受測(cè)試數(shù)據(jù),把這些數(shù)據(jù)傳送給被測(cè)試的模塊并打印有關(guān)結(jié)果。 樁模塊 (stub) 存根模塊:是被測(cè)試模塊單元所調(diào)用模塊的代替模塊,在模塊調(diào)用接口、相關(guān)數(shù)據(jù)處理、控制返回等方面對(duì)被代替

37、模塊進(jìn)行“模擬”。,驅(qū)動(dòng)模塊,被測(cè)模塊,樁模塊,樁模塊,樁模塊,測(cè)試用例,測(cè)試結(jié)果,單元測(cè)試的測(cè)試環(huán)境,7.3 集成測(cè)試(1),集成測(cè)試是組裝軟件的系統(tǒng)技術(shù);組裝測(cè)試 、聯(lián)合測(cè)試 通常,在單元測(cè)試的基礎(chǔ)上,需要將所有模塊按照設(shè)計(jì)要求組裝成為系統(tǒng)。這時(shí)需 要考慮的問(wèn)題是: 在把各個(gè)模塊連接起來(lái)的時(shí)侯,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失; 一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響; 各個(gè)子功能組合起來(lái),能否達(dá)到預(yù)期要求的父功能; 全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問(wèn)題; 單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度。,在單元測(cè)試的同時(shí)可進(jìn)行組裝測(cè)試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問(wèn)題,最終構(gòu)

38、成要求的軟件系統(tǒng)。,子系統(tǒng)的組裝測(cè)試特別稱為部件測(cè)試,它所做的工作是要找出組裝后的子系統(tǒng)與系統(tǒng)需求規(guī)格說(shuō)明之間的不一致。 通常,把模塊組裝成為系統(tǒng)的方式有兩種 一次性組裝方式:又稱為非漸增式測(cè)試; 增殖式組裝方式:其中又分為自頂向下、自底向上和兩種方法混合測(cè)試 方式。,7.3 集成測(cè)試(2),1.一次性組裝方式(big bang),它是一種非增殖式組裝方式。也叫做整體拼裝。 使用這種方式,首先對(duì)每個(gè)模塊分別進(jìn)行模塊測(cè)試,然后再把所有模塊組裝在一起進(jìn)行測(cè)試,最終得到要求的軟件系統(tǒng)。,系 統(tǒng)結(jié)構(gòu)圖,單元測(cè)試,整體組裝,7.3 集成測(cè)試(3),2. 增殖式組裝方式,這種組裝方式又稱漸增式組裝 首先對(duì)

39、一個(gè)個(gè)模塊進(jìn)行模塊測(cè)試,然后將這些模塊逐步組裝成較大的系統(tǒng) 在組裝的過(guò)程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過(guò)程中產(chǎn)生的問(wèn)題 通過(guò)增殖逐步組裝成為要求的軟件系統(tǒng)。,(1) 自頂向下的增殖方式,這種組裝方式將模塊按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝。 自頂向下的增殖方式在測(cè)試過(guò)程中較早地驗(yàn)證了主要的控制和判斷點(diǎn)。 選用按深度方向組裝的方式,可以首先實(shí)現(xiàn)和驗(yàn)證一個(gè)完整的軟件功能。,7.3 集成測(cè)試(4),(2) 自底向上的增殖方式,這種組裝的方式是從程序模塊結(jié)構(gòu)的最底層的模塊開始組裝和測(cè)試。 因?yàn)槟K是自底向上進(jìn)行組裝,對(duì)于一個(gè)給定層次的模塊,它的子模塊(包括 子 模塊的所有下屬模塊)已經(jīng)組裝并測(cè)試完

40、成,所以不再需要樁模塊。在模塊的測(cè)試 過(guò)程中需要從子模塊得到的信息可以直接運(yùn)行子模塊得到。,自頂向下增殖的方式和自底向上增殖的方式各有優(yōu)缺點(diǎn)。 一般來(lái)講,一種方式的優(yōu)點(diǎn)是另一種方式的缺點(diǎn)。,7.3 集成測(cè)試(5),非漸增式和漸增式測(cè)試方法的優(yōu)缺點(diǎn)比較: 非漸增式方法要對(duì)每個(gè)模塊編寫驅(qū)動(dòng)模塊和樁模塊,工作量較大;而漸增式 方法可以利用部分已測(cè)試過(guò)的模塊作為測(cè)試軟件; 非漸增式方法發(fā)現(xiàn)模塊間的接口錯(cuò)誤較晚,而漸增式方法則要早一些; 非漸增式方法發(fā)現(xiàn)錯(cuò)誤后較難定位;而漸增式方法則要容易一些; 非漸增式方法可以并行測(cè)試所有模塊,可充分利用人力,加快工程進(jìn)度; 漸增式方法接近全真運(yùn)行環(huán)境,需要較多的測(cè)試

41、運(yùn)行時(shí)間,但對(duì)程序模塊的 測(cè)試較為徹底。,7.4 驗(yàn)收測(cè)試 驗(yàn)證軟件的有效性,軟件的有效性:如果軟件的功能和性能滿足用戶的需求,則軟件是有效的; 軟件有效性的標(biāo)準(zhǔn):需求分析階段所產(chǎn)生的準(zhǔn)確的系統(tǒng)需求文檔; 測(cè)試方法:一般用黑盒方法; 結(jié)果:功能和性能均與用戶要求一致,軟件是可以接受的;否則軟件是不可接 受的。,7.5 設(shè)計(jì)測(cè)試方案,測(cè)試方案:包括預(yù)定要測(cè)試的功能,應(yīng)該輸入的測(cè)試數(shù)據(jù)和預(yù)期的結(jié)果。其中最困難的 設(shè)計(jì)測(cè)試用的輸入數(shù)據(jù)(稱為測(cè)試用例)。 測(cè)試用例設(shè)計(jì)技術(shù):黑盒測(cè)試的等價(jià)劃分、邊界值分析、錯(cuò)誤推測(cè)法; 白盒測(cè)試的邏輯覆蓋法;,1. 邏輯覆蓋,語(yǔ)句覆蓋 判定覆蓋 條件覆蓋 判定條件覆蓋

42、條件組合覆蓋 路徑覆蓋。,邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)。它屬白盒測(cè)試。,語(yǔ)句覆蓋,(A1) and (B=0),(A=2) or (X1),X = X / A,X=X+1,T,T,F,F,b,c,e,PROCEDURE Example(A,B:real; X:real ); Begin IF (A1) AND (B=0) THEN X:= X / A; IF ( A=2 ) OR (X1) THEN X:=X+1 END;,a,1,S,d,2,3,4,5,6,7,I. A=2, B= 0, X=4 - sacbed,語(yǔ)句覆蓋 所有的語(yǔ)句至少執(zhí)行一次!,判定覆蓋,(A

43、1) and (B=0),(A=2) or (X1),X = X / A,X=X+1,T,T,F,F,b,c,e,a,1,S,d,2,3,4,5,6,7,判定覆蓋 每個(gè)判定的每種可能都至少執(zhí)行一次! 即每個(gè)判定的每個(gè)分支都至少執(zhí)行一次!,I: A=3, B=0,X=3: sacbd,II: A=2, B=1,X=1: sabed,滿足判定覆蓋的測(cè)試用例一定滿足語(yǔ)句覆蓋:判定覆蓋比語(yǔ)句覆蓋強(qiáng)。,條件覆蓋,(A1) and (B=0),(A=2) or (X1),X = X / A,X=X+1,T,T,F,F,b,c,e,a,1,S,d,2,3,4,5,6,7,條件覆蓋 每個(gè)語(yǔ)句至少執(zhí)行一次,而且

44、判定表達(dá)式中的每個(gè)條件都要取得各種可能的結(jié)果。,(A1),(A1),(B=0),(B0),(A=2),(A2),(X1),(X1),II: A=1, B=1,X=1: sabd,條件覆蓋一般情況下比判定覆蓋要強(qiáng),但是也有滿足條件覆蓋但不能滿足判定覆蓋的情況。,I: A=2, B=0,X=4: sacbed,I: A=2, B=0,X=1: sacbed,II: A=1, B=1,X=1: sabed,判定/條件覆蓋,(A1) and (B=0),(A=2) or (X1),X = X / A,X=X+1,T,T,F,F,b,c,e,a,1,2,3,4,5,6,7,S,d,判定條件不一定包含條件

45、覆蓋,條件覆蓋也不一定包含判定覆蓋;事實(shí)上同時(shí)滿足這兩種標(biāo)準(zhǔn)的判定/條件覆蓋也不會(huì)比條件覆蓋更強(qiáng)。,(A1),(A1),(B=0),(B0),(A=2),(A2),(X1),(X1),II: A=1, B=1,X=1: sabd,I: A=2, B=0,X=4: sacbed,測(cè)試用例I,II既滿足判定覆蓋也滿足條件覆蓋的要求。嚴(yán)格來(lái)講,合適的條件覆蓋測(cè)試用例設(shè)計(jì)應(yīng)該作到滿足判定/條件覆蓋的標(biāo)準(zhǔn):判定/條件覆蓋并不比條件覆蓋更強(qiáng)。,條件組合覆蓋,(A1) and (B=0),(A=2) or (X1),X = X / A,X=X+1,T,T,F,F,b,a,1,2,3,4,5,6,7,S,d,條件組合覆蓋要求選取足夠多的測(cè)試數(shù)據(jù),使得每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。,(A1),(A1),(B=0),(B0),(A=2),(A

溫馨提示

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