banner
cos

cos

愿热情永存,愿热爱不灭,愿生活无憾
github
tg_channel
bilibili

軟體工程期末小測

  • 後記,我算是知道為啥不給正確答案了…… 期末考試出的原題 - -
  • 勘誤:51 題需求工程的七個步驟應是起始、獲取、細化、協商、規格說明、確認、管理(變更管理),在書上 p74 頁(中文版)

加粗的為答案(僅供參考),如有錯誤麻煩評論一下,畢竟老師沒給正確答案。 解析也寫了,不過都是個人的看法0.0

一、單選題#

1、Software deteriorates rather than wears out because()?#

軟體會退化而不是磨損,其原因在於?

A Software suffers from exposure to hostile environments (惡略的環境)
B Defects are more likely to arise after software has been used often
C Multiple change requests introduce errors in component interactions

正確答案:不斷的需求變更會使組件介面之間引起錯誤

D Software spare parts become harder to order

2.Which of these are the 5 generic software engineering framework activities?#

通用的軟體工程過程框架活動有哪 5 個?

A communication, planning, modeling, construction, deployment

正確答案:溝通 - 策劃 - 建模 - 構建 - 部署

  • 溝通:目的是理解利益相關者的項目目標,並收集需求以定義軟體的特性和功能。
  • 策劃:定義和描述了軟體工程工作,包括需要執行的技術任務、可能的風險、資源需求、工作產品和工作進度計畫。
  • 建模:利用模型更好的理解軟體需求,並完成符合這些需求的軟體設計。
  • 構建:包括編碼和測試一發現編碼中的錯誤。
  • 部署:軟體(全部或者部分增量)交付到用戶,用戶對其進行評測並給出反饋意見。

B communication, risk management, measurement, production, reviewing

C analysis, designing, programming, debugging, maintenance

D analysis, planning, designing, programming, testing

3.Which of the items listed below is not one of the software engineering layers?#

以下哪項不是軟體工程層之一?

軟體工程是一種層次化的技術,包括過程層(process), 方法層(methods)、工具層(tool)。

A Process

B Manufacturing 不包括製造

C Methods

D Tools

4.Process models are described as agile because they#

过程模型被描述为敏捷模型,是因为它们?

A eliminate the need for cumbersome (繁瑣的) documentation

B emphasize maneuverability and adaptability 強調機動性和適應性

C do not waste development time on planning activities

D make extensive use of prototype creation

5.Evolutionary software process models#

演化軟體過程模型

本質上是迭代,可以輕鬆地適應產品需求的變化,一般不生產一次性系統

** 演化模型(Evolutionary Model)包括兩種常用的:**快速原型(Rapid Prototype)開發和螺旋模型

  • 快速原型開發開始於溝通,軟體開發人員與其他利益相關者進行溝通,定義軟體的整體目標,明確已知需求並大致勾畫出以後再進一步定義的東西,然後迅速策劃一個原型開發迭代並進行建模(快速設計),快速設計主要集中在那些最終用戶能夠看到的方面,產生一個原型,對原型進行部署後由利益相關者進行評估,根據利益相關者的反饋信息,進一步精煉軟體的需求。
  • 螺旋模型是快速原型模型以進化的開發方式為中心,在每個項目階段使用瀑布模型法。該模型的每一個周期都包括需求定義、風險分析、工程實現和評審 4 個階段,由這 4 個階段進行迭代。軟體開發過程每迭代一次,軟體開發又前進一個層次。螺旋模型強調風險分析,使得開發人員和用戶對每個演化層出現的風險有所了解,繼而做出應有的反應,因此適用於龐大、複雜並具有高風險的系統。

6.The linear sequential model of software development is#

軟體開發的線性順序模型是

就是瀑布模型啦,在明確定義需求時用瀑布模型開發最佳。

A A reasonable approach when requirements are well defined 在明確定義需求時的合理方法

B A good approach when a working program is required quickly.

