1.
解析:
A:体系结构设计是概要设计的重要内容,它关注系统整体的架构,包括系统由哪些子系统组成、子系统之间的关系等
B:数据库设计在概要设计阶段会涉及数据库的逻辑结构设计等内容,如确定数据库的表结构、表之间的关系等
C:模块内算法设计是对模块内部具体实现算法的设计,这属于详细设计阶段的任务。在概要设计阶段,主要关注模块的功能、接口等,而不是模块内部的算法细节。
D:逻辑数据结构设计在概要设计阶段会确定数据的逻辑组织形式等。
2.
解析:
A:结构化方法强调自顶向下,逐步求精,要求在开发前期对需求有清晰、完整得定义。它适用于需求明确、稳定,系统规模适中且不太复杂得情况,不太适合需求不清晰且警察变化的场景
B:Jackson方法是一种面向数据结构的软件开发方法,主要用于数据处理系统的开发,它通过分析数据结构来设计程序结构。它同样要求需求相对稳定,不太能应对需求频繁变化的情况
C:原型化方法是在用户需求不明确的情况下,先快速构建一个软件原型,通过用户与原型的交互,不断完善需求,再基于完善后的需求进行正式开发。所以当用户需求不清晰且经常发生变化,系统规模又不太大且不太复杂时,原型化方法是合适的选择。
D:面向对象方法强调以对象为中心进行软件设计和开发,它适用于大型、复杂且兵变化频繁的系统开发,对于系统规模不太大且不复杂的情况,如果需求变化不大,它不是最适宜的方法
3.
解析:
A:瀑布模型将软件开发过程划分为需求分析、设计、变化、测试、维护等阶段,各阶段严格按照顺序执行,如通瀑布流水一样,前一阶段完成后才进入下一阶段,阶段间有明确的界限和文档要求。对于超大规模且复杂的软件项目,虽然前期需求可能难以完全确定,但可以通过充分的前期调研和规划来明确需求,后续按阶段逐步推进,所以有一定的可行性。
B:原型模型是先快速构建一个可以运行的软件原型,让用户与原型交互以获取反馈,再根据反馈不断完善原型,最终得到目标软件。对于超大规模的软件项目,构建原型的成本极高,而且难以全面覆盖系统的各种复杂功能和性能要求。因为超大规模软件涉及众多的模块、接口、复杂的业务逻辑等,难以通过简单的原型来体现,所以原型模型最不适宜。
C:螺旋模型将软件开发过程视为一个螺旋式的迭代过程,结合了瀑布模型的系统性和顺序性以及快速原型的迭代特征,强调风险分析。在每一次迭代中逐步深化对软件的理解和开发,对于超大规模软件项目,其对风险的把控和迭代开发的特征有助于应对项目中的不确定性和复杂性,是比较合适的模型
D:喷泉模型是一种面向对象的软件开发模型,强调软件开发过程的迭代和无间隙性,各个阶段相互重叠,不断迭代。对于超大规模的面向对象的软件项目,其迭代的灵活的特性可以适应项目中不断变化和深化的需求,有较好的适用性。
4.
解析:
A:瀑布模型要求软件开发严格按照需求分析、设计、编码、测试等阶段顺序进行,前一阶段完成后才能进入下一阶段,且阶段间有明确的文档交付要求。在本题中,产品部分需求不明确且需要细化,而瀑布模型难以应对需求的不确定性和变化,若需求在开发中发生变更,可能导致前期大量工作返工,并且它也不利于快速上市。
5.
解析:
A:功能需求主要描述软件应具备的功能,比如实现特定的业务逻辑、提供某些操作等,强调的是软件做什么,而不是性能相关。
B:非功能需求关注软件的性能、可靠性、易用性、可维护性等方面的需求。
C:设计约束通常指在软件设计过程中收到的限制条件,如硬件环境限制、使用特定技术或工具等,和软件的响应时间性能要求不是同一类概念
D:逻辑需求一般侧重于软件内部的逻辑关系和处理流程等方面,与软件的性能要求不直接相关
6.
解析:本题中项目规模较大但需求较明确,开发小组对项目领域熟悉且有类似项目经验,这种情况下,瀑布模型可以充分发挥其系统性和顺序性的优势,按部就班地推进项目开发。
7.
解析:大学记账系统地业务需求相对明确和稳定,全面采用新技术时,通过前期充分的需求调研和规划,可按瀑布模型的阶段顺序有条不紊地推进开发。
8.
解析:
A:规模度量主要是对软件或构件的规模大小进行衡量,如代码行数、功能点等统计,他并非构件集成到系统前的必要操作,与构件适配新系统功能关联不大。
B:数据验证通常是针对数据的准确性、完整性等进行检查,比如检查输入数据是否符合格式要求等。
C:不同来源的构件,虽然具备可复用性,但可能与新系统的特定需求、运行环境等不完全匹配。在进行合格性校验后,需要对构件进行适应性修改,使其能与新系统的架构、功能要求等相契合,然后才能集成到新系统中。
D:正确性测试一般是在构件开发过程中,由构件开发者确保构件功能正确的测试环节。在基于构件的软件开发中,重点是在合格性检验后,让构件适应新系统,而非再次进行正确性测试(合格性检验已在一定程度上涉及正确性)
9.
解析:
A:软件开发工具主要用于软件从需求分析、设计到编码等开发阶段,比如代码编辑器、编译器等,用于创建新的软件
B:软件维护工具:软件维护包括改正性维护、适应性维护、完善性维护等。逆向工程工具通过对已有的软件系统进行分析,比如从目标代码获取设计信息、恢复软件结构等,帮助理解软件内部结构,以便更好地进行软件维护,所以逆向工程属于软件维护工具
C:软件管理工具:主要涉及软件项目的计划、进度跟踪、资源分配、成本控制等管理方面,例如项目管理软件、版本控制工具等,和逆向工程工具的功能范畴不同
D:软件支持工具:通常指为软件开发、维护等过程提供辅助支持的工具,像文档生成工具、配置管理工具等,逆向工程工具的核心功能并非提供一般性的辅助支持
10.
解析:
A:对象点可用于衡量软件规模,进而估算工作量
B:通过计算软件的功能点数量,结合相关系数和模型公式,可以估算软件开发的工作量
C:用例主要用于描述系统的功能需求和用户与系统的交互,虽然在需求分析等阶段有重要作用,但不是该模型直接用于工作量估算的要素
D:源代码行是传统的软件规模度量方式之一。
11.
解析:
A:流图(如数据流图DFD)是需求分析阶段常用的工具,用于描述系统中数据的流动和处理过程,能清晰展现系统功能需求,是需求分析阶段的输出之一。
B:实体联系图(ER图)用于描述系统中的数据实体及其之间的关系,在需求分析阶段,通过绘制ER图可以明确系统的数据需求,属于需求分析阶段的输出。
C:数据字典是对系统中设计的数据元素、数据结构、数据流等进行详细定义和描述的文档,在需求分析阶段,为了准确界定需求,需要建立数据字典,所以它也是需求分析阶段的输出。
D:软件体系结构图主要描述软件系统的总体架构,包括系统的模块划分、模块之间的关系等,这是软件设计阶段的工作内容,而非需求分析阶段的输出
12.
解析:
A:风险影响指风险发生后对项目目标(如成本、进度、质量等)产生的影响程度。仅考虑风险影响,无法全面衡量风险的严重程度,因为即使影响大,但发生概率极低,其优先级也不一定高
B:风险概率是指风险发生的可能性大小。只看风险概率,不考虑风险发生后的影响,也不能准确确定风险优先级。比如一个风险发生概率高,但影响极小,其优先级也不会很高。
C:风险暴露是风险概率和风险影响的乘积,它综合考虑了风险发生的可能性以及发生后产生的影响。通过风险暴露可以更全面、科学地衡量风险的严重程度,从而设定风险的优先级。
D:风险控制是针对已识别风险采取的应对措施,如规避、减轻、转移等,它不是用于设定风险优先级的依据。
13.
解析:
A:版本控制是软件配置管理的核心功能之一。它用于记录软件配置项(如代码、文档等)的不同版本,方便开发者回溯、比较不同版本间的差异,还能有效管理软件的开发演进过程,所以该选项属于软件配置管理内容
B:变更控制主要对软件配置项的变更进行管理,包括变更的申请、评估、审批、实施和验证等环节,确保变更在受控的情况下进行,避免因随意变更导致软件出现问题,是软件配置管理的重要组成部分,该选项属于软件配置内容
C:过程支持涉及为软件开发过程提供相关支持,如提供配置管理工具、指定配置管理流程等,辅助开发团队更好地进行软件配置管理工作,属于软件配置管理范畴
D:质量控制主要关注软件产品的质量,通过一系列质量保证活动(如测试、评审等)确保软件符合质量标准和需求。它和软件配置管理虽然都对软件项目有重要作用,但质量控制不属于软件配置管理的内容
14.
解析:基本COCOMO(Basic COCOMO)模型是一种静态单变量模型。它以源代码行数(LOC)作为单一变量,通过简单的经验公式对整个软件系统的工作量和成本进行估算
15.
解析:风险避免是主动采取措施使风险不发生。例如,在软件项目中,如果发现采取某种新技术可能带来技术风险,通过评估后决定不采用该技术,转而使用成熟技术,从而避免风险。这是一种积极主动地风险控制策略,在能够明确识别风险并采取有效措施规避时,时最好的选择。
16.
解析:
C:风险评估是对风险进行量化分析,确定风险的优先级,评估风险的严重程度等,它是为后续的风险处理提供依据,但不是直接建立处理风险的策略
D:风险控制活动的目的就是辅助项目组建立处理风险的策略,像风险避免(改变项目计划以避免风险发生)、风险监控(持续跟踪风险状态)、风险管理及意外事件计划(制定应对风险的措施和计划)等,都是风险控制策略的范畴。
17.
解析:信息库通常是一个更宽泛的概念,它可以包含各种类型的信息,但在软件配置管理的配置数据库范畴中,并没有“信息库”这一特定类型的配置库,所以它不属于配置数据库。
18.
解析:PERT图(计划评审技术图)是一种用于项目进度规划和管理的工具,它通过分析任务之间的依赖关系和事件估算,制定项目的进度计划。在系统开发计划中,PERT图可以帮助系统开发人员和项目管理人员清晰地了解项目的时间安排、关键路径等信息,便于在项目期内进行沟通协调。
19.
解析:功能性质量特性包含适应性、准确性、互操作性、安全性、依从性等子特性。安全性主要关注软件防止未授权访问,数据泄露等方面的能力,主语功能性范畴。
20.
解析:
A:在冗余附加技术中,并不强调关键程序和数据的冗余存储及调用。因为冗余附加技术主要是围绕错误检测、备份程序调用、固化程序等方面来构件,而非单纯对关键程序和数据进行冗余存储及调用
B:当程序出现错误时,可以调用冗余备份程序来保证系统正常运行
C:通过错误检测程序发现软件错误,再利用错误恢复程序进行修复,使系统具备容错能力
D:固化程序可以存储一些关键的容错逻辑恢复机制,在系统出现错误时发挥作用
21.
解析:
A:正确性是指软件按照设计要求准确执行任务的能力,是软件在运行过程中最基本的质量特征,属于产品运行方面的质量特征
B:可靠性表示软件在规定条件下和规定时间内,完成规定功能的能力,这与软件运行时的表现密切相关,属于产品运行方面的质量特征
C:效率是指软件在运行过程中,对资源(如时间、空间等)的利用程度,是软件运行时的重要质量指标,属于产品运行方面的质量特征
D:灵活性主要涉及软件在不同环境下进行调整、修改和扩展的能力,更多地与软件的可修改性和适应性相关,属于产品转移方面的质量特征
22.
解析:易测试性是可维护性的子特性,它指的是与为确认经修改软件所需努力有关的软件数据。即当软件进行修改后,能够方便、快捷地对修改部分进行测试,以验证修改是否达到预期效果,是否引入新的问题等。
23.
解析:
A:功能性是指软件在指定条件下满足明确和隐含需求的能力。将每个用户的数据与其他用户的数据隔离开来,这是软件为了满足用户对数据安全性、隐私性的需求而具备的功能,属于功能性范畴
B:可靠性主要关注如阿纳金在规定条件下和规定时间内,完成规定功能的能力,比如软件是否容易崩溃、出错等,与用户数据隔离这一行为没有直接关联
C:可维护性侧重于软件在需要修改、更新时的难易程度,包括代码是否易读、是否易分析问题根源等,和用户数据隔离不香港
D:易使用性强调软件是否便于用户操作、学习和理解,例如界面是否友好、流程操作是否简便等,与用户数据隔离的功能不对应。
24.
解析:
A:在极限编程中,强调只处理当前的需求,避免过度设计,使设计保持简单。这样可以快速响应需求变化,减少不必要的复杂性。
B:极限编程提倡测试驱动开发(TDD),即先编写测试代码,再编写实现功能的程序代码。通过先确定测试用例,能明确功能需求和预期结果,确保代码的正确性和可测试性。
C:极限编程注重快速反馈和迭代,能够按日甚至按小时为客户提供可运行的版本,以便及时获取客户反馈并进行调整优化
D:系统最终用户代表全程配合XP团队是极限编程的重要实践。用户代表可以及时提供需求反馈、参与验收等,保证开发出的软件符合用户实际需求
25.
解析:
A:CL1(已执行的)的共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。它强调过程的基本执行确保过程能够产生预期的输出。
26.
解析:
A:UP是以用例和风险为驱动,以架构为中心,采用迭代和增量的开发过程。用例用于明确需求,风险驱动能及时应对可能出现的问题,架构为中心确保系统整体的稳定性和可扩展性
B:UP定义的四个阶段是起始、精化、构建和交付阶段,并非确认阶段。起始极端确定项目的目标和范围;精化阶段进一步明确需求、细化架构;构建阶段进行系统的开发和实现;交付阶段将产品交付给用户
C:在UP中,每次迭代都包含计划、分析、设计、构造、集成、测试以及内部和外部发布等活动,通过迭代逐步完善产品
D:每个迭代有五个核心工作流,分别是业务建模、需求、分析与设计、实现、测试,这些工作流贯穿于迭代过程中
27.
解析:
A:级别2主要特征是建立了基本的项目管理过程,能够重复以前类似项目的成功经验
B:级别3强调过程的标准化和文档化,组织定义了标准的软件过程并在项目中遵循
C:级别4重点关注产品和过程质量。在这个级别,企业对软件过程和产品质量进行定量管理,通过收集和分析数据来监控和控制项目,确保产品和过程达到预定的质量目标
D:级别5注重持续过程改进,通过对过程的度量和分析,不断优化软件过程,以适应业务需求和技术发展
28.
解析:
A:过程能力成熟度模型基于“改进过程将改进产品,尤其是软件产品”的理念。通过提升软件开发过程的成熟度和规范性,能有效提高软件产品的质量
B:软件过程改进框架通常包括评估、计划、改进和监控等环节,但一般认为还应包含实施环节
29.
解析:
A:初启阶段的里程碑是生命周期目标,主要确定项目的目标、范围和可行性
B:精化阶段对软件需求进一步细化和分析,确定系统架构,其里程碑是生命周期架构
C:构建阶段主要进行软件的开发和实现,完成大部分的编码和测试工作,里程碑式初始运作能力
D:移交阶段将软件产品交付给客户,其里程碑式产品发布
30.
解析:
A:建立基本的项目管理和实践来跟踪项目费用、进度和功能特性式第二级(可重复级)的特征
B:组织具有标准软件过程式第三级(已定义级)的特点,强调过程的标准化和文档化
C:第四级(已管理级)的核心是对软件过程和产品都有定量的理解和控制。通过量化管理,企业可以收集和分析过程与产品的数据,从而更好地监控和改进软件过程,保证产品质量
D:先进的新思想和新技术促进过程不断改进是第五级(优化级)的重点,关注持续的过程改进
31.
解析:极限编程(XP)的价值观包括沟通、简单性、反馈和勇气。沟通确保团队成员间信息流畅;简单性使设计和代码简介;反馈能及时发现问题和改进;勇气让团队敢于面对变化和挑战
32.
解析:“重构”是一种重新组织的技术,它通过调整软件的内部结构,简化构件的设计,同时保证不改变其功能或行为。在采用面向对象技术构建软件系统时,很多敏捷方法都提倡使用重构来优化代码结构,提高软件的可维护性和可扩展性。
33.
解析:构建阶段主要进行软件的开发和实现,将各个软件进行集成,在这个阶段结束时会产生“在适当的平台上集成的软件产品”