- 后记,我算是知道为啥不给正确答案了…… 期末考试出的原题 - -
- 勘误:51 题需求工程的七个步骤应是起始、获取、细化、协商、规格说明、确认、管理(变更管理),在书上 p74 页(中文版)
<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">
加粗的为答案(仅供参考),如有错误麻烦评论一下,毕竟老师没给正确答案。
解析也写了,不过都是个人的看法 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 whenrequirements are well defined
B A good approach when a working coreproduct is required quickly 当需要快速的协同产品时,是一个好的方法
C The best approach to use for projectswith 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 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
描述白盒测试和黑盒测试技术。
白盒测试是知道产品内部工作过程的测试,它检测系统内部流程和逻辑结构是否正常执行,确定程序的实际运行状态与预期状态是否一致。
黑盒测试是不知道产品内部工作过程的,它检测程序的功能是否符合它的功能说明。