軟件工程導(dǎo)論復(fù)習(xí)重點總結(jié)很全(第六版)_第1頁
軟件工程導(dǎo)論復(fù)習(xí)重點總結(jié)很全(第六版)_第2頁
軟件工程導(dǎo)論復(fù)習(xí)重點總結(jié)很全(第六版)_第3頁
軟件工程導(dǎo)論復(fù)習(xí)重點總結(jié)很全(第六版)_第4頁
軟件工程導(dǎo)論復(fù)習(xí)重點總結(jié)很全(第六版)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程導(dǎo)論復(fù)習(xí)重點總結(jié)很全(第六版)第1章軟件工程學(xué)概述1.1軟件危機(jī)1.1.1軟件危機(jī)的介紹軟件危機(jī)(軟件蕭條、軟件困擾:是指在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。軟件危機(jī)包含下述兩方面的問題:如何開發(fā)軟件,滿足對軟件日益增長的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件。軟件危機(jī)的典型表現(xiàn):1對軟件開發(fā)成本和進(jìn)度的估計常常很不準(zhǔn)確;2用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;3軟件產(chǎn)品的質(zhì)量往往靠不住;4軟件常常是不可維護(hù)的;5軟件通常沒有適當(dāng)?shù)奈臋n資料;6軟件成本在計算機(jī)系統(tǒng)總成本中所占的比例逐年上升;7軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計算機(jī)應(yīng)用迅速普及深入的趨勢。1.1.2產(chǎn)生軟件危機(jī)的緣故原由1與軟件本身的特點有關(guān)2與軟件開發(fā)與維護(hù)的方法不正確有關(guān)1.1.3消除軟件危機(jī)的途徑對計算機(jī)軟件有正確的認(rèn)識。認(rèn)識到軟件開發(fā)是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項目。應(yīng)該推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法,并繼續(xù)研究探索。應(yīng)該開發(fā)和使用更好的軟件工具??傊?為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具,又要有必要的組織管理措施。1.21.2.1軟件工程的介紹軟件工程:是指導(dǎo)計算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。(期中考軟件工程的本質(zhì)特性:軟件工程關(guān)注于大型程序的構(gòu)造軟件工程的中心課題是控制復(fù)雜性軟件經(jīng)常變化開辟軟件的效率非常重要和諧地合作是開辟軟件的樞紐軟件必須有效地支持它的用戶在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品1.2.2軟件工程的基本原理用分階段的生命周期計劃嚴(yán)格管理保持進(jìn)行階段評審實行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計技術(shù)結(jié)果應(yīng)能清楚地審查開辟小組的人員應(yīng)該少而精承認(rèn)不竭改良軟件工程實踐的必要性1.2.3軟件工程方法學(xué)軟件工程包括技術(shù)和管理兩方面的內(nèi)容。軟件工程方法學(xué)3要素:方法、工具、過程1.傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型——強(qiáng)調(diào)自頂向下2.面向?qū)ο蠓椒▽W(xué)——強(qiáng)調(diào)自動地多次反復(fù)迭代面向?qū)ο蠓椒▽W(xué)4個要點:對象、類、繼承、消息1.3軟件生命周期(必考三個時期八個階段:軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)(也稱為軟件維護(hù)三個時期組成,每個時期又進(jìn)一步劃分成若干個階段。三個時期:八個階段:軟件生命周期軟件定義軟件開發(fā)軟件維護(hù)問題定義可行性研究需求分析概要設(shè)計詳細(xì)設(shè)想編碼和單元測試綜合測試運(yùn)行維護(hù)系統(tǒng)設(shè)計系統(tǒng)實現(xiàn)1.4軟件過程1.4.1瀑布模型1.4.2快速原型模型1.4.3增量模型1.4.4螺旋模型1.4.5噴泉模型第2章可行性研究2.1可行性研究的任務(wù)可行性研究的目的:不是解決問題,而是確定問題是否值得去解決??尚行匝芯康膶嵸|(zhì):進(jìn)行一次大大壓縮簡化了的系統(tǒng)分析和設(shè)想的過程,也就是在較高條理上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)想的過程??尚行匝芯康膬?nèi)容:第一進(jìn)一步分析和澄清問題定義,導(dǎo)出系統(tǒng)的邏輯模型;然后從系統(tǒng)邏輯模型出發(fā),探索若干種可供選擇的主要解法(即系統(tǒng)實現(xiàn)方案;對每種解法都研究它的可行性,至少應(yīng)該從三方面研究每種解法的可行性。主要方面:技術(shù)可行性,經(jīng)濟(jì)可行性,操作可行性。其他方面:運(yùn)行可行性,法律可行性。2.2可行性研究過程1.復(fù)查系統(tǒng)規(guī)模和目標(biāo)2.研究現(xiàn)在正在使用的系統(tǒng)3.導(dǎo)出新系統(tǒng)的高層邏輯模型4.進(jìn)一步定義問題5.導(dǎo)出和評價供挑選的解法6.推薦行動方針7.草擬開辟計劃8.謄寫文檔提交審查2.3系統(tǒng)流程圖系統(tǒng)流程圖:是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動的情況,而不是對數(shù)據(jù)進(jìn)行加工處理的控制過程。2.4數(shù)據(jù)流圖2.4.1符號基本符號:數(shù)據(jù)存儲:數(shù)據(jù)存儲是處于靜止?fàn)顟B(tài)的數(shù)據(jù);數(shù)據(jù)流:數(shù)據(jù)流是處于運(yùn)動中的數(shù)據(jù)。附加符號:星號(*:表示“與”關(guān)系加號(+:表示“或”關(guān)系異或(⊕:表示互斥關(guān)系2.5數(shù)據(jù)字典數(shù)據(jù)流圖和數(shù)據(jù)字典共同組成系統(tǒng)的邏輯模型。2.5.1數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典的組成:數(shù)據(jù)流數(shù)據(jù)流分量(即數(shù)據(jù)元素數(shù)據(jù)存儲處理2.5.2定義數(shù)據(jù)的方法方法:對數(shù)據(jù)自頂向下分解。數(shù)據(jù)組成方式(三種基本類型:順序選擇重復(fù)附加類型:可選符號:意思是等價于(或定義為;意思是和(即,毗連兩個分量;意思是或(即,從方括弧內(nèi)列出的若干個分量中選擇一個,通常用“|”號隔開供選擇的分量;意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量;常常使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧。意思是可選(即,圓括弧里的分量可有可無。2.5.3數(shù)據(jù)字典的實現(xiàn)計算機(jī)實現(xiàn)人工實現(xiàn)2.6成本/效益分析2.6.1成本估計:1.代碼行技術(shù)2.任務(wù)分解技術(shù)3.自動估計成本技術(shù)2.6.2成本/效益分析的方法成本/效益分析涉及的4個概念:1.貨幣的時間價值2.投資回收期3.純支出4.投資回收率:P=F1/(1+j+F2/(1+j2+…+Fn(1+jn第3章需求分析需求分析的任務(wù):需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)是正確地回覆“系統(tǒng)必須做什么?”這個問題??隙ㄏ到y(tǒng)必須完成哪些工作,也就是對方針系統(tǒng)提出完整、正確、清晰、具體的要求。系統(tǒng)分析員應(yīng)該寫出軟件需求規(guī)格仿單,以書面方式正確地描述軟件需求3.1需求分析的任務(wù)肯定對系統(tǒng)的綜合要求分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型修正系統(tǒng)開辟計劃3.1.1肯定對系統(tǒng)的綜合要求1.功能需求2.性能需求3.可靠性和可用性需求4.出錯處理需求5.接口需求6.約束7.逆向需求8.將來大概提出的要求3.1.2分析系統(tǒng)的數(shù)據(jù)要求樹立數(shù)據(jù)模型——ER圖描繪數(shù)據(jù)結(jié)構(gòu)——層次方框圖和Warnier圖數(shù)據(jù)結(jié)構(gòu)規(guī)范化3.2與用戶溝通獲取需求的方法訪談:1.正式訪談2.非正式訪談3.調(diào)查表4.情景分析技術(shù)面向數(shù)據(jù)流自頂向下求精簡易的使用規(guī)格說明技術(shù)快速建立軟件原型:(1第四代技術(shù)(4GL(2可重用的軟件構(gòu)件(3形式化規(guī)格說明和原型環(huán)境3.3分析建模與規(guī)格說明3.3.1分析建模需求分析過程應(yīng)該建立3種模型:數(shù)據(jù)模型功能模型行為模型數(shù)據(jù)字典是分析模型的中心實體-接洽圖用于樹立數(shù)據(jù)模型的圖形數(shù)據(jù)流圖是樹立功能模型的根蒂根基狀態(tài)轉(zhuǎn)換圖是行為建模的根蒂根基3.4實體-聯(lián)系圖數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息:數(shù)據(jù)對象、數(shù)據(jù)對象的屬性、數(shù)據(jù)對象彼此間相互連接的關(guān)系3.4狀態(tài)轉(zhuǎn)換圖3.6.1狀態(tài)狀態(tài)圖分類:表示系統(tǒng)循環(huán)運(yùn)行過程,通常不關(guān)心循環(huán)是怎樣啟動的。表示系統(tǒng)單程生命期,需要標(biāo)明初始狀態(tài)和最終狀態(tài)。3.6.2事件事件就是引起系統(tǒng)做舉措或(和轉(zhuǎn)換狀態(tài)的控制信息。3.6.3符號3.7其他圖形工具3.7.1條理方框圖3.7.2Warnier圖3.7.3IPO圖3.8驗證軟件需求(重點3.8.1從哪些方面驗證軟件需求的正確性一致性完整性現(xiàn)實性有效性第五章總體設(shè)計5.1設(shè)想過程由兩個主要階段組成:系統(tǒng)設(shè)計階段,確定系統(tǒng)的具體實現(xiàn)方案:設(shè)想供選擇的方案選取合理的方案推薦最佳方案結(jié)構(gòu)設(shè)計階段,確定軟件結(jié)構(gòu):功能分解設(shè)計軟件結(jié)構(gòu)設(shè)計數(shù)據(jù)庫制定測試文檔書寫文檔審查和復(fù)查5.2設(shè)計原理5.2.1模塊化模塊化的作用:采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計也容易閱讀和理解。模塊化使軟件容易測試和調(diào)試,因而有助于提高軟件的可靠性。模塊化能夠提高軟件的可修改性。模塊化也有助于軟件開發(fā)工程的組織管理。5.2.2抽象5.2.3逐步求精5.2.4信息隱藏和局部化5.2.5模塊獨立盡可能使用數(shù)據(jù)耦合。少用控制耦合和特征耦合。限制公共環(huán)境耦合的范圍。完整不用內(nèi)容耦合。七種內(nèi)聚的優(yōu)劣評分結(jié)果:高內(nèi)聚:功能內(nèi)聚順序內(nèi)聚中內(nèi)聚:通信內(nèi)聚過程內(nèi)聚低內(nèi)聚:工夫內(nèi)聚邏輯內(nèi)聚偶然內(nèi)聚5.3啟發(fā)規(guī)則1.改良軟件結(jié)構(gòu)提高模塊自力性2.模塊規(guī)模應(yīng)該適中3.深度、寬度、扇出和扇入都應(yīng)適當(dāng)4.模塊的作用域應(yīng)該在控制域以內(nèi)5.力爭下降模塊接口的復(fù)雜程度6.設(shè)計單入口單出口的模塊7.模塊功能應(yīng)該可以預(yù)測5.4描繪軟件結(jié)構(gòu)的圖形工具5.4.1層次圖和HIPO圖1.層次圖(H圖條理圖用來描繪軟件的條理結(jié)構(gòu)。很適于在自頂向下設(shè)想軟件的過程中使用。2.HIPO圖5.4.2結(jié)構(gòu)圖5.5面向數(shù)據(jù)流的設(shè)計方法結(jié)構(gòu)化設(shè)計方法(簡稱SD方法,也就是基于數(shù)據(jù)流的設(shè)計方法。5.5.1概念面向數(shù)據(jù)流的設(shè)計方法把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法。信息流有兩種類型:變換流事務(wù)流第6章詳細(xì)設(shè)計6.1結(jié)構(gòu)程序設(shè)計經(jīng)典的結(jié)構(gòu)程序設(shè)計:只允許使用順序、IF-THEN-ELSE型分支和DO-WHILE型循環(huán)這3種基本控制結(jié)構(gòu);擴(kuò)展的結(jié)構(gòu)程序設(shè)計:如果除了上述3種基本控制結(jié)構(gòu)之外,還允許使用DO-CASE型多分支結(jié)構(gòu)和DO-UNTIL型循環(huán)結(jié)構(gòu);修正的結(jié)構(gòu)程序設(shè)計:再加上允許使用LEAVE(或BREAK結(jié)構(gòu)。6.2人機(jī)界面設(shè)想6.2.1設(shè)想問題設(shè)想人機(jī)界面過程中會遇到的4個問題:系統(tǒng)響應(yīng)工夫:長度易變性用戶幫助設(shè)施:集成的幫助設(shè)施附加的幫助設(shè)施出錯信息處理敕令交互6.2.3人機(jī)界面設(shè)計指南一般交互指南信息顯示指南數(shù)據(jù)輸入指南6.3過程設(shè)計的工具6.3.1程序流程圖(程序框圖程序流程圖的主要瑕玷:程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。6.3.2盒圖(N-S圖盒圖具有下述特點:功能域明白。不大概任意轉(zhuǎn)移控制。很容易確定局部和全程數(shù)據(jù)的作用域。很容易施展闡發(fā)嵌套關(guān)系,也能夠表示模塊的條理結(jié)構(gòu)。6.3.3PAD圖它用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。PAD圖的主要優(yōu)點以下:使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號設(shè)計出來的程序必然是結(jié)構(gòu)化程序。PAD圖所描繪的程序結(jié)構(gòu)非常清晰。PAD圖表現(xiàn)程序邏輯易讀、易懂、易記。容易將PAD圖轉(zhuǎn)換成高級語言源程序,這種轉(zhuǎn)換可用軟件工具自動完成。即可表示程序邏輯,也可描繪數(shù)據(jù)結(jié)構(gòu)。PAD圖的符號支持自頂向下、逐步求精方法的使用。6.3.4斷定表判定表卻能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系。判定表的缺點:判定表的含義不是一眼就能看出來的,初次接觸這種工具的人理解它需要有一個簡短的學(xué)習(xí)過程。當(dāng)數(shù)據(jù)元素的值多于兩個時,判定表的簡潔程度也將下降。6.3.5斷定樹斷定樹的優(yōu)點:它的形式簡單,一眼就可以看出其含義,因此易于掌握和使用。斷定樹的瑕玷:簡潔性不如判定表,數(shù)據(jù)元素的同一個值往往要重復(fù)寫多遍,而且越接近樹的葉端重復(fù)次數(shù)越多。畫判定樹時分枝的次序可能對最終畫出的判定樹的簡潔程度有較大影響。6.3.6過程設(shè)想語言(偽碼偽代碼的基本控制結(jié)構(gòu):簡單陳述句結(jié)構(gòu):避免復(fù)合語句。判定結(jié)構(gòu):IF_THEN_ELSE或CASE_OF結(jié)構(gòu)。挑選結(jié)構(gòu):WHILE_DO或REPEAT_UNTIL結(jié)構(gòu)。PDL的優(yōu)點:能夠作為注釋間接插在源程序中央。有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。能夠使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的謄寫和編輯工作。已經(jīng)有自動處理程序存在,而且可以自動由PDL生成程序代碼。PDL的缺點:不如圖形工具形象直觀,描述復(fù)雜的條件組合與舉措間的對應(yīng)關(guān)系時,不如斷定表清晰簡單。6.4面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法的最終目標(biāo)是得出對程序處理過程的描述。6.4.1JacksonA由B、C、D3個元素順序組成根據(jù)條件A是B或C或D中的某一個A由B出現(xiàn)N次(N≥0組成6.4.2改進(jìn)的Jackson圖6.4.3Jackson方法6.5程序復(fù)雜程度的定量度量6.5.1McCabe方法1.流圖(程序圖2.計算環(huán)形復(fù)雜度的方法V(G=流圖中的區(qū)域數(shù)V(G=E-N+2其中E是流圖中的邊數(shù),N是結(jié)點數(shù)V(G=P+1其中P是流圖中判定結(jié)點的數(shù)目6.5.2Halstead方法令N1為程序中運(yùn)算符出現(xiàn)的總次數(shù),N2為操作數(shù)出現(xiàn)的總次數(shù),程序長度N定義為:N=N1+N2程序中使用的不同運(yùn)算符(包括關(guān)鍵字的個數(shù)n1,以及不同操作數(shù)(變量和常數(shù)的個數(shù)n2.預(yù)測程序長度的公式如下:H=n1log2n1+n2log2n2預(yù)測程序中包含錯誤的個數(shù)的公式如下:第7章實現(xiàn)編碼和測試統(tǒng)稱為實現(xiàn)。7.1編碼7.1.1選擇程序設(shè)計語言主要的實用標(biāo)準(zhǔn):系統(tǒng)用戶的要求可以使用的編譯程序可以得到的軟件工具工程規(guī)模程序員的常識軟件可移植性要求軟件的使用范疇7.1.2編碼風(fēng)格1.程序內(nèi)部的文檔:恰當(dāng)?shù)臉?biāo)識符適當(dāng)?shù)淖⒔獬绦虻囊曈X組織2.數(shù)據(jù)說明3.語句構(gòu)造4.輸入輸出5.效率:程序運(yùn)行時間存儲器效率輸入輸出的效率7.2軟件測試基礎(chǔ)7.2.1軟件測試的目標(biāo)測試是為了發(fā)現(xiàn)程序中的錯誤而履行程序的過程;好的測試計劃是極大概發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試計劃;成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。7.2.3測試方法黑盒測試(功能測試:把程序看作一個黑盒子;完整不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程;是在程序接口進(jìn)行的測試。白盒測試(結(jié)構(gòu)測試:把程序算作裝在一個透亮的盒子里;測試者完全知道程序的結(jié)構(gòu)和處理算法;按照程序內(nèi)部的邏輯測試程序,檢測程序中的主要履行通路是不是都能按預(yù)定要求正確工作。7.2.4測試步驟1.模塊測試(單元測試保證每個模塊作為一個單位能正確運(yùn)行;發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)想的錯誤。2.子系統(tǒng)測試把經(jīng)過單元測試的模塊放在一起形成一個子系統(tǒng)來測試;著重測試模塊的接口。3.系統(tǒng)測試把經(jīng)過測試的子系統(tǒng)裝配成一個完整的系統(tǒng)來測試;發(fā)現(xiàn)的往往是軟件設(shè)計中的錯誤,也可能發(fā)現(xiàn)需求說明中的錯誤;不論是子系統(tǒng)測試還是系統(tǒng)測試,都兼有檢測和組裝兩重含義,通常稱為集成測試。4.驗收測試(確認(rèn)測試把軟件系統(tǒng)作為單一的實體進(jìn)行測試;它是在用戶積極參與下進(jìn)行的,而且可能主要使用實際數(shù)據(jù)(系統(tǒng)將來要處理的信息進(jìn)行測試;發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯誤。5.平行運(yùn)行7.2.5測試階段的信息流輸入信息有兩類:軟件配置,包括需求說明書、設(shè)計說明書和源程序清單等;測試配置,包括測試計劃和測試方案。7.3單元測試單元測試集中檢測模塊;單位測試和編碼屬于軟件過程的統(tǒng)一個階段;能夠使用人工測試和計算機(jī)測試如許兩種分歧類型的測試方法;單元測試主要使用白盒測試技術(shù),對多個模塊的測試可以并行地進(jìn)行。7.3.1測試重點模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行通路出錯處理通路邊界條件7.3.2代碼審查由審查小組正式進(jìn)行測試稱為代碼審查;一次審查會上可以發(fā)現(xiàn)許多錯誤,可以減少系統(tǒng)驗證的總工作量。7.3.3計算機(jī)測試驅(qū)動程序是一個“主程序”,它吸收測試數(shù)據(jù),傳送給被測試的模塊,并且印出有關(guān)的結(jié)果。存根程序代替被測試的模塊所調(diào)用的模塊。它使用被它代替的模塊的接口,大概做最大批的數(shù)據(jù)操作,印出對入口的檢修或操作結(jié)果,并且把控制歸還給調(diào)用它的模塊。7.4集成測試集成測試是測試和組裝軟件的系統(tǒng)化技術(shù),主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。由模塊組裝成程序時有兩種方法:7.4.3分歧集成測試策略的比較混合策略:改進(jìn)的自頂向下測試方法混合法7.4.4回來測試7.5確認(rèn)測試確認(rèn)測試也稱為驗收測試,它的目標(biāo)是驗證軟件的有效性。7.5.3Alpha和Beta測試Alpha測試是在受控的環(huán)境中進(jìn)行的。Beta測試是軟件在開辟者不能控制的環(huán)境中的“真實”使用。1.接口測試2.路徑測試3.功能測試4.健壯性測試5.性能測試6.用戶界面測試7.信息安全測試8.壓力測試9.牢靠性測試10.安裝/反安裝測試確認(rèn)測試也稱為驗收測試,它的目標(biāo)是驗證軟件的有效性。Alpha測試是在受控的環(huán)境中進(jìn)行的。Beta測試是軟件在開辟者不能控制的環(huán)境中的“真實”使用。4.接口測試5.路徑測試6.功能測試4.健壯性測試5.機(jī)能測試6.用戶界面測試7.信息安全測試8.壓力測試9.牢靠性測試10.安裝/反安裝測試7.6白盒測試技術(shù)7.6.1邏輯覆蓋語句覆蓋判定覆蓋:比語句覆蓋強(qiáng),但對程序邏輯的覆蓋程度仍不高。條件覆蓋:判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。斷定/條件覆蓋:有時斷定/條件覆蓋也并不比條件覆蓋更強(qiáng)。條件組合覆蓋:條件組合覆蓋標(biāo)準(zhǔn)的測試數(shù)據(jù)并不一定能使程序中的每條路徑都執(zhí)行到。6.點覆蓋(語句覆蓋標(biāo)準(zhǔn)相同7.邊覆蓋(斷定覆蓋一致8.路徑覆蓋7.6.2控制結(jié)構(gòu)測試覆蓋1.基本路徑測試基本路徑測試是XXX提出的一種白盒測試技術(shù)。首先計算程序的環(huán)形復(fù)雜度;以該復(fù)雜度為指南定義履行路徑的基本集合;2.條件測試從該基本集合導(dǎo)出的測試用例可保證程序中的每條語句至少履行一次,而且每個條件在履行時都將劃分取真、假兩種值。3.循環(huán)測試循環(huán)測試是一種白盒測試技術(shù),它專注于測試循環(huán)結(jié)構(gòu)的有效性。在結(jié)構(gòu)化的程序中通常只要3種輪回,即簡單輪回、串接輪回和嵌套輪回。7.7黑盒測試技術(shù)7.7.1等價劃分7.7.2邊界值分析7.7.3錯誤推測7.9軟降牢靠性7.9.1基本概念軟件可靠性:程序在給定的工夫間隔內(nèi),按照規(guī)格仿單的規(guī)定成功地運(yùn)行的幾率。軟件的可用性:程序在給定的時間點,按照規(guī)格說明書的規(guī)定,成功地運(yùn)行的概率。第8章維護(hù)軟件工程的目的是要提高軟件的可維護(hù)性,減少軟件維護(hù)所需要的工作量,降低軟件系統(tǒng)的總成本。8.1軟件維護(hù)的定義軟件維護(hù):在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程??煞譃?項活動:改正性維護(hù)適應(yīng)性維護(hù)完善性維護(hù)預(yù)防性維護(hù)8.2軟件維護(hù)的特點8.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別巨大8.2.2維護(hù)的代價高昂8.2.3維護(hù)的問題良多8.3軟件維護(hù)過程1.維護(hù)組織2.維護(hù)報告3.維護(hù)的事件流4.保存維護(hù)記錄5.評價維護(hù)活動8.4軟件的可維護(hù)性決定軟件可維護(hù)性的因素主要有7個:可理解性可測試性可修改性可靠性可移植性可使用性效率第9章面向?qū)ο蠓椒▽W(xué)引論9.1面向?qū)ο蠓椒▽W(xué)概述9.1.1面向?qū)ο蠓椒▽W(xué)要點1認(rèn)為客觀世界是由各種對象組成的,任何事物都是對象2把所有對象都劃分成各種類對象,每個對象類都定義了一組數(shù)據(jù)和一組方法3按照子類和父類的關(guān)系,把若干個對象類組成一個條理結(jié)構(gòu)的系統(tǒng)4對象彼此之間僅能通過傳遞消息相互聯(lián)系9.1.2面向?qū)ο箝_發(fā)方法面向?qū)ο?對象+類+繼承+通信9.1.4面向?qū)ο蠓椒ńM成面向?qū)ο蟮姆治雒嫦驅(qū)ο蟮脑O(shè)想面向?qū)ο蟮某绦蛟O(shè)計9.1.6面向?qū)ο蠓椒ǖ膬?yōu)點1.與人類習(xí)慣的思維方式一致2.穩(wěn)定性好3.可重用性好4.可維護(hù)性好5.較易開發(fā)大型軟件產(chǎn)品9.2面向?qū)ο蟮母拍?.2.1對象是客觀事物或概念的抽象表述,即對客觀存在的事物的描述統(tǒng)稱為對象,對象可以是事、物、或抽象概念,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過程封裝在一起的實體。對象的特點1以數(shù)據(jù)為中心。2對象是自動的。3實現(xiàn)了數(shù)據(jù)封裝。4本質(zhì)上具有并行性。5模塊自力性好。9.2.2類是一組具有相同屬性和相同操作的對象的集合。9.2.3實例由某個特定的類所描述的一個具體的對象。9.2.4消息向?qū)ο蟀l(fā)出的服務(wù)請求(互相聯(lián)系、協(xié)同工作等。一個消息包含3個部分:接收消息的對象,消息名,消息變元9.2.5方法方法就是對象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。9.2.6屬性屬性就是類中所定義的數(shù)據(jù),它是對客觀世界實體所具有的性質(zhì)的抽象。9.2.7封裝對象封裝了對象的數(shù)據(jù)以及對這些數(shù)據(jù)的操作。9.2.8繼承(I繼承是子類自動地共享基類中定義的數(shù)據(jù)和方法的機(jī)制。單重繼承:子類僅從一個父類繼承屬性和方法多重繼承:子類可從多個父類繼承屬性和方法9.2.9多態(tài)性9.2.10重載9.3面向?qū)ο蠼?II面向?qū)ο箝_辟軟件,需求樹立3種方式的模型。對象模型。描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)—數(shù)據(jù)結(jié)構(gòu)。動態(tài)模型。描述系統(tǒng)控制結(jié)構(gòu)—執(zhí)行操作。功能模型。描述系統(tǒng)功能—數(shù)值變化。9.4對象模型9.4.1類圖的基本符號(I1.定義類2.定義屬性可見性屬性名:類型=缺省值{性質(zhì)串}可見性(visibility表示該屬性對類外的元素是不是可見。分為:public(+公有的,即模型中的任何類都可以訪問該屬性。private(-私有的,表示不能被別的類訪問。protected(#受保護(hù)的,表示該屬性只能被該類及其子類訪問。如果可見性未申明,表示其可見性不確定。3.定義操作可見性操作名(參數(shù)表:返回類型{性質(zhì)串}9.4.2表示關(guān)系的符號(I9.4.2.1關(guān)聯(lián)(I關(guān)聯(lián)表示兩個類的對象之間存在某種語義上的聯(lián)系。1普通關(guān)聯(lián)遞歸聯(lián)系關(guān)系:一個類與本身有聯(lián)系關(guān)系關(guān)系3限制聯(lián)系關(guān)系4關(guān)聯(lián)類9.4.2.2聚集(I1共享聚集假如在聚集關(guān)系中處于部分方的對象可同時參與多個處于團(tuán)體方對象的組成,則該聚集稱為共享聚集。2組合聚集假如部分類完整隸屬于團(tuán)體類,部分與團(tuán)體共存,團(tuán)體不存在了部分也會隨之消失,則該聚集稱為組合聚集。9.4.2.3泛化(I1普通泛化2受限泛化預(yù)定義的約束有4種:多重、不相交、完全和不完全。9.4.2.4依賴9.4.2.5細(xì)化9.5動態(tài)模型9.6功能模型9.6.1用例圖模型元素:系統(tǒng)、行為者、用例及用例之間的關(guān)系(擴(kuò)展關(guān)系、使用關(guān)系用例的實例是腳本第10章面向?qū)ο蠓治?0.1面向?qū)ο蠓治龅幕具^程面向?qū)ο蠓治?抽取和整理用戶需求并建立問題域精確模型的過程.理解----用戶、分析員和范疇專家表達(dá)----需求規(guī)格仿單(對象模型、動態(tài)模型、功能模型驗證----二義性,完善性對象模型最基本、最重要、最中心。靜態(tài)結(jié)構(gòu)(對象模型3個子模型交互次序(動態(tài)模型數(shù)據(jù)變換(功能模型復(fù)雜問題的對象模型的5個層次面向?qū)ο蠓治龅倪^程尋找類與對象辨認(rèn)結(jié)構(gòu)辨認(rèn)主題定義屬性樹立動態(tài)模型建立功能模型定義服務(wù)10.2需求陳述需求陳述是說明“做什么”,而不是“如何做”問題范圍功能需求機(jī)能需求應(yīng)用環(huán)境假定條件第11章面向?qū)ο笤O(shè)計11.1面向?qū)ο笤O(shè)想的準(zhǔn)則1.模塊化2.抽象3.信息隱藏4.弱耦合耦合指不同對象之間相互關(guān)聯(lián)的緊密程度。對象之間的耦合分兩類:交互耦合如果對象之間的耦合通過消息連接來實現(xiàn),則這種耦合就是交互耦合。交互耦合應(yīng)盡可能松散。繼承耦合與交互耦合相反,應(yīng)該提高繼承耦合程度。5.強(qiáng)內(nèi)聚在面向?qū)ο笤O(shè)計中存在下述3種內(nèi)聚:服務(wù)內(nèi)聚:一個服務(wù)應(yīng)該完成一個且僅完成一個功能。類內(nèi)聚:一個類應(yīng)該只有一個用途,它的屬性和服務(wù)應(yīng)該是高內(nèi)聚的。一般-特殊內(nèi)聚:設(shè)計出的一般-特殊結(jié)構(gòu),應(yīng)該符合多數(shù)人的概念6.可重用11.2啟發(fā)規(guī)則1.設(shè)計結(jié)果應(yīng)該清晰易懂2.一般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)3.設(shè)計簡單的類4.使用簡單的協(xié)議5.使用簡單的服務(wù)6.把設(shè)計變動減至最小第13章軟件項目管理軟件工程計劃控制度量軟件規(guī)模估算工作量進(jìn)度計劃風(fēng)險管理質(zhì)量保證配置管理組織明白軟件開辟的方針提供組織機(jī)構(gòu)和資源配置方面的保證保證開辟方針的實現(xiàn)技術(shù)管理13.1估算軟件規(guī)模13.1.1代碼行技術(shù)估算方法:由多名有經(jīng)驗的軟件工程師分別做出估計。每個人都估計程序的最小規(guī)模(a、最大規(guī)模(b和最可能的規(guī)模(m,分別算出這3種規(guī)模的平均值之后,再用下式計算程序規(guī)模的估計值:單位:LOC或KLOC。代碼行技術(shù)的優(yōu)點:代碼是所有軟件開發(fā)項目都有的“產(chǎn)品”,而且很容易計算代碼行數(shù);有大量參考文獻(xiàn)和數(shù)據(jù)。代碼行技術(shù)的缺點:源程序僅是軟件配置的一個成分,由源程序度量軟件規(guī)模不太合理;用不同語言實現(xiàn)同一個軟件所需要的代碼行數(shù)并不相同;不適用于非過程性語言。13.1.2功能點技術(shù)功能點技術(shù)依據(jù)對軟件信息域特性和軟件復(fù)雜性的評估結(jié)果,估算軟件規(guī)模。這種方法用功能點(FP為單位度量軟件規(guī)模。1.信

溫馨提示

  • 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

提交評論