軟件工程學(xué)概述可行性分析與需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩46頁(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、2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,1,軟件工程學(xué)概述可行性分析與需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)維護(hù)面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計(jì),復(fù)習(xí),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,2,軟件工程學(xué)概述,軟件危機(jī)定義:指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。典型表現(xiàn):開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;用戶對(duì)“已完成的”軟件系統(tǒng)不滿意; “閉門(mén)造車(chē)”; 軟件質(zhì)量不可靠;軟件常常是不可維護(hù)

2、的;軟件成本的比例逐年上升;軟件產(chǎn)品“供不應(yīng)求”;產(chǎn)生軟件危機(jī)的原因軟件的規(guī)模加大、復(fù)雜性提高、性能增強(qiáng);軟件是邏輯產(chǎn)品, 尚未完全認(rèn)識(shí)其本質(zhì)和特點(diǎn); 缺乏系統(tǒng)的開(kāi)發(fā)、維護(hù)大型軟件項(xiàng)目的技術(shù)手段和管理方法;用戶和軟件開(kāi)發(fā)人員的理解鴻溝;錯(cuò)誤的認(rèn)識(shí)和作法,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,3,軟件工程學(xué)概述,軟件工程定義軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的一門(mén)工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)

3、軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)地開(kāi)發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。本質(zhì)特性軟件工程的中心課題是控制復(fù)雜性和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵……,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,4,軟件工程學(xué)概述,軟件工程的7條基本原理用分階段的生命周期計(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)軟件工

4、程實(shí)踐的必要性,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,5,軟件工程學(xué)概述,軟件生命周期是軟件產(chǎn)品或系統(tǒng)一系列相關(guān)活動(dòng)的全周期。軟件生命周期的3個(gè)大階段軟件定義: 確定軟件開(kāi)發(fā)總目標(biāo);確定工程的可行性;導(dǎo)出實(shí)現(xiàn)策略及系統(tǒng)功能;估計(jì)資源和成本,并且制定工程進(jìn)度表。問(wèn)題定義、可行性研究、需求分析軟件開(kāi)發(fā): 具體設(shè)計(jì)和實(shí)現(xiàn)在前一個(gè)時(shí)期定義的軟件總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試軟件維護(hù): 使軟件持久地滿足用戶的需要,2

5、024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,6,軟件工程學(xué)概述,生命周期中各階段的任務(wù)1. 問(wèn)題定義: “要解決的問(wèn)題是什么?”; 確定用戶要求解決的性質(zhì)、工程的目標(biāo)和規(guī)模。2. 可行性研究: “對(duì)于上一個(gè)階段所確定的問(wèn)題有行得通的解決辦法嗎?”, 經(jīng)濟(jì)可行性、技術(shù)可行性、法律可行性、不同的方案3. 需求分析: “為了解決這個(gè)問(wèn)題,目標(biāo)系統(tǒng)必須做什么”, 確定系統(tǒng)必須具有的功能和性能,系統(tǒng)要求的運(yùn)行環(huán)境,并且預(yù)測(cè)系統(tǒng)發(fā)展的前

6、景。4. 總體設(shè)計(jì)(概要設(shè)計(jì)): “概括地說(shuō),應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”; 設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案。推薦一個(gè)最佳方案。5. 詳細(xì)設(shè)計(jì): “應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”; 設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明。6. 編碼和單元測(cè)試: 寫(xiě)出正確的容易理解、容易維護(hù)的程序模塊; 仔細(xì)測(cè)試編寫(xiě)出的每一個(gè)模塊。7. 綜合測(cè)試: 集成測(cè)試和驗(yàn)收測(cè)試,現(xiàn)場(chǎng)測(cè)試或平行運(yùn)行8. 軟件維護(hù): 使系統(tǒng)持久地滿足用戶的需要。包括:

7、改正性維護(hù),適應(yīng)性維護(hù),完善性維護(hù),預(yù)防性維護(hù)。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,7,軟件工程學(xué)概述,生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序,因此,也稱為過(guò)程模型。典型的過(guò)程模型瀑布模型(Waterfall model)快速原型開(kāi)發(fā)模型(Rapid Prototyping model)增量模型(Incremental model)螺旋模型(Spiral model)噴泉模型其它模型極限編程

