軟件工程 復習題含答案
《軟件工程 復習題含答案》由會員分享,可在線閱讀,更多相關《軟件工程 復習題含答案(8頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、- 1. 構成軟件項目的最終產品有哪些? 應用程序、系統(tǒng)程序、面向用戶的文檔資料和面向開發(fā)者的文檔資料。 2. 可行性研究目的? 確定在問題定義中所提出的問題是否值得去解,在限制條件下,問題能否解決。 3. 可行性研究包括哪幾方面的內容? (1)技術可行性:現(xiàn)有技術能否實現(xiàn)本系統(tǒng),現(xiàn)有技術人員能否勝任,開發(fā)系統(tǒng)的資源能否滿足; (2)經濟可行性:經濟效益是否超出開發(fā)成本; (3)操作可行性:系統(tǒng)操作在用戶內部行得通嗎? (4)法律可行性:新系統(tǒng)開發(fā)是否會侵犯他人、集體或國家利益,是否違反國家法律。 4. 需求分析的描述工具有哪些? 有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定表、判定
2、樹、結構化自然語言、層次方框圖、Warnier圖、IPO圖和需求描述語言等。 5. 需求分析的基本任務是什么? 準確定義未來系統(tǒng)的目標,確定為了滿足用戶的需要系統(tǒng)必須做什么。 6. 軟件需求規(guī)格說明書由哪些部分組成? 組成包括: (1) 引言:編寫目的、背景說明、術語定義及參考資料等。 (2) 概述主要功能、約束條件或特殊需求。 (3) 數(shù)據(jù)流圖與數(shù)據(jù)字典。 (4) 用戶接口、硬件接口及軟件接口。 (5) 性能需求、屬性等。 (6) 其它需求,如數(shù)據(jù)庫、操作及故障處理等。 7. 系統(tǒng)流程圖與數(shù)據(jù)流程圖有什么區(qū)別? 系統(tǒng)流程圖描述系統(tǒng)物理模型的工具,數(shù)據(jù)流程圖描述系
3、統(tǒng)邏輯模型的工具。 系統(tǒng)流程圖從系統(tǒng)功能的角度抽象的描述系統(tǒng)的各個部分及其相互之間信息流動的情況。 數(shù)據(jù)流程圖從數(shù)據(jù)傳送和加工的角度抽象的描述信息在系統(tǒng)中的流動和數(shù)據(jù)處理的工作狀況。 8. 數(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)邏輯模型。 9. 軟件工程的目標 是:在給定成本、進度的
4、前提下,開發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用 性、可適應性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產品。追求這些目標有助于提高軟件產品的質量和開發(fā)效率,減少維護的困難。下面分別介紹這些概念。 可修改性 (modifiablity)。容許對系統(tǒng)進行修改而不增加原系統(tǒng)的復雜性。它支持軟件的調試與維護,是一個難以達到的目標。 有效性 ?。╡fficiency)。軟件系統(tǒng)能最有效地利用計算機的時間資源和空間資源。各種計算機軟件無不將系統(tǒng)的時/空開銷作為衡量軟件質量的一項重要技術指標。很多場合,在追求時間有效性和空間有效性方面會發(fā)生矛盾,
5、這時不得不犧牲時間效率換取空間有效性或犧牲空間效率換取時間有效性。時/空折衷是經常出現(xiàn)的。有經驗的軟件設計人員會巧妙地利用折衷概念,在具體的物理環(huán)境中實現(xiàn)用戶的需求和自己的設計。 可靠性 ?。╮eliability)。能防止因概念、設計和結構等方面的不完善造成的軟件系統(tǒng)失效,具有挽回因操作不當造成軟件系統(tǒng)失效的能力。對于實時嵌入式計算機系統(tǒng),可靠性是一個非常重要的目標。因為軟件要實時地控制一個物理過程,如宇宙飛船的導航、核電站的運行,等等。如果可靠性得不到保證,一旦出現(xiàn)問題可能是災難性的,后果將不堪設想。因此在軟件開發(fā)、編碼和測試過程中,必須將可靠性放在重要地位。 可理解性
6、 ?。╱nderstandability)。系統(tǒng)具有清晰的結構,能直接反映問題的需求??衫斫庑杂兄诳刂栖浖到y(tǒng)的復雜性,并支持軟件的維護、移植或重用。 可維護性 ?。╩aintainability)。軟件產品交付用戶使用后,能夠對它進行修改,以便改正潛伏的錯誤,改進性能和其他屬性,使軟件產品適應環(huán)境的變化,等等。由于軟件是邏輯產品,只要用戶需要,它可以無限期的使用下去,因此軟件維護是不可避免的。軟件維護費用在軟件開發(fā)費用中占有很大的比重??删S護性是軟件工程中一項十分重要的目標。軟件的可理解性和可修改性有利于軟件的可維護性。 可重用性 ?。╮eusebility)。
7、概念或功能相對獨立的一個或一組相關模塊定義為一個軟部件。軟部件可以在多種場合應用的程度稱為部件的可重用性。可重用的軟部件有的可以不加修改直接使用,有的需要修改后再用??芍赜密洸考哂星逦慕Y構和注解,應具有正確的編碼和較低的時/空開銷。各種可重用軟部件還可以按照某種規(guī)則存放在軟部件庫中,供軟件工程師選用??芍赜眯杂兄谔岣哕浖a品的質量和開發(fā)效率、有助于降低軟件的開發(fā)和維護費用。從更廣泛的意義上理解,軟件工程的可重用性還應該包括:應用項目的重用,規(guī)格說明(也稱為規(guī)約)的重用,設計的重用,概念和方法的重用,等等。一般來說,重用的層次越高,帶來的效益也就越大。 可適應性 ?。╝dap
8、tability)。軟件在不同的系統(tǒng)約束條件下,使用戶需求得到滿足的難易程度。適應性強的軟件應采用廣為流行的程序設計語言編碼,在廣為流行的操作系統(tǒng)環(huán)境中運行,采用標準的術語和格式書寫文檔。適應性強的軟件較容易推廣使用。 可移植性 ?。╬ortability)。軟件從一個計算機系統(tǒng)或環(huán)境搬到另一個計算機系統(tǒng)或環(huán)境的難易程度。為了獲得比較高的可移植性,在軟件設計過程中通常采用通用的程序設計語言和運行環(huán)境支撐。對依賴于計算機系統(tǒng)的低級(物理)特征部分,如編譯系統(tǒng)的目標代碼生成,應相對獨立、集中。這樣,與處理機無關的部分就可以移植到其他系統(tǒng)上使用??梢浦残灾С周浖目芍赜眯院涂蛇m應性。
9、 可追蹤性 ?。╰racebility)。根據(jù)軟件需求對軟件設計、程序進行正向追蹤,或根據(jù)程序、軟件設計對軟件需求進行逆向追蹤的能力。軟件可追蹤性依賴于軟件開發(fā)各個階段文檔和程序的完整性、一致性和可理解性。降低系統(tǒng)的復雜性會提高軟件的可追蹤性。軟件在測試或維護過程中或程序在執(zhí)行期間出現(xiàn)問題時,應記錄程序事件或有關模塊中的全部或部分指令現(xiàn)場,以便分析、追蹤產生問題的因果關系。 可互操作性 ?。╥nteroperability)。多個軟件元素相互通信并協(xié)同完成任務的能力。為了實現(xiàn)可互操作性,軟件開發(fā)通常要遵循某種標準,支持折衷標準的環(huán)境將為軟件元素之間的可互操作提供便利??苫ゲ?/p>
10、作性在分布計算環(huán)境下尤為重要。 10. 選擇程序設計語言需要考慮的因素? (1)??? 選擇用戶熟悉、便于用戶維護的語言。 (2)??? 選擇目標系統(tǒng)的環(huán)境中可以提供的編譯程序所能選用的語言。 (3)??? 選擇可以得到的軟件工具,能支持程序開發(fā)中可以利用的語言。 (4)??? 根據(jù)工程規(guī)模的大小、目標系統(tǒng)應用范圍,如實時應用選擇Ada語言或匯編語言,系統(tǒng)軟件開發(fā)選擇C語言或匯編語言,軟件開發(fā)中若含有大量數(shù)據(jù)操作則選擇SQL、dBASE等數(shù)據(jù)庫語言等。 (5)??? 選擇程序員熟悉的語言。 (6)??? 選擇標準化程度高、程序可移植性好的語言。 (7)??? 根據(jù)算
11、法與計算的復雜性、數(shù)據(jù)結構的復雜性選擇。如對于系統(tǒng)程序和結構復雜的應用程序,選擇支持數(shù)組、記錄(或結構)與指針動態(tài)數(shù)據(jù)結構的Pascal語言或C語言。 (8)??? 根據(jù)實時要求系統(tǒng)需要的響應速度和效率選擇相應的語言。 %編碼風格的指導原則。 (9)??? 源程序:包括適當?shù)臉俗R符、適當?shù)淖⒔?、程序清單的合理布局與清晰; (10)數(shù)據(jù)說明:數(shù)據(jù)結構或數(shù)據(jù)類型的說明次序標準化;變量名稱盡量有意義;對復雜的數(shù)據(jù)結構在注解中要說明在程序設計中實現(xiàn)這個數(shù)據(jù)結構的方法。 (11)語句的構造簡單明了:不要為節(jié)省空間將多個語句寫在同一行;盡量避免復雜的條件及“非”條件的測試;避免大量使用循環(huán)嵌套和
12、條件嵌套;括號的使用是為了使邏輯表達式和算術表達式的運算順序清晰直觀。 (12)效率:考慮程序運行的時間存儲器效率、輸入/輸出的效率;在處理程序正確性、清晰與效率之間的關系時先求程序正確后求快;先求清楚后求快;保持程序簡單以求快;書寫清楚,不為“效率”犧牲清晰。 %第四代語言(4GL)應具備哪些的特征? (13)具有很強的數(shù)據(jù)管理能力,能對數(shù)據(jù)庫進行有效的存取、查詢和其它有關操作; (14)能提供一組高效的、非過程化的命令,組成語言的基本語句,編程時用戶只需用這些命令說明“做什么”,不必描述實現(xiàn)的細節(jié); (15)能滿足多功能、一體化的要求。為此,語言中除必須含有控制程序邏輯與實現(xiàn)數(shù)據(jù)
13、庫操作的語句外,還應包括生成與處理報表、表格、圖形,以及實現(xiàn)數(shù)據(jù)運算和分析統(tǒng)計功能的各種語句,共同構成一個一體化的語言,以適應多種應用開發(fā)的需要。 11. 人工復審的方式和作用? 人工復審的方式:代碼會審、走查和排練和辦公桌檢查; 人工復審的作用:檢查程序的靜態(tài)錯誤。 12. 詳細設計的目的? 為軟件結構圖(SC圖或HC圖)中的每一個模塊確定采用的算法和塊內數(shù)據(jù)結構,用某種選定的表達工具給出清晰的描述. 13. 詳細設計的描述工具應具備什么功能? 無論哪類描述工具不僅要具有描述設計過程,如控制流程、處理功能、數(shù)據(jù)組織及其它方面的細節(jié)的能力,而且在編碼階段能夠直接將它翻
14、譯為用程序設計語言書寫的源程序。 14.對源程序基本要求? 源程序要求:正確可靠、簡明清晰、效率高。 (1)??? 源程序的正確性是對程序質量的最基本要求; (2)??? 源程序的簡明清晰,便于驗證源代碼和模塊規(guī)格說明的一致性,容易進行測試和維護; (3)??? 對于大多數(shù)模塊,編碼時應該把簡明清晰放在第一位; (4)??? 除了編碼階段產生源代碼外,在測試階段也需要編寫一些測試程序,用于對軟件的測試。 15.可行性研究目的? 確定在問題定義中所提出的問題是否值得去解,在限制條件下,問題能否解決。 16.問題定義的任務和主要工作? 問題定義的任務:將用戶提出的要
15、求具體化、定量化;確定研制系統(tǒng)的范圍,明確研制的邊界。問題定義階段的工作: (1)? 通過調查研究,了解系統(tǒng)需求; (2)? 確定系統(tǒng)的功能需求、性能需求、可靠性需求、安全及保密性、資源、開發(fā)費用及開發(fā)進度等的需求; (3)? 問題定義階段的產品——系統(tǒng)目標與范圍說明書。 17.什么是模塊?模塊具有哪幾個特征?總體設計主要考慮什么特征? 模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序對象的集合,可以單獨命名且可通過名字來訪問。 模塊具有輸入和輸出(參數(shù)傳遞)、功能、內部數(shù)據(jù)結構(局部變量)和程序代碼四個特性。 概要設計主要考慮輸入、輸出(參數(shù)傳遞)和功能兩個特性。 18. 軟件測試的策略
16、 (1)? 在任何情況下都應使用邊界值分析的方法。 (2)? 必要時用等價類劃分法補充測試方案。 (3)? 必要時再用錯誤推測法補充測試方案。 (4)? 對照程序邏輯,檢查已設計出的測試方案。 (5)? 根據(jù)對程序可靠性的要求采用不同的邏輯覆蓋標準,再補充一些測試方案。 19. 影響軟件維護的因素有哪些? 開發(fā)方法:采用模塊化詳細設計文檔有助于理解軟件的結構、界面功能和內部流程;開發(fā)過程中嚴格而科學的管理規(guī)劃及清晰可靠的文檔資料對發(fā)生錯誤后的理解與糾錯是至關重要的;開發(fā)過程中模塊的獨立程度越高,對軟件修改越容易,對軟件的改進和移植越方便。 開發(fā)條件:軟件開發(fā)及維護人員的水平決定
17、了軟件開發(fā)的質量和維護的效率;開發(fā)過程中使用標準的程序設計語言和標準的操作系統(tǒng)接口,可以大大提高軟件的可維護性;在測試過程中用例的有效性,可極大地減少軟件存在的錯誤;其次使用規(guī)范化的文檔資料可為維護提供更好的依據(jù)。 20. 可行性分析的結果是可行性研究報告,內容包括: (1) 系統(tǒng)概述:說明開發(fā)的系統(tǒng)名稱,提出單位和開發(fā)單位。 (2) 可行性研究的前提:系統(tǒng)目標;要求;約束和限制;可行性研究的基本準則等。 (3) 對現(xiàn)有系統(tǒng)的分析:處理流程,圖示說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;現(xiàn)有系統(tǒng)存在的問題。 (4) 系統(tǒng)需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求
18、。 (5) 建議系統(tǒng):系統(tǒng)目標;處理流程;系統(tǒng)結構,功能,性能;系統(tǒng)技術可行性;投資和效益分析;操作可行性;法律可行性。 (6) 其它可選方案:與國內外同類型方案的比較;提出一兩個可行性方案供論證和探討。 (7) 制定下一階段的預算。 (8) 結論性意見:由用戶方、設計方和投資方共同簽署意見。 21. 主題:可行性研究的步驟? (1)復查系統(tǒng)的規(guī)模和目標; (2)研究目前正在使用的系統(tǒng),總結現(xiàn)有系統(tǒng)的優(yōu)劣,提出新系統(tǒng)的雛形; (3)導出新系統(tǒng)的高層邏輯模型; (4)推薦建議方案; (5)推薦行動方針; (6)書寫計劃任務書(可行性報告); (7)提交審查。
19、 22:軟件生存周期為什么劃分成階段?應該怎樣來劃分階段? (1)??? 任何一個階段的具體任務不僅獨立,而且簡單,便于不同人員分工協(xié)作,從而降低整個軟件開發(fā)工作的困難程度。 (2)??? 可以降低每個階段任務的復雜程度,簡化不同階段的聯(lián)系,有利于工程的組織管理,也便于采用良好的技術方法。 (3)??? 使軟件開發(fā)的全過程以一種有條不紊的方式進行,保證軟件的質量,特別是提高了軟件的可維護性。 二、 (1)每一個階段的任務盡可能獨立; (2)同一階段內的任務性質盡可能相同; (3)每一個階段任務的開始和結束有嚴格的標準。 [樓主] (1)? 充分吸收和借鑒人類長期以來從事
20、各種工程項目中積累的行之有效的有效原理、概念、技術與方法,特別是吸取幾十年來人類從事計算機硬件研究和開發(fā)的經驗教訓。在開發(fā)軟件的過程中努力作到良好的組織,嚴格的管理,相互友好的協(xié)作。 (2)? 推廣在實踐中總結出來的開發(fā)軟件的成功的技術和方法,并研究更好、更有效的技術和方法,盡快克服在計算機系統(tǒng)早期發(fā)展階段形成的一些錯誤概念和作法。 (3)? 根據(jù)不同的應用領域,開發(fā)更好的軟件工具并使用這些工具。將軟件開發(fā)各個階段使用的軟件工具集合成一個整體,形成一個很好的軟件開發(fā)支環(huán)環(huán)境。 總之為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。 23. 什么是軟件工程
21、軟件工程是指導計算機軟件開發(fā)和維護的工程學科。 (1) 它采用工程的概念、原理、技術和方法來開發(fā)和維護軟件; (2) 它將管理技術與當前經過時間考驗的而證明是正確的技術方法結合起來; (3) 它強調使用生存周期方法學和結構分析和結構技術; (4) 經過人們長期的努力和探索,圍繞著實現(xiàn)軟件優(yōu)質高產這個目標,從技術到管理兩個方面做了大量的努力,逐漸形成了”軟件工程學”這一新的學科。 24. 軟件開發(fā)模型有幾種?它們的開發(fā)方法有可特點 軟件開發(fā)模型有瀑布型、漸增型和變換型。 瀑布型開發(fā)方法是按照軟件生存周期的劃分依次實施,每一個階段有明確規(guī)定的任務。它的特點:
22、 (1)各個階段的順序性和依賴性; (2)劃分邏輯設計與物理設計,盡可能推遲程序的物理實現(xiàn); (3)每個階段必須完成規(guī)定的文檔,對其中問題通過復審及早發(fā)現(xiàn),及早解決。 漸增型開發(fā)方法及特點: (1) 從部分需求出發(fā),先建立一個不完全的系統(tǒng),通過測試運行該系統(tǒng)取得經驗和信息反饋,加深對軟件需求的理解,進一步使系統(tǒng)擴充和完善。如此反復,直至軟件人員和用戶對所設計完成的軟件系統(tǒng)滿意為止。 (2) 在漸增型開發(fā)下的軟件是隨軟件開發(fā)的過程而逐漸形成的。 (3) 漸增型開發(fā)方法適合于知識型軟件的開發(fā),設計系統(tǒng)時對用戶需求的認識開始不是很清楚的,需要在開發(fā)過程中不斷認識、不斷獲得新的知識去豐富和
23、完善系統(tǒng)。多數(shù)研究性質的試驗軟件,一般采用此方法。 變換型開發(fā)方法及特點: (1)從軟件需求的形式化規(guī)格說明出發(fā),經過一系列的程序變換,得到最終的程序系統(tǒng)。 (2)該方法必須有嚴格的數(shù)學理論和形式化技術的支持。 25. 什么是黑盒測試?黑盒測試主要采用的技術有哪些? 黑盒測試也稱為功能測試,它著眼于程序的外部特征,而不考慮程序的內部邏輯結構。測試者把被測程序看成一個黑盒,不用關心程序的內部結構。黑盒測試是在程序接口處進行測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)產生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。 黑盒測試主要采用的技術有:等價分類法、邊沿值分析法、錯誤推測法和因果圖等技術。 26. 路徑測試技術中幾種主要覆蓋的含義? 語句覆蓋:至少執(zhí)行程序中所有語句一次。 判定覆蓋:使被測程序中的每一個分支至少執(zhí)行一次。故也稱為分支覆蓋。 條件覆蓋:執(zhí)行所有可能的穿過程序的控制路流程。 條件組合測試:設計足夠的測試用例,使每個判定中的所有可能條件取值組合至少執(zhí)行一次。 .--
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。