C The best approach to use for projects with large development teams.

D An old fashioned model that cannot be used in a modern context.

7.The incremental model of software development is#

軟體開發的增量模型是

增量模型把瀑布模型的順序特徵與快速原型法的迭代特徵相結合,將軟體看作一系列相互聯繫的增量,在開發過程的各次迭代中,每次完成其中的一個增量能在較短的時間內向用戶提交可完成部分工作的產品

A A reasonable approach when requirements are well defined

B A good approach when a working core product is required quickly 當需要快速的協同產品時,是一個好的方法

C The best approach to use for projects with large development teams

D A revolutionary model that is not used for commercial products

8.The prototyping model of software development is#

軟體開發的原型模型是

如上,原型開發在明確初步需求後迅速策劃一個原型開發迭代並進行建模(快速設計),後面再慢慢補充需求不斷迭代,適用於需求不明確的客戶

A A reasonable approach when requirements are well defined

B A useful approach when a customer cannot define requirements clearly 當客戶不能明確定義需求時,這是一種有用的方法

C The best approach to use for projects with large development teams

D A risky model that rarely produces a meaningful product

9.Which of the following traits (特徵) need to exist among the members of an agile software team?#

以下哪些特徵需要存在於哪些敏捷軟體團隊成員之間?

A Competence (能力)

B Decision-making ability (決策能力)

C Mutual trust and respect 相互信任和尊重

D All of the above 以上都是

10.What are the four framework activities found in the Extreme Programming (XP) process model?#

在極端編程 (XP) 過程模型中發現的四個框架活動是什麼?

極限編程 (XP) 是敏捷模型中最重要的軟體開發框架之一。它包含了策劃、設計、編碼和測試 4 個框架活動的規則和實踐。

  • 策劃:即需求分析,但是不僅僅是用戶需求,應該是開發中遇到的所有的需求。
  • 設計:編碼前,肯定有個計劃告訴你要做什麼,結構是怎樣等等。. 你一定要按照這個來做,否則可能會一團糟。
  • 編碼:建議在開始編碼之前為每一個故事開發一系列單元測試,基於這些單元測試在進行編程。與此同時鼓勵結對編程以提高效率。
  • 測試:每天都要執行單元測試,以便提前發現問題。

A analysis, design, coding, testing

B planning, analysis, design, coding

C planning, analysis, coding, testing

D planning, design, coding, testing 策劃、設計、編碼、測試

11.Which is not one of the key questions that is answered by each team member at each daily Scrum meeting?#

下列哪項不是每個團隊成員在每日站會(Daily Scrum)上回答的關鍵問題之一?

敏捷開發流程之 Scrum

開發團隊是自組織的,通過每日站會來確認他們仍然可以實現 Sprint 的目標。
每一個開發團隊成員需要提供以下三點信息:

  • 昨天我完成了什麼;
  • 今天我計劃完成什麼;
  • 有什麼阻礙了我的進展。

每日 Scrum 通常不超過 15 分鐘。
每日 Scrum 中可能有簡要的問題澄清和回答,但是不應該有任何話題的討論。
每日 Scrum 既不是向管理層匯報,也不是向產品負責人或者 ScrumMaster 匯報。它是一個開發團隊內部的溝通會議,來保證他們對現狀有一致的了解。

A What did you do since the last meeting? 從上次會議到現在你完成了什麼

B What obstacles are you encountering? 你遇到了什麼障礙

C What is the cause of the problems you are encountering? 你遇到這些問題的原因是什麼?(×,不屬於每日站會的問題)

D What do you plan to accomplish at the next team meeting? 到下次會議你打算完成什麼(即 今天你想完成什麼)

12.Which of the following is not necessary to apply agility to a software process?#

以下哪一項將敏捷性應用於軟體流程是不必要的?

A Eliminate (消除) the use of project planning and testing 消除項目規劃和測試的使用(Duck 不必)

B Only essential work products are produced 只生產基本的工作產品