8、XP(eXtreme Programming) RUP(Rational Unified Process)建造—修補(bǔ)模型(Build-and-fix model),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,8,軟件工程學(xué)概述,瀑布模型特點(diǎn)階段間具有順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)清楚地區(qū)分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn)。質(zhì)量保證的觀點(diǎn)(文檔驅(qū)動(dòng))每個(gè)階段都必須完成規(guī)定的文檔每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)

9、審缺點(diǎn)開(kāi)發(fā)過(guò)程一般不能逆轉(zhuǎn),否則代價(jià)太大。規(guī)格說(shuō)明很難理解:“我知道這是按我的要求做的,但不是我想要的樣子?!避浖膶?shí)際情況必須到項(xiàng)目開(kāi)發(fā)的后期客戶才能看到。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,9,軟件工程學(xué)概述,增量模型把軟件產(chǎn)品作為一系列增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。優(yōu)點(diǎn)每個(gè)階段交付一個(gè)可用的產(chǎn)品。減少一個(gè)全新產(chǎn)品給客戶帶來(lái)的心理上的影響。分階段地交付產(chǎn)品不需要大的資金支出。需求經(jīng)常變化,增量模型的靈活

10、性使其具有更加優(yōu)越的適用性。缺點(diǎn)需要一個(gè)開(kāi)放的結(jié)構(gòu),方便構(gòu)件的加入。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,10,軟件工程學(xué)概述,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,11,可行性分析與需求分析,需求分析的任務(wù)準(zhǔn)確地回答“系統(tǒng)必須做什么?”“分析軟件需求和書(shū)寫(xiě)軟件需求規(guī)格說(shuō)明書(shū)”軟件需求用戶解決問(wèn)題或達(dá)到目標(biāo)所需要的條件或能力;系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其他正式規(guī)定文檔所需具有的條件或能力反映上述兩個(gè)定義

11、中所描述的條件或能力的文檔說(shuō)明需求層次:業(yè)務(wù)需求?用戶需求?功能與非功能需求具體任務(wù)確定對(duì)系統(tǒng)的綜合要求功能需求、性能需求、可靠性和可用性需求、出錯(cuò)處理需求、接口需求、約束、逆向需求、擴(kuò)展需求分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型書(shū)寫(xiě)軟件需求規(guī)格說(shuō)明書(shū)修正系統(tǒng)開(kāi)發(fā)計(jì)劃,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,12,需求分析,數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)符號(hào)數(shù)據(jù)源點(diǎn)/數(shù)據(jù)終點(diǎn)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)加工/處理根據(jù)描述畫(huà)數(shù)據(jù)

