軟件工程試題與答案_第1頁
軟件工程試題與答案_第2頁
軟件工程試題與答案_第3頁
軟件工程試題與答案_第4頁
軟件工程試題與答案_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程復習題第一部分(第16章)一、選擇題:1. 開發軟件所需高成本和產品的低質量之間有著尖銳的矛盾,這種現象稱做(C)。A.軟件工程B.軟件周期C.軟件危機D.軟件產生2. 瀑布模型本質上是一種(A )模型。A.線性順序 B.順序迭代 C.線性迭代 D.早期產品3. 瀑布模型存在的問題是(B )。A用戶容易參與開發B缺乏靈活性C用戶與開發者易溝通 D適用可變需求4. 螺旋模型是一種將瀑布模型和(A)結合起來的軟件開發模型。A增量模型B專家系統C噴泉模型D變換模型5. 原型化方法是用戶和設計者之間執行的一種交互構成,適用于(A)系統。A需求不確定性高的B需求確定的C管理信息D實時6. 下列有

2、關軟件工程的標準,屬于國際標準的是(C )A.GB B.ANSI C.ISO D.IEEE7. 結構化方法是一種基于(D)的方法。A.數據結構 B.程序結構C.算法 D.數據流8. 軟件可行性研究實質上是要進行一次( A)需求分析、設計過程。A、簡化、壓縮的 B、詳細的C、徹底的D、深入的9. 可行性研究的目的是(D)A、分析開發系統的必要性B、確定系統建設的方案C、分析系統風險D、確定是否值得開發系統10. 設年利率為i,現存入p元,n年后可得錢數為(C)。A、P×(1+i*n)B、P× (i+1)*nC、p×(1+i)nD、p×(i+n)11. 可行

3、性研究是在(A)之前A、系統開發B、測試C、試運行D、集成測試12. 可行性研究需要的時間長短取決于系統的規模,一般來說,可行性研究的成本只是預期總成本的(C)。A、1%B、20%C、8%D、50%13. 我國正式頒布實施的(B)對計算機病毒的定義具有法律性、權威性。A計算機軟件保護條例B中華人民共和國計算機信息系統安全保護條例C中華人民共和國著作權法D計算機病毒防治管理辦法14. 效率是一個性能要求,因此應當在以下哪個階段規定?BA、可行性分析B、需求分析C、概要設計D、詳細設計15. 需求規格說明書的作用不包括(D)A、軟件驗收的依據 B、用戶與開發人員對軟件要做什么的共同理解C、軟件可行

4、性研究的依據D、軟件設計的依據16. 數據字典是用來定義(D)中的各個成份的具體含義的。A、程序流程圖B、功能結構圖C、系統結構圖D、數據流程圖17. 數據流程圖是(A)方法中用于表示系統邏輯模型的一種圖形工具。A、SAB、SDC、SPD、SC18. DFD中的每個加工至少有(A)。A、一個輸入流或一個輸出流 B、一個輸入流和一個輸出流C、一個輸入流D、一個輸出流19. 需求分析階段的關鍵任務是確定(D)A、軟件開發方法B、軟件開發工具C、軟件開發費D、軟件系統的功能20. 在SD方法中全面指導模塊劃分的最重要的原則是(D)。A、程序模塊化B、模塊高內聚C、模塊低耦合D、模塊獨立性21. 在模

5、塊的3種基本屬性中,反映模塊內部特性的是(C)。A、接口B、功能C、邏輯D、狀態22. 模塊的耦合性可以按照耦合程度的高低進行排序,以下哪一項符合從低到高的正確次序(D)。A、數據結構耦合,公共耦合,控制耦合,內容耦合B、數據耦合,控制耦合,數據結構耦合,公共耦合C、無直接耦合,數據結構耦合,內容耦合,控制耦合D、無直接耦合,數據耦合,控制耦合,內容耦合23. PDL(過程設計語言)是描述處理過程( C )A、做什么B、為什么做 C、怎么做D、對誰做24. (D)工具在軟件詳細設計過程中不采用。A、判定表B、IPO圖C、PDLD、DFD圖25. 為高質量地開發軟件項目,在軟件結構設計時,必須遵

6、循(A)原則。A.信息隱蔽 B、質量控制C、程序優化D、數據共享26. 當一個模塊直接使用另一個模塊的內部數據,這種模塊之間的耦合為(D)A、數據耦合B、公共耦合C、標記耦合D、內容耦合27. 詳細設計與概要設計銜接的圖形工具是(B)。A、DFD圖 B、SC圖 C、PAD圖 D、程序流程圖28. 下列幾種類型中,耦合性最弱的是(D)。A、內容型B、控制型C、公共型D、數據型29. 軟件結構使用的圖形工具,一般采用(C)圖。A、DFDB、PADC、SCD、ER30. 在七種偶合中,最低偶合是(D)。A、 內容偶合B、公共偶合C、數據偶合D、非直接偶合31. 結構化程序設計,主要強調的是(C)A程

7、序的執行效率B模塊的內聚C程序的可理解性D模塊的耦合32. 基線可作為軟件生存期中各開發階段的一個檢查點。當采用的基線發生錯誤時,可以返回到最近和最恰當的(C)上。A.配置項 B.程序 C.基線 D.過程33. 在軟件設計中應該保持模塊的獨立性原則,(A)反映模塊獨立性。A.耦合和內聚 B.數據和模塊 C. 模塊內部的凝聚力 D.模塊之間的耦合二、簡答題1. 什么是軟件工程?軟件工程的目標是什么?答:軟件工程是將系統化的、規范的、可度量的方法應用于軟件的開發、運行和維護過程,即將工程化應用于軟件開發和管理之中,對中所選方法的研究。目標:1 合理預算開發成本,付出較低的開發費用。2 實現預期的軟

