(優(yōu)選)軟件工程導(dǎo)論復(fù)習(xí).課件_第1頁(yè)
(優(yōu)選)軟件工程導(dǎo)論復(fù)習(xí).課件_第2頁(yè)
(優(yōu)選)軟件工程導(dǎo)論復(fù)習(xí).課件_第3頁(yè)
(優(yōu)選)軟件工程導(dǎo)論復(fù)習(xí).課件_第4頁(yè)
(優(yōu)選)軟件工程導(dǎo)論復(fù)習(xí).課件_第5頁(yè)
已閱讀5頁(yè),還剩129頁(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、軟件工程導(dǎo)論復(fù)習(xí)第1章 基礎(chǔ)知識(shí) 2022/7/1412什么是軟件軟件的定義軟件由三部分組成:程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集數(shù)據(jù):使程序能夠正確運(yùn)行的數(shù)據(jù)文檔:描述程序研制過(guò)程、方法及使用的文檔軟件處理的是信息和邏輯軟件的開(kāi)發(fā),絕不僅僅是編寫(xiě)程序軟件圍繞著邏輯進(jìn)行軟件就是一個(gè)信息交換器產(chǎn)生、管理、獲取、修改、顯示或傳送信息軟件程序2022/7/143什么是軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。軟件工程(IEEE)1993年,提出軟件工程1) 將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)。2) 對(duì)1)中方法的理論研究

2、。2022/7/144軟件工程基本原理 (開(kāi)發(fā)與維護(hù)的指導(dǎo))用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開(kāi)發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2022/7/145軟件工程方法學(xué)把在軟件生命周期全過(guò)程中使用的一整套技術(shù)的集合稱為方法學(xué)(methodology),也稱范型(paradigm)。軟件工程方法學(xué)三個(gè)要素:方法、工具和過(guò)程。方法是完成軟件開(kāi)發(fā)各項(xiàng)任務(wù)的技術(shù),回答“如何做”;工具是為方法的運(yùn)用提供自動(dòng)或半自動(dòng)軟件支撐環(huán)境,回答“用什么做”;過(guò)程是為獲得高質(zhì)量的軟件要完成的一系列任務(wù)的框架,規(guī)定完成各項(xiàng)任務(wù)步驟,回答

3、“如何控制、協(xié)調(diào)、保證質(zhì)量”。管理方法2022/7/146目前使用得最廣泛的軟件工程方法學(xué)。傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。 當(dāng)軟件規(guī)模較大,或?qū)浖男枨笫悄:幕螂S時(shí)間變化的時(shí)候,使用結(jié)構(gòu)化范型開(kāi)發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)通常都很困難。結(jié)構(gòu)化靜態(tài)分析,面向?qū)ο髣?dòng)態(tài)分析世界萬(wàn)物是變化的傳統(tǒng)方法學(xué)與面向?qū)ο蠓椒▽W(xué)2022/7/147傳統(tǒng)方法的特點(diǎn)生命周期模型軟件過(guò)程劃分為若干個(gè)階段每個(gè)階段有各自的任務(wù)階段之間有某種順序性2022/7/148面向?qū)ο蠓椒ǎ簩?duì)象作為融合數(shù)據(jù)及在數(shù)據(jù)之上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對(duì)象都劃分成類(Class)。每個(gè)

4、類都定義了一組數(shù)據(jù)和一組操作。按照父類(或稱為基類)與子類(或稱為派生類)的關(guān)系,把若干個(gè)相關(guān)類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級(jí))。在類等級(jí)中,下層派生類自動(dòng)擁有上層基類中定義的數(shù)據(jù)和操作,稱為繼承。對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系封裝性。數(shù)據(jù):靜態(tài)操作:動(dòng)態(tài)Everything is Object.2022/7/14大連理工大軟件學(xué)院91.3 軟件生命周期 軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)階段,每個(gè)階段有各自的任務(wù)。1軟件定義2軟件開(kāi)發(fā)3運(yùn)行維護(hù)2022/7/14110問(wèn)題定義可行性研究 需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼和單元測(cè)試綜合測(cè)