12、流圖,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,13,總體設(shè)計(jì),總體設(shè)計(jì)的任務(wù)“概括地說(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”系統(tǒng)劃分:即確定組成系統(tǒng)的程序、文件、數(shù)據(jù)庫(kù)、人工過(guò)程和文檔等設(shè)計(jì)軟件的結(jié)構(gòu):即確定每個(gè)程序是由哪些模塊組成,以及這些模塊相互間的關(guān)系。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,14,總體設(shè)計(jì),設(shè)計(jì)原理模塊化模塊化的根據(jù)C(P1+P2)> C(P1)+ C(P2) E(P1+P2)> E(P1)+ E(P2)抽象

13、抽象就是抽出事物的本質(zhì)特性而暫不考慮它們的細(xì)節(jié)逐步求精為了能集中精力解決主要問(wèn)題而盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮。信息隱藏和局部化信息隱藏原理:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。局部化: 把一些關(guān)系密切的軟件元素物理地放得彼此靠近。模塊獨(dú)立每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的子功能,并且與其它模塊間的接口簡(jiǎn)單。模塊獨(dú)立性的衡量標(biāo)準(zhǔn)模塊內(nèi)聚(Cohension) :

14、模塊內(nèi)各元素交互的程度模塊耦合(Coupling) :模塊間交互程度,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,15,總體設(shè)計(jì),各種耦合的含義設(shè)計(jì)時(shí)力爭(zhēng)做到低耦合。應(yīng)該采取的設(shè)計(jì)原則是:盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公用耦合的范圍,完全不用內(nèi)容耦合。,耦合內(nèi)容耦合共用耦合控制耦合印記(特征)耦合數(shù)據(jù)耦合,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,16,總體設(shè)計(jì),各種內(nèi)聚的含義設(shè)計(jì)時(shí)力爭(zhēng)做到高內(nèi)聚,并且能夠辨認(rèn)

15、出低內(nèi)聚的模塊,通過(guò)修改設(shè)計(jì)提高模塊的內(nèi)聚程度。,內(nèi)聚偶然性內(nèi)聚邏輯性內(nèi)聚時(shí)間性內(nèi)聚過(guò)程性內(nèi)聚通信性內(nèi)聚順序內(nèi)聚功能性內(nèi)聚信息性內(nèi)聚,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,17,總體設(shè)計(jì),啟發(fā)規(guī)則改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性模塊規(guī)模應(yīng)該適中深度、寬度、扇出和扇入都應(yīng)適當(dāng)模塊的作用域應(yīng)該在控制域之內(nèi)模塊的作用域:受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合。模塊的控制域:模塊本身以及所有直接或間接從屬于它的模塊的集合

16、。所有受判定影響的模塊應(yīng)該都從屬于做出判定的那個(gè)模塊,最好局限于做出判定的那個(gè)模塊本身及它的直屬下級(jí)模塊。力爭(zhēng)降低模塊接口的復(fù)雜程度設(shè)計(jì)單入口單出口的模塊模塊功能應(yīng)該可以預(yù)測(cè),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,18,總體設(shè)計(jì),模塊的判定作用范圍(a) 差的結(jié)構(gòu)圖; (b) 不理想的結(jié)構(gòu)圖; (c) 理想的結(jié)構(gòu)圖,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,19,總體設(shè)計(jì),結(jié)構(gòu)圖描述軟件系統(tǒng)的模塊層次結(jié)構(gòu),清楚地反映出程序

17、中各模塊之間的調(diào)用關(guān)系和數(shù)據(jù)傳遞。,選擇調(diào)用,循環(huán)調(diào)用,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,20,總體設(shè)計(jì),面向數(shù)據(jù)流的設(shè)計(jì)方法基本思想: DFD ? 結(jié)構(gòu)圖兩種信息流類型變換流:掌握從變換流到初始結(jié)構(gòu)圖的轉(zhuǎn)換事務(wù)流,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,21,詳細(xì)設(shè)計(jì),詳細(xì)設(shè)計(jì)的任務(wù)不是具體地編寫(xiě)程序,而是設(shè)計(jì)程序的“藍(lán)圖”,確定每個(gè)模塊的處理過(guò)程。結(jié)構(gòu)程序設(shè)計(jì)自頂向下逐步求精;具有單入、單出的控制結(jié)構(gòu)(取消

18、GOTO語(yǔ)句);結(jié)構(gòu)化定理:任何單入口單出口的程序都可以由“順序”、“選擇”和“循環(huán)”三種基本結(jié)構(gòu)實(shí)現(xiàn)。過(guò)程設(shè)計(jì)的工具(重點(diǎn)是畫(huà)圖)程序流程圖盒圖PAD圖判定表,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,22,詳細(xì)設(shè)計(jì),程序流程圖的基本符號(hào),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,23,詳細(xì)設(shè)計(jì),PAD圖的基本符號(hào),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,24,詳細(xì)設(shè)計(jì),判定表,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,25,實(shí)

19、現(xiàn),編碼風(fēng)格編碼風(fēng)格的作用就是使代碼容易讀;風(fēng)格良好的代碼更容易閱讀和理解,錯(cuò)誤更少;使用一致和有意義的標(biāo)識(shí)符名用縮進(jìn)顯示程序結(jié)構(gòu)用加括號(hào)的方式排除二義性避免大量使用循環(huán)嵌套和條件嵌套當(dāng)心運(yùn)算符的副作用把數(shù)定義稱常量利用sizeof()計(jì)算對(duì)象的大小清晰的代碼,而非最巧妙的代碼程序的注釋序言性注釋和功能性注釋對(duì)一段程序注釋,而不是每一個(gè)語(yǔ)句使用數(shù)據(jù)結(jié)束標(biāo)記(EOF、BOF),不要指定數(shù)據(jù)的數(shù)目來(lái)判斷文件的結(jié)束

20、。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,26,實(shí)現(xiàn),測(cè)試測(cè)試的目的就是在軟件投入生產(chǎn)性運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程。調(diào)試的目的是診斷并改正錯(cuò)誤。對(duì)軟件規(guī)格說(shuō)明、設(shè)計(jì)和編碼的最后復(fù)審。開(kāi)發(fā)總工作量的40%以上,極端情況下,其他開(kāi)發(fā)步驟總成本的3倍到5倍。好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案。成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。測(cè)試只能查找

21、出程序中的錯(cuò)誤,不能證明程序中沒(méi)有錯(cuò)誤。Pareto原理:80%的錯(cuò)誤很可能是20%的模塊造成的。從“小規(guī)模”測(cè)試逐步到“大規(guī)?!睖y(cè)試。 窮舉測(cè)試是不可能的。為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方從事測(cè)試工作。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,27,實(shí)現(xiàn),測(cè)試方法黑盒測(cè)試:又稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試白盒測(cè)試:又稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試測(cè)試步驟模塊測(cè)試(單元測(cè)試)在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)的