C Process allows team to streamline tasks 流程允許團隊簡化任務

D Uses incremental product delivery strategy 使用增量式產品交付策略

13.How do you create agile processes to manage unpredictability?#

如何創建敏捷流程來管理不可預測性?

A Risk analysis must be conducted before planning takes place 在計劃進行前,必須進行風險分析

B Software increments must be delivered in short time periods 軟體增量必須在短時間內交付

C Software processes must adapt to changes incrementally 軟體流程必須逐步適應變化

D both B and C

14.Which of the following is not one of the principles of good coding?#

以下哪一個不是良好編碼的原則之一?

A Create unit tests before you begin coding 在開始編碼前,請先創建單元測試

B Create a visual layout that aids understanding 創建一個有助於理解的視覺佈局

C Keep variable names short so that code is compact 保持變量名較短,以便使代碼緊湊(是不對的!變量名應見名知義)

D Write self-documenting code, not program documentation 編寫自文檔化代碼,而不是程序文件(就是說,可讀性很強的代碼本身就易於理解,而不需要依賴外部文檔)

15.Which of the following is not one of Hooker’s core principles of software engineering practice?#

以下哪一項不是胡克的軟體工程實踐的核心原則之一?

A All design should be as simple as possible, but no simpler 所有的設計都應該盡可能簡單,但不是更簡單

B A software system exists only to provide value to its users 軟體系統的存在只是為了為用戶提供價值

C Pareto principle (20% of any product requires 80% of the effort) 帕累托法則(任何產品的 20% 都需要 80% 的努力)

D Remember that you produce others will consume 記住,你生產別人會消費

16.Software engineers collaborate with customers to define which of the following?#

軟體工程師與客戶合作,以定義以下哪一項?

A customer visible usage scenarios 客戶可見的使用場景

B Important software features 重要的軟體特性

C System inputs and outputs 系統的輸入和輸出

D All of the above 以上都是

17.What role(s) do user stories play in agile planning?#

用戶故事在敏捷規劃中扮演著什麼角色?

用戶故事是旨在幫助業務人員和技術人員雙方都能理解需求,敏捷開發中用戶故事的細化為開發提供了可執行標準。

A Define useful software features and functions delivered to end-users 定義提供給最終用戶的有用的軟體特性和功能

B Provide a substitute to performing detailed scheduling of activities 提供執行詳細活動安排的替代品

C Used to estimate the effort required build the current increment 用於估計構建當前增量所需的工作量

D both A and C

18.The system requirement specification describes the#

系統需求規約描述了

A Function, performance and constraints of a computer-based system 一個基於計算機的系統的功能、性能和約束條件

B implementation of each allocated system

C element software architecture

D time required for system simulation

19.During project inception the intent of the tasks are to determine#

在項目開始期間,這些任務的目的是要確定的

A basic problem understanding 基本問題理解

B nature of the solution needed 所需的解決方案的性質

C people who want a solution 那些想要一個解決方案的人

D All of the above 以上都是

20.Which of the following is not one of the requirement classifications used in Quality Function Deployment(QFD)?#

以下哪一項不是質量功能部署 (QFD) 中使用的需求分類之一?

質量功能部署 (QFD) 是一種將客戶要求轉換成軟體技術需求的技術,它確認了三類需求,以最大限度讓客戶從軟體工程中感到滿意:正常需求、期望需求、意外需求

A exciting 意外需求

B expected 期望需求

C mandatory 強制?命令?反正不是

D normal 正常需求

21.Which of the following is not one of the context-free questions that would be used during project inception?#

以下哪一個問題不是項目開始時使用的上下文無關(context-free)問題?

A What will be the economic benefit from a good solution? 一個好的解決方案會給你帶來什麼經濟效益呢?

B Who is against this project? 誰反對這個項目?

C Who will pay for the work? 誰將為這項工作買單?

D Who will use the solution? 誰將使用這個解決方案?

22.In collaborative requirements gathering, the facilitator#

