一.单选题(共17题,68.0分)
【单选题】RUP定义了初启阶段、精化阶段、构建阶段、移交阶段,每个阶段以达到某个里程碑时结束,其中( )的里程碑是生命周期架构。
A、构建阶段
B、精化阶段
C、初启阶段
D、移交阶段
答案:B
解析:不同阶段对应的里程碑
初启阶段 - 生命周期目标
精化阶段 - 生命周期架构
构建阶段 - 初始可操作性能
移交阶段 - 产品发布
【单选题】下列关于敏捷联盟宣言的理解错误的是( )。
A、个体和交互胜过过程和工具,表明团队的构建比开发环境的构建重要得多
B、可以工作的软件胜过面面俱到的文档,表明过多的文档比过少的文档更糟糕
C、响应变化胜过遵循计划,表明项目计划不能考虑过远,只需要为下几周做详细计划即可,再远的时间可制定简略的规划
D、客户合作胜过合同谈判,表明成功的项目需要客户配合开发团队详细明确地制定合同,避免开发时关于工作内容的过多交互
答案:D
解析:敏捷过程认为规定了需求、进度和项目成本的合同在根本上是存在缺陷的,更重要的是客户在开发中充分互动和协作。
【单选题】瀑布模型是( )。
A、适用于需求被清晰定义的情况
B、一种需要快速构造可运行程序的好方法
C、一种不适用于商业产品的创新模型
D、目前业界最流行的过程模型
答案:A
解析:瀑布模型的缺点就是如果需求没有被很好地定义,会造成大量反馈浪费或产品和实际需求不符(因为它假设一开始需求就是定义好的)。因此特别适用于需求被清晰定义的情况。
【单选题】以下关于软件过程的说法,错误的是( )。
A、软件过程可被检查、理解、控制和改进。
B、软件过程是在软件生命周期中所实施的一系列活动的集合。
C、软件过程可以保证各活动之间是有组织的和一致的,因此会缺乏灵活性。
D、软件过程是指为建造高质量软件所需完成的任务的框架,它规定了完成各项任务的工作步骤。
答案:C
解析:例如敏捷过程,就是以灵活性为特点。
【单选题】极限编程采用( )工具来了解与需求相关的内容。
A、用户素材
B、访谈大纲
C、用例图
D、思维导图
答案:A
【单选题】以下关于极限编程(XP)的最佳实践的叙述中,不正确的是( )。
A、系统最终用户代表应该全程配合XP团队
B、只处理当前的需求,使设计保持简单
C、编写完程序之后编写测试代码
D、可以按日甚至按小时为客户提供可运行的版本
答案:C
解析:极限编程的每次迭代都要有对应的测试代码进行测试。
【单选题】下列关于瀑布模型的说法正确的是( )。
A、实际工作中,瀑布模型仅能依次经过需求、设计、编码、测试、集成和维护这一路径进行项目开发,不能从后一阶段返回到前面的阶段。
B、瀑布模型并非在每一阶段都要求生成相应的文档。
C、经典瀑布模型只有在需求阶段和运行阶段才能有客户方和用户的参与,其余阶段只能开发团队参加。
D、经典瀑布模型要求需求必须在最初阶段就要完整和明确。
答案:D
解析:
A、通过反馈环(就是指向上一个阶段的箭头),后一个阶段可以返回到前一个阶段。
B、瀑布模型是文档驱动的模型,它关心每一阶段的文档正确性(编码阶段也会生成相关文档),例如需求文档、设计文档、测试计划等。
C、瀑布模型并不限制客户方和用户的参与阶段。
【单选题】下列关于增量模型的说法正确的是( )。
A、增量模型并不要求需求在最初阶段就是完整和明确的。
B、增量模型能够更早的向用户交付第一个版本的系统。
C、相比于瀑布模型,采用增量模型开发的项目所需的成本和时间要少。
D、采用增量模型时,每一增量必须按照既定顺序依次开发,不能更改。
答案:B
解析:
A、增量模型需要完整和明确的需求,因为增量模型要在一开始就对整体架构进行设计。
C、开发的总成本和时间并不一定更少。增量模型的优点在于交付第一个版本的速度更快、开发的初期成本要求更少。
D、增量模型可以根据实际情况改变开发顺序,这是它管理风险的方式。
【单选题】原型化模型是( )。
A、适用于客户需求难以清楚定义的情况
B、适用于客户需求被明确定义的情况
C、很难产生有意义产品的一种冒险模型
D、提供一个精确表述的形式化规格说明
答案:A
解析:原型化模型利用原型能统一客户和开发人员对软件项目需求的理解,有助于需求的定义和确认。通过快速的原型迭代,原型化模型能把需求定义的更加清晰。
【单选题】下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( )。
A、瀑布模型
B、增量模型
C、喷泉模型
D、演化模型
答案:C
解析:面向对象 ==> 喷泉模型
【单选题】增量模型是( )。
A、适用于需求被清晰定义的情况
B、一种需要快速构造核心产品的好方法
C、一种不适用于商业产品的创新模型
D、已不能用于现代环境的过时模型
答案:B
解析:增量模型的优点:快速交付第一个版本。
【单选题】以下关于原型化开发方法的叙述中,不正确的是( )。
A、原型化方法利于确认各项系统服务的可用性
B、在开发过程中,可以废弃不用早期构造的软件原型
C、原型化方法适用于需求不明确的软件开发
D、原型化方法可以直接开发出最终产品
答案:D
解析:原型化方法其实也可以直接开发出最终产品,但这是非常不推荐的,因为原型程序中可能存在非常多的缺陷。
【单选题】某大型公司计划开发一款新产品,开发周期长,但是与重要客户相关的风险也很多,最适于采用( )开发过程模型。
A、原型
B、螺旋
C、瀑布
D、增量
答案:B
解析:螺旋模型的重点:控制风险。
【单选题】软件工程中描述生存周期的瀑布模型一般包括计划、( )、设计、编码、测试、维护等几个阶段。
A、问题定义
B、需求分析
C、需求调查
D、可行性分析
答案:B
【单选题】敏捷设计要求系统设计在任何时间都尽可能的简单、干净和富有表现力,下面对敏捷设计理解错误的是( )。
A、对于软件管理者来说,只需要做很少的管理工作
B、对于软件设计者来说,通过简单、直观的划分,使其具有最小耦合的内部结构
C、对于用户来说,通过直观、简单的界面呈现出恰当特征的程序
D、对于开发人员来说,每周都会取得一些重大进展
答案:A
解析:不管怎样,软件管理者都是重要的角色,他不应该没事干的。
同时,D选项其实也有一点问题,每周确实都会取得进展,但不一定是“重大”进展。
【单选题】衡量原型开发人员能力的重要标准是( )。
A、很强的组织协调能力
B、快速获取需求
C、灵活使用开发工具
D、丰富的编程技巧
答案:B
解析:原型开发和需求分析绑定了都,它就是用来弄需求的。
【单选题】下列软件哪个最适合采用敏捷开发方法( )。
A、小型创业项目软件
B、铁路12306购票网
C、Windows操作系统
D、火箭飞行控制系统
答案:A
解析:敏捷开发适合小型的,快速变化的软件开发。其中,B和C都是大型项目,BCD都不需要快速变化(D根本不需要适应变化)。
二.判断题(共8题,32.0分)
【判断题】极限编程是采取必要的手段,充分挖掘软件开发团队人员的极限能力,在最短的时间内交付软件的开发方法。
答案:×
解析:“极限”的含义是指把最好的开发实践运用到极致,并不是指极限的快交付。
【判断题】V模型的本质是对瀑布模型的需求获取活动进行改造,有助于需求的定义和确认。
答案:×
解析:
-
V模型的本质是对瀑布模型的需求获取活动进行改造,(进一步明确了设计环节和测试环节)。
-
(将原型模型和瀑布模型结合),有助于需求的定义和确认。
【判断题】为了防止软件腐化,敏捷开发团队不需要一个成熟的初始设计,而是通过多次使用单元测试和验收测试,灵活、持续地改进设计。
答案:√
【判断题】使用快速原型模型收集了客户的真实需求之后,可以在这个原型基础上快速扩充得到最终的软件系统。
答案:×
解析:不能把原型开发成最终产品。
【判断题】RUP是可配置的过程,如各阶段持续时间的长短、每个阶段的迭代次数、不同迭代过程持续的时间等都是可变化和调整的因素,因此RUP具有通用性。
答案:√
【判断题】采用原型法时,关键的因素是建立模型的速度,而不是原型运行的效率。
答案:√
【判断题】软件过程有时也会被称为软件生命周期。
答案:√
【判断题】过程可以看做是一组精心安排的任务:包含有活动、约束和资源的一系列步骤,能产出某种特定输出。
答案:√