1、软件水平考试(中级)软件设计师上午(基础知识)历年真题试卷汇编 6及答案与解析 1 “软件产品必须能够在 3秒内对用户请求作出响应 ”属于软件需求中的 (18)。 ( A)功能需求 ( B)非功能需求 ( C)设计约束 ( D)逻辑需求 2 (29)2开发过程模型最不适用于开发初期对软件需求缺乏准确全面认识的情况。 ( A)瀑布 ( B)演化 ( C)螺旋 ( D)增量 3 (30)不是增量式开发的优势。 ( A)软件可以快速地交付 ( B)早期的增量作为原型,从而可以加强对系统后续开发需求的理解 ( C)具有最高优先级的功能首先交付,随着后续的增量不断加入,这就使得更重要的功能得到更多的测试
2、 ( D)很容易将客户需求划分为多个增量 4 某开发小组预开发一个规模较大、需求较明确的项目。开发小组对项目领域熟悉且该项目与小组开发过的某一项目类似,则适宜采用 (29)开发过程模型。 ( A)瀑布 ( B)演化 ( C)螺旋 ( D)喷泉 5 软件开发的增量模型 (29)。 ( A)最适用于需求被清晰定义的情况 ( B)是一种能够快速构造可运行产品的好方法 ( C)最适合于大规模团队开发的项目 ( D)是一种 不适用于商业产品的创新模型 6 假设某软件公司与客户签订合同开发一个软件系统,系统的功能有较清晰的定义,且客户对交付时间有严格要求,则该系统的开发最适宜采用 (30)。 ( A)瀑布
3、模型 ( B)原型模型 ( C) V模型 ( D)螺旋模型 7 确定软件的规模划分及模块之间的调用关系是 (15)阶段的任务。 ( A)需求分析 ( B)概要设计 ( C)详细设计 ( D)编码 8 以下关于喷泉模型的叙述中,不正确的是 (29)。 ( A)喷泉模型是以对象作为驱动的模型,适合于面向对象的开发方法 ( B)喷 泉模型克服了爆布模型不支持软件重用和多项开发活动集成的局限性 ( C)模型中的开发活动常常需要重复多次,在迭代过程中不断地完善软件系统 ( D)各开发活动 (如分析、设计和编码 )之间存在明显的边界 9 若全面采用新技术开发一个大学记账系统,以替换原有的系统,则宜选择采用
4、(30)进行开发。 ( A)瀑布模型 ( B)演化模型 ( C)螺旋模型 ( D)原型模型 10 为了有效地捕获系统需求,应采用 (29)。 ( A)瀑布模型 ( B) V模型 ( C)原型模型 ( D)螺旋模型 11 某项目组拟开发一 个大规模系统,且具备了相关领域及类似规模系统的开发经验。下列过程模型中, (15)最适合开发此项目。 ( A)原型模型 ( B)瀑布模型 ( C) V模型 ( D)螺旋模型 12 以下关于软件测试的叙述中,正确的是 (35)。 ( A)软件测试不仅能表明软件中存在错误,也能说明软件中不存在错误 ( B)软件测试活动应从编码阶段开始 ( C)一个成功的测试能发现
5、至今未发现的错误 ( D)在一个被测程序段中,若已发现的错误越多,则残存的错误数越少 13 确定系统边界和关系规范化分别在数据库设计的 (51)阶段进 行。 ( A)需求分析和逻辑设计 ( B)需求分析和概念设计 ( C)需求分析和物理设计 ( D)逻辑设计和概念设计 14 针对 “关键职员在项目未完成时就跳槽 ”的风险,最不合适的风险管理策略是(19)。 ( A)对每一个关键性的技术人员,要培养后备人员 ( B)建立项目组,以使大家都了解有关开发活动的信息 ( C)临时招聘具有相关能力的新职员 ( D)对所有工作组织细致的评审 15 定义风险参照水准是 (19)活动常用的技术。 ( A)风险
6、识别 ( B)风险预测 ( C)风险评估 ( D)风险控制 16 以下关于文档的叙述中,不正确的是 (33)。 ( A)文档仅仅描述和规定了软件的使用范围及相关的操作命令 ( B)文档是软件产品的一部分,没有文档的软件不能称为完整的软件 ( C)软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量 ( D)高质量文档对于发挥软件产品的效益有着重要的意义 17 图 46是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的值表示完成活动所需要的时间,则 (17)在关键路径上。( A) B ( B) C ( C) D ( D) H 18 (18)最不适宜采用无主
7、程序员组的开发人员组织形式。 ( A)项目开发人数少 (如 3 4人 )的项目 ( B)采用新技术的项目 ( C)大规模项目 ( D)确定性较小的项目 19 若软件项目组对风险采用主动的控制方法,则 (19)是最好的风险控制策略。 ( A)风险避免 ( B)风险监控 ( C)风险消除 ( D)风险管理及意外事件计划 20 甘特图 (Gantt图 )不能 (18)。 ( A)作为项目进度管理的一个工具 ( B)清晰地描述每个任务的开始和截止时间 ( C)清晰地获得任务并行的信息 ( D) 清晰地获得各任务之间的依赖关系 21 以下关于风险管理的叙述中,不正确的是 (19)。 ( A)仅根据风险产
8、生的后果来对风险排优先级 ( B)可以通过改变系统性能或功能需求来避免某些风险 ( C)不可能去除所有风险,但可以通过采取行动来降低或减轻风险 ( D)在项目开发过程中,需要定期地评估和管理风险 22 下列关于风险的叙述不正确的是:风险是指 (17) ( A)可能发生的事件 ( B)一定会发生的事件 ( C)会带来损失的事件 ( D)可能对其进行干预,以减少损失的事件 23 下列关于项目估算方 法的叙述不正确的是 (18) ( A)专家判断方法受到专家经验的主观性影响 ( B)启发式方法 (如 COCOMO模型 )的参数难以确定 ( C)机器学习方法难以描述训练数据的特征和确定其相似性 ( D
9、)给合上述三种方法可以得到精确的估算结果 24 高质量的文档所应具有的特性中,不包括 (33)。 ( A)针对性,文档编制应该考虑读者对象群 ( B)精确性,文档的行文应当十分准确,不能出现多义性的描述 ( C)完整性,任何文档都应当是完整的、独立的,应该自成体系 ( D)无重复性,同一软件系统的几个文档之间应该没 有相同的内容,若确实存在相同内容,则可以用 “见 *文档 *节 ”的方式引用 24 在进行进度安排时, PERT图不能清晰地描述 (16),但可以给出哪些任务完成后才能开始另一些任务。某项目 X包含任务 A、 B、 、 J,其中 PERT图如图 43所示 (A=l表示任务 A的持续
10、时间是 1天 ),则项目 X的关键路径是 (17)。25 (16) ( A)每个任务从何时开始 ( B)每个任务到何时结束 ( C)各任务之间的并行情况 ( D)各任务之间的依赖关系 26 (17) ( A) ADHJ ( B) BEHJ ( C) B一卜一 J ( D) CGIJ 26 图 44是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,则里程碑 (17)在关键路径上。若在实际项目进展中,活动 AD在活动 AC开始 3天后才开始,而完成活动 DG过程中,由于有临时事件发生,实际需要 15天才能完成,则完成该项目的最短时间比原计划多了 (18)天。27 (17)
11、 ( A) B ( B) C ( C) D ( D) 1 28 (18) ( A) 8 ( B) 3 ( C) 5 ( D) 6 28 某项目软件的活动图如图 45所示。图中顶点表示项目里程碑,连接顶点的边表示包含的活动,则里程碑 (16)在关键路径上,活动 FG的松弛时间为 (17)。29 (16) ( A) B ( B) C ( C) D ( D) I 30 (17) ( A) 19 ( B) 20 ( C) 21 ( D) 24 30 使用 PERT图进行进度安排,不能清晰地描述 (16),但可以给出哪些任务完成后才能开始另一些任务。图 47中 PERT图所示工程从 A到 K的关键路径是
12、 (17),(图中省略了任务的开始和结束时刻 )。31 (16) ( A)每个任务从何时 开始 ( B)每个任务到何时结束 ( C)各任务之间的并行情况 ( D)各任务之间的依赖关系 32 (17) ( A) ABEGHIK ( B) ABEGHJK ( C) ACEGHIK ( D) ACEGHJK 软件水平考试(中级)软件设计师上午(基础知识)历年真题试卷汇编 6答案与解析 1 【正确答案】 B 【试题解析】 软件需求中对软件产品的响应时间,吞吐量,价格等属性的要求都属于非功能性需求。 【知识模块】 系统开发和运行 2 【正确答案】 B 【试题解析】 瀑布模型将软件生命 周期的各项活动规定
13、为依固定顺序联接的若干阶段工作,形如瀑布流水,最终得到软件产品,强调早期计划及需求调查;演化模型主要针对事先不能完整定义需求的软件开发,如果所有的产品需求在一开始并不完全弄清楚的话,会给总体设计带来困难及削弱产品设计的完整性,并因而影响产品性能的优化及产品的可维护性;螺旋模型是瀑布模型与演化模型相结合,并加入两者所忽略的风险分析所建立的一种软件开发模型;增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生 【知识模块】 系统开发和运行 3 【正确答案】 D 【试题解析】 增量式开发的优势在于: 由于能够在较短的时间内向用户提交一
14、些有用的工作产品,因此能够解决用户的一些急用功能。 由于每次只提交用户部分功能,用户有较充分的时间学习和适应新的产品。 对系统的可维护性是一个极大的提高,因为整个系统是由一个个构件集成在一起的,当需求变更时只变更部分部件,而不必影响整个系统。 【知识模块】 系统开发和运行 4 【正确答案】 A 【试题解析】 瀑布模型是将软件生存周期各个活动规定为以线性顺序连接的若干阶段的 模型,它为软件的开发和维护提供了一种有效的管理模式,适合于软件需求很明确的软件项目的模型。演化模型在获取一组基本的需求后,通过快速分析构造出该软件的一个初始可运行的版本,然后逐步演化成为最终软件产品,该模型主要是针对需求不明
15、确或不清楚的情况下,进行项目开发建议采用的,而螺旋模型弥补了以上两种模型的不足,增加了风险分析,每个螺旋周期分为制定计划、风险分析、实施工程和用户评估 4个工作步骤。喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合 【知识模块】 系统开发和运行 5 【正确答案】 B 【试题解析】 增量模型融合了瀑布模型的基本成分 (重复应用 )和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的 “增量 ”。当使用增量模型时,第 1个增量往往是核心的产品,即第 1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为
16、下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。虽然某个 增量包可能还需要 【知识模块】 系统开发和运行 6 【正确答案】 A 【试题解析】 瀑布模型以软件需求完全确定为前提的。瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这 6个阶段,规定了它们自上而下、相互衔接的固定次序,如 同瀑布流水逐级下落。瀑布模型有利于大型软件开发过程中人员的组织及管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软
17、件项目开发的质量和效率。本题中,要开发的软件系统功能较为清晰,而且交付时间严格,因此适宜采用瀑布模型。 【知识模块】 系统开发和运行 7 【正确答案】 B 【试题解析】 需求分析阶段的任务是:确定待开发软件的功能、性能、数据和界面要求。概要设计的任务是:采用某种设计方法,将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的调用关系;去顶模块之间的接口;评 价模块结构的质量。同时还要设计数据结构、设计数据库。详细设计的基本任务有:对每个模块进行详细的算法设计;对模块内的数据结构进行设计;对数据库进行物理设计等。 【知识模块】 系统开发和运行 8 【正确答案】 D 【试题解析】 喷
18、泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。 【知识模块】 系统开发和运行 9 【正确答案】 A 【试题解析】 瀑布模型是 W Royce于 1970年首先提出的,由可行性研究、需求分析、系统设计、编码、测试、运行和维护各阶段组成。该模型把软件生命过程比喻成瀑布的流水,每个阶段看作瀑布中的一个台阶,软件生命过程在台阶上由上向下流动。瀑布模型规定上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系
19、,紧密相联。为保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作。评审过程发现错误和疏漏后,应该反馈到前面的有关阶段修 正错误、弥补疏漏,然后再重复前面的工作,直至某 【知识模块】 系统开发和运行 10 【正确答案】 C 【试题解析】 瀑布模型将软件生命周期的各个活动规定为线性连续的若干阶段模型,它由前至后、相互衔接的固定次序,适合用于开发需求明确的软件。 V模型是在瀑布模型的基础上演变而来的,它强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应。如果对软件需求的认识是模糊的,可在获取一组基本的需求后,通过快速分析构造
20、出该软件的一个初始可运行版本,即软件的原型,然后根据用户的意见和建议对 原型进行改进。螺旋模型将瀑布模型和原型模型结合起来,加入了风险分析。题目中的需求还要捕获,也就是说需求还不是很明确,因此适合采用原 【知识模块】 系统开发和运行 11 【正确答案】 B 【试题解析】 在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。瀑布模型要求每个阶段都要仔细验证。快速原型模型的第一步是建造一个快速原型, 实现客户或未来的用户与系统的交
21、互,用户或客户对原型进行评价,进一步细化待开发软件的需求。快速原型通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产 【知识模块】 系统开发和运行 12 【正确答案】 C 【试题解析】 软件测试的目的是为了发现错误,一个成功的测试能发现至今未发现的错误。没有发现错误的测试并不表明软件中不存在错误。测试应贯穿在软件开发的各个阶段,测试过程基本上与开发过程平行进行,而不是从编码阶段才开始,所有测试都 应能追溯到用户需求。 【知识模块】 系统开发和运行 13 【正确答案】 A 【试题解析】 需求分析阶段的任务是:对现实世界要处理的对
22、象 (组织、部门、企业等 )进行详细调查,在了解现行系统的概况,确定新系统功能的过程中,确定系统边界、收集支持系统目标的基础数据及其处理方法。逻辑设计阶段的任务是:做部分关系模式的处理,分解、合并或增加冗余属性,提高存储效率和处理效率。 【知识模块】 系统开发和运行 14 【正确答案】 C 【试题解析】 风险管理策略主要有: 避免风险策略; 控制风险 策略。 分散与中和风险策略; 转移风险策略,等。根据题意:选项 A、 B是分散与中和风险策略,选项 D是控制风险策略,所以本题答案选 C。 【知识模块】 系统开发和运行 15 【正确答案】 C 【试题解析】 一个对风险评估很有用的技术就是定义风险
23、参照水准。对于大多数软件项目来说,成本、进度和性能就是 3种典型的风险参照水准。 【知识模块】 系统开发和运行 16 【正确答案】 A 【试题解析】 信息系统的文档,是系统建设过程的 “痕迹 ”,是系统维护人员的指南,是开发人员与用户交流的工具。信 息系统的文档,不但包括应用软件开发过程中产生的文档,还包括硬件采购和网络设计中形成的文档。软件文档的编制贯穿于软件产品开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。 【知识模块】 系统开发和运行 17 【正确答案】 B 【试题解析】 这种题基本上是必考题,关键路径可以简单地记为:完成活动需要时间最长的路径。本
24、题的关键路径为 ACFGI ,所需时间为 17,很显然 C在关键路径上。 【知识模块】 系统开发和运行 18 【正确答案】 C 【 试题解析】 无主程序员组中的成员相互平等,工作目标和决策都由全体成员民主讨论。这种组有利于发挥每个人的积极性,但往往职责不明,出了问题谁也不负责,而且不利于与外界的联系。很显然,大规模的项目不适合采用这种人员组织形式。 【知识模块】 系统开发和运行 19 【正确答案】 A 【试题解析】 如果软件项目组对于风险采取主动的方法,则避免永远是最好的策略。这可以通过建立一个风险缓解计划来达到。例如,频繁的人员流动被标注为一个项目风险,基于以往的历史和管理经验,人员流动的概
25、率为 70,被预测为对于项目 成本及进度有严重的影响。为了缓解这个风险,项目管理者必须建立一个策略来降低人员流动。 【知识模块】 系统开发和运行 20 【正确答案】 D 【试题解析】 Gantt图以日历为基准描述项目任务。水平轴表示日历时间,每个条形表示一个任务。图中水平条的起点和终点对应于时间轴上的时间,分别表示该任务的开始时间和结束时间,水平线的长度表示完成该任务所持续的时间。当日历中同一时段存在多个水平条时,表示任务之间的并发。但 Gantt图不能清晰地反映处各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反 映计划中有潜力的部分。 【知识模块】 系统开发和运行 21 【正确答案
26、】 A 【试题解析】 风险管理当中包括了对风险的量度、评估和应变策略。理想的风险管理,是一连串排好优先次序的过程,使当中的可以引致最大损失及最可能发生的事情优先处理,而相对风险较低的事情则押后处理。现实情况里,优化的过程往往很难决定,因为风险和发生的可能性通常并不一致,所以要权衡两者的比重,以便作出最合适的决定。 【知识模块】 系统开发和运行 22 【正确答案】 B 【试题解析】 风险具有不确定性,可能会表 现出损失,而风险管理则可对风险进行干预,以减少损失。一定会发生的事件,就不叫风险了。因此选项 B是错误的。 【知识模块】 系统开发和运行 23 【正确答案】 D 【试题解析】 专家判断方法
27、依靠一个或多个专家对要求的项目做出估算,其精确性取决于专家对估算项目的定性参数的了解和经验,缺点便是具有一定的主观性。即使将专家判断方法、启发式方法和机器学习方法结合起来,也不可能得到精确的估算结果。 【知识模块】 系统开发和运行 24 【正确答案】 D 【试题解析】 为使软件文档能起到多种桥 梁的作用,使它有助于程序员编制程序,有助于管理人员监督和管理软件的开发,有助于用户了解软件的工作和应做的操作,有助于维护人员进行有效的修改和扩充,文档的编制必须保证一定的质量。高质量文档具有以下特性: 针对性:文档编制以前应分清读者对象。按不同的类型、不同层次的读者,决定怎样适应他们的需要。精确性:文档
28、的行文应当十分确切,不能出现多义性的描述。 同一课题几个文档的内容应当是协调一致,没有矛盾的。 清晰性:文档编写应力求简明,如有可能,配以适当的图表,以增强其清晰性。完整性:任何一个 【知识模块】 系统 开发和运行 【知识模块】 系统开发和运行 25 【正确答案】 C 【知识模块】 系统开发和运行 26 【正确答案】 B 【试题解析】 PERT图是一个有向图,箭头表示任务,可以标上完成该任务所需的时间;箭头指向节点表示流入节点的任务的结束,并开始流出节点的任务,节点表示事件。 PERT图不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了任务之间的关系,即哪些任务完成后才能开
29、始另外一些任务,但 PERT图不能清晰的描述各个任务之间的并行关系。图中用时最长的路径为关键路 径,其关键路径为 BE-HJ。 【知识模块】 系统开发和运行 【知识模块】 系统开发和运行 27 【正确答案】 B 【知识模块】 系统开发和运行 28 【正确答案】 B 【试题解析】 用时最长的路径为关键路径,为 ACGJK,所需时间为75。任务的松弛时间表示在不影响整个工期的前提下,完成该任务有多少机动余地。活动 AD最早开始时间为 10+3=13, DG所花时间为 10+15=25,ADGJK 时间为 78,所以说最短时问比原计划多了 7875=3天。 【知识模块 】 系统开发和运行 【知识模块
30、】 系统开发和运行 29 【正确答案】 D 【知识模块】 系统开发和运行 30 【正确答案】 B 【试题解析】 用时最长的路径为关键路径,为 STARTDFHFINISH ,所需时间为 48。任务的松弛时间表示在不影响整个工期的前提下,完成该任务有多少机动余地。活动 FG最早开始时间为 18,最迟开始时间为 48 73=38,因此松弛时间为 38一 18=20。 【知识模块】 系统开发和运行 【知识模块】 系统开发和运行 31 【正确答案】 C 【知识模块】 系统开发和运行 32 【正确答案】 B 【试题解析】 PERT图给出了每个任务的开始时间、结束时间和完成该任务所需要的时间,同时还给出了任务之间的依赖关系,即哪些任务完成后才能执行另外一些任务。 PERT的不足是不能反映任务之间的并行关系。关键路径是松弛时间为 0的任务完成过程所经历的路径。本题的图中没有给出松弛时间,因此关键路径是耗时最长的路径,即 ABEGHJK 。 【知识模块】 系统开发和运行