5、試軟件維護(hù)2022/7/14111實(shí)際的瀑布模型軟件過(guò)程模型(生命周期模型)2022/7/14112快速原型模型2022/7/14113增量模型瀑布模型:力求一次性給用戶完整的系統(tǒng)。增量模型:逐步增加系統(tǒng)功能。需要開(kāi)放的架構(gòu)設(shè)計(jì)。2022/7/14114完整的螺旋模型2022/7/14115噴泉模型迭代是OO開(kāi)發(fā)過(guò)程的主要特性。噴泉模型是典型的面向?qū)ο笊芷谀P汀!皣娙?體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。為避免噴泉模型的過(guò)分無(wú)序,把一個(gè)線性過(guò)程作為總目標(biāo)。迭代 2022/7/14116噴泉模型迭代:逐步求精階段間沒(méi)有明顯的界限面向?qū)ο蟮乃枷氡WC了各個(gè)階段開(kāi)發(fā)的一致性。迭代是OO開(kāi)

6、發(fā)過(guò)程的主要特性。噴泉模型是典型的面向?qū)ο笊芷谀P汀!皣娙?體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。2022/7/14117可行性與需求分析可行性研究不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決較高層次的系統(tǒng)分析和設(shè)計(jì)過(guò)程需求分析發(fā)現(xiàn)、求精、建模、規(guī)格說(shuō)明和復(fù)審的過(guò)程反復(fù)求精多次細(xì)化,得出對(duì)目標(biāo)系統(tǒng)的完整、準(zhǔn)確和具體的要求。建立數(shù)據(jù)模型、功能模型和行為模型等三種模型。還要寫(xiě)出準(zhǔn)確的軟件需求規(guī)格說(shuō)明。2022/7/14119系統(tǒng)流程圖系統(tǒng)流程圖概括描繪物理系統(tǒng)的傳統(tǒng)工具用圖形符號(hào),以黑盒子形式描述組成系統(tǒng)的每個(gè)部件程序、文檔、數(shù)據(jù)庫(kù)、人工過(guò)程2022/7/14120系統(tǒng)流程圖例子例子每個(gè)符

7、號(hào)用黑盒子形式定義了組成系統(tǒng)的一個(gè)部件。沒(méi)有部件內(nèi)部的具體工作過(guò)程箭頭確定通過(guò)系統(tǒng)的邏輯路徑(信息流動(dòng)路徑)2022/7/14121 數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD) 描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換。或或或符 號(hào)含 義數(shù)據(jù)的源點(diǎn)或終點(diǎn)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)加工(數(shù)據(jù)處理)2022/7/14122加工中常見(jiàn)關(guān)系的符號(hào)表示符 號(hào)含 義由數(shù)據(jù)A和B共同變換為數(shù)據(jù)C由數(shù)據(jù)A變換為數(shù)據(jù)B和數(shù)據(jù)C由數(shù)據(jù)A或B,或者數(shù)據(jù)A和B共同變換為數(shù)據(jù)C由數(shù)據(jù)A變換為數(shù)據(jù)B或C,或者同時(shí)變換為數(shù)據(jù)B和C由數(shù)據(jù)A或B其中之一變換為數(shù)據(jù)C由數(shù)據(jù)A變換為數(shù)據(jù)B或C其中之一T*T*T+T+TT2022/7/141232

8、022/7/14124把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖2022/7/14125數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,即對(duì)DFD圖中包含的元素的定義的集合。數(shù)據(jù)字典的用途是供人查閱不了解的條目的解釋。提供分析設(shè)計(jì)過(guò)程中關(guān)于數(shù)據(jù)的描述。數(shù)據(jù)字典與DFD相輔相成。只有DFD和對(duì)應(yīng)的元素的精確定義放在一起,才能構(gòu)成系統(tǒng)的規(guī)格說(shuō)明。2022/7/14126定義數(shù)據(jù)的方法 意思是等價(jià)于(或定義為); 意思是和(即,連接兩個(gè)分量); 意思是或(即,從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè)),用“”號(hào)分開(kāi)供選擇的分量; 意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量);( )意思是可選(即,圓括弧里的分量可有可無(wú))。

9、使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧。左邊用上角標(biāo)和下角標(biāo)分別表明重復(fù)的上限和下限;左側(cè)標(biāo)明重復(fù)的下限,在閉括弧的右側(cè)標(biāo)明上限。例如: A和1A5 含義相同。 152022/7/14127數(shù)據(jù)字典的實(shí)現(xiàn)CASE工具人工卡片2022/7/14128 實(shí)體關(guān)系圖數(shù)據(jù)模型包含三種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、描述數(shù)據(jù)對(duì)象屬性及數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系。2022/7/14129某校教學(xué)管理 ER 圖2022/7/14130 學(xué)生和課程之間的E-R模型學(xué)生和課程之間的多對(duì)多聯(lián)系E-R模型;(b) 將多對(duì)多聯(lián)系轉(zhuǎn)換為一對(duì)多聯(lián)系E-R模型選課mn學(xué)號(hào)專業(yè)年級(jí)課名課號(hào)學(xué)時(shí)1n學(xué)號(hào)專業(yè)課名課號(hào)學(xué)時(shí)學(xué)號(hào)課號(hào)n