22、錯(cuò)誤子系統(tǒng)測(cè)試模塊放在一起形成一個(gè)子系統(tǒng)來(lái)測(cè)試著重測(cè)試模塊的接口系統(tǒng)測(cè)試經(jīng)過(guò)測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來(lái)測(cè)試發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說(shuō)明中的錯(cuò)誤驗(yàn)收測(cè)試(確認(rèn)測(cè)試)它的目標(biāo)是驗(yàn)證軟件的有效性(如果軟件的功能和性能如同用戶所合理期待的那樣,軟件就是有效的)用戶積極參與,可能主要使用實(shí)際數(shù)據(jù)進(jìn)行測(cè)試發(fā)現(xiàn)的往往是系統(tǒng)需求說(shuō)明書(shū)中的錯(cuò)誤平行運(yùn)行,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,28,實(shí)現(xiàn),

23、回歸測(cè)試回歸測(cè)試是指重新執(zhí)行已經(jīng)做過(guò)的測(cè)試的某個(gè)子集,以保證變化(程序改錯(cuò)、新模塊加入等)沒(méi)有帶來(lái)非預(yù)期的副作用。(?) Alpha測(cè)試Alpha測(cè)試由用戶在開(kāi)發(fā)者的場(chǎng)所進(jìn)行,并且在開(kāi)發(fā)者對(duì)用戶的“指導(dǎo)”下進(jìn)行測(cè)試。開(kāi)發(fā)者負(fù)責(zé)記錄發(fā)現(xiàn)的錯(cuò)誤和使用中遇到的問(wèn)題。總之,Alpha測(cè)試是在受控的環(huán)境中進(jìn)行的。(?) Beta測(cè)試軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測(cè)試。開(kāi)發(fā)者通常不在測(cè)試現(xiàn)場(chǎng),是在開(kāi)發(fā)者無(wú)法控制的環(huán)境

24、下進(jìn)行的軟件現(xiàn)場(chǎng)應(yīng)用。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,29,實(shí)現(xiàn),集成測(cè)試方法非漸增式集成先分別測(cè)試每個(gè)模塊,再把所有模塊按設(shè)計(jì)要求放在一起結(jié)合成所要的程序。先進(jìn)行單元測(cè)試,再進(jìn)行集成測(cè)試漸增式集成將單元測(cè)試與集成測(cè)試結(jié)合在一起,把下一個(gè)要測(cè)試的模塊同已經(jīng)測(cè)試好的那些模塊結(jié)合起來(lái)進(jìn)行測(cè)試,測(cè)試完以后再把下一個(gè)應(yīng)該測(cè)試的模塊結(jié)合進(jìn)來(lái)測(cè)試。自頂向下(Top-Down)集成自底往上(Bottom-Up)集成三明治式

