



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.第1章軟件工程學概述1.1 軟件危機軟件危機的介紹軟件危機 ( 軟件蕭條、 軟件困擾 ) :是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。軟件危機包含下述兩方面的問題:如何開發(fā)軟件,滿足對軟件日益增長的需求;如何維護數(shù)量不斷膨脹的已有軟件。軟件危機的典型表現(xiàn):( 1)對軟件開發(fā)成本和進度的估計常常很不準確;( 2)用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;( 3)軟件產(chǎn)品的質(zhì)量往往靠不住;( 4)軟件常常是不可維護的;( 5)軟件通常沒有適當?shù)奈臋n資料;( 6)軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升;( 7)軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機應(yīng)用迅速普及深入
2、的趨勢。產(chǎn)生軟件危機的原因( 1)與軟件本身的特點有關(guān)( 2)與軟件開發(fā)與維護的方法不正確有關(guān)消除軟件危機的途徑對計算機軟件有正確的認識。認識到軟件開發(fā)是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。應(yīng)該推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法,并繼續(xù)研究探索。應(yīng)該開發(fā)和使用更好的軟件工具??傊?,為了解決軟件危機,既要有技術(shù)措施( 方法和工具 ) ,又要有必要的組織管理措施。1.2軟件工程的介紹軟件工程: 是指導計算機軟件開發(fā)和維護的一門工程學科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護軟件, 把經(jīng)過時間考驗而證明正確的管理技術(shù)和當前能夠得到的最好的技術(shù)方法結(jié)合起
3、來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它, 這就是軟件工程。 (期中考)軟件工程的本質(zhì)特性:軟件工程關(guān)注于大型程序的構(gòu)造軟件工程的中心課題是控制復雜性軟件經(jīng)常變化開發(fā)軟件的效率非常重要和諧地合作是開發(fā)軟件的關(guān)鍵軟件必須有效地支持它的用戶在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品軟件工程的基本原理用分階段的生命周期計劃嚴格管理優(yōu)質(zhì)范文.堅持進行階段評審實行嚴格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組的人員應(yīng)該少而精承認不斷改進軟件工程實踐的必要性軟件工程方法學軟件工程包括技術(shù)和管理兩方面的內(nèi)容。軟件工程方法學3 要素:方法、工具、過程1. 傳統(tǒng)方
4、法學 ( 生命周期方法學或結(jié)構(gòu)化范型 ) 強調(diào)自頂向下2. 面向?qū)ο蠓椒▽W強調(diào)主動地多次反復迭代面向?qū)ο蠓椒▽W4 個要點:對象、類、繼承、消息1.3軟件生命周期(必考)三個時期八個階段: 軟件生命周期由軟件定義、 軟件開發(fā)和運行維護 ( 也稱為軟件維護 ) 三個時期組成,每個時期又進一步劃分成若干個階段。三個時期:軟件定義軟件生命周期軟件開發(fā)八個階段:問題定義可行性研究需求分析概要設(shè)計詳細設(shè)計編碼和單元測試綜合測試系統(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ù)可
5、行性研究的目的:不是解決問題,而是確定問題是否值得去解決??尚行匝芯康膶嵸|(zhì):進行一次大大壓縮簡化了的系統(tǒng)分析和設(shè)計的過程, 也就是在較高層次上以較抽象的方式進行的系統(tǒng)分析和設(shè)計的過程??尚行匝芯康膬?nèi)容:首先進一步分析和澄清問題定義,導出系統(tǒng)的邏輯模型;然后從系統(tǒng)邏輯模型出發(fā),探索若干種可供選擇的主要解法( 即系統(tǒng)實現(xiàn)方案) ;優(yōu)質(zhì)范文.對每種解法都研究它的可行性,至少應(yīng)該從三方面研究每種解法的可行性。主要方面:技術(shù)可行性,經(jīng)濟可行性,操作可行性,其他方面:運行可行性,法律可行性,2.2可行性研究過程1. 復查系統(tǒng)規(guī)模和目標2. 研究目前正在使用的系統(tǒng)3. 導出新系統(tǒng)的高層邏輯模型4. 進一步定
6、義問題5. 導出和評價供選擇的解法6. 推薦行動方針7. 草擬開發(fā)計劃8. 書寫文檔提交審查2.3系統(tǒng)流程圖系統(tǒng)流程圖: 是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。 表達的是數(shù)據(jù)在系統(tǒng)各部件之間流動的情況,而不是對數(shù)據(jù)進行加工處理的控制過程。2.4數(shù)據(jù)流圖符號基本符號:數(shù)據(jù)存儲:數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù);數(shù)據(jù)流:數(shù)據(jù)流是處于運動中的數(shù)據(jù)。附加符號:星號( * ):表示“與”關(guān)系加號( +):表示“或”關(guān)系異或():表示互斥關(guān)系2.5 數(shù)據(jù)字典數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型。數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典的組成:數(shù)據(jù)流數(shù)據(jù)流分量 ( 即數(shù)據(jù)元素 )數(shù)據(jù)存儲處理定義數(shù)據(jù)的方法方法:對數(shù)據(jù)自頂向下分解。
7、數(shù)據(jù)組成方式 ( 三種基本類型 ) :順序選擇重復附加類型:可選優(yōu)質(zhì)范文.符號:=意思是等價于( 或定義為 ) ;+意思是和 ( 即,連接兩個分量) ; 意思是或 ( 即,從方括弧內(nèi)列出的若干個分量中選擇一個) ,通常用“ | ”號隔開供選擇的分量; 意思是重復 ( 即,重復花括弧內(nèi)的分量 ) ;常常使用上限和下限進一步注釋表示重復的花括弧。( )意思是可選 ( 即,圓括弧里的分量可有可無) 。數(shù)據(jù)字典的實現(xiàn)計算機實現(xiàn)人工實現(xiàn)2.6成本 / 效益分析2.6.1成本估計: 1. 代碼行技術(shù) 2.任務(wù)分解技術(shù) 3.自動估計成本技術(shù)2.6.2成本 / 效益分析的方法成本 / 效益分析涉及的4 個概念
8、:1. 貨幣的時間價值2. 投資回收期3. 純收入4.投資回收率:P = F1/( 1 + j ) + F2/( 1 + j )2 + Fn( 1 + j )n第3章 需求分析需求分析的任務(wù):需求分析是軟件定義時期的最后一個階段, 它的基本任務(wù)是準確地回答 “系統(tǒng)必須做什么 ?” 這個問題。確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。系統(tǒng)分析員應(yīng)該寫出軟件需求規(guī)格說明書,以書面形式準確地描述軟件需求3.1需求分析的任務(wù)確定對系統(tǒng)的綜合要求分析系統(tǒng)的數(shù)據(jù)要求導出系統(tǒng)的邏輯模型修正系統(tǒng)開發(fā)計劃確定對系統(tǒng)的綜合要求1. 功能需求2. 性能需求3. 可靠性和可用性需求4
9、. 出錯處理需求5. 接口需求6. 約束7. 逆向需求8. 將來可能提出的要求分析系統(tǒng)的數(shù)據(jù)要求建立數(shù)據(jù)模型ER圖描繪數(shù)據(jù)結(jié)構(gòu)層次方框圖和Warnier 圖優(yōu)質(zhì)范文.數(shù)據(jù)結(jié)構(gòu)規(guī)范化3.2與用戶溝通獲取需求的方法訪談: 1.正式訪談2.非正式訪談3.調(diào)查表4.情景分析技術(shù)面向數(shù)據(jù)流自頂向下求精簡易的應(yīng)用規(guī)格說明技術(shù)快速建立軟件原型:(1)第四代技術(shù) ( 4GL)(2)可重用的軟件構(gòu)件(3)形式化規(guī)格說明和原型環(huán)境3.3 分析建模與規(guī)格說明分析建模需求分析過程應(yīng)該建立3 種模型:數(shù)據(jù)模型功能模型行為模型數(shù)據(jù)字典是分析模型的核心實體 - 聯(lián)系圖用于建立數(shù)據(jù)模型的圖形數(shù)據(jù)流圖是建立功能模型的基礎(chǔ)狀態(tài)轉(zhuǎn)
10、換圖是行為建模的基礎(chǔ)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)換圖狀態(tài)狀態(tài)圖分類:表示系統(tǒng)循環(huán)運行過程,通常不關(guān)心循環(huán)是怎樣啟動的。表示系統(tǒng)單程生命期,需要標明初始狀態(tài)和最終狀態(tài)。事件事件就是引起系統(tǒng)做動作或( 和 ) 轉(zhuǎn)換狀態(tài)的控制信息。符號3.7其他圖形工具層次方框圖Warnier 圖IPO 圖3.8驗證軟件需求(重點)優(yōu)質(zhì)范文.從哪些方面驗證軟件需求的正確性一致性完整性現(xiàn)實性有效性第五章總體設(shè)計5.1 設(shè)計過程由兩個主要階段組成:系統(tǒng)設(shè)計階段, 確定系統(tǒng)的具體實現(xiàn)方案:設(shè)想供選擇的方案選取合理的方
11、案推薦最佳方案結(jié)構(gòu)設(shè)計階段,確定軟件結(jié)構(gòu): 功能分解設(shè)計軟件結(jié)構(gòu)設(shè)計數(shù)據(jù)庫制定測試文檔書寫文檔審查和復查5.2 設(shè)計原理模塊化模塊化的作用:采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計也容易閱讀和理解。模塊化使軟件容易測試和調(diào)試,因而有助于提高軟件的可靠性。模塊化能夠提高軟件的可修改性。模塊化也有助于軟件開發(fā)工程的組織管理。抽象逐步求精信息隱藏和局部化模塊獨立盡量使用數(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
12、. 模塊規(guī)模應(yīng)該適中3. 深度、寬度、扇出和扇入都應(yīng)適當優(yōu)質(zhì)范文.4.5. 模塊的作用域應(yīng)該在控制域之內(nèi)6.7. 力爭降低模塊接口的復雜程度6. 設(shè)計單入口單出口的模塊7. 模塊功能應(yīng)該可以預(yù)測5.4 描繪軟件結(jié)構(gòu)的圖形工具層次圖和 HIPO圖1. 層次圖 (H 圖)層次圖用來描繪軟件的層次結(jié)構(gòu)。很適于在自頂向下設(shè)計軟件的過程中使用。2. HIPO圖結(jié)構(gòu)圖7.5面向數(shù)據(jù)流的設(shè)計方法結(jié)構(gòu)化設(shè)計方法( 簡稱 SD方法 ) ,也就是基于數(shù)據(jù)流的設(shè)計方法。概念面向數(shù)據(jù)流的設(shè)計方法把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法。信息流有兩種類型:變換流事務(wù)流第6章詳細設(shè)計優(yōu)質(zhì)范文.6.1結(jié)構(gòu)程序設(shè)
13、計經(jīng)典的結(jié)構(gòu)程序設(shè)計:只允許使用順序、IF-THEN-ELSE 型分支和DO-WHILE型循環(huán)這3 種基本控制結(jié)構(gòu);擴展的結(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 人機界面設(shè)計設(shè)計問題設(shè)計人機界面過程中會遇到的4 個問題:系統(tǒng)響應(yīng)時間:長度易變性用戶幫助設(shè)施:集成的幫助設(shè)施附加的幫助設(shè)施出錯信息處理命令交互人機界面設(shè)計指南一般交互指南信息顯示指南數(shù)據(jù)輸入指南6.3 過程設(shè)計的工具程序流程圖(程序框圖)程序流程圖的主要缺點:程序流程圖本質(zhì)上不是逐步
14、求精的好工具, 它誘使程序員過早地考慮程序的控制流程, 而不去考慮程序的全局結(jié)構(gòu)。程序流程圖中用箭頭代表控制流, 因此程序員不受任何約束, 可以完全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。盒圖 (N-S 圖)盒圖具有下述特點:功能域明確。不可能任意轉(zhuǎn)移控制。很容易確定局部和全程數(shù)據(jù)的作用域。很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。圖它用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。優(yōu)質(zhì)范文.PAD圖的主要優(yōu)點如下:使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號設(shè)計出來的程序必然是結(jié)構(gòu)化程序。PAD圖所描繪的程序結(jié)構(gòu)十分清晰。PAD圖表現(xiàn)程序邏輯易讀、易
15、懂、易記。容易將 PAD圖轉(zhuǎn)換成高級語言源程序,這種轉(zhuǎn)換可用軟件工具自動完成。即可表示程序邏輯,也可描繪數(shù)據(jù)結(jié)構(gòu)。PAD圖的符號支持自頂向下、逐步求精方法的使用。判定表判定表卻能夠清晰地表示復雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系。條件組合矩陣所有條件條件組合所有動作對應(yīng)的動作判定表的缺點:判定表的含義不是一眼就能看出來的, 初次接觸這種工具的人理解它需要有一個簡短的學習過程。當數(shù)據(jù)元素的值多于兩個時,判定表的簡潔程度也將下降。判定樹判定樹的優(yōu)點:它的形式簡單,一眼就可以看出其含義,因此易于掌握和使用。判定樹的缺點:簡潔性不如判定表, 數(shù)據(jù)元素的同一個值往往要重復寫多遍, 而且越接近樹的葉端重
16、復次數(shù)越多。畫判定樹時分枝的次序可能對最終畫出的判定樹的簡潔程度有較大影響。過程設(shè)計語言 ( 偽碼)偽代碼的基本控制結(jié)構(gòu):簡單陳述句結(jié)構(gòu):避免復合語句。判定結(jié)構(gòu): IF_THEN_ELSE或 CASE_OF結(jié)構(gòu)。選擇結(jié)構(gòu): WHILE_DO或 REPEAT_UNTIL結(jié)構(gòu)。優(yōu)質(zhì)范文.PDL的優(yōu)點:可以作為注釋直接插在源程序中間。有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書寫和編輯工作。已經(jīng)有自動處理程序存在,而且可以自動由PDL生成程序代碼。PDL的缺點:不如圖形工具形象直觀,描述復雜的條件組合與動作間的對應(yīng)關(guān)系時,不如判定表
17、清晰簡單。6.4面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法的最終目標是得出對程序處理過程的描述。A由 B、C、D3 個元素順序組成根據(jù)條件A是 B 或 C或 D中的某一個A由 B 出現(xiàn) N次 (N 0) 組成改進的 Jackson 圖方法6.5程序復雜程度的定量度量方法1. 流圖(程序圖)11,2F T2F1T1242,343551F1T22,332. 計算環(huán)形復雜度的方法V(G)= 流圖中的區(qū)域數(shù)V(G)=E-N+2其中 E 是流圖中的邊數(shù),N是結(jié)點數(shù)優(yōu)質(zhì)范文.V(G)=P+1其中 P 是流圖中判定結(jié)點的數(shù)目方法令 N1 為程序中運算符出現(xiàn)的總次數(shù), N2 為操作數(shù)出現(xiàn)的總次數(shù),程序長度N
18、 定義為:N=N1+N2程序中使用的不同運算符( 包括關(guān)鍵字 ) 的個數(shù) n1,以及不同操作數(shù)( 變量和常數(shù) ) 的個數(shù) n2。預(yù)測程序長度的公式如下:H = n1 log2n1 + n2 log2n2預(yù)測程序中包含錯誤的個數(shù)的公式如下:E = N log2 (n1+n2)/3000第7章 實現(xiàn)編碼和測試統(tǒng)稱為實現(xiàn)。7.1 編碼選擇程序設(shè)計語言主要的實用標準:系統(tǒng)用戶的要求可以使用的編譯程序可以得到的軟件工具工程規(guī)模程序員的知識軟件可移植性要求軟件的應(yīng)用領(lǐng)域編碼風格1.程序內(nèi)部的文檔: 恰當?shù)臉俗R符適當?shù)淖⒔獬绦虻囊曈X組織2. 數(shù)據(jù)說明3. 語句構(gòu)造4. 輸入輸出5.效率 : 程序運行時間存儲
19、器效率輸入輸出的效率7.2 軟件測試基礎(chǔ)軟件測試的目標測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案;成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。測試方法黑盒測試 ( 功能測試 ) :把程序看作一個黑盒子;完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程;是在程序接口進行的測試。白盒測試 ( 結(jié)構(gòu)測試 ) :把程序看成裝在一個透明的盒子里;測試者完全知道程序的結(jié)構(gòu)和處理算法;優(yōu)質(zhì)范文.按照程序內(nèi)部的邏輯測試程序,檢測程序中的主要執(zhí)行通路是否都能按預(yù)定要求正確工作。測試步驟1. 模塊測試 ( 單元測試 )保證每個模塊作為一個單元能正確運行;發(fā)現(xiàn)的往往是
20、編碼和詳細設(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. 驗收測試 ( 確認測試 )把軟件系統(tǒng)作為單一的實體進行測試;它是在用戶積極參與下進行的, 而且可能主要使用實際數(shù)據(jù) ( 系統(tǒng)將來要處理的信息 ) 進行測試;發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯誤。5. 平行運行測試階段的信息流輸入信息有兩類:軟件配置,包括需求說明書、設(shè)計說明書和源程序清單等;測試
21、配置,包括測試計劃和測試方案。7.3單元測試單元測試集中檢測模塊;單元測試和編碼屬于軟件過程的同一個階段;可以應(yīng)用人工測試和計算機測試這樣兩種不同類型的測試方法;單元測試主要使用白盒測試技術(shù),對多個模塊的測試可以并行地進行。測試重點模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行通路出錯處理通路邊界條件代碼審查由審查小組正式進行測試稱為代碼審查;一次審查會上可以發(fā)現(xiàn)許多錯誤,可以減少系統(tǒng)驗證的總工作量。計算機測試驅(qū)動程序是一個 “主程序” ,它接收測試數(shù)據(jù),傳送給被測試的模塊,并且印出有關(guān)的結(jié)果。存根程序代替被測試的模塊所調(diào)用的模塊。 它使用被它代替的模塊的接口, 可能做最少量的數(shù)據(jù)操作,印出對入口的檢驗或操作
22、結(jié)果,并且把控制歸還給調(diào)用它的模塊。7.4集成測試集成測試是測試和組裝軟件的系統(tǒng)化技術(shù),主要目標是發(fā)現(xiàn)與接口有關(guān)的問題。由模塊組裝成程序時有兩種方法:優(yōu)質(zhì)范文.不同集成測試策略的比較非漸增式深度優(yōu)先集成測試策略自頂向下漸增式寬度優(yōu)先自底向上混合策略:改進的自頂向下測試方法混合法回歸測試7.5確認測試確認測試也稱為驗收測試,它的目標是驗證軟件的有效性。和 Beta 測試Alpha 測試是在受控的環(huán)境中進行的。Beta 測試是軟件在開發(fā)者不能控制的環(huán)境中的“真實”應(yīng)用。1. 接口測試2. 路徑測試3. 功能測試4. 健壯性測試5. 性能測試6. 用戶界面測試7. 信息安全測試8. 壓力測試9. 可
23、靠性測試10. 安裝 / 反安裝測試確認測試也稱為驗收測試,它的目標是驗證軟件的有效性。Alpha 測試是在受控的環(huán)境中進行的。Beta 測試是軟件在開發(fā)者不能控制的環(huán)境中的“真實”應(yīng)用。4. 接口測試5. 路徑測試6. 功能測試4. 健壯性測試5. 性能測試6. 用戶界面測試7. 信息安全測試8. 壓力測試9. 可靠性測試10. 安裝 / 反安裝測試7.6白盒測試技術(shù)優(yōu)質(zhì)范文.測試目的測試方案測試數(shù)據(jù)測試用例預(yù)期結(jié)果邏輯覆蓋語句覆蓋判定覆蓋:比語句覆蓋強,但對程序邏輯的覆蓋程度仍不高。條件覆蓋:判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。判定 / 條件覆蓋:有時判定 / 條件覆
24、蓋也并不比條件覆蓋更強。條件組合覆蓋:條件組合覆蓋標準的測試數(shù)據(jù)并不一定能使程序中的每條路徑都執(zhí)行到。6.點覆蓋(語句覆蓋標準相同)7.邊覆蓋(判定覆蓋一致)8.路徑覆蓋控制結(jié)構(gòu)測試覆蓋1.基本路徑測試基本路徑測試是Tom McCabe提出的一種白盒測試技術(shù)。首先計算程序的環(huán)形復雜度;以該復雜度為指南定義執(zhí)行路徑的基本集合;2. 條件測試從該基本集合導出的測試用例可保證程序中的每條語句至少執(zhí)行一次,而且每個條件在執(zhí)行時都將分別取真、假兩種值。3. 循環(huán)測試循環(huán)測試是一種白盒測試技術(shù),它專注于測試循環(huán)結(jié)構(gòu)的有效性。在結(jié)構(gòu)化的程序中通常只有3 種循環(huán),即簡單循環(huán)、串接循環(huán)和嵌套循環(huán)。7.7黑盒測試
25、技術(shù)等價劃分邊界值分析錯誤推測7.9 軟降可靠性基本概念軟件可靠性:程序在給定的時間間隔內(nèi),按照規(guī)格說明書的規(guī)定成功地運行的概率。軟件的可用性:程序在給定的時間點,按照規(guī)格說明書的規(guī)定,成功地運行的概率。第8章 維護優(yōu)質(zhì)范文.軟件工程的目的是要提高軟件的可維護性, 減少軟件維護所需要的工作量, 降低軟件系統(tǒng)的總成本。8.1軟件維護的定義軟件維護:在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程??煞譃?4 項活動:改正性維護適應(yīng)性維護完善性維護預(yù)防性維護8.2 軟件維護的特點結(jié)構(gòu)化維護與非結(jié)構(gòu)化維護差別巨大維護的代價高昂維護的問題很多8.3 軟件維護過程1. 維護組織 2.
26、維護報告 3. 維護的事件流 4. 保存維護記錄 5. 評價維護活動8.4軟件的可維護性決定軟件可維護性的因素主要有7 個:可理解性可測試性可修改性可靠性可移植性可使用性效率第 9 章面向?qū)ο蠓椒▽W引論9.1 面向?qū)ο蠓椒▽W概述面向?qū)ο蠓椒▽W要點( 1) 認為客觀世界是由各種對象組成的,任何事物都是對象( 2) 把所有對象都劃分成各種類對象,每個對象類都定義了一組數(shù)據(jù)和一組方法( 3) 按照子類和父類的關(guān)系,把若干個對象類組成一個層次結(jié)構(gòu)的系統(tǒng)( 4) 對象彼此之間僅能通過傳遞消息相互聯(lián)系面向?qū)ο箝_發(fā)方法面向?qū)ο?=對象 +類 + 繼承 +通信面向?qū)ο蠓椒ńM成面向?qū)ο蟮姆治雒嫦驅(qū)ο蟮脑O(shè)計面向?qū)?/p>
27、象的程序設(shè)計面向?qū)ο蠓椒ǖ膬?yōu)點優(yōu)質(zhì)范文.1. 與人類習慣的思維方式一致2. 穩(wěn)定性好3. 可重用性好4. 可維護性好5. 較易開發(fā)大型軟件產(chǎn)品9.2面向?qū)ο蟮母拍顚ο笫强陀^事物或概念的抽象表述, 即對客觀存在的事物的描述統(tǒng)稱為對象, 對象可以是事、 物、或抽象概念 ,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過程封裝在一起的實體。對象的特點(1) 以數(shù)據(jù)為中心。(2) 對象是主動的。(3) 實現(xiàn)了數(shù)據(jù)封裝。(4) 本質(zhì)上具有并行性。(5) 模塊獨立性好。類是一組具有相同屬性和相同操作的對象的集合。實例由某個特定的類所描述的一個具體的對象。消息向?qū)ο蟀l(fā)出的服務(wù)請求(互相聯(lián)系、協(xié)同工作等)。一個消息
28、包含3 個部分:接收消息的對象,消息名,消息變元方法方法就是對象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。屬性屬性就是類中所定義的數(shù)據(jù),它是對客觀世界實體所具有的性質(zhì)的抽象。封裝對象封裝了對象的數(shù)據(jù)以及對這些數(shù)據(jù)的操作。繼承 (I)繼承是子類自動地共享基類中定義的數(shù)據(jù)和方法的機制。單重繼承:子類僅從一個父類繼承屬性和方法多重繼承:子類可從多個父類繼承屬性和方法多態(tài)性重載9.3 面向?qū)ο蠼?(II)面向?qū)ο箝_發(fā)軟件,需要建立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 對象模型類圖的基本符號 (I)優(yōu)質(zhì)范文.1.
29、 定義類2. 定義屬性可見性屬性名:類型=缺省值性質(zhì)串 可見性 (visibility)表示該屬性對類外的元素是否可見。分為:public( +) 公有的,即模型中的任何類都可以訪問該屬性。private( - ) 私有的,表示不能被別的類訪問。protected( #) 受保護的,表示該屬性只能被該類及其子類訪問。如果可見性未申明,表示其可見性不確定。3. 定義操作可見性操作名(參數(shù)表) :返回類型 性質(zhì)串 表示關(guān)系的符號 (I)關(guān)聯(lián) (I)關(guān)聯(lián)表示兩個類的對象之間存在某種語義上的聯(lián)系。(1) 普通關(guān)聯(lián)遞歸關(guān)聯(lián):一個類與本身有關(guān)聯(lián)關(guān)系( 3) 限定關(guān)聯(lián)( 4) 關(guān)聯(lián)類優(yōu)質(zhì)范文.聚集 (I)(
30、1) 共享聚集如果在聚集關(guān)系中處于部分方的對象可同時參與多個處于整體方對象的構(gòu)成, 則該聚集稱為共享聚集。(2) 組合聚集如果部分類完全隸屬于整體類, 部分與整體共存, 整體不存在了部分也會隨之消失, 則該聚集稱為組合聚集。泛化 (I)( 1)普通泛化( 2)受限泛化預(yù)定義的約束有4 種: 多重、不相交、完全和不完全。依賴細化優(yōu)質(zhì)范文.9.5 動態(tài)模型9.6 功能模型用例圖模型元素:系統(tǒng)、行為者、用例及用例之間的關(guān)系( 擴展關(guān)系、使用關(guān)系)用例的實例是腳本第10章 面向?qū)ο蠓治?0.1 面向?qū)ο蠓治龅幕具^程面向?qū)ο蠓治觯撼槿『驼碛脩粜枨蟛⒔栴}域精確模型的過程.理解 -用戶、分析員和領(lǐng)域
31、專家表達 -需求規(guī)格說明書(對象模型、動態(tài)模型、功能模型)驗證 -二義性,完善性對象模型最基本、最重要、最核心。靜態(tài)結(jié)構(gòu)(對象模型)3個子模型交互次序(動態(tài)模型)數(shù)據(jù)變換(功能模型)復雜問題的對象模型的5 個層次面向?qū)ο蠓治龅倪^程尋找類與對象識別結(jié)構(gòu)識別主題定義屬性建立動態(tài)模型建立功能模型定義服務(wù)10.2需求陳述需求陳述是闡明“做什么”,而不是“怎樣做”問題范圍優(yōu)質(zhì)范文.功能需求性能需求應(yīng)用環(huán)境假設(shè)條件第11章 面向?qū)ο笤O(shè)計11.1面向?qū)ο笤O(shè)計的準則1. 模塊化 2. 抽象 3. 信息隱藏4. 弱耦合耦合指不同對象之間相互關(guān)聯(lián)的緊密程度。對象之間的耦合分兩類:交互耦合如果對象之間的耦合通過消息
32、連接來實現(xiàn), 則這種耦合就是交互耦合。 交互耦合應(yīng)盡可能松散 。繼承耦合與交互耦合相反,應(yīng)該提高繼承耦合程度。5.強內(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)適當3. 設(shè)計簡單的類4. 使用簡單的協(xié)議5. 使用簡單的服務(wù)6. 把設(shè)計變動減至最小第 13 章 軟件項目管理技術(shù)度量軟件規(guī)模軟件工程計劃估算工作量明確軟件開發(fā)的目標進度計劃管理組
33、織提供組織機構(gòu)和資源配置方面的保證風險管理控制質(zhì)量保證保證開發(fā)目標的實現(xiàn)配置管理13.1 估算軟件規(guī) 模優(yōu)質(zhì)范文.代碼行技術(shù)估算方法:由多名有經(jīng)驗的軟件工程師分別做出估計。每個人都估計程序的最小規(guī)模 (a) 、最大規(guī)模 (b) 和最可能的規(guī)模 (m) ,分別算出這 3 種規(guī)模的平均值之后,再用下式計算程序規(guī)模的估計值:單位:LOC或 KLOC。代碼行技術(shù)的優(yōu)點:代碼是所有軟件開發(fā)項目都有的“產(chǎn)品”,而且很容易計算代碼行數(shù);有大量參考文獻和數(shù)據(jù) 。代碼行技術(shù)的缺點:源程序僅是軟件配置的一個成分,由源程序度量軟件規(guī)模不太合理;用不同語言實現(xiàn)同一個軟件所需要的代碼行數(shù)并不相同;不適用于非過程性語言。
34、功能點技術(shù)功能點技術(shù)依據(jù)對軟件信息域特性和軟件復雜性的評估結(jié)果,估算軟件規(guī)模。這種方法用功能點(FP) 為單位度量軟件規(guī)模。1. 信息域特性輸入項數(shù) (Inp) 、輸出項數(shù) (Out) 、查詢數(shù) (Inq) 、主文件數(shù) (Maf) 、外部接口數(shù) (Inf)每個特征根據(jù)其復雜程度分配一個功能點數(shù),即信息域特征系數(shù)a1,a2, a3, a4, a52. 估算功能點的步驟(1)計算未調(diào)整的功能點數(shù)UFPUFP=a1× Inp+a2 × Out+a3× Inq+a4 × Maf+a5× Inf(2) 計算技術(shù)復雜性因子 TCF技術(shù)因素對軟件規(guī)模的綜合影
35、響程度DI:技術(shù)復雜性因子TCF由下式計算:TCF = 0.65 + 0.01× DI因為 DI 的值在 070 之間,所以TCF的值在 0.651.35之間。(3)計算功能點數(shù)FPFP = UFP × TCF功能點技術(shù)優(yōu)點:與所用的編程語言無關(guān),比代碼行技術(shù)更合理。功能點技術(shù)缺點: 在判斷信息域特性復雜級別和技術(shù)因素的影響程度時主觀因素較大, 對經(jīng)驗依賴性較強。13.2工作量估算優(yōu)質(zhì)范文.13.2.1靜態(tài)單變量模型17E = A + B × (ev) Cev是估算變量(KLOC或 FP Ea KLOCbf i)。13.2.2動態(tài)多變量模型i 1動態(tài)多變量模型也稱
36、為軟件方程式,該模型把工作量看作是軟件規(guī)模和開發(fā)時間這兩個變量的函數(shù)。E=(LOC× B0.333/P)3 ×(1/t)4模型(構(gòu)造性成本模型)3 個層次的估算模型:應(yīng)用系統(tǒng)組成模型: 這個模型主要用于估算構(gòu)建原型的工作量, 模型名字暗示在構(gòu)建原型時大量使用已有的構(gòu)件。早期設(shè)計模型:這個模型適用于體系結(jié)構(gòu)設(shè)計階段。后體系結(jié)構(gòu)模型:這個模型適用于完成體系結(jié)構(gòu)設(shè)計之后的軟件開發(fā)階段。COCOMO2使用的 5 個分級因素:項目先例性、開發(fā)靈活性、風險排除度、項目組凝聚力、過程成熟度13.3進度計劃估算開發(fā)時間Brooks 規(guī)律:向一個已經(jīng)延期的項目增加人力,只會使得它更加延期。圖Gantt 圖的主要優(yōu)點:Gantt 圖能很形象地描繪任務(wù)分解情況,以及每個子任務(wù)( 作業(yè) ) 的開始和結(jié)束時間。具有直觀簡明和容易掌握、容易繪制的優(yōu)點。Gantt 圖的 3 個主要缺點:不能顯式地描繪各項作業(yè)彼此間的依賴關(guān)系;進度計劃的關(guān)鍵部分不明確,難于判定哪些部分應(yīng)當是主攻和主控的對象;計劃中有潛力的部分及潛力的大小
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安檢理論試題及答案
- 2024年家具、建筑用金屬附件及架座項目資金籌措計劃書代可行性研究報告
- 2025年中國建設(shè)銀行陜西渭南支行春季校招考試筆試試題含答案
- 資訊更新水利水電工程試題及答案
- 2025年工程項目管理案例分析試題及答案
- 2025通信設(shè)備采購銷售合同
- 2025-2030年足球行業(yè)風險投資發(fā)展分析及投資融資策略研究報告
- 中級經(jīng)濟師的職業(yè)生涯規(guī)劃試題及答案
- 2025-2030年空氣加濕器行業(yè)市場深度分析及競爭格局與投資發(fā)展研究報告
- 2025-2030年礦山工程行業(yè)市場深度調(diào)研及前景趨勢與投資研究報告
- 廣東省廣州市2022-2023學年八年級下學期語文期中試卷(含答案)
- 乙結(jié)冗長癥護理查房
- 2020年8月自考00158資產(chǎn)評估試題及答案含解析
- 防藏藥的護理措施
- 高中物理 選修一《機械振動》大單元教學設(shè)計
- PLC在建筑物自動化和智能化中的應(yīng)用
- 第11課《及時治小傷》教學設(shè)計
- 導醫(yī)接待工作中的應(yīng)急處理方法
- 數(shù)據(jù)分析與評價控制程序
- 神經(jīng)外科輪轉(zhuǎn)出科小結(jié)護士
- 體育運動中的功能性訓練
評論
0/150
提交評論