10、1姓名課程學(xué)生姓名課程學(xué)分學(xué)生年級(jí)選課學(xué)分(a)(b)2022/7/14131 其他圖形工具Warnier圖2022/7/14132其他圖形工具(3)IPO圖2022/7/14133其他圖形工具(2)IPO圖IPO圖是輸入、處理、輸出圖的簡(jiǎn)稱左邊框中列出有關(guān)的輸入中間框中列出主要的處理右邊框中列出產(chǎn)生的輸出處理的順序暗示了執(zhí)行的順序箭頭指出數(shù)據(jù)通信的情況2022/7/14134總體設(shè)計(jì)總體設(shè)計(jì)概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)主要任務(wù)是通過(guò)仔細(xì)分析軟件規(guī)格說(shuō)明,適當(dāng)?shù)貙?duì)軟件進(jìn)行功能分解,從而把軟件劃分為模塊,并且設(shè)計(jì)出完成預(yù)定功能的模塊結(jié)構(gòu)。詳細(xì)設(shè)計(jì)階段詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定完成每個(gè)模塊功能所需要

11、的算法和數(shù)據(jù)結(jié)構(gòu)。2022/7/14136模塊化:就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。可以由許多程序員分工編寫(xiě)不同的模塊可以使軟件結(jié)構(gòu)清晰,便于擴(kuò)展使軟件容易測(cè)試和調(diào)試,因而有助于提高軟件的可靠性。模塊大小要適中,不過(guò)分細(xì)。2022/7/14137模塊獨(dú)立模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)來(lái)度量,分別稱為內(nèi)聚和耦合。耦合:衡量不同模塊彼此間互相依賴(連接)緊密程度;內(nèi)聚:衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。2022/7/14138耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。盡可能松散耦

12、合2022/7/14139數(shù)據(jù)耦合:特征耦合:控制耦合:外部耦合:公共耦合:內(nèi)容耦合:弱強(qiáng)盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。2022/7/14140內(nèi)聚:標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱蔽和局部化概念的自然擴(kuò)展。簡(jiǎn)單地說(shuō),理想內(nèi)聚的模塊只做一件事情。2022/7/14141功能內(nèi)聚:信息內(nèi)聚:通信內(nèi)聚:過(guò)程內(nèi)聚:時(shí)間內(nèi)聚:邏輯內(nèi)聚:巧合內(nèi)聚:強(qiáng)弱設(shè)計(jì)時(shí)應(yīng)該力求做到高內(nèi)聚。2022/7/14142改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性模塊規(guī)模應(yīng)該適中深度、寬度、扇出和扇入都應(yīng)適當(dāng)模塊的作用域應(yīng)該在控制域之內(nèi)力爭(zhēng)降低模塊接口的復(fù)雜程度設(shè)計(jì)單入口單出口

13、的模塊模塊功能應(yīng)該可以預(yù)測(cè)2022/7/14143描繪軟件結(jié)構(gòu)的圖形工具層次圖和HIPO圖結(jié)構(gòu)圖2022/7/14144正文加工系統(tǒng)的層次圖2022/7/14145正文加工系統(tǒng)的H圖2022/7/14146結(jié)構(gòu)圖的例子產(chǎn)生最佳解的一般結(jié)構(gòu)2022/7/14147軟件結(jié)構(gòu)設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法的目標(biāo)是給出設(shè)計(jì)軟件結(jié)構(gòu)的一個(gè)系統(tǒng)化的途徑。利用數(shù)據(jù)流圖中的“映射“,把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu)。2022/7/14148變換流和事務(wù)流2022/7/14149設(shè)計(jì)步驟復(fù)查基本系統(tǒng)模型。復(fù)查并精化數(shù)據(jù)流圖。確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性。確定輸入流和輸出流的邊界,從而孤立出變換中心。完成“第一級(jí)分

14、解”。完成“第二級(jí)分解”。使用設(shè)計(jì)度量和啟發(fā)規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化。2022/7/14150數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖精化數(shù)據(jù)流圖數(shù)據(jù)流圖具有變換特性還是事務(wù)特性2022/7/14151具有邊界的數(shù)據(jù)流圖確定輸入流和輸出流的邊界,從而孤立出變換中心2022/7/14152第一級(jí)分解的方法2022/7/14153數(shù)字儀表板系統(tǒng)的第一級(jí)分解完成“第一級(jí)分解”2022/7/14154第二級(jí)分解的方法2022/7/14155未經(jīng)精化的輸入結(jié)構(gòu)完成“第二級(jí)分解”2022/7/14156精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)軟件結(jié)構(gòu)進(jìn)一步精化2022/7/14157事務(wù)分析的映射方法2022/7