25、(Sandwich)集成,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,30,實(shí)現(xiàn),幾種集成測(cè)試方法的優(yōu)缺點(diǎn),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,31,實(shí)現(xiàn),白盒測(cè)試技術(shù):邏輯覆蓋定義:以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)類型語(yǔ)句覆蓋:選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程序中每個(gè)語(yǔ)句至少執(zhí)行一次。 判定覆蓋:判定覆蓋又叫分支覆蓋,選擇足夠多的測(cè)試數(shù)據(jù)使每個(gè)判定的每個(gè)分支都至少執(zhí)行一次。條件覆蓋:選擇足夠多的測(cè)試數(shù)據(jù)使每個(gè)判定

26、表達(dá)式中的每個(gè)條件都取到各種可能的結(jié)果判定/條件覆蓋:選取足夠多的測(cè)試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)條件都取到各種可能的值,而且每個(gè)判定表達(dá)式也都取到各種可能的結(jié)果。條件組合覆蓋:選取足夠多的測(cè)試數(shù)據(jù),使得每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。設(shè)計(jì)測(cè)試用例(會(huì)做),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,32,實(shí)現(xiàn),黑盒測(cè)試技術(shù)等價(jià)劃分把程序的輸入域劃分成若干個(gè)數(shù)據(jù)類,每類中的一個(gè)典型值在測(cè)試中的作用與這一類中所有其

27、他值的作用相同。據(jù)此導(dǎo)出測(cè)試用例。設(shè)計(jì)測(cè)試用例(1) 設(shè)計(jì)一個(gè)新的測(cè)試方案以盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步驟直到所有有效等價(jià)類都被覆蓋為止;(2) 設(shè)計(jì)一個(gè)新的測(cè)試方案,使它覆蓋一個(gè)而且只覆蓋一個(gè)尚未被覆蓋的無(wú)效等價(jià)類,重復(fù)這一步驟直到所有無(wú)效等價(jià)類都被覆蓋為止。邊界值分析著重測(cè)試輸入等價(jià)類和輸出等價(jià)類的邊界,選取的測(cè)試數(shù)據(jù)應(yīng)該剛好等于、剛剛小于和剛剛大于邊界值。會(huì)用等價(jià)劃分和邊界值分析法設(shè)計(jì)測(cè)試用例,20

28、24/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,33,維護(hù),所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程。保證軟件在一個(gè)相當(dāng)長(zhǎng)的時(shí)期能夠正常運(yùn)行。60%以上, 這個(gè)百分比還在持續(xù)上升。維護(hù)類型改正性維護(hù)診斷和改正錯(cuò)誤的過(guò)程。17%~21%適應(yīng)性維護(hù)為了適應(yīng)環(huán)境的變化進(jìn)行的修改軟件的活動(dòng)。 18%~25%完善性維護(hù)增加新功能或修改已有功能。 50%~66%預(yù)防性維護(hù)為了改進(jìn)未來(lái)的可維護(hù)

29、性或可靠性,或?yàn)榱私o未來(lái)的改進(jìn)奠定更好的基礎(chǔ)而修改軟件。4%左右,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,34,維護(hù),可維護(hù)性:維護(hù)人員理解、改正、改動(dòng)或改進(jìn)這個(gè)軟件的難易程度。提高可維護(hù)性是支配軟件工程方法學(xué)所有步驟的關(guān)鍵目標(biāo)。決定軟件可維護(hù)性的因素1)可理解性2)可測(cè)試性3)可修改性4)可移植性5)可重用性,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,35,面向?qū)ο蠓椒▽W(xué)引論,面向?qū)ο蠓椒▽W(xué)的4個(gè)要點(diǎn)客觀世界是由各種對(duì)象