在協作需求收集中,服務商

A cannot be a member of the software team 不能成為該軟體團隊的成員

B cannot be a customer 不能成為客戶

C controls and facilitates the process 控制和促進這個過程

D must be an outsider 必須是局外人

23.Which of following is not a UML diagram used creating a system analysis model?#

以下哪一個不是用來創建系統分析模型的 UML 圖?

A activity diagram 活動圖

B class diagram 類圖

C dataflow diagram 數據流圖

D state diagram 狀態圖

24.UML activity diagrams are useful in representing which analysis model elements?#

UML 活動圖在表示哪些分析模型元素時很有用?

A Behavioral elements 行為元素

B Class-based elements 基於類的元素

C Flow-based elements 基於流的元素

D Scenario-based elements 基於場景的元素

25.Which of the following is not an objective for building an analysis model?#

以下哪一個不是建立分析模型的目標?

分析模型必須實現的三個主要目標:描述客戶需要什麼;為軟體設計奠定基礎;定義在軟體完成後可以被確認的一組需求。

A define set of software requirements that can be validated 定義在軟體完成後可以被確認的一組需求。

B describe customer requirements 描述客戶需求

C develop an abbreviated solution for the problem 為這個問題開發一個簡短的解決方案

D establish basis for software design 為軟體設計奠定基礎

26.Which of the following items does not appear on a CRC card?#

以下哪些物品沒有出現在 CRC 卡上?

CRC 卡是一個標準索引卡集合,每一張卡片表示一個類。類名在最上方,類的職責在左側,類的協作關係放在右側。

A class collaborators 類的協作關係

B class name 類名

C class reliability 類的可靠性??反正不在卡上

D class responsibilities 類的職責

二、判斷題#

27.Most software development projects are initiated to try to meet some business need.#

大多數軟體開發項目都是為了滿足一些業務需求。

28.Change cannot be easily accommodated in most software systems, unless the system was designed with change in mind.#

在大多數軟體系統中,變化無法輕易地得到適應,除非系統在設計中就考慮到更改。

29 與 28 相同

30.Software is a product and can be manufactured using the same technologies used for other engineering artifacts (工程工件).#

軟體是一種產品,可以使用與其他工程工件所使用的相同技術來製造。

31.Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.#

軟體流程可以由已有的軟體模式構建,以最好地滿足軟體項目的需求。

對(站在前人的肩膀上嘛)

32.lt is generally accepted that one cannot have weak software processes and create high quality end products.#

人們普遍認為,一個較弱的軟體流程無法創造出高質量的終端產品。

33.Software engineering umbrella activities (普適活動) are only applied during the initial phases of software development projects.#

軟體工程普適活動僅適用於軟體開發項目的初始階段。

錯,普適性活動適用於整個軟體過程。

34.Process technology tools allow software organizations to compress schedules by skipping unimportant activities.#

流程技術工具允許軟體組織通過跳過不重要的活動來壓縮計畫時間表。

35.lt is not possible to build software that meets the customers’ needs today and exhibits the quality characteristics that will enable it to be extended tomorrow.#

不可能構建出既能滿足今天客戶需求又能展示了將使其能夠在明天得到擴展的質量特性。

36.In agile software processes the highest priority is to satisfy the customer through early and continuous delivery of valuable software.#

在敏捷軟體流程中,最優先的是通過早期和持續交付有價值的軟體來滿足客戶。

37.Agility is nothing more than the ability of a project team to respond rapidly to change.#

敏捷性只不過是項目團隊對變化做出快速反應的能力。

錯 不止

38?

39.Teams using agile software practices never create models.#

使用敏捷軟體實踐的團隊從不創建模型。

錯,敏捷開發不意味著就不設計原型了

40.Analysis patterns facilitate (有助於) the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.#

分析模式通過為常見問題提供可靠的解決方案,有助於將分析模型轉換為設計模型。

41.Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.#