8、件功能,達到較好的軟件性能,滿足用戶的需求。3 提高軟件的可維護性,降低維護費用。4 提高軟件開發生產率,及時交付使用2. 指出瀑布模型中下列任務的順序:驗收測試,項目計劃,單元測試,需求評審,成本估計,概要設計,詳細設計,系統測試,設計評審,編碼,需求規格說明書。答:項目計劃,成本估計,需求規格說明書,需求評審,概要設計,詳細設計,設計評審,編碼,單元測試,系統測試,驗收測試3. 可行性研究報告的主要內容是什么?答:可行性研究主要包括以下幾個部分: (1)概述(2)技術可行性(3)項目成熟程度(4)市場需求情況和風險分析(5)投資估算及資金籌措(6)經濟與社會效益(7)綜合實力和產業基礎(8

9、)項目實施進度計劃(9)其它尚需要說明的必要的方面(10)結論4. 什么是需求分析?需求分析階段的基本任務是什么?答:所謂"需求分析",是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數據,要得到什么結果,最后應輸出什么。可以說,“需求分析”就是確定要計算機“做什么”。任務:確定軟件項目的目標和范圍。調查使用者的要求,分析軟件必須做什么,編寫需求規格說明書等它相關文檔,并進行必要的需求審查。除此之外,還包括需求變更控制,需求風險控制,需求版本控制等對需求的管理工作5. 什么是結構化分析方法?該方法使用什么描述工具?答:結構化的分析方法是面向數據流的方法,

10、因此,此方法研究的核心是數據的組成和數據流向和對數據的加工處理。結構化分析方法用抽象模型的概念,按照軟件內部數據傳遞、變換的關系,自頂向下逐層分解,直至找到滿足功能要求的所有可實現的軟件元素為止描述工具:1系統流程圖 2 數據流程圖3數據字典4 IPO圖 5層次方框圖6實體關系圖7狀態變遷圖6. 結構化分析方法通過哪些步驟來實現?答:1)確定系統的功能要求 2) 確定系統的數據要求3) 確定系統的操作要求和界面要求4) 確定系統的性能要求5) 確定系統的運行要求6) 獲得當前系統的物理模型7) 抽象出當前系統的邏輯模型8) 建立目標系

11、統的邏輯模型。9) 修正開發計劃10)如果需要則開發系統原型 7. 什么是數據流圖?其作用是什么?其中的基本符號各表示什么含義?答:數據流圖:簡稱DFD,就是采用圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。數據流圖的基本符號的意思: 1.矩形表示數據的外部實體;2.圓角的矩形表示變換數據的處理邏輯; 3.少右面的邊矩形表示數據的存儲; 4.箭頭表示數據流。8. 什么是數據字典?其作用是什么?它有哪些條目?答:數據字典,主要用來描述數據流程圖中的數據流、數據存儲、處理過程和和數據源點/終點。作

12、用:數據流程圖描述了系統的邏輯結構,其中的四個基本圖形元素的含義無法在數據流程圖中詳細說明,因此數據流程圖需要與其他工具配合使用,數據字典就是這樣的工具之一。包括的條目:數據流詞條數據元素詞條數據存儲詞條數據加工處理詞條數據源點及終點詞條9. 什么是概要設計?有哪些基本任務?答:概要設計:根據用戶的需求先確定軟件系統的總體結構和總的設計原則。基本的任務:設想供選擇的方案。推薦最佳方案。功能分解,確定軟件結構。設計軟件結構。制定測試計劃。數據設計。書寫文檔。包括總體設計規格說明書。用戶手冊。測試計劃。設計審查和復審。10. 詳細設計的基本任務是什么?有那幾種描述方法?答:詳細設計階段的任務是要為

13、編寫程序代碼設計“圖紙”,由程序員按“圖紙”用某種高級程序設計語言編寫程序代碼。主要方法有設計程序流程圖,表格設計符號以及過程設計語言。11. 什么是變換流?什么是事物流?答:變換型數據流可以劃分為明顯的三部分:邏輯輸入,中心變換,邏輯輸出 事務流的特點是數據沿某個輸入路徑流動,該路徑將外部信息轉換成事務,其中發射出多條事務處理路徑的中心處理被稱為中心事務12. 模塊的內聚有哪幾種?模塊間的耦合有哪幾種?答:內聚分為七種類型:巧合內聚一個模塊執行多個完全互不相關的動作,那么這個模塊就有巧合內聚 邏輯內聚當一個模塊執行一系列相關的動作時,稱其有邏輯內聚。時間性內聚當一個模塊內的多個任務是與時間有