30、(Object)組成。面向?qū)ο蟮能浖到y(tǒng)是由對(duì)象組成的。對(duì)象組成對(duì)象類(Class)。類是具有相同屬性和行為的對(duì)象的集合。每個(gè)對(duì)象類定義了一組數(shù)據(jù)和一組方法。按照子類(派生類)與父類(基類)的關(guān)系,對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(類等級(jí))。子類繼承(inheritance)父類的數(shù)據(jù)和方法。對(duì)象彼此之間僅能通過(guò)傳遞消息(Message)互相聯(lián)系。,OO=objects+classes+inheritance+communicatio

31、n with messages面向?qū)ο?= 對(duì)象 + 類 + 繼承 + 消息通信,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,36,面向?qū)ο蠓椒▽W(xué)引論,總存在用錯(cuò)誤的數(shù)據(jù)調(diào)用正確的模塊,或用正確的數(shù)據(jù)調(diào)用錯(cuò)誤的模塊的危險(xiǎn)。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,37,面向?qū)ο蠓椒▽W(xué)引論,面向?qū)ο蟮囊恍└拍顚?duì)象:封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作(服務(wù)或方法)的封裝體。類:具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的集合消息

32、:要求某個(gè)對(duì)象執(zhí)行在定義它的那個(gè)類中所定義的某個(gè)操作的規(guī)格說(shuō)明。方法:對(duì)象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。(如C++的成員函數(shù))屬性:類中所定義的數(shù)據(jù)(如C++的數(shù)據(jù)成員)封裝:表示對(duì)象狀態(tài)的數(shù)據(jù)和實(shí)現(xiàn)操作的代碼與局部數(shù)據(jù),都被封裝在黑盒子里面,不能從外面直接訪問(wèn)或修改這些數(shù)據(jù)和代碼。繼承:是子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法的機(jī)制。多態(tài)性:同一方法,不同的子類有不同的實(shí)現(xiàn)。函數(shù)重載:是指在同一作用域內(nèi)的若干個(gè)參數(shù)

33、特征不同的函數(shù)可以使用相同的函數(shù)名字。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,38,面向?qū)ο蠓治?面向?qū)ο蠓治龌卷樞驅(qū)ふ翌悾?amp;-對(duì)象;識(shí)別結(jié)構(gòu);識(shí)別主題;定義屬性;建立動(dòng)態(tài)模型;建立功能模型;定義服務(wù)。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,39,面向?qū)ο蠓椒▽W(xué),面向?qū)ο蠼HN模型對(duì)象模型:它是對(duì)模擬客觀世界實(shí)體的對(duì)象以及對(duì)象彼此間的關(guān)系的映射,描述系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)。動(dòng)態(tài)模型:描述系統(tǒng)的控制結(jié)構(gòu)。功能

34、模型:描述系統(tǒng)的功能建模圖形工具(根據(jù)描述畫(huà)圖)類圖:類圖描述類及類與類之間的靜態(tài)關(guān)系(關(guān)聯(lián)、聚集、泛化等)。類的狀態(tài)圖:通過(guò)描繪對(duì)象的狀態(tài)及引起對(duì)象狀態(tài)轉(zhuǎn)換的事件,來(lái)表示對(duì)象的行為。用例圖:描述的是外部行為者所理解的系統(tǒng)功能。系統(tǒng)、行為者、用例及用例之間的關(guān)系。 事件跟蹤圖(順序圖),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,40,面向?qū)ο笤O(shè)計(jì),面向?qū)ο笤O(shè)計(jì)的任務(wù)系統(tǒng)設(shè)計(jì): 確定實(shí)現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu);對(duì)象設(shè)計(jì)

35、: 確定解空間中的類、關(guān)聯(lián)、接口形式及實(shí)現(xiàn)服務(wù)的算法。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,41,面向?qū)ο笤O(shè)計(jì),面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則模塊化、抽象、信息隱藏耦合(1) 交互耦合對(duì)象之間的耦合通過(guò)消息連接來(lái)實(shí)現(xiàn),則這種耦合就是交互耦合。應(yīng)該盡量減少消息中包含的參數(shù)個(gè)數(shù),降低參數(shù)的復(fù)雜程度。減少對(duì)象發(fā)送(或接收)的消息數(shù)。(2) 繼承耦合繼承是一般化類與特殊類之間耦合的一種形式。設(shè)計(jì)應(yīng)該使特殊類盡量多繼承并使用其一般化類的屬