15、/14158詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段主要完成界面和程序過(guò)程設(shè)計(jì)過(guò)程設(shè)計(jì)應(yīng)該在數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)和接口設(shè)計(jì)完成之后進(jìn)行程序員將根據(jù)過(guò)程設(shè)計(jì)寫(xiě)出實(shí)際的程序代碼。2022/7/14160結(jié)構(gòu)程序設(shè)計(jì)的經(jīng)典定義如下所述:如果一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這三種控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化的。2022/7/14161過(guò)程設(shè)計(jì)的工具程序流程圖2022/7/14162盒圖(N-S圖)2022/7/14163PAD圖2022/7/14164判定表2022/7/14165用判定樹(shù)表示計(jì)算行李費(fèi)的算法判定樹(shù)2022/7/14166偽碼2022/7/1416

16、7測(cè)試2022/7/14169回歸測(cè)試 (已執(zhí)行過(guò)的測(cè)試用例的子集)包括下述三種不同的測(cè)試用例。檢測(cè)軟件全部功能的代表性測(cè)試用例。專門(mén)針對(duì)可能受修改影響的軟件功能的附加測(cè)試。針對(duì)被修改過(guò)的軟件成分的測(cè)試。2022/7/14170白盒測(cè)試技術(shù)邏輯覆蓋是設(shè)計(jì)白盒測(cè)試方案的技術(shù)。設(shè)計(jì)測(cè)試方案是測(cè)試階段的關(guān)鍵技術(shù)問(wèn)題。2022/7/14171語(yǔ)句覆蓋為暴露程序的錯(cuò)誤,至少每個(gè)語(yǔ)句應(yīng)該執(zhí)行一次。含義是,選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程序中每個(gè)語(yǔ)句至少執(zhí)行一次。2022/7/14172判定覆蓋又叫分支覆蓋不僅每個(gè)語(yǔ)句必須至少執(zhí)行一次,而且每個(gè)判定的每種可能的結(jié)果都應(yīng)該至少執(zhí)行一次,也就是每個(gè)判定的每個(gè)分支都

17、至少執(zhí)行一次。條件覆蓋不僅每個(gè)語(yǔ)句至少執(zhí)行一次,而且判定表達(dá)式中每個(gè)條件都取到各種可能的結(jié)果。2022/7/14173判定/條件覆蓋判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋,判定/條件覆蓋能同時(shí)滿足這兩種覆蓋標(biāo)準(zhǔn)。選取足夠多的測(cè)試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)條件都取到各種可能的值,而且每個(gè)判定表達(dá)式也都取到各種可能的結(jié)果。條件組合覆蓋要求選取足夠多的測(cè)試數(shù)據(jù),使每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。2022/7/14174路徑測(cè)試Tom McCabe提出的一種白盒測(cè)試技術(shù)。首先計(jì)算過(guò)程設(shè)計(jì)結(jié)果的邏輯復(fù)雜度,并以該復(fù)雜度為指南定義執(zhí)行路徑的基本集合,從該基本集合導(dǎo)出的

18、測(cè)試用例可以保證程序中每條語(yǔ)句至少執(zhí)行一次,而且每個(gè)條件在執(zhí)行時(shí)都將分別取true(真)和false(假)值。2022/7/14175求平均值過(guò)程的流圖使用基本路徑測(cè)試技術(shù)設(shè)計(jì)測(cè)試用例步驟如下。根據(jù)過(guò)程設(shè)計(jì)結(jié)果畫(huà)出相應(yīng)的流圖2022/7/14176PROCEDURE average;/*這個(gè)過(guò)程計(jì)算不超過(guò)100個(gè)在規(guī)定值域內(nèi)的有效數(shù)字的平均值;同時(shí)計(jì)算有效數(shù)字的總和及個(gè)數(shù)。*/INTERFACE RETURNS average, total_input, total_valid;INTERFACE ACCEPTS value, minimum, maximum;TYPE value 1.100

19、 IS SCALAR ARRAY;TYPE average, total_input, total_valid, minimum, maximum, sum IS SCALAR;2022/7/14177TYPE i IS INTEGER;1: i1; total_inputtotal_valid0; sum0;2: DO WHILE valuei -999 3: AND total_input 1004: increment total_input by 1;5: IF valuei = minimum6: AND valuei 011: THEN average = sum/total_va