14、關時,這個模塊具有時間性內聚。過程內聚模塊執行的若干動作之間有順序關系。通信內聚模塊執行的若干動作之間有順序關系,并且所有動作是在相同的數據上執行。信息內聚一個模塊中執行一系列動作,每個動作都有自己的入口點和處理代碼,所有的動作都作用在相同的數據結構上,這樣的模塊叫做信息內聚。功能性內聚一個模塊中各個部分都是完成某一具體功能必不可少的組成部分耦合分為七類:內容耦合如果一個模塊直接參考另一個模塊的內容,則這兩個模塊是內容耦合。公共耦合如果多個模塊都訪問同一個公共數據環境,則稱它們是公共耦合。外部耦合如果兩個模塊都訪問同一個全局簡單變量而不是同一全局數據結構,而且,不是通過參數表傳遞該全局變量的信

15、息,則這兩個模塊屬于外部耦合。控制耦合如果模塊A向模塊B傳遞一個控制信息,則稱這兩個模塊是控制耦合的數據結構耦合當一個模塊調用另一個模塊時傳遞了整個數據結構,這兩個模塊之間具有數據結構耦合。數據耦合如果兩個模塊傳遞的是數據項,則這兩個模塊是數據耦合。非直接耦合如果兩個模塊之間沒有直接關系,它們之間的聯系完全通過主模塊的控制和調用來實現的,這就是非直接耦合。三、應用題 1某旅館的電話服務如下:可以撥分機號和外線號碼。分機號是從7201至7299。外線號碼先撥9,然后是市話號碼或長話號碼。長話號碼是以區號和市話號碼組成。區號是從100到300中任意的數字串。市話號碼是以局號和分局號組成。局號可以是

16、455,466,888,552中任意一個號碼。分局號是任意長度為4的數字串。寫出在數據字典中,電話號碼的數據條目的定義(即組成)。名稱簡稱類型長度取值范圍分機號Extension_Number字符47201.7299外線市話號Addition_Internumber字符99+455|466|888|552+4數字4外線長話號Addition_Extennumber字符129+100|101|102|.|298|299|300+455|466|888|552+4數字42下面是旅客訂飛機票的需求描述,試畫出分層的數據流程圖。顧客將訂票單交給預訂系統:(1)如果是不合法訂票單,則輸出無效訂票信息;(

17、2)對合法訂票單的預付款登錄到一個記賬文件中;(3)系統有航班目錄文件,根據填寫的旅行時間和目的地為顧客安排航班;(4)在獲得正確航班信息和確認已交了部分預付款時發出取票單,并記錄到取票單文件中。顧客在指定日期內用取票單換取機票:(1)系統根據取票單文件對取票單進行有效性檢查,無效的輸出無效取票信息;(2)持有有效取票單的顧客在補交了剩余款后將獲得機票;(3)記賬文件將被更新,機票以及顧客信息將被登錄到機票文件。訂單中有訂票日期、旅行日期、時間要求(上午、下午、晚上)、出發地、目的地、顧客姓名、身份證號、聯系電話。 0層流程圖 預定流程圖 取機票流程圖3一個簡化的圖書館信息管理系統有以下功能:

18、(1)借書:輸入讀者借書證,系統檢查借書證是否有效;查閱借書文件,檢查該讀者所借圖書是否超過10本,若已達10本,顯示信息“已經超出借書數量”,拒借;未達10本,辦理借書(檢查庫存、修改庫存信息并將讀者借書信息登入借書記錄)(2)還書:輸入書號和讀者號,從借書記錄中讀出與讀者有關的記錄,查閱所借日期,如果超過3個月,作罰款處理。否則,修改庫存信息與借書記錄。(3)查詢:可通過借書記錄、庫存信息查詢讀者情況、圖書借閱情況及庫存情況,打印各種統計表。請就以上系統功能畫出分層的DFD圖,并建立重要條目的數據字典。 0層數據流程圖 還書流程圖借書流程圖 查詢流程圖數據字典:元素名稱名稱類型說明IPO1

19、還書處理處理根據書號做還書處理,違規做處罰IPO2有效性檢查處理檢查讀者號,圖書號的有效性IPO3借書處理處理按讀者號,圖書號進行借書處理IPO4查詢處理管理員對一些基本信息進行查詢IPO5打印報表處理打印查詢到的信息IPO6處罰管理處理根據規則對延期給予相應的處罰IPO7數量檢查處理對讀者借出的數量是否符合規定進行檢查DS001讀者信息數據存儲讀者信息錄入,修改,刪除,保存DS002庫存信息數據存儲圖書的基本的情況以及所有圖書的整體情況DS003錯還信息數據存儲存儲借還書信息,系統自動處理,不能人工錄入DS004處罰信息數據存儲存儲延期的處罰信息4、某企業的設備維修委托給專業的技術公司完成,

20、現在要開發軟件對設備維修信息進行管理,具體描述如下:車間主任填寫維修申請單,內容有設備名稱、型號、故障描述、維護時間要求、預計費用;填好后交給審計人員,審計人員根據企業的審計規定對維修申請單進行審計,填寫審計意見和審計結果,審計意見可以修改費用,審計結果是同意或不同意;車間主任可以隨時查詢審計意見和結果;審計通過的維修申請單送給總經理進行審核,并填寫審核意見和結果,審核也是以修改費用,審核結果是同意或不同意。審核通過后,車間把設備送去維修。維修后由車間主任組織對設備維修結果進行驗收,企業對每臺有設備驗收標準。驗收通過后,由財務人員進行結算,填寫支付單并支付維修費。最后收取發票后,財務人員填寫發