開發人員和客戶創建用例,以幫助軟體團隊了解不同類別的最終用戶將如何使用功能。

42.A stakeholder is anyone who will purchase the completed software system under development#

利益相關者是指將購買正在開發的完整軟體系統的任何人

錯,利益相關者是在軟體項目中存在利害關係的人,是受到系統影響或對系統開發產生影響的人

43.Use-case actors are always people, never system devices.#

用例參與者總是人,而不是系統設備。

錯,也可以是系統、時間等

44.In many cases there is no need to create a graphical representation of a usage scenario.#

在許多情況下,不需要創建使用場景的圖形表示。

45.lt is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.#

對於不同的客戶來說,它提出相互衝突的要求是相對常見的,每個人都認為他或她的版本是正確的。

46.Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.#

信息隱藏通過向程序中未受影響的部分隱藏數據和過程,使程序維護更容易。

三、簡答題#

47.Explain what is wrong with the notion that computer software does not need to evolve (發展) over time.#

解釋 “計算機軟體不需要隨時間發展” 的觀念有什麼錯誤。

隨著時間推移,在發現和糾正新的錯誤時,必須更新軟體,以適應計算環境中的變化。還有多時候,客戶會請求向現有產品添加新功能或適應業務環境中的更改。有時,一個較舊的系統將需要重新設計,以便在現代環境中為用戶提供好處。不發展的軟體最終將無法使用。

48.Why are incremental process models considered by many to be the best approach to software development in a modern context?#

為什麼許多人認為增量模型是現代環境下軟體開發的最佳方法?

增量模型是指在軟體開發過程中,先開發主要功能模塊,再開發次要功能模塊,逐步完善,最終開發出符合需求的軟體產品。現代軟體變得小而全,在開發過程中用戶需求更為複雜,需要一種方式提供增量進化,這個過程容納更多的不確定性。

49.Describe the phases of the prototyping model for software development?#

描述軟體開發的原型模型的各個階段?如圖

請添加圖片描述

首先需要交流,從客戶與開發者會議中識別出他們的需求和目標,其次是快速設計階段,聚焦在更具有代表性的功能,將有形的設計原型給客戶。一個原型出現後,再由客戶與開發者反覆改進,直至建立完整的新系統。

50.Describe the role of risk analysis in evolutionary process models like the spiral model.#

描述風險分析在螺旋模型等進化過程模型中的作用。

螺旋模型強調風險分析,由於存在許多不確定因素,軟體開發失敗的風險是客觀存在的,在每次迭代時,都需要執行風險分析,在技術及管理上進行評估,看其所需的功能與時間、成本是否可以接受。

51.what are the seven steps for requirements engineering?#

需求工程的七個步驟是?

勘誤:需求工程的七個步驟應該是

①起始:定義將要解決的問題的範圍和性質

②獲取:幫助利益相關者定義他們需要什麼

③細化:精確定義和修改基本需求

④協商:調解衝突,協商如何定義優先次序?什麼是必需的?什麼時候需要?

⑤規格說明:可以是一份寫好的文檔 / 一套圖形化的模型 / 一個形式化的數學模型等等

⑥確認:對需求工程的工作產品進行質量評估,確保其完整無歧義的說明了所有的系統。

⑦管理:對於需求變更的管理,評估每個建議的變更

52.Describe the weaknesses of use-cases as part of the requirements engineering process.#

需求工程過程中用例的缺點是?

①不是面向對象的,沒有主動應用的作用

②兩個用例間的關係沒有嚴格定義

③不顯示系統中任何流或者依賴關係,沒有表示操作順序

53.Describe white box testing and black box testing techniques.#

描述白盒測試和黑盒測試技術。

白盒測試是知道產品內部工作過程的測試,它檢測系統內部流程和邏輯結構是否正常執行,確定程序的實際運行狀態與預期狀態是否一致。

黑盒測試是不知道產品內部工作過程的,它檢測程序的功能是否符合它的功能說明。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。