20、lid;12: ELSE average = -999;13: END IFEND average2022/7/14179計(jì)算流圖的環(huán)形復(fù)雜度環(huán)形復(fù)雜度定量度量程序的邏輯復(fù)雜性。三種方法來(lái)計(jì)算環(huán)形復(fù)雜度。流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。流圖G的環(huán)形復(fù)雜度V(G)E-N+2,其中E是流圖中邊的條數(shù),N是流圖中節(jié)點(diǎn)數(shù)。流圖G的環(huán)形復(fù)雜度V(G)P+1,其中P是流圖中判定節(jié)點(diǎn)的數(shù)目。使用上述任何一種方法,都可以計(jì)算出流圖的環(huán)形復(fù)雜度為6。2022/7/14180確定線性獨(dú)立路徑的基本集合對(duì)于所描述的求平均值過(guò)程來(lái)說(shuō),由于環(huán)形復(fù)雜度為6,因此共有6條獨(dú)立路徑。例如,下面列出了6條獨(dú)立路徑:路徑1:1-2

21、-10-11-13路徑2:1-2-10-12-13路徑3:1-2-3-10-11-13路徑4:1-2-3-4-5-8-9-2-路徑5:1-2-3-4-5-6-8-9-2-路徑6:1-2-3-4-5-6-7-8-9-2-2022/7/14181設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑測(cè)試用例選取數(shù)據(jù)使得在測(cè)試每條路徑時(shí)都適當(dāng)設(shè)置好了各個(gè)判定節(jié)點(diǎn)的條件。路徑1的測(cè)試用例:valuek有效輸入值,其中ki (i的定義在下)valuei-999,其中2i100預(yù)期結(jié)果:基于k的正確平均值和總數(shù)注意,路徑1無(wú)法獨(dú)立測(cè)試,必須作為路徑4、5和6的一部分來(lái)測(cè)試。路徑2的測(cè)試用例:value1 -999預(yù)期結(jié)果:av

22、erage-999,其他都保持初始值2022/7/14182路徑4的測(cè)試用例:valuei有效輸入值,其中i100valuek minimum,其中ki預(yù)期結(jié)果:其于k的正確平均值和總數(shù)路徑5的測(cè)試用例:valuei有效輸入值,其中i100valuekmaximum,其中ki預(yù)期結(jié)果:其于k的正確平均值和總數(shù)路徑6的測(cè)試用例:valuei=有效輸入值,其中i100預(yù)期結(jié)果:正確的平均值和總數(shù)2022/7/14183黑盒測(cè)試技術(shù)黑盒測(cè)試著重測(cè)試軟件的功能需求,讓軟件工程師設(shè)計(jì)出能充分檢查程序所有功能需求的輸入條件集。黑盒測(cè)試并不能取代白盒測(cè)試技術(shù),它是與白盒測(cè)試互補(bǔ)的方法,它很可能發(fā)現(xiàn)白盒測(cè)試不

23、易發(fā)現(xiàn)的其他不同類型的錯(cuò)誤。2022/7/14184黑盒測(cè)試力圖發(fā)現(xiàn)下述類型的錯(cuò)誤: 功能不正確或遺漏了功能; 界面錯(cuò)誤; 數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤; 性能錯(cuò)誤; 初始化和終止錯(cuò)誤。白盒測(cè)試在測(cè)試過(guò)程的早期階段進(jìn)行,而黑盒測(cè)試主要用于測(cè)試過(guò)程的后期。黑盒測(cè)試故意不考慮程序的控制結(jié)構(gòu),而把注意力集中于信息域。2022/7/14185等價(jià)劃分:確定輸入數(shù)據(jù)的有效等價(jià)類和無(wú)效等價(jià)類。邊界值分析錯(cuò)誤推測(cè)2022/7/14186面向?qū)ο蠡A(chǔ)什么是對(duì)象技術(shù) 基于對(duì)象概念的軟件開(kāi)發(fā)方法 對(duì)象包含有數(shù)據(jù)及處理數(shù)據(jù)的功能函數(shù) 在分析、設(shè)計(jì)和實(shí)現(xiàn)的整個(gè)過(guò)程中只使用一個(gè)概念對(duì)象的開(kāi)發(fā)方法 能夠解決軟件危機(jī)中