21、票記錄。請畫出設備維修信息管理軟件的數據流程圖。參考答案如下,結果不唯一。5、某個學生成績管理系統的部分功能如下:(1)基本信息管理:教務管理人員輸入或修改學期教學計劃、學生名單和教師名單;(2)學生選課:學生根據教學執行計劃進行選課;(3)分配任課教師:教務管理人員為符合開課條件的課程分配教師;(4)教師查詢并打印課表;(5)成績管理:每門課程的教師在考試評分結束后將考試成績錄入,學生可查詢。 請根據要求畫出該問題的數據流程圖。6、一個簡化的養老院軟件需求描述如下:老人來到養老院,接待人員將老人的基本信息錄入到系統中,管理員讀取老人信息,進行護理級別的評估,根據評估結果分配床位、確定護理方案

22、,床位的分配信息存入床位分配數據表,每位老人的護理方案也要保存到數據庫表中。財務人員根據收費標準、床位分配信息、護理方案和老人的日常護理記錄計算應收費用,老人的家屬可以查詢應收費信息和老人的日常護理信息。護士根據老人基本信息、護理方案對老人進行日常護理,并向系統錄入每日的護理信息。請你根據以上的描述,畫出數據流程圖。7、學校教師工資管理系統的需求描述如下:教師每月末將本月的工作量輸入到系統中,學院負責人對教師輸入的工作量進行審核,財務部門對審核后的工作量計算本月工資,本月工資=基本工資各種補貼工作量獎金稅收保險一公積金金。基本工資、各種補貼、保險、公積金信息由人事處負責輸入和維護,教師可以查詢

23、月工資明細。銀行系統每月從本系統讀入每位教師的實發工資,并向每位教師的銀行卡帳戶打入月工資。教師可以查詢自己銀行卡的金額。請針對上面描述的需求畫出數據流程圖。8、學校開發的網上作業管理信息系統需求如下:教師使用本系統將作業題輸入到數據庫中,并且針對不同的學生布置不同的作業。學生在網上查看教師給自己布置的作業,并完成作業,完成的作業放在學生作業表中。教師在網上批閱作業,并可以統計作業完成情況。學生可以查看教師批閱的作業,修改作業中的錯誤,教師仍然可以查看學生修改作業的情況,并給予批閱。請仔細閱讀上面的描述,畫出數據流程圖。第二部分(第79章)一、選擇題1. 從本質上說,面向對象是“先”確定(A)

24、后確定執行的動作。A.動作的主體B.屬性C.關系D.方法2. (B)是對象的靜態特征。A.方法B.屬性C.關系D.操作3. 對象的(D)使對象的動態特征A.特征B.屬性C.關系D.操作4. 屬于某個類的一個具體對象稱為該類的(A)。A.實例B.虛擬C.繼承D.多態5. UML是(A)。A) 一種可視化的建模語言B) 是一種可視化的程序設計語言C) 是一種過程D) 是一種方法6. 封裝的的作用是(A)。A.復用B.對象C.實例D.方法8. 面向對象分析的核心在于建立(B)模型。 A. 建立正確的模型B. 識別問題域對象C.識別對象之間的關系D.上面所有9. 面向對象分析過程中建立的模型有(D )

25、。 A. 數據模型、功能模型、活動模型B. 對象模型、功能模型、測試模型C. 屬性模型、功能模型、對象模型D. 對象模型、功能模型、動態模型10. 下列的( C)不是分析建模的目的。 A. 定義可驗證的軟件需求 B. 描述客戶需求 C. 開發一個簡單的問題解決方案 D. 建立軟件設計的基礎 11. 下列的( C)不屬于面向對象分析模型。 A. 用例圖 B. 類圖 C. 實體關系圖 D. 順序圖 12. (A )用于描述系統中概念層次的對象。 A.分析類B. 界面類C.實體類D.控制類13. 在基于用例的面向對象分析過程中,定義交互行為的關鍵在于通過描述分析類實例之間的(A)將用例的職責分配到分

26、析類中。A. 消息傳遞B 關聯關系C 繼承關系D 上下文關系14.用例的實現細節不會在(B)描述。A. 用例說明B. 用例圖C.活動圖D.順序圖15.用例的職責通常分配給(D)的對象。A. 發送消息B. 接收消息C.發送和接收雙方D.分析類16.組織機構圖是(C)。A. UML的一個最新圖B. 類圖的一種C.用于識別角色的輔助圖D.用例圖的一種17.在圖書館系統中,假如已經構造了一個一般借書者類,后來發現圖書館的學生和教師在借書中有不同要求。請問在面向對象設計中用(B)方法可以方便地設計這兩個類? A.信息隱藏 B.繼承 C.動態聯編 D.代碼復制 18框架是一組可用于不同應用的(A)集合A.

27、 類 B.對象 C.模塊 D.代碼 19下面哪個選項不能描述子系統之間的關系。(D)A. 請求服務關系 B.繼承關系 C.依賴關系 D.數據關系20每個子系統的接口上定義了若干(B),體現了子系統的功能。A. 說明 B.操作 C.屬性 D.關系21通常將具有共性的非功能要求設計在(B),以減少重新開發的工作量。A. 接口層 B.中間層 C.最低層 D.最高層22.每個用例至少應該有一個(C),它通常沒有屬性而只有方法,只是起協調和控制作用。A. 接口類 B.實體類 C.控制類 D.界面類23.類有三種類型即(A)。A. 邊界類、實體類、控制類 B. 實體類、數據類、界面類C. 控制類、實體類、