36、性和服務(wù)。內(nèi)聚(1) 服務(wù)內(nèi)聚一個(gè)服務(wù)應(yīng)該完成一個(gè)且僅完成一個(gè)功能。(2) 類內(nèi)聚類的屬性和服務(wù)應(yīng)該全都是完成該類對(duì)象的任務(wù)所必需的,其中不包含無(wú)用的屬性或服務(wù)。(3) 一般-特殊內(nèi)聚一般-特殊結(jié)構(gòu)應(yīng)該是對(duì)相應(yīng)的領(lǐng)域知識(shí)的正確抽取。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,42,面向?qū)ο笤O(shè)計(jì),重用重用有兩方面的含義: 一是盡量使用已有的類,二是如果確實(shí)需要?jiǎng)?chuàng)建新類,則在設(shè)計(jì)這些新類的協(xié)議時(shí),應(yīng)該考慮將來(lái)的可重復(fù)使用性

37、。類構(gòu)件的重用方式(1) 實(shí)例重用按照需要?jiǎng)?chuàng)建類的實(shí)例用幾個(gè)簡(jiǎn)單的對(duì)象作為類的成員創(chuàng)建出一個(gè)更復(fù)雜的類。(2) 繼承重用為提高繼承重用的效果,關(guān)鍵是設(shè)計(jì)一個(gè)合理的、具有一定深度的類構(gòu)件繼承層次結(jié)構(gòu)。(3) 多態(tài)重用利用多態(tài)性不僅可以使對(duì)象的對(duì)外接口更加一般化,從而降低了消息連接的復(fù)雜程度,而且還提供了一種簡(jiǎn)便可靠的軟構(gòu)件組合機(jī)制。轉(zhuǎn)換接口:類構(gòu)件在重用時(shí)都必須重新定義的服務(wù)的集合。擴(kuò)充接口:如果在派生類中沒(méi)有給出擴(kuò)充

38、接口的新算法,則將繼承父類中的算法。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,43,面向?qū)ο笤O(shè)計(jì),子系統(tǒng)間的交互方式客戶-供應(yīng)商關(guān)系:?jiǎn)蜗蚪换?“客戶” 子系統(tǒng)調(diào)用 “供應(yīng)商” 子系統(tǒng), “供應(yīng)商” 子系統(tǒng)完成某些服務(wù)工作并返回結(jié)果。(2) 平等伙伴關(guān)系:雙向交互每個(gè)子系統(tǒng)都可能調(diào)用其他子系統(tǒng),因此,每個(gè)子系統(tǒng)都必須了解其他子系統(tǒng)的接口。,2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,44,面向?qū)ο笤O(shè)計(jì),設(shè)計(jì)關(guān)聯(lián)實(shí)現(xiàn)關(guān)聯(lián)的具體策

39、略單向遍歷雙向遍歷用屬性實(shí)現(xiàn)兩個(gè)方向的關(guān)聯(lián)用獨(dú)立的關(guān)聯(lián)對(duì)象實(shí)現(xiàn)雙向關(guān)聯(lián),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,45,面向?qū)ο笤O(shè)計(jì),1,用屬性實(shí)現(xiàn)一個(gè)方向的關(guān)聯(lián),2,用屬性實(shí)現(xiàn)兩個(gè)方向的關(guān)聯(lián),3,用獨(dú)立的關(guān)聯(lián)對(duì)象實(shí)現(xiàn)雙向關(guān)聯(lián),2024/3/27,上海大學(xué)計(jì)算機(jī)學(xué)院,46,面向?qū)ο笤O(shè)計(jì),設(shè)計(jì)優(yōu)化提高效率的幾項(xiàng)技術(shù)(1)增加冗余關(guān)聯(lián)以提高訪問(wèn)效率(2)調(diào)整查詢次序(3)保留派生屬性調(diào)整繼承關(guān)系(1)抽象與具體(2)為提

溫馨提示

  • 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ù)僅提供信息存儲(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)論