24、大多數(shù)問(wèn)題的方法對(duì)象 = 數(shù)據(jù) + 功能2022/7/14188對(duì)象技術(shù)的優(yōu)勢(shì)穩(wěn)定: 較小的需求變化不會(huì)導(dǎo)致系統(tǒng)結(jié)構(gòu)大的改變舉例:某公司的銷售處理系統(tǒng)定單合同出費(fèi)2022/7/14189對(duì)象技術(shù)的優(yōu)勢(shì) 穩(wěn)定:數(shù)據(jù)和功能都打包在一起,從而改善軟件的再重用性軟件重用能提高質(zhì)量,減少由于編制新的系統(tǒng)代碼而產(chǎn)生的成本FileMgrMacroEditorMathUtilitiesTextEditorPrintUtilitiesFormatEditorMenusStringUtilitiesSpreadsheetWord ProcessorReusable-Component Repository2022

25、/7/14190對(duì)象技術(shù)的優(yōu)勢(shì)面向?qū)ο蟮哪P透淤N切地反映了現(xiàn)實(shí)世界 更加準(zhǔn)確地描述公共數(shù)據(jù)和過(guò)程 易于理解,尤其對(duì)于使用者現(xiàn)實(shí)世界Laser PrinterExternal DriveComputer對(duì)象圖2022/7/14191對(duì)象技術(shù)的優(yōu)勢(shì) 面向?qū)ο蟮姆椒ㄖС执笠?guī)模開(kāi)發(fā) 可以嚴(yán)格定義各個(gè)組件之間的交互 減少內(nèi)部的依賴關(guān)系 減少集成的問(wèn)題 支持并行開(kāi)發(fā)2022/7/14192對(duì)象技術(shù)的優(yōu)勢(shì)幫助開(kāi)發(fā)多層結(jié)構(gòu) Equipment and Customer specific CodeProcesses and other application code Major abstractions,

26、classes, etc. MechanismsH/W specific code, O/S specific code general-purpose code12345ApplicationSpecificApplicationIndependentLess ReuseMore Reuse2022/7/14193面向?qū)ο蟾拍頞bject 對(duì)象Class 類Instance 實(shí)例State 狀態(tài)Behavior 行為Attribute 屬性O(shè)peration 操作 (Method方法)Inheritance 繼承Subclasses 子類Superclasses 父類Generalizati

27、on 普遍化Polymorphism 多態(tài)2022/7/14194面向?qū)ο蟾拍預(yù)bstraction 抽象Encapsulation 封裝Association 關(guān)聯(lián)Role 角色Multiplicity 多重性Aggregation 聚合Dependency association 依賴Package 包Use Case 用例Scenario 腳本Actor2022/7/14195什么是對(duì)象一個(gè)對(duì)象代表了一個(gè)現(xiàn)實(shí)的或虛構(gòu)的實(shí)體自然實(shí)體概念實(shí)體軟件實(shí)體化學(xué)過(guò)程連接顯示2022/7/14196對(duì)象的屬性 對(duì)象是應(yīng)用中具有明顯邊界和含義的概念、抽象或事物 一個(gè)對(duì)象有三個(gè)重要屬性: 狀態(tài) 行為 標(biāo)識(shí)

28、 術(shù)語(yǔ)“實(shí)例”是“對(duì)象”的同義詞2022/7/14197對(duì)象的狀態(tài) 一個(gè)對(duì)象的狀態(tài)是它反映于現(xiàn)實(shí)世界的一系列屬性: 參數(shù)的數(shù)值 (也就是,與對(duì)象有關(guān)系的數(shù)據(jù)) 它與其它對(duì)象的關(guān)系 任一時(shí)刻的歷史狀態(tài)可能的狀態(tài):停泊 運(yùn)營(yíng)著陸 終止班機(jī) 7472022/7/14198對(duì)象的行為定義當(dāng)其它對(duì)象發(fā)出請(qǐng)求時(shí),該對(duì)象如何反應(yīng)由為對(duì)象定義的一系列操作決定班機(jī) 747核對(duì)出發(fā)時(shí)間(返回 9:27)機(jī)票代理2022/7/14199對(duì)象的標(biāo)識(shí) 每一個(gè)對(duì)象都有一個(gè)唯一的標(biāo)識(shí), 即使其狀態(tài)有可能與其它對(duì)象一樣班機(jī) 747 on 11/10班機(jī) 747 on 11/11班機(jī) 747 on 11/122022/7/14