28、數據類D. 界面類、控制類、公共類24.下面那個選項不是正確的面向對象設計思想。(C)A.對接口進行設計B.發現變化并且封裝它C.先繼承后組合D.先組合后繼承25.定義類的屬性類型時盡量使用已有的類型,太多的自定義類型會降低系統的(A)指標。A.可維護性 B.安全性 C.開發效率 D.可移植性26. 從本質上說,面向對象是“先”確定動作的()“后”執行(D)。A.數據結構/主體 B.主體/數據結構 C.動作/主體 D.主體/動作二、簡答題1. 舉例說明類和對象的關系。答:學生可作為一個類-學生類,每個學生就是這個學生類的一個實例,例如,學生張三就是學生類的一個實例。2. 面向對象分析的關鍵步驟

29、有哪些?應建立哪幾個模型?答:關鍵步驟有識別問題域的對象并分析它們相互之間的關系,建立簡潔、精確、可理解的正確模型;應建立的模型有功能模型,對象模型,動態模型。3. 什么是實體類、邊界類和控制類?為什么將分析類劃分成這三種類型? 答:(1)實體類保存要存入永久存儲體的信息。實體類通常在事件流或交互圖中,是對用戶最有意義的類。 邊界類位于系統與外界的交界處,包括所有的窗體、報表、系統硬件接口、與其他系統的接口。控制類負責協調其他類的工作。每個用例中至少應該有一個控制類,它控制用況中的事件順序。(2)分為三種類型是因為它們各自的功能不同。界面類描述系統與角色之間的接口。控制類在分析模型內表示協調、

30、順序、事務處理以及控制其他對象的類。實體類為需要長久保存的信息進行建模的類。4. UML中有哪幾類個視圖,它們的作用分別是什么?答:(1)用例視圖(Use-Case view)用例視圖用于描述系統的功能集。它是從系統外部以用戶角度,對系統做的抽象表示。用例視圖所描述的系統功能依靠于外部用戶或另一個系統觸發激活,為用戶或另一個系統提供服務,實現與用戶或另一個系統之間的交互。用例視圖中可以包含若干個用例,用例表示系統能夠提供的功能,用例視圖是其他視圖的核心和基礎。其他視圖的構造依賴于用例視圖中所描述的內容,因為系統的最終目標是實現用例視圖中描述的功能,同時附帶一些非功能性的特性,因此用例視圖影響著

31、所有其他的視圖。(2)邏輯視圖(Logical view)如果說用例視圖描述系統“做什么”,那么邏輯視圖就是描述“怎么做”。系統的靜態結構描述類、對象和它們之間的關系,反映的是系統靜態特征或結構組成。(3)組件視圖(Component view)組件視圖用來描述系統實現的結構和行為特征,反映系統各組成元素之間的關系。組件視圖由組件圖實現,主要供開發者和管理者使用。(4)并發視圖(Concurrency View)并發視圖用來描述系統的動態和行為特征。并發視圖將任務劃分為進程或線程形式,通過任務劃分引入并發機制,可以高效地使用資源、并行執行和處理異步事件。除了劃分系統為并發執行的進程或線程外,并

32、發視圖還必須處理通信和同步問題。(5)配置視圖(Deployment View)配置視圖體現了系統的實現環境,反映系統的物理架構。配置視圖還包括一個映射,該映射顯示在物理架構中組件是怎樣分配的。5. 順序圖在分析階段的作用?答:順序圖描述了一組交互對象間的交互方式,它表示完成某項行為的對象和這些對象之間傳遞消息的時間順序6. 活動圖在分析階段的作用?答:活動圖反映系統中從一個活動到另一個活動的流程,強調對象間的控制流程。活動圖特別適合描述工作流和并行處理過程。具體地說活動圖可以描述一個操作過程中需要完成的活動;描述一個對象內部的工作;描述如何執行一組相關的動作,以及這些動作如何影響它們周圍的對

33、象;說明一個業務活動中角色、工作流、組織和對象是如何工作的。7.比較結構化設計和面向對象設計區別?答:結構化設計:系統被劃分成多個模塊,這些模塊被組織成一個樹型結構。根就是主模塊,葉子是最低級的功能模塊。這棵樹也表示調用結構:每個模塊都調用自己的直接下級模塊,并被自己的直接上級模塊調用。頂層模塊負責收集應用程序最重要的那些執行策略,底層模塊實現處理細節。在這個體系結構中越靠上層位置,概念的抽象層次就越高。但是,由于上層模塊需要調用下層模塊,所以這些上層模塊就依賴于下層模塊的處理細節。也就是說,當實現細節發生變化時,抽象也會受到影響;如果想復用某一個抽象的話,就必須把它依賴的細節都一起拖過去。面

34、向對象設計:上層創建的抽象不依賴于任何細節,而細節則高度依賴于上層的抽象。這種依賴關系的變化正是結構化設計與面向對象設計的根本區別。8.什么是框架,它與“設計”有什么關系?答:框架是一組可用于不同應用的類的集合。框架中的類通常是一些抽象類并且相互有聯系,可以通過繼承的方式使用這些類,當面向對象設計進行底層設計時,對每個類進行詳細設計,設計類的屬性和操作,優化類之間的關系,就可以設計成框架來對類的設計進行構架和優化。9.系統的物理構架中應該包括哪些信息?答:用UML的配置圖描述系統的物理構架,然后將需求分析階段捕獲的系統功能分配到這些物理節點上。包括的信息為節點的拓撲結構、硬件設備配置、通信路徑

