❶ 軟體工程期末考試答案
一. 簡答題:
1.軟體工程的定義 P4
答:軟體工程師一門工程學科,涉及軟體生成的各個方面,從最初的系統描述一直到使用後的系統維護,都屬於其學科範疇。
2.軟體工程所面臨的主要問題 P3表格
答:多樣性的挑戰:必須開發出新技術,製作可靠的軟體,從而足以靈活應對這種多樣性。
交付上的挑戰:在不損及系統質量的前提下,縮短大型、復雜系統的移交時間。
信任的挑戰:研究能說明軟體可信的技術。
3.社會技術系統定義及主要特徵 P12-13
答:定義:一個包含有人、軟體和硬體在內的系統。
特徵:它們都有其整體特性
他們通常是不確定的
系統支持機構目標的程度和范圍不僅僅依賴於系統本身
4.瀑布模型的概念及其包含階段 P39-40
答:概念:這個模型採用一些基本的過程活動,即描述、開發、有效性驗證和進化,並且使 用單獨的過程階段(如需求描述、軟體設計、實現和測試等階段)表現這些活動
包含階段:需求分析和定義、系統和軟體設計、實現和單元測試、集成和系統測試、運行和維護
5.增量式開發的概念 P43
答:增量式開發是一種集中了這些模型的優點的體重綜合方法。每一步增量實現了一個或多個最終用戶功能。每一步增量包含所有早期的已開發的功能集加上一些新的功能;系統在逐步累積的增量中增長。就是一步一步漸增式的開發。
6.軟體工程的四個基本過程活動 P38
答:軟體描述、軟體設計和實現、軟體有效性驗證、軟體進化
7.介紹軟體工程的功能需求,非功能需求和領域需求 P73
答:功能需求:包括對系統應該提供的服務、如何對輸入作出反應以及系統在特定條件下的行為的描述。在某些情況下,功能需求可能還需明確聲明系統不應該做什麼。
非功能需求:對系統提供的服務或功能給出的約束。包括時間約束、開發過程的約束、標准等。非功能需求常用於整個系統。通常不用在單個系統或服務中。
領域需求:這是來自系統的應用領域的需求,反應了該領域的特點。他們也可能是功能需求或非公能需求。
8.客戶機/伺服器模型及優缺點 P152-153
答: 客戶機/伺服器體系結構的模型是一個分布式系統模型,系統由一組服務及相關的伺服器組成,客戶機訪問並使用這些服務。
優點:它是一個分布式體系結構。由許多分布式處理器構成網路系統可提供更有效的使用。添加一台伺服器或更新伺服器很容易而且是透明的,不會影響系統的其他部分。
缺點:在系統中集成一台伺服器需要改變現存的客戶機和伺服器以便獲得性能提升。要為每個伺服器建立專門的數據模型以便優化其性能。
9.分層模型及優缺點 P153-154
答: 把系統組織成一系列的層次,每一層提供一組服務。每一層定義一個抽象機,每個抽象機是由其下層的源機的代碼構成的。
優點:支持系統的增量式開發。抽象機轉換到其他機器上實現比較容易。
缺點:頂層上的用戶服務可能會需要穿過其相鄰層來獲取由更低層所提供的服務。性能也是一個問題。
10.數據處理系統及特點 P181
答:系統是以數據為中心的,它們的資料庫要比系統本身大很多個數量級。
特點:是批處理系統,數據的輸入和輸出時成批地從文件或資料庫中取出,也是成批地存入文件或資料庫中的,而不是對用戶終端進行輸入和輸出。
11.編譯器一般體系結構中包含的組件 P188-189
答:詞法分析器、符號表、語法分析器、語法樹、語義分析器、代碼生成器。
12.面向對象設計中,並發對象的實現方式和工作方式 P194-195
答:實現方式與工作方式:
伺服器 對象被實現為一個並行進程,它的方法對應為定義的對象操作。在收到外部時間後方法被啟動,方法的執行與其他對象上的方法是並行的。當對象完成了自身的操作時,對象中止,等待進一步的服務請求。
主動對象 對象狀態的改變可以來自對象內部操作的執行。代表對象的進程不停地執行這些操作,從不掛起。
13.用戶界面設計過程中的核心活動 P230
答:用戶分析:理解用戶所做的任務、工作環境、使用的其他系統、如何在工作中與他人交互等。
系統原型開發:開發原型系統並展示給用戶看,讓他們指導界面的進化。
界面評估:一個更正式的評估活動,在評估中收集有關用戶對界面的真實體驗信息。
14.極限編程適合敏捷方法原則 P244
答:(1)增量式開發時通過系統的小的頻繁發布的版本來支持的,其間所採用的需求描述方法是基於客戶情節或腳本的,這樣的客戶情節或腳本可以成為過程規劃的根據。
(2)客戶的參與是通過全時僱傭到開發團隊的方式。客戶代表參與開發並負責定義系統的接受測試。
(3)人是通過結對編程、集體對系統代碼所有權、可以忍受的開發過程而無需超頻的工作小時來運作的。
(4)變更是通過經常性的系統版本、測試優先的開發以及連續的集成來支持的。
通過持續的再分解來改善代碼質量並使用不預期系統將來的變更的簡單設計,來支持簡潔性的維護。
15.極限編程測試的關鍵特性 P246
答: XP當中的測試的關鍵特性:
(1)測試優先的開發。(2)來自腳本的增量式測試開發。
(3)用戶參與到測試開發和有效性驗證中。(4)自動測試系統的使用。
16.軟體原型在軟體開發過程中的使用方式
答:(1)在需求工程過程中,原型可以幫助導出系統需求並驗證系統需求的有效性。
(2)在系統設計階段,原型可以用來探索特殊的軟體解決方案和支持用戶界面設計。
(3)在測試階段,原型可以用來對准備移交給客戶的系統運行背對背的測試。
17.在規劃軟體復用時需要考慮的相關約束
答:軟體開發進度表 所預計的軟體生命期 開發團隊的背景,技術和經驗
軟體的危險程度和它的非功能性需求
應用領域 系統運行平台
18.在集成商業限制系統中面臨的問題
答:對功能和性能缺乏控制
商業現成系統間的互操作問題
無法控制系統的進化
COTS產品廠商的支持
19.組件與對象之間有什麼區別
答:組件是可部署的實體
組件不定義類型
組件實現是不透明的
組件是獨立於語言的
組件是標准化的
20.基於組件的軟體開發過程與傳統的軟體開發過程有什麼不同
答:(1)最初對用戶需求的開發只需要是概要性的而不用十分詳細,且鼓勵信息持有者在定
義他們的需求時盡可能地靈活。
(2)在過程的早期階段根據可利用的組件來細化和修改需求。
(3)在系統體系結構設計完成後,會有一個進一步的組件搜索及設計精煉的活動。
(4)開發就是將已發現的組件集成在一起的組成過程。
21.列舉軟體維護費用高的原因
答:團隊穩定性,合同責任 人員技術水平 程序年齡和結構
22.對軟體可維護性評估有用的過程度量包括哪些
答:糾正性維護請求的數目
影響分析所需的平均時間
實現一個變更請求的平均時間
突出的變更請求的數目
23.系統再工程過程中的行為有哪些
答:源代碼轉換 反向工程 程序結構改善 程序模塊化 數據再工程
❷ 在校大學生可以申請高級軟體工程師的考試么
參加資格考試還須符合下列條件