《軟件工程復習資料》word版.doc_第1頁
《軟件工程復習資料》word版.doc_第2頁
《軟件工程復習資料》word版.doc_第3頁
《軟件工程復習資料》word版.doc_第4頁
《軟件工程復習資料》word版.doc_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程復習資料第一章1.軟件危機軟件總是超出預算、落后于進度表,而且不可靠;在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。軟件受其自身特點的影響,生產過程不象硬件那樣規(guī)范,受人的因素和外界影響很大,在軟件生產的各階段都會引入不同程度的錯誤,造成不能預期完成任務,致使成本上升,甚至導致軟件失敗。2.軟件危機的表現(xiàn)(1)用戶對開發(fā)出的軟件很難滿意(2)軟件產品的質量往往靠不住(3)一般軟件很難維護(4)軟件生產效率很低(5)軟件開發(fā)成本越來越大(6)軟件成本與開發(fā)進度難以估計(7)軟件技術的發(fā)展遠遠滿足不了計算機應用的普及與深入的需要。3.軟件危機的原因一方面是與軟件本身的特點有關;另一方面軟件開發(fā)和維護的方法不正確:忽視軟件開發(fā)前期的需求分析;開發(fā)過程沒有統(tǒng)一、規(guī)范方法論的指導;文檔資料不齊全;忽視人與人的交流;忽視測試工作,提交給用戶的軟件質量差;輕視軟件的維護。4.怎樣使用軟件工程消除軟件危機?軟件工程應使用已有的工程規(guī)則的理論和模式,來解決所謂的軟件危機。5.軟件工程概念軟件工程是指導計算機軟件開發(fā)和維護的工程學科。(1)它采用工程的概念、原理、技術和方法來開發(fā)和維護軟件;(2)它將管理技術與當前經過時間考驗的而證明是正確的技術方法結合起來;(3)它強調使用生存周期方法學和結構分析和結構技術;(4)經過人們長期的努力和探索,圍繞著實現(xiàn)軟件優(yōu)質高產這個目標,從技術到管理兩個方面做了大量的努力,逐漸形成了軟件工程學這一新的學科。6.軟件工程與軟件工程方法學有何關系?軟件過程:是為了獲得高質量軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟;軟件工程方法學:通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱范型。7.軟件工程三要素1)工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境;2)方法為軟件開發(fā)提供了如何做的技術;3)過程定義了方法使用的順序,要求交付的文檔資料,為保證質量和適應變化所需要的管理,軟件開發(fā)各個階段完成的里程碑。8.軟件工程的基本準則嚴格階段管理;堅持階段評審;加強產品控制;采納新技術;結果應能清楚地審查;開發(fā)小組的人員應該少而精;承認不斷改進軟件工程實踐的必要性。9.軟件生存周期軟件生存周期是指從軟件定義、開發(fā)、使用、維護到淘汰的全過程。一般說來,軟件生命周期劃分為三個時期:計劃時期、開發(fā)時期、運行時期。計劃時期劃分為問題定義和可行性研究;開發(fā)時期又劃分為需求分析、概要設計、詳細設計、編碼和測試階段;運行時期主要是在運行中完成各類維護。10.軟件生存周期各階段任務問題定義:要解決的問題是什么;可行性研究:對于上一個階段所確定的問題有行得通的解決辦法嗎;需求分析:為了解決這個問題,目標系統(tǒng)必須做什么;總體設計:概括地說,應該怎樣實現(xiàn)目標系統(tǒng);詳細設計:應該怎樣具體地實現(xiàn)這個系統(tǒng)呢;編碼和單元測試:寫出正確的容易理解、容易維護的程序模塊;綜合測試:通過各種類型的測試使軟件達到預期的要求。11.軟件生存期模型是跨越整個生存期的系統(tǒng)開發(fā)、運作和維護所實施的全部過程、活動和任務的結構框架;是對軟件過程的建模。12.幾種常見模型優(yōu)缺點:1)瀑布模型:優(yōu)點:1.可強迫開發(fā)員采用規(guī)范的方法2.嚴格地規(guī)定了每個階段必須提交的文件3.要求每個階段交出的所有產品都必須經過質量保證小組的仔細驗證。缺點:傳統(tǒng)的瀑布模型過于理想化,是由文檔驅動的。2)快速原型模型:通過快速構建起一個可在計算機上運行的原型系統(tǒng),讓用戶試用原型并收集用戶反饋意見的方法,獲取用戶真正的需要。缺點:可能導致系統(tǒng)設計差,難于維護。3)增量模型:優(yōu)點:能在較短時間內向用戶提交可完成部分工作的產品;逐步增加產品功能可以使用戶有較充實的時間學習和適應新產品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。缺點:需要開放式結構,可能會設計差。4)螺旋模型:優(yōu)點:對可選方案和約束條件的強調有利于已有軟件的重用;減少了過多測試;維護只是螺旋模型中另一個周期。缺點:風險分析人員需要有經驗且經過充分訓練。第二章1.可行性研究的三個方面(1)技術可行性:使用現(xiàn)有的技術能實現(xiàn)這個系統(tǒng)嗎?(2)經濟可行性:這個系統(tǒng)的經濟效益能超過它的開發(fā)成本嗎?(3)操作可行性:系統(tǒng)的操作方式在這個用戶組織內行得通嗎?2.可行性研究目的?用最小的代價在盡可能短的時間內確定問題是否能夠解決。3.可行性研究的任務?(1)進一步分析和澄清問題的定義,在澄清問題的基礎上,導出系統(tǒng)的邏輯模型;(2)從系統(tǒng)邏輯模型中,選擇問題的若干種主要解法,研究每一種解法的可行性,為以后的行動提出建議;(3)如果問題沒有可行的解,建議停止系統(tǒng)開發(fā);如果問題有可行的解,應該推薦一個較好的解決方案,并為工程制定一個初步的計劃。4.數(shù)據(jù)流圖和數(shù)據(jù)字典共同構成系統(tǒng)的邏輯模型。5.數(shù)據(jù)字典的內容及作用數(shù)據(jù)字典是描述數(shù)據(jù)流圖中數(shù)據(jù)的信息的集合。它對數(shù)據(jù)流圖上每一個成分:數(shù)據(jù)項、文件(數(shù)據(jù)結構)、數(shù)據(jù)流、數(shù)據(jù)存儲、加工和外部項等給以定義和說明;它主要由數(shù)據(jù)流描述、加工描述和文件描述三部分組成。作用:對用戶來講,數(shù)據(jù)字典為他們提供了數(shù)據(jù)的明確定義;對系統(tǒng)分析員來講,數(shù)據(jù)字典幫助他們比較容易修改已建立的系統(tǒng)邏輯模型。6.數(shù)據(jù)字典最重要的用途是作為分析階段的工具。7.成本/效益分析方法成本/效益分析首先要估算待開發(fā)系統(tǒng)的開發(fā)成本,然后與可能取得的效益(有形的和無形的)進行比較與權衡。其中有形的效益可用貨幣的時間價值、投資的回收期、純收入、投資回收率等指標進行度量。無形的效益主要是從性質上和心理上進行衡量,很難進行量的比較。但是無形的效益有特殊的潛在價值,且在某些情況下會轉化成有形的效益。8.項目開發(fā)計劃包含什么內容?1)軟件范圍:確定軟件需求描述,主要包括功能、性能、可靠性和接口問題。2)環(huán)境資源:包括硬件、軟件和人,對每一種資源均從資源的描述、對資源的要求日程表、占用時間三個方面來說明。3)制定進度表:根據(jù)可用資源和項目的工作量,并考慮各項任務之間的依賴關系,安排工程進度時間表。4)軟件成本:估算每階段的軟件成本。9.系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具,其表達的是信息在系統(tǒng)各部件之間的流動情況。基本思想是用圖形符號以黑盒子形式描述系統(tǒng)里面的部件(程序、文件、數(shù)據(jù)庫等)。系統(tǒng)流程圖表達的是部件的信息流程,而不是對信息進行加工處理的控制過程。在可行性研究過程中,利用系統(tǒng)流程圖來描述所建議系統(tǒng)的物理模型。10.數(shù)據(jù)流圖概念及作用Data Flow Diagram,DFD,是描繪系統(tǒng)邏輯模型的優(yōu)秀工具,用圖形符號方式描述系統(tǒng)里面數(shù)據(jù)的流動方向及處理情況。數(shù)據(jù)輸入到系統(tǒng)后,經過一些列的加工處理,最后輸出新的數(shù)據(jù)。基本構成:數(shù)據(jù)流,加工,文件,源點與終點。作用:作為交流信息的工具;作為系統(tǒng)分析設計的工具;輔助物理系統(tǒng)的設計。11.系統(tǒng)流程圖與數(shù)據(jù)流程圖有什么區(qū)別?系統(tǒng)流程圖描述系統(tǒng)物理模型的工具,數(shù)據(jù)流程圖描述系統(tǒng)邏輯模型的工具。系統(tǒng)流程圖從系統(tǒng)功能的角度抽象的描述系統(tǒng)的各個部分及其相互之間信息流動的情況。數(shù)據(jù)流程圖從數(shù)據(jù)傳送和加工的角度抽象的描述信息在系統(tǒng)中的流動和數(shù)據(jù)處理的工作狀況。第三章1.需求分析的任務及成果清楚的理解用戶要解決的問題,完整準確的獲取用戶的需求,并用需求規(guī)格說明書規(guī)范的形式準確地表達用戶的需求。成果是需求規(guī)格說明書。2.需求分析的幾個階段問題分析;問題評估和方案綜合;建模;規(guī)約;復審3.需求獲取的內容功能需求;性能需求(軟件開發(fā)的技術性指標);環(huán)境需求;界面需求;用戶或人的因素;文檔需求;數(shù)據(jù)需求;資源需求;安全保密要求;軟件材料成本消耗與軟件開發(fā)進度要求;質量保證。4.需求分析的描述工具有哪些?數(shù)據(jù)流圖、數(shù)據(jù)字典、判定表、判定樹、結構化自然語言、層次方框圖、Warnier圖、IPO圖和需求描述語言等。5.軟件需求規(guī)格說明書由哪些部分組成?(1)引言:編寫目的、背景說明、術語定義及參考資料等。(2)概述主要功能、約束條件或特殊需求。(3)數(shù)據(jù)流圖與數(shù)據(jù)字典。(4)用戶接口、硬件接口及軟件接口。(5)性能需求、屬性等。(6)其它需求,如數(shù)據(jù)庫、操作及故障處理等。6.需求規(guī)格說明書(SRS)作用開發(fā)者與用戶間事實上的技術合同書;開發(fā)者下一步設計和編碼的基礎;測試驗收目標系統(tǒng)的依據(jù)。7.加工邏輯描述工具用結構化語言;用判定表描述;用判定樹描述。第五章1.系統(tǒng)設計包括哪兩個階段?系統(tǒng)設計包括總體設計(概要設計、結構設計)與詳細設計(過程設計)兩個階段。2.總體設計的主要任務是什么?總體設計的主要任務是完成軟件結構的設計,確定系統(tǒng)的模塊及其模塊之間的關系。3.概要設計的任務與步驟(1)設想可能的方案(2)選取合理的方案(3)推薦最佳方案(4)功能分解(5)設計軟件結構(6)數(shù)據(jù)庫設計(7)制定測試計劃(8)編寫文檔(9)審查與復審4.模塊化的重要特征:抽象;信息隱藏。5.模塊的獨立性基本概念開發(fā)具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,可以做到模塊獨立。特點:具有特定子功能、接口簡單。6.模塊的獨立性衡量標準耦合:亦稱塊間聯(lián)系,衡量不同模塊間相互依賴的緊密程度,為獨立性的直接衡量。耦合的強弱取決于模塊間接口的復雜程度,進入或訪問一個模塊的點,以及通過接口的數(shù)據(jù)。耦合性越高,模塊獨立性越弱。內聚:亦稱塊內聯(lián)系,模塊內各部分(語句或段落)之間結合的緊密程度。設計目標:高內聚(一模塊的所有成分都直接參與并且對于完成同一功能來說都是最基本的)。7.耦合強度依賴的因素:一模塊對另一模塊的引用;一模塊向另一模塊傳遞的數(shù)據(jù)量;一模塊施加到另一模塊的控制的數(shù)量;模塊間接口的復雜程度;8.模塊間耦合的類型:低耦合:非直接耦合,數(shù)據(jù)耦合(屬松散耦合),標志耦合(特征耦合);中耦合:控制耦合;較強耦合:外部耦合,公共耦合;強耦合:內容耦合(最不好)。9.模塊化設計的原則和目標原則:盡量使用數(shù)據(jù)耦合;少用控制耦合;限制公共耦合的范圍;堅決避免使用內容耦合。目標:建立模塊間耦合度盡可能松散的系統(tǒng)。10.模塊的內聚性類型:由內聚性及模塊獨立性從低到高排列:巧合內聚(偶然內聚);邏輯內聚;時間內聚(經典內聚);過程內聚(模塊內各處理成分相關,且必須以特定次序執(zhí)行);通信內聚(模塊內各部分使用相同的輸入數(shù)據(jù),或產生相同的輸出結果);信息內聚(模塊完成多個功能,各功能都在同一數(shù)據(jù)結構上操作,每一功能有唯一入口);功能內聚:模塊僅包括為完成某個功能所必須的所有成分(模塊所有成分共同完成一個功能,缺一不可),內聚性最強。11.耦合、內聚與模塊獨立性關系內聚與耦合密切相關,同其它模塊強耦合的模塊意味者弱內聚,強內聚模塊意味著與其它模塊間松散耦合。設計目標:強內聚,弱耦合。耦合與內聚都是模塊獨立性的定性標準,都反映模塊獨立性的良好程度。但耦合是直接的主導因素,內聚則輔助耦合共同對模塊獨立性進行衡量。12.結構設計中的圖形工具層次圖(H圖);HIPO圖;結構圖(SC)。13.面向數(shù)據(jù)流設計方法的任務:將DFD映射為軟件系統(tǒng)的結構。14.變換型數(shù)據(jù)流由哪幾部分組成?變換型結構由三部分組成:傳入路徑、變換(加工)中心和傳出路徑。15.變換分析設計的步驟?(1)區(qū)分傳入、傳出和變換中心三部分,劃分DFD圖的分界線;(2)完成第一級分解:建立初始SC圖的框架;(3)完成第二級分解:分解SC圖的各個分支;(4)對初始結構圖按照設計準則進行精化與改進。第六章1.詳細設計的目的?確定應該怎樣具體的實現(xiàn)所要求的系統(tǒng),即在編碼階段可以把這個描述直接翻譯成用某種程序設計語言書寫的程序。2.詳細設計的主要任務?編寫軟件的詳細設計說明書。3.結構化程序設計的基本原則?在詳細設計中所有模塊都使用單入口、單出口的順序、選擇、循環(huán)三種基本控制結構.4.程序設計工具程序流程圖;盒圖(N-S圖);問題分析圖(PAD);過程設計語言(PDL)(偽碼);判定表。5.比較面向數(shù)據(jù)流和面向數(shù)據(jù)結構兩類設計方法的異同?相同點:(1)遵守結構程序設計由頂向下逐步細化的原則,并以其為共同的基礎;(2)均服從程序結構必須適應問題結構的基本原則,各自擁有從問題結構(包括數(shù)據(jù)結構)導出程序結構的一組映射規(guī)則。不同點:(1)面向數(shù)據(jù)流的設計以數(shù)據(jù)流圖為基礎,在分析階段用DFD表示軟件的邏輯模型,在設計階段按數(shù)據(jù)流類型,將數(shù)據(jù)流圖轉換為軟件結構。面向數(shù)據(jù)結構的設計以數(shù)據(jù)結構為基礎,從問題的數(shù)據(jù)結構出發(fā)導出它的程序結構。(2)面向數(shù)據(jù)流的設計的最終目標是軟件的最終SC圖,面向數(shù)據(jù)結構的設計的最終目標是程序的過程性描述。6.詳細設計的描述工具應具備什么功能?無論哪類描述工具不僅要具有描述設計過程,如控制流程、處理功能、數(shù)據(jù)組織及其它方面的細節(jié)的能力,而且在編碼階段能夠直接將它翻譯為用程序設計語言書寫的源程序。第7章1.什么是實現(xiàn)?編碼?測試方案?測試用例?實現(xiàn):編碼和測試的統(tǒng)稱。編碼:把軟件設計結果翻譯成用某種程序設計語言書寫的程序。測試方案:包括具體的測試目的應該輸入的測試數(shù)據(jù)和預期的結果。測試用例:測試結果和預期的輸出結果。2.測試的概念?(1)軟件測試:軟件測試是對軟件計劃、軟件設計和軟件編碼進行查錯和糾錯的活動,這個過程包括了代碼執(zhí)行活動和人工活動。(2)程序測試:程序測試是對編碼階段出現(xiàn)的語法錯、語義錯、運行錯進行查找的編碼執(zhí)行過程。(3)動態(tài)測試:動態(tài)測試包括白盒測試和黑盒測試。黑盒測試是根據(jù)軟件的功能而設計測試用例而進行測試的過程,白盒測試是根據(jù)測試的內部結構而設計測試數(shù)據(jù),發(fā)現(xiàn)程序的錯誤。(4)靜態(tài)測試:靜態(tài)測試包括代碼審查和靜態(tài)分析。3.測試的基本原則?(1)測試前要認定被測試的軟件有錯,不要認為被測試的程序是正確的(2)要確定測試軟件的預先測試結果(3)盡量避免測試自己編寫的程序(4)測試時要考慮合理的輸入和不合理的輸入數(shù)據(jù)(5)測試時應以軟件需求規(guī)格說明書中的需求為標準(6)要確定找到的新錯與已找到的舊錯成正比(7)所使用的測試用例應該紀錄下來,以后測試時再用,以供后來的測試和維護使用。4.軟件測試的目標及定義?目的:(1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程(2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案(3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。定義:為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。5.軟件測試的步驟?模塊的測試;子系統(tǒng)測試;系統(tǒng)測試;驗收測試;平行測試。6.單元測試:單元測試幾檢測軟件設計的最小單元,即模塊。主要使用白盒測試技術。(1)模塊接口測試:通過測試模塊接口的數(shù)據(jù)流是否可以通暢地流入/出模塊,如果數(shù)據(jù)不能正常地進出,則其他測試都不能進行(2)局部數(shù)據(jù)結構:測試模塊內部數(shù)據(jù)是否完整,內容、形式、相關關系是否正確(3)邏輯覆蓋(執(zhí)行路徑)問題:不可能對模塊內部的所有邏輯執(zhí)行路徑進行測試,所以選擇最有可能發(fā)現(xiàn)錯誤的執(zhí)行路徑進行測試是至關重要的(4)出錯處理問題:一個好的模塊應該能夠分析出錯的原因、報告出錯和提供很好的處理錯誤,保證程序能正常的運行。因此應該詳細測試錯誤處理的通路。7.什么是集成測試?比較的兩種方式的優(yōu)劣?測試和組裝軟件的系統(tǒng)化技術。優(yōu)點:自頂向下:可在測試早期實現(xiàn)并驗證系統(tǒng)主要功能,不需驅動模塊;自底向上:設計測試用例容易,不需樁模塊。缺點:自頂向下:需樁模塊,且底層關鍵模塊,測試較晚。自底向上:只有到最后程序才能作為一個整體。8.編碼風格遵循規(guī)則?(1)程序內部的文檔:包括恰當?shù)臉俗R符,恰當?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明(3)語句構造:每個語句要簡單直接。(4)輸入輸出(5)效率:程序運行時間;存儲器效率;輸入輸出效率。9.什么是白盒測試?主要采用的技術?白盒:測試者了解被測程序的內部結構和處理過程,對程序的所有邏輯路徑進行測試,在不同點檢查程序狀態(tài),確定實際狀態(tài)與預期狀態(tài)是否一致。白盒技術:(1)基本路徑測試技術(2)條件測試(3)循環(huán)測試。10.什么是邏輯覆蓋?邏輯覆蓋的類型有哪些?邏輯覆蓋:是以程序的內部邏輯結構為基礎的測試用例設計技術,屬于白盒測試。它要求測試人員十分清楚程序的邏輯結構,考慮的是測試用例對程序內部邏輯覆蓋的程度。類型:(1)語句覆蓋:選擇足夠多的測試數(shù)據(jù),使被測試程序中每個語句至少執(zhí)行一次(2)判定覆蓋:使被測程序中的每一個分支至少執(zhí)行一次。故也稱為分支覆蓋。(3)條件覆蓋:執(zhí)行所有可能的穿過程序的控制路流程。(4)判定/條件覆蓋(5)條件組合覆蓋:設計足夠的測試用例,使每個判定中的所有可能條件取值組合至少執(zhí)行一次(6)點覆蓋(7)邊覆蓋(8)路徑覆蓋。11.什么是黑盒測試?主要采用的技術有哪些?黑盒測試也稱為功能測試,它著眼于程序的外部特征,而不考慮程序的內部邏輯結構。測試者把被測程序看成一個黑盒,不用關心程序的內部結構。黑盒測試是在程序接口處進行測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)產生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒技術:等價劃分法;邊界值分析法:選取的測試數(shù)據(jù)應

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論