29、1100什么是類(Class) 類是一組具有相同結(jié)構(gòu)和行為的對(duì)象的集合 共同的結(jié)構(gòu)通過(guò)屬性表現(xiàn)出來(lái) (i.e. 數(shù)據(jù)) 共同的行為通過(guò)操作表現(xiàn)出來(lái) (i.e. 功能)班機(jī) 747結(jié)構(gòu)班機(jī)號(hào)日期分配的班機(jī)起點(diǎn)終點(diǎn)狀態(tài)行為裝載設(shè)備起飛延遲取消終止2022/7/141101類的示例ClassEmployeeStructureNameAddressPositionSalaryStart DateEnd DateBehaviorHireFirePromoteIncrease SalaryRetire2022/7/141102類圖:用來(lái)表達(dá)類 類圖是一種主要的圖形化對(duì)象表示法 類圖顯示類及類之間的關(guān)系 一

30、個(gè)類通過(guò)在類圖標(biāo)中的類名(唯一的)來(lái)代表班機(jī)2022/7/141103屬性 屬性是類的特征或特性 屬性的值是某一特定對(duì)象的屬性值 在類中屬性名必須是唯一的 每一個(gè)類的實(shí)例都有為這個(gè)類定義的所有屬性的值 例如:銀行帳戶類屬性帳號(hào)銀行名稱擁有者金額Mary的銀行帳戶屬性值12345678First National BankMary Smith$1024.482022/7/141104操作 對(duì)象的行為是由為此對(duì)象定義的一系列操作決定的 操作訪問(wèn)或修改對(duì)象的屬性值 一個(gè)類可能同時(shí)存在多個(gè)實(shí)例,也可能在某一時(shí)刻沒(méi)有實(shí)例 一個(gè)類的所有實(shí)例都可以使用在這個(gè)類中定義的操作2022/7/141105屬性和操作

31、的標(biāo)記法 在類的圖標(biāo)中描述屬性和操作 通常只顯示最重要的屬性和操作,避免圖形混亂 屬性顯示在操作上方,操作的名字后跟有()班機(jī)flightNumberdatedeparturetimestatusrelease( )takeOff( )屬性操作2022/7/141106類是生成對(duì)象的模板類是生成對(duì)象的模板類的定義中包含有產(chǎn)生和刪除對(duì)象的操作屬性顯示在操作上方,操作的名字后跟有()一個(gè)類定義了使用哪種數(shù)據(jù)表示法來(lái)描述屬性每一個(gè)實(shí)例都采用有屬性值的數(shù)據(jù)表示法一個(gè)類通過(guò)一系列操作來(lái)定義行為這種操作能在每個(gè)實(shí)例中激活班機(jī)Flight 187Flight 121Flight 7472022/7/1411

32、07類和對(duì)象的關(guān)系 每一個(gè)對(duì)象都是某一個(gè)類的實(shí)例 每一個(gè)類在某一時(shí)刻都有零個(gè)或更多的實(shí) 類是靜態(tài)的; 它們的存在、語(yǔ)義和關(guān)系在序執(zhí)行前就已經(jīng)定義好了 對(duì)象是動(dòng)態(tài)的; 它們?cè)诔绦驁?zhí)行時(shí)可以被建和刪除2022/7/141108關(guān)系 所有的系統(tǒng)都包含了大量的類和對(duì)象 對(duì)象通過(guò)與其它對(duì)象的協(xié)作完成系統(tǒng)的功能行為協(xié)作通過(guò)關(guān)系來(lái)實(shí)現(xiàn) 幾種重要的關(guān)系類型: 關(guān)聯(lián) 聚合 依賴?yán)^承2022/7/141109示例: 關(guān)聯(lián) 在一個(gè)工資系統(tǒng)中有下面兩個(gè)類:關(guān)聯(lián)表示了雙向的關(guān)系,例如:給出一個(gè)Person的實(shí)例, 我們能夠知道他屬于哪家公司給出一個(gè) Company的實(shí)例, 我們能夠知道在其中工作的所有人PersonCo

33、mpany2022/7/141110關(guān)聯(lián)的多重性 多重性是指多個(gè)實(shí)例參與一個(gè)關(guān)聯(lián) 多重性通過(guò)位于關(guān)聯(lián)線某一端的一個(gè)表達(dá)式或符號(hào)來(lái)表示 對(duì)于每個(gè)關(guān)聯(lián)關(guān)系, 需要做出兩個(gè)多重性的決定 例如, 在公司和職員的關(guān)聯(lián)中 每個(gè)公司可以雇用多個(gè)職員 每個(gè)職員只有一個(gè)從屬公司2022/7/141111示例:關(guān)聯(lián)的多重性 多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)題 職員會(huì)不會(huì)失業(yè)? 公司能不能沒(méi)有職員? 一個(gè)職員能不能有兩份工作?職員職員雇主公司1.*12022/7/141112常用的多重性表示法 多重性能解決兩個(gè)問(wèn)題 關(guān)聯(lián)是強(qiáng)制的 (不包含零個(gè)) 或隨意的 (包含零個(gè))? 一個(gè)實(shí)例可以連接的其它實(shí)例的最大數(shù)目?

34、常用的多重性表示法:1只有一個(gè)0.*零或更多1.*一個(gè)或更多0.1零或一個(gè)*零或更多3.7指定的范圍 (3 or 4 or 5 or 6 or 7)1.3,7結(jié)合使用 (1 or 2 or 3 or 7)2022/7/141113自反關(guān)聯(lián)自反關(guān)聯(lián)指同一個(gè)類中的對(duì)象的關(guān)系表示同一個(gè)類中多個(gè)對(duì)象的協(xié)作A course may have many pre-requisitesA course may be a pre-requisite for many other coursesPre-requisiteCourse0.*0.*2022/7/141114聚合(包含) 聚合是一種特殊的關(guān)聯(lián),體現(xiàn)整體

35、和部分的關(guān)系 聚合是一種 “has-a” 或包含的關(guān)系 同樣可以使用多重性CompanyDepartment1.*12022/7/141115依 賴 依賴表示一個(gè)對(duì)象需要其它對(duì)象為其提供服務(wù) 又可稱為client-supplier 關(guān)系 client 使用supplier提供的服務(wù) supplier 不需要了解 client(s) 單向關(guān)系ControllerDisplay Itemcontrols2022/7/141116繼承 繼承表示一個(gè)類從其它類中獲得結(jié)構(gòu)和行為(子類/父類) 又名普遍化 交通工具是一個(gè)父類 地面交通工具和空中交通工具是子類VehicleGroundVehicleAirV

36、ehicleThe arrow points toward the superclass2022/7/141117繼承 繼承表示子類從父類繼承時(shí)抽象的層次 單繼承:子類只從一個(gè)父類繼承 多繼承:子類從多于一個(gè)的父類繼承 繼承通常被稱為 “is-a” 或“kind-of” 一個(gè)子類的實(shí)例也 “is a” 父類的實(shí)例 一個(gè)子類的實(shí)例是 “kind-of” 父類2022/7/141118多層次A Car is a kind of GroundVehicle which is a kind of VehicleVehicle and AirVehicle areancestors of Airplan

37、eAirVehicle and Airplane are descendants of VehicleVehicleGroundVehicleAirVehicleCarTruckAirplaneHelicopter2022/7/141119繼承的內(nèi)容屬性操作關(guān)系約束繼承平衡類之間的共同之處2022/7/141120繼承屬性屬性在繼承結(jié)構(gòu)的最高一層定義 所有子類的實(shí)例能夠繼承這些屬性 每個(gè)子類可以增加或重新定義繼承的屬性; 但在修改是要加倍注意GroundVehiclelicenseNumberweightCarTrucktonnageA truck has three attributes:l

38、icenseNumberweighttonnage2022/7/141121繼承操作屬性在繼承結(jié)構(gòu)的最高一層定義所有子類的實(shí)例能夠繼承這些操作每個(gè)子類可以增加或重新定義繼承的屬性GroundVehiclelicenseNumberweightregister( )CarTrucktonnagecalculateTax( )A truck has three attributes:licenseNumberweighttonnageand two operations:registercalculateTax2022/7/141122繼承關(guān)系 關(guān)系也可以繼承 每個(gè)子類都可以分享繼承的關(guān)系Grou

39、ndVehiclelicenseNumberweightregister( )A truck has an ownerCarTrucktonnagecalculateTax( )OwnerPerson1.*and a car has an owner12022/7/141123對(duì)象模型化技術(shù)OMT對(duì)象模型化技術(shù)把分析時(shí)收集的信息構(gòu)造在三類模型中,即對(duì)象模型、功能模型和動(dòng)態(tài)模型。這個(gè)模型化的過(guò)程是一個(gè)迭代過(guò)程。2022/7/141124基于三個(gè)模型的分析過(guò)程功能模型著重于系統(tǒng)內(nèi)部數(shù)據(jù)的傳送和處理。 功能模型定義“做什么” 動(dòng)態(tài)模型定義“何時(shí)做” 對(duì)象模型定義“對(duì)誰(shuí)做”。2022/7/141125UML的圖用例圖(use-case diagram)用例是對(duì)系統(tǒng)提供的功能(即系統(tǒng)的具體用法)的描述。用例

溫馨提示

  • 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)論