35、、各個節點上運行的系統軟件配置、應用軟件配置。三、應用題1. 一個多媒體商店系統包含一個由媒體文件構成的數據庫,有兩類媒體文件:圖像文件和聲音文件。每個媒體文件都有名稱和唯一的編碼,而且文件包含作者信息和格式信息,聲音文件還包含聲音文件的時長(以秒為單位)和作者的信息。假設每個媒體文件可以由唯一的編碼所識別,系統要提供以下功能:1) 媒體庫中可以添加新的特別媒體文件。2) 通過給定的文件編碼查找需要的媒體文件。3) 從媒體庫中刪除指定的媒體文件。4) 給出媒體庫中媒體文件的數量。考慮類imageFile和audioFile應該具有哪些恰當的屬性和方法答:imageFile類的屬性有:Name(

36、文件名稱),Code(編碼),AuthorInfo(作者信息),Format(格式信息);audioFile類除了擁有以上屬性外還有屬性Time(文件時長); imageFile類的方法:Add(imageFile)(添加圖像文件),Delete(Code)(刪除文件),GetFile(Code)(查找文件),GetNumber()(返回媒體文件的數量);audioFile類的方法:Add(audioFile)(添加聲音文件),Delete(Code)(刪除文件),GetFile(Code)(查找文件),GetNumber()(返回媒體文件的數量)。2. 若把學生看成一個實體,它可以分成多個子

37、實體,如小學生、中學生和大學生等。在面向對象的設計中,可以創建如下4個類:類Student、類Elementary Student、Middle Student;類University Student。試給出這4個類的屬性以及它們之間的關系。答:Student類為基類,其他三個類都是Student的子類。Student類的屬性有:Name(姓名),Sex(性別),Age(年齡),Class(班級)。Elementary Student類的屬性有:IsTeamMember(是否是少先隊員),IsGoodStudent(是否是三好學生)。Middle Student類的屬性為:IsMember(是

38、否是團員),Subject(文科理科)。University Student類的屬性為:IsPartyMember(是否黨員),Department(學院),Specialty(專業)。三、應用題1. 某學校領書的工作流程為:學生班長填寫領書單,班主任審查后簽名,然后班長拿領書單到書庫領書。 書庫保管員審查領書單是否有班主任簽名,填寫是否正確等,不正確的領書單退回給班長;如果填寫正確則給予領書并修改庫存清單;當某書的庫存量低于臨界值時,登記需訂書的信息。每天下班前為采購部門提供一張訂書單。 用活動圖來描述領書的過程。解:2. 使用順序圖描述下面的情景,當用戶在自己的計算機上向網絡打印機發出一個

39、打印任務時,他的計算機便向打印機服務器發送一條打印命令print(file),打印機服務器如果發現網絡打印機處于空閑狀態,則向打印機發送打印命令print(file),否則向打印隊列發送一條保存命令store(file)。 解:3. 某報社采用面向對象技術實現報刊征訂的計算機管理系統,該系統基本需求如下:(1)報社發行多種刊物,每種刊物通過訂單來征訂,訂單中有代碼,名稱,訂期,單價,份數等項目,訂戶通過填寫訂單來訂閱報刊。 (2)報社下屬多個發行站,每個站負責收集登陸訂單、打印收款憑證等事務。 (3)報社負責分類并統計各個發行站送來的報刊訂閱信息。 請就此需求建立對象模型。解:第三部分(第10

40、14章)一、 選擇題1. 結構化語言是介于自然語言和形式語言之間的一種(D)。A半形式語言B計算機語言 C低級語言D高級語言2. 程序設計語言的技術特性不應包括(C)。A、數據結構的描述性B、抽象類型的描述性C、數據庫的易操作性D、軟件的可移植性3. 程序的三種基本控制結構是(B)。A過程、子程序和分程序B順序、選擇和重復C遞歸、堆棧和隊列D調用、返回和轉移4. 結構化程序設計主要強調的是(D)。A程序的規模B程序的效率C程序設計語言的先進性D程序易讀性5. 下列關于功能性注釋不正確的說法是(B)。A.功能性注釋嵌在源程序中,用于說明程序段或語句的功能以及數據的狀態B.注釋用來說明程序段,需要

41、在每一行都要加注釋C.可使用空行或縮進,以便很容易區分注釋和程序D.修改程序也應修改注釋6. 下列關于效率的說法不正確的是(D)。A.效率是一個性能要求,其目標應該在需求分析時給出B.提高程序效率的根本途徑在于選擇良好的設計方法,數據結構與算法C.效率主要指處理機時間和存儲器容量兩個方面D.程序的效率與程序的簡單性無關7. 結構化維護與非結構化維護的主要區別在于(B )。A.軟件是否結構化B.軟件配置是否完整C.程序的完整性D.文檔的完整性8. 關于JAVA語言下列說法不正確的是(B)。A.跨平臺的B.動態指針C.解釋型的D.面向對象的9. 使用白盒測試方法時,確定測試數據應根據(A)和指定的

