軟件工程練習題+答案_第1頁
軟件工程練習題+答案_第2頁
軟件工程練習題+答案_第3頁
軟件工程練習題+答案_第4頁
軟件工程練習題+答案_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程練習題+答案一、選擇題1.以下哪個不屬于軟件工程的基本原則?()A.抽象B.模塊化C.自底向上D.信息隱藏答案:C。軟件工程的基本原則包括抽象、模塊化、信息隱藏等。自底向上是一種開發(fā)策略,并非軟件工程的基本原則。2.軟件生命周期中,()階段的主要任務是確定軟件系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。A.可行性研究B.需求分析C.概要設計D.詳細設計答案:B。需求分析階段的核心任務就是明確軟件系統(tǒng)的功能、性能、數(shù)據(jù)等方面的需求,確定系統(tǒng)必須完成的工作??尚行匝芯恐饕窃u估項目的可行性;概要設計進行總體的架構(gòu)設計;詳細設計則是對模塊進行具體的實現(xiàn)設計。3.結(jié)構(gòu)化分析方法使用的主要工具是()。A.程序流程圖B.數(shù)據(jù)字典C.判定樹D.以上都是答案:D。結(jié)構(gòu)化分析方法常用的工具包括程序流程圖用于描述系統(tǒng)的流程,數(shù)據(jù)字典用于對數(shù)據(jù)進行詳細定義,判定樹用于表示復雜的條件判斷。4.在面向?qū)ο蠓椒ㄖ校粋€對象請求另一個對象為其服務的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息答案:D。在面向?qū)ο缶幊讨?,對象之間通過發(fā)送消息來請求服務。調(diào)用語句是在傳統(tǒng)編程中的概念;命令和口令與對象間交互的概念不符。5.軟件測試的目的是()。A.發(fā)現(xiàn)軟件中的錯誤B.證明軟件的正確性C.提高軟件的性能D.改善軟件的可讀性答案:A。軟件測試的主要目的是盡可能多地發(fā)現(xiàn)軟件中的錯誤。證明軟件的正確性是非常困難甚至幾乎不可能完全做到的;提高軟件性能和改善可讀性不是軟件測試的主要目的。二、填空題1.軟件工程的三要素是方法、工具和________。答案:過程。軟件工程方法提供了軟件開發(fā)的技術和步驟,工具支持開發(fā)過程,而過程則定義了軟件項目的活動和順序。2.數(shù)據(jù)流程圖(DFD)有兩種典型的結(jié)構(gòu),分別是變換型和________。答案:事務型。變換型DFD具有明顯的輸入、變換和輸出部分;事務型DFD則以一個事務中心為核心,根據(jù)不同的事務類型進行不同的處理。3.軟件維護的類型主要有改正性維護、適應性維護、完善性維護和________。答案:預防性維護。改正性維護是修復軟件中的錯誤;適應性維護是使軟件適應新的環(huán)境;完善性維護是增加軟件的功能;預防性維護是為了提高軟件的可維護性和可靠性而進行的維護。4.面向?qū)ο蟮闹饕卣靼ǚ庋b、繼承和________。答案:多態(tài)。封裝將數(shù)據(jù)和操作封裝在一起,繼承允許子類繼承父類的屬性和方法,多態(tài)則允許不同的對象對同一消息做出不同的響應。5.軟件項目管理的主要內(nèi)容包括項目計劃、項目組織、人員管理、成本估算、________和風險管理等。答案:進度控制。軟件項目管理需要對項目的各個方面進行管理,進度控制確保項目按照預定的時間計劃進行。三、簡答題1.簡述軟件危機的表現(xiàn)和產(chǎn)生的原因。答案:軟件危機的表現(xiàn)主要有以下幾個方面:-軟件開發(fā)進度難以控制,常常出現(xiàn)項目延期的情況。例如一些大型軟件項目原本計劃一年完成,但可能會因為各種原因拖延到兩三年甚至更久。-軟件成本不斷增加,超出預算。在開發(fā)過程中,可能由于需求變更、技術難題等原因?qū)е鲁杀敬蠓仙?軟件質(zhì)量差,存在大量的錯誤和缺陷,影響軟件的正常使用。比如一些軟件在運行過程中頻繁出現(xiàn)崩潰、死機等問題。-軟件可維護性差,當需要對軟件進行修改或擴展時,難度很大,甚至可能導致新的問題產(chǎn)生。-軟件文檔不全,使得后續(xù)的開發(fā)和維護人員難以理解軟件的功能和結(jié)構(gòu)。軟件危機產(chǎn)生的原因主要包括以下幾點:-軟件本身的特點:軟件是邏輯產(chǎn)品,具有無形性、復雜性和可變性等特點。軟件的開發(fā)不像傳統(tǒng)的制造業(yè)那樣有直觀的生產(chǎn)過程,難以進行有效的管理和控制。-軟件開發(fā)方法不當:缺乏科學的、規(guī)范的軟件開發(fā)方法和流程,導致開發(fā)過程混亂,各個環(huán)節(jié)之間缺乏有效的溝通和協(xié)調(diào)。-軟件開發(fā)人員的問題:軟件開發(fā)人員對軟件項目的規(guī)模和復雜性估計不足,缺乏團隊協(xié)作精神和有效的溝通技巧。-軟件用戶需求不明確:用戶在項目開始時往往不能準確地表達自己的需求,隨著項目的進展,需求又不斷發(fā)生變化,給軟件開發(fā)帶來很大的困難。2.什么是軟件的可維護性?提高軟件可維護性有哪些措施?答案:軟件的可維護性是指軟件能夠被理解、改正、適應及擴展的難易程度。它是衡量軟件質(zhì)量的一個重要指標,良好的可維護性可以降低軟件的維護成本,延長軟件的使用壽命。提高軟件可維護性的措施主要有以下幾點:-采用結(jié)構(gòu)化或面向?qū)ο蟮能浖_發(fā)方法:結(jié)構(gòu)化方法強調(diào)自頂向下、逐步求精的設計原則,使軟件的結(jié)構(gòu)清晰,層次分明;面向?qū)ο蠓椒▌t通過封裝、繼承和多態(tài)等特性,提高軟件的可復用性和可維護性。-建立完善的文檔:文檔是軟件可維護性的重要保障,包括需求文檔、設計文檔、測試文檔等。詳細準確的文檔可以幫助維護人員快速了解軟件的功能、結(jié)構(gòu)和實現(xiàn)方法。-進行代碼優(yōu)化:編寫高質(zhì)量的代碼,遵循良好的編程規(guī)范和風格,提高代碼的可讀性和可理解性。例如,使用有意義的變量名和函數(shù)名,添加必要的注釋等。-進行軟件測試:在軟件開發(fā)過程中進行充分的測試,及時發(fā)現(xiàn)和修復軟件中的錯誤和缺陷,提高軟件的可靠性和穩(wěn)定性。-采用模塊化設計:將軟件分解為多個獨立的模塊,每個模塊具有單一的功能,模塊之間通過接口進行通信。這樣可以降低模塊之間的耦合度,提高軟件的可維護性。-建立配置管理系統(tǒng):對軟件的版本、變更等進行有效的管理,確保軟件的各個版本之間的一致性和可追溯性。3.簡述面向?qū)ο蠓治龅闹饕襟E。答案:面向?qū)ο蠓治龅闹饕襟E如下:-認定對象:在問題域中識別出與系統(tǒng)相關的對象。這些對象可以是實際的物理實體,也可以是抽象的概念。例如,在一個圖書館管理系統(tǒng)中,圖書、讀者、管理員等都可以作為對象。-組織對象:將識別出的對象按照一定的規(guī)則進行分類和組織,形成對象的層次結(jié)構(gòu)??梢酝ㄟ^繼承關系來組織對象,將具有共同屬性和行為的對象抽象為一個父類,子類繼承父類的屬性和行為。-描述對象間的相互作用:分析對象之間的關系和交互方式,例如關聯(lián)、聚合、組合等。確定對象之間如何傳遞消息,以實現(xiàn)系統(tǒng)的功能。例如,在圖書館管理系統(tǒng)中,讀者可以借閱圖書,這就涉及到讀者對象和圖書對象之間的交互。-定義對象的操作:為每個對象定義其可以執(zhí)行的操作,這些操作反映了對象的行為。例如,圖書對象可以有借閱、歸還等操作。-定義對象的屬性:確定每個對象所具有的屬性,這些屬性描述了對象的狀態(tài)。例如,圖書對象的屬性可以包括書名、作者、出版社等。4.什么是黑盒測試和白盒測試?它們各自的優(yōu)缺點是什么?答案:黑盒測試是把測試對象看作一個黑盒子,測試人員只考慮軟件的輸入和輸出,而不考慮軟件的內(nèi)部結(jié)構(gòu)和實現(xiàn)細節(jié)。它主要根據(jù)軟件的需求規(guī)格說明書來設計測試用例,檢查軟件是否能正確地接收輸入并產(chǎn)生正確的輸出。白盒測試則是把測試對象看作一個透明的盒子,測試人員可以了解軟件的內(nèi)部結(jié)構(gòu)和實現(xiàn)細節(jié),根據(jù)程序的內(nèi)部邏輯來設計測試用例,檢查程序中的每條路徑是否都能按預定要求正確工作。黑盒測試的優(yōu)點:-測試人員不需要了解軟件的內(nèi)部結(jié)構(gòu),只需要根據(jù)需求規(guī)格說明書進行測試,降低了測試的難度和成本。-可以從用戶的角度出發(fā)進行測試,更能發(fā)現(xiàn)軟件與用戶需求不一致的問題。黑盒測試的缺點:-不能發(fā)現(xiàn)軟件內(nèi)部的邏輯錯誤和代碼中的潛在問題。-測試用例的設計可能不夠全面,難以覆蓋所有的輸入情況。白盒測試的優(yōu)點:-可以深入檢查軟件的內(nèi)部邏輯,發(fā)現(xiàn)代碼中的錯誤和潛在問題。-可以對程序的所有路徑進行測試,提高測試的覆蓋率。白盒測試的缺點:-測試人員需要了解軟件的內(nèi)部結(jié)構(gòu)和實現(xiàn)細節(jié),對測試人員的技術要求較高。-測試用例的設計和執(zhí)行比較復雜,成本較高。-由于軟件的內(nèi)部結(jié)構(gòu)可能非常復雜,很難對所有的路徑進行測試。四、應用題1.某商場進行促銷活動,規(guī)則如下:如果顧客購物金額在500元以下(不包括500元),沒有折扣;如果購物金額在500元到1000元(包括500元,不包括1000元),打9折;如果購物金額在1000元以上(包括1000元),打8折。請使用判定樹來表示該促銷規(guī)則。答案:判定樹如下:```購物金額/\<500元>=500元|/\無折扣<1000元>=1000元||9折8折```2.請使用UML類圖表示一個簡單的學生管理系統(tǒng),其中包含學生類(Student)、課程類(Course)和成績類(Grade)。學生類有學號(id)、姓名(name)等屬性;課程類有課程編號(courseId)、課程名稱(courseName)等屬性;成績類有學生對象(student)、課程對象(course)和成績(score)等屬性。答案:在UML類圖中:-學生類(Student):-屬性:-id:String-name:String-課程類(Course):-屬性:-courseId:String-courseName:String-成績類(Grade):-屬性:-student:Student-course:Course-score:double它們之間的關系:成績

溫馨提示

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

評論

0/150

提交評論