42、覆蓋標準。A程序內部邏輯 B程序復雜結構C使用說明書D程序的功能10. 確認測試主要涉及的文檔是(A)。A、需求規格說明書B、概要設計說明書C、詳細設計說明書D、源程序11. 測試的關鍵問題是(D)。A.如何組織對軟件的評審B.如何驗證程序的正確性C.如何采用綜合策略D.如何選擇測試用例12. 黑盒測試在設計測試用例時,主要研究(A)。A.需求規格說明B.詳細設計說明C.項目開發計劃D.概要設計說明與詳細設計說明13. 下面哪些測試屬于黑盒測試(B)。A、路徑測試B、等價類劃分 C、條件判斷 D、循環測試14. 在下述哪一種測試中,測試人員必須接觸到源程序(B)。A、功能測試B、結構測試C、功

43、能測試和結構測試 D、性能測試15. 檢查軟件產品是否符合需求定義的過程稱為(D)。A、確認測試B、集成測試C、驗收測試D、驗證測試16. 軟件測試方法中,黑盒、白盒測試法是常用的方法,其中白盒測試主要用于測試(D)。A、 結構合理性B、軟件外部功能C、程序正確性D、程序內部邏輯17. 軟件維護中,因修改交互輸入的順序,沒有正確的記錄而引起的錯誤是(A)產生的副作用。A、文檔B、數據C、編碼D、設計18. 以下屬于軟件維護階段文檔的是(C)。A、軟件需求說明B、操作手冊C、軟件問題報告D、測試分析報告19. 產生軟件維護的副作用,是指(C)。A、開發時的錯誤B、隱含的錯誤C、因修改軟件而造成的

44、錯誤D、運行時誤操作20. 維護中,因誤刪除一個標識符而引起的錯誤是(C)副作用。A、文檔B、數據C、編碼D、設計21. 可維護性的特性中,相互促進的(A)。A、可理解性和可測試性B、效率和可移植性C、效率和可修改性D、效率和結構好22. 軟件維護的困難主要原因是(C)A、費用低B、人員少C、開發方法的缺陷 D、用戶不配合23. 軟件維護費用高的主要原因是(C)。A、人員少 B、人員多 C、生產率低D、生產率高24. 為了適應軟硬件環境變化而修改軟件的過程是(C)。A、校正性維護 B、完善性維護C、適應性維護D、預防性維護25. 可維護性的特性中,相互矛盾的是(B)A.可理解性與可測試性 B.

45、效率與可修改性C.可修改性和可理解性 D.可理解性與可讀性26. 各種不同的軟件維護中,以(C)維護所占的維護量最小。A、 糾錯性維護B、代碼維護C、預防性維護D、文檔維護27. 在變更控制中,(B)可以用來確保由不同用戶所執行的并發變更。A異步控制B同步控制C存取控制D基線控制28. 變更控制是一項最重要的軟件配置任務,其中“檢出”和(A)處理實現了兩個重要的變更控制要素,即存取控制和同步控制。A登入B管理C填寫變更要求D審查29. 在整個軟件維護階段所花費的全部工作中,所占比例最大的是()A校正性維護 B適應性維護 C完善性維護 D預防性維護30. 下面關于文檔的敘述,錯誤的是(B)A文檔

46、是軟件產品的一部分,沒有文檔的軟件就不成為軟件。B文檔是僅用于說明使用軟件的操作命令,不包括軟件設計和實現細節。C高質量文檔對于轉讓、變更、修改、擴充和使用有重要的意義。D軟件文檔的編制在軟件開發工作中占有突出的地位和相當大的工作量。二、 簡答題1. 為建立良好的編程風格應遵循什么原則?答:1)節簡化不使用不必要的變量和函數避免變量重名,變量重名可導致很難被發現的錯誤。盡量減小代碼量。盡量減少代碼的執行時間,提高執行效率。避免功能冗余的模塊。盡量不使用全局變量。2)模塊化 確保物理和邏輯功能密切相關。 限定一個模塊完成一個獨立的功能, 提高模塊的內聚度。 檢查代碼的重復率,重復多的代碼, 要抽

47、出來作為一個單獨的模塊。3)簡單化 采用直接了當的算法,避免使用技巧 性高和難懂的代碼。 使用簡單的數據結構,避免使用多維 數組、指針和復雜的表。 注意對象命名的一致性。 以手工的方式簡化算術和邏輯表達式。4)結構化按標準化的次序說明數據;按字母順序說明對象名使用讀者明了的結構化程序部件;采用直截了當的算法;根據應用背景排列程序各個部分;不隨意為效率而犧牲程序的清晰度和可讀性;讓機器多做煩瑣的工作,如重復、庫函數;用公共函數調用代替重復出現的表達式;避免循環、分支的嵌套層數過高;單入口單出口。5)文檔化(documentation)有效、適當地使用注釋。協調使用程序塊注釋和程序行注釋。保持文檔

48、和程序的同步。6)格式化(layout)始終采用統一縮進規則;適當插入括號表明運算次序、排除二義性;有效地使用空格符以區別程序的不同意群。2. 什么是軟件測試?答:軟件測試從廣義上講,是指軟件產品生存周期內所有的檢查、評審和確認活動。從狹義上講,軟件測試是為了發現錯誤而執行程序的過程。或者說,軟件測試是根據軟件開發各個階段的規格說明和程序內部結構而精心設計一批測試用例,用這些測試用例運行程序,以發現程序錯誤的過程。3. 軟件測試的原則是什么?答:軟件測試的原則有:1) 應該把測試貫穿在整個開發過程之中。事實上,從需求分析階段開始,每個階段結束之前都要進行階段審查,目的是盡早發現和糾正錯誤。2)

49、 每個測試用例都應該包括測試輸入數據和這組數據輸入作用下的預期輸出結果。在實際操作中可以列出一張表格,包括每個測試用例的編號、類型、輸入數據、預期輸出結果、實際輸出結果、出錯原因分析。3) 要對每個測試結果進行全面檢查,不要漏掉已經出現的錯誤跡象。4) 程序員應該盡量避免檢查自己編寫的代碼。測試工作需要嚴格的工作作風,程序員在測試自己編寫的代碼時往往會帶有一些傾向性,使得他們工作中常常出現一些疏漏。而且,程序員對設計規格說明書的理解錯誤而引入的錯誤更是難于發現。5) 在設計測試用例時,應該包括有效的、期望的輸入情況,也要包括無效的和不期望的輸入情況。既能夠驗證程序正常運行的合理輸入,也能夠驗證

50、對異常情況處理的不合理輸入數據以及臨界數據。在測試程序時,人們常常過多地考慮合法的和期望的輸入條件,以檢查程序是否做了它應該做的事情,而忽視了不合法的和預想不到的輸入條件。事實上,用戶在使用系統時,輸入一些錯誤指令和參數是經常發生的,如果軟件遇到這種情況不能做出適當的反應,給出相應的提示信息,就可能會誤導用戶,甚至造成嚴重損失。6) 軟件中遺留的錯誤數量與已經發現的錯誤數量成正比。根據這個規律,對測試中發現錯誤成堆的模塊更要仔細測試。例如,在某個著名的操作系統中,44%的錯誤僅與4%的模塊有關。7) 回歸測試的關聯性要特別引起注意,修改一個錯誤而引起更多錯誤的現象并不少見。8) 測試程序時不僅

51、要檢查程序是否做了它應該做的事情,還要檢查它是否做了不該做的事情。例如,工資軟件中,軟件只完成在編職工的工資計算和輸出,不在編人員的工資是不進行計算和輸出的。如果軟件將不在編人員的工資信息也輸出顯然是不合適的。9) 嚴格執行測試計劃。在測試之前應該有明確的測試計劃,內容包括:要測試的軟件功能和內容、測試用例和預期結果、測試的進度安排、需要的工具和資源、測試控制方式和過程等。10)做好測試記錄,為統計和維護提供基礎數據。4. 請說明集成測試、系統測試和驗收測試有什么不同?答:集成測試界于單元測試和系統測試之間,起到“橋梁作用”,一般由開發小組采用白盒加黑盒的方式來測試,既驗證“設計”,又驗證“需

52、求”。系統測試的粒度最大,一般由獨立測試小組采用黑盒方式來測試,主要測試系統是否符合“需求規格說明書”。驗收測試與系統測試相似,主要區別是測試人員不同,驗收測試由用戶執行。5. 簡述單元測試的內容。 答:單元測試的內容有1)模塊接口測試:對通過被測模塊的數據流進行測試。為此,對模塊接口,包括參數表、調用子模塊的參數、全程數據、文件輸入/輸出操作都必須檢查。 2)局部數據結構測試:設計測試用例檢查數據類型說明、初始化、缺省值等方面的問題,還要查清全程數據對模塊的影響。3)路徑測試:選擇適當的測試用例,對模塊中重要的執行路徑進行測試。對基本執行路徑和循環進行測試可以發現大量路徑錯誤。4)錯誤處理測

53、試:檢查模塊的錯誤處理功能是否包含有錯誤或缺陷。例如,是否拒絕不合理的輸入;出錯的描述是否難以理解、是否對錯誤定位有誤、是否出錯原因報告有誤、是否對錯誤條件的處理不正確;在對錯誤處理之前錯誤條件是否已經引起系統的干預等。5)邊界測試:要特別注意數據流、控制流中剛好等于、大于或小于確定的比較值時出錯的可能性。對這些地方要仔細地選擇測試用例,認真加以測試。 5) 此外,如果對模塊運行時間有要求的話,還要專門進行關鍵路徑測試,以確定最壞情況下和平均意義下影響模塊運行時間的因素。這類信息對進行性能評價是十分有用的。6. 什么是白盒測試?它適應哪些測試?答:白盒測試也叫結構測試,測試者需要了解被測程序的

54、內部結構。白盒測試通常根據覆蓋準則設計測試用例,有語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋和條件組合覆蓋。 白盒測試適用與單元測試、集成測試、系統測試7. 非漸增式測試與漸增式測試有什么區別?漸增式測試如何組裝模塊?答:1)漸增式可以較早地發現模塊界面之間的錯誤,非漸增式則要到最后將所有模塊連接起來時才能發現此類錯誤。 2)非漸增式需要較多的人工 3)漸增式有利于排錯。如果模塊界面間有錯,如果用非漸增式,這類錯誤到最后聯合測試時才能發現,此時很難判斷錯誤發生在哪一部分,但如果用漸增式,這類錯誤就較容易定位,它通常與最新加上去的模塊有關。 4)漸增式比較徹底。 5)漸增式需要較多的機器時間。 6)非漸增式方式,開始時允許幾個測試人員并行工作,對大型系統來說,是很有意義的。8. 采用黑盒技術設計測試用例有哪幾種方法?這些方法各有什么特點?答:黑盒測試設計測試用例的方法有1)等價類劃分法 特點是:a、測試的內容相同

溫馨提示

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

評論

0/150

提交評論