计算机技术与软件专业技术资格(软件设计师) 练习卷

中级 | 100 题 | 姓名:__________ 得分:______

返回题库 隐藏答案 15 题30 题50 题100 题

1在软件设计阶段使用UML对系统进行建模时,若需要强调对象之间按时间顺序的消息交互并体现生命线激活期,应优先选用哪种图

  1. A. 时序图
  2. B. 通信图
  3. C. 状态图
  4. D. 活动图

2某项目采用增量模型开发,客户要求尽早看到可运行的核心功能,同时后续增量可能调整需求,较合适的增量划分策略是

  1. A. 先实现核心骨架功能,再按优先级逐步增加用户可见功能
  2. B. 先实现所有非功能需求,再集中补充业务功能
  3. C. 先完成全部详细设计文档评审,再一次性编码实现所有增量
  4. D. 先实现最难且风险最高的模块,再实现辅助模块

3某工程师在评审中发现一段代码用继承实现“日志输出到文件”和“日志输出到控制台”的差异,但运行时又需要动态组合格式与输出目标,较合适的重构方向是

  1. A. 将输出目标与格式分别抽象,用组合方式在运行时装配
  2. B. 继续增加继承层次,为每种格式和目标组合建立子类
  3. C. 把输出目标和格式都写成静态常量分支
  4. D. 把日志类改为单例并直接在内部判断输出目标

4在软件设计阶段使用分层架构时,若某业务方法需要访问数据库并返回结果,按照经典三层架构的职责划分,执行SQL语句的代码应位于哪一层

  1. A. 表现层
  2. B. 业务逻辑层
  3. C. 数据访问层
  4. D. 实体层

5在关系数据库中,若关系R(A,B,C)上存在函数依赖A→B和B→C,则根据Armstrong公理可以推出A→C,这一推理过程使用的规则是

  1. A. 自反律
  2. B. 增广律
  3. C. 传递律
  4. D. 分解律

6某系统采用面向对象方法设计,类Shape声明了抽象方法area(),类Circle和类Rectangle分别继承Shape并实现area(),当程序运行时根据对象实际类型调用area(),这体现了面向对象的哪一特性

  1. A. 封装
  2. B. 继承
  3. C. 多态
  4. D. 抽象

7某公司开发一套在线考试系统,考试期间大量考生同时提交试卷,系统需要保证提交请求先到先处理且不丢失,此时在服务端最适合采用的缓冲机制是

  1. A. 使用内存变量直接覆盖保存最新提交
  2. B. 将提交请求写入消息队列后由消费者顺序处理
  3. C. 将提交请求直接写入前端浏览器本地缓存
  4. D. 对提交请求加随机延迟后直接写数据库

8某模块的内聚程度表现为:模块内各元素共同完成一个单一功能且彼此不可分割,该内聚类型是

  1. A. 逻辑内聚
  2. B. 时间内聚
  3. C. 功能内聚
  4. D. 通信内聚

9在进程调度中,若采用时间片轮转算法且时间片设置过大,其实际效果会退化为

  1. A. 先来先服务
  2. B. 短作业优先
  3. C. 最高响应比优先
  4. D. 多级反馈队列

10设计一个支持撤销与重做的文本编辑器时,记录每次编辑操作并维护两个栈分别存放已执行与已撤销操作,这种设计主要体现的设计模式是

  1. A. 观察者模式
  2. B. 命令模式
  3. C. 工厂方法模式
  4. D. 适配器模式

11某系统中订单服务在创建订单后必须同时通知库存服务扣减库存,若扣减失败则订单创建回滚,设计时最应优先保证的架构属性是

  1. A. 可修改性
  2. B. 一致性
  3. C. 可用性
  4. D. 可测试性

12在数据库设计中,若关系 R 的每个非主属性都完全函数依赖于候选键,但存在非主属性对候选键的传递函数依赖,则 R 最高属于

  1. A. 1NF
  2. B. 2NF
  3. C. 3NF
  4. D. BCNF

13在面向对象设计中,若子类覆盖父类方法时扩大了方法的前置条件,则违反了

  1. A. 里氏替换原则
  2. B. 开闭原则
  3. C. 依赖倒置原则
  4. D. 接口隔离原则

14某团队在代码评审时发现:一个类同时承担订单校验、库存扣减和日志记录三项职责,且修改任一职责都需要改动该类。最应优先采用的重构手法是

  1. A. 提取类
  2. B. 内联方法
  3. C. 上移字段
  4. D. 替换算法

15在面向对象设计中,若子类覆盖了父类的方法,且子类方法中通过super调用父类同名方法后再增加新行为,这种复用方式属于

  1. A. 委托复用
  2. B. 继承复用
  3. C. 组合复用
  4. D. 参数化复用

16某电商系统在订单支付成功后需要依次执行扣减库存、生成发货单、发送通知三个操作,若扣减库存成功但生成发货单失败,系统回滚扣减库存并提示用户重试,这种处理主要体现了事务的

  1. A. 原子性
  2. B. 一致性
  3. C. 隔离性
  4. D. 持久性

17某项目采用面向对象方法设计订单模块,需求要求新增一种促销折扣类型时尽量不修改已有订单计算代码,仅通过增加新类并注册即可生效,这主要体现了哪种设计原则

  1. A. 开闭原则
  2. B. 里氏替换原则
  3. C. 接口隔离原则
  4. D. 单一职责原则

18在UML中描述一个对象在生命周期内经历的状态以及引起状态转换的事件,应使用的图是

  1. A. 用例图
  2. B. 状态图
  3. C. 活动图
  4. D. 协作图

19某项目使用瀑布模型开发,在编码阶段发现需求规格说明书中存在重大遗漏,最合理的处置方式是

  1. A. 继续编码并在维护阶段补充
  2. B. 立即修改需求并重新评审后续设计
  3. C. 直接按现有设计完成编码
  4. D. 记录问题待项目结束后统一处理

20在软件设计阶段使用模块化方法时,若追求“高内聚、低耦合”,下列哪种模块划分方式最符合该原则

  1. A. 每个模块只完成一个明确子功能且对外接口参数尽量少
  2. B. 把多个相关功能放入同一模块并共享全部全局变量
  3. C. 按数据输入输出流程拆分为多个模块并共用同一张数据库表
  4. D. 将功能相近的模块合并以减少模块数量并统一对外接口

21某项目在需求分析阶段发现用户对“响应时间”的要求为“大多数操作应在 1 秒内完成”,设计人员应优先将该需求转化为下列哪种可验证的表述

  1. A. 95% 的用户操作响应时间不超过 1 秒
  2. B. 所有操作响应时间均不超过 1 秒
  3. C. 平均响应时间不超过 1 秒
  4. D. 响应时间尽量控制在 1 秒左右

22在关系数据库设计中,若某关系模式已满足第三范式,但其中仍存在“部门经理姓名”依赖于“部门号”而“部门号”依赖于“员工号”的传递依赖,则该关系模式最高属于

  1. A. 第二范式
  2. B. 第三范式
  3. C. BCNF
  4. D. 第一范式

23在软件设计过程中,用于描述系统中对象之间消息传递顺序、强调时间次序的UML图是

  1. A. 时序图
  2. B. 协作图
  3. C. 状态图
  4. D. 活动图

24在关系数据库设计中,若将学生选课关系的主键由(学号,课程号)改为仅用选课流水号,最可能带来的直接后果是

  1. A. 同一学生可重复选同一课程而数据库不阻止
  2. B. 学生表与课程表之间的连接操作无法进行
  3. C. 课程号不能再作为外键引用课程表
  4. D. 选课关系的记录总数必须减少

25某项目中需求方频繁变更界面布局,但核心业务规则稳定,从降低变更影响角度最适宜采用的架构策略是

  1. A. 将界面表示与业务逻辑分层隔离
  2. B. 把所有界面元素写成配置文件统一管理
  3. C. 要求需求方冻结界面需求后再开发
  4. D. 让界面代码直接调用数据库存储过程

26在结构化分析方法中,数据流图用于描述

  1. A. 数据在系统中的流动与加工过程
  2. B. 模块之间的调用层次关系
  3. C. 对象的状态迁移与事件响应
  4. D. 数据库表的字段与约束定义

27在软件设计过程中,将系统划分为多个模块后,若要求每个模块的内部功能联系紧密而模块之间联系尽量少,这体现了哪种设计原则

  1. A. 高内聚低耦合
  2. B. 高耦合低内聚
  3. C. 模块独立性与信息隐藏
  4. D. 抽象与逐步求精

28在 UML 中,若需要表达一个对象状态的变化由外部事件触发并引起状态迁移,最适合使用的图是

  1. A. 状态图
  2. B. 活动图
  3. C. 协作图
  4. D. 用例图

29某模块的圈复杂度为 6,则其独立路径条数至少为

  1. A. 5
  2. B. 6
  3. C. 7
  4. D. 8

30在软件设计阶段使用模块独立性度量时,若一个模块直接访问另一个模块的内部数据,则这种耦合类型是

  1. A. 数据耦合
  2. B. 标记耦合
  3. C. 公共耦合
  4. D. 内容耦合

31在UML中描述一个对象在生命周期内经历的状态及状态间迁移,并强调事件触发迁移的图是

  1. A. 活动图
  2. B. 状态图
  3. C. 序列图
  4. D. 协作图

32在数据库设计中,若关系模式R属于3NF但不属于BCNF,则R中一定存在

  1. A. 非主属性对码的部分函数依赖
  2. B. 非主属性对码的传递函数依赖
  3. C. 主属性对码的部分函数依赖
  4. D. 主属性对码的传递函数依赖

33某开发人员在修改一个大型遗留系统时,发现需要改动的模块被多个上层模块调用,为降低修改影响范围,最应先采取的措施是

  1. A. 直接修改该模块并重新编译整个系统
  2. B. 先为该模块补充接口文档再修改
  3. C. 先分析该模块的扇出与扇入并评估影响
  4. D. 将该模块复制一份供新功能使用

34在 UML 中,若需要描述一个对象在生命周期内经历的状态序列以及引起状态转换的事件,应选用的图是

  1. A. 状态图
  2. B. 活动图
  3. C. 序列图
  4. D. 协作图

35某项目采用增量模型开发,在第一个增量交付后用户提出对已交付部分的接口进行调整,最恰当的处置是

  1. A. 拒绝变更并说明需求已冻结
  2. B. 将变更纳入下一个增量的计划统一处理
  3. C. 立即停止后续增量开发重新做全部需求分析
  4. D. 把变更直接并入当前增量并跳过回归测试

36在编译过程中,将源程序划分为一个个记号并确定每个记号的属性,这一阶段属于

  1. A. 词法分析
  2. B. 语法分析
  3. C. 语义分析
  4. D. 代码优化

37某开发人员在实现单例模式时,将构造函数声明为 public,并在每次获取实例时直接 new 一个新对象返回,该实现最主要的问题是

  1. A. 无法保证全局唯一实例
  2. B. 会造成构造函数递归调用
  3. C. 会导致类无法被继承
  4. D. 会使实例方法无法被调用

38在软件测试中,某程序输入为三个整数,要求判定能否构成三角形,若测试用例仅取 (3,4,5)、(5,5,5)、(1,2,3) 三组,则这种测试方法最可能遗漏的缺陷类型是

  1. A. 边界值附近的非法输入
  2. B. 等边三角形的正确判定
  3. C. 直角三角形的正确判定
  4. D. 一般三角形的正确判定

39某在线支付系统在高峰期出现订单重复扣款,经查扣款接口被客户端重试调用多次,且接口未做幂等控制,在接口层面最应优先补充的机制是

  1. A. 为每笔请求分配唯一请求号并在服务端去重
  2. B. 将扣款接口改为同步阻塞调用
  3. C. 把扣款金额拆分为多次小额扣款
  4. D. 在客户端增加重试次数上限

40某程序需要频繁在有序序列中执行插入和删除,同时还要支持快速按关键字查找,以下数据结构中最适合的是

  1. A. 顺序表
  2. B. 单链表
  3. C. 二叉排序树
  4. D. 散列表

41在数据库设计中,若关系模式R已满足第三范式,但某非主属性对码存在传递依赖,则R至少应进一步规范到

  1. A. 第一范式
  2. B. 第二范式
  3. C. 第三范式
  4. D. BC范式

42在设计模式中,若需要为一个对象动态地添加额外职责,且比生成子类更灵活,应优先考虑

  1. A. 适配器模式
  2. B. 装饰器模式
  3. C. 代理模式
  4. D. 外观模式

43在关系数据库设计中,若某关系模式已达到第三范式,但仍存在非主属性对候选键的部分依赖,则该模式实际上?

  1. A. 尚未达到第二范式
  2. B. 已达到BCNF
  3. C. 已达到第四范式
  4. D. 已达到第五范式

44某项目采用敏捷开发,迭代周期为两周,在迭代评审会上产品负责人提出一项紧急需求变更,团队当前迭代已进行到第8天,最符合敏捷实践的处理方式是?

  1. A. 将变更放入产品待办列表并在下个迭代规划时评估
  2. B. 立即停止当前迭代并重新规划全部任务
  3. C. 由开发人员自行决定是否插入当前迭代
  4. D. 拒绝该变更并说明迭代内不接受任何变更

45某系统采用数据库主从复制,读多写少,某次从库查询返回了刚写入主库但尚未同步的数据缺失,最可能的原因是?

  1. A. 主从复制存在延迟
  2. B. 从库磁盘空间不足
  3. C. 主库事务隔离级别过低
  4. D. 从库索引损坏

46某模块只完成一个明确子功能,且与同层其他模块之间没有数据耦合,只通过参数传递简单数据,这种耦合类型应判定为

  1. A. 数据耦合
  2. B. 标记耦合
  3. C. 控制耦合
  4. D. 公共耦合

47已知一棵二叉树的先序遍历序列为ABDECF,中序遍历序列为DBEAFC,则该二叉树的后序遍历序列为

  1. A. DEBFCA
  2. B. DEBCFA
  3. C. DBEFCA
  4. D. EDBFCA

48关系模式R(A,B,C,D)中,若存在函数依赖A→B、B→C,则根据Armstrong公理可推出A→C,这体现的推理规则是

  1. A. 传递律
  2. B. 自反律
  3. C. 增广律
  4. D. 分解律

49在软件维护过程中,下列活动属于改正性维护范畴的有(多选)

  1. A. 修复生产环境因空指针导致的订单提交失败
  2. B. 修正报表金额计算中四舍五入逻辑错误
  3. C. 为适应新税率政策调整计费模块
  4. D. 为提高查询速度重写索引结构

50在UML中描述一个对象在生命周期内经历的状态迁移以及引起迁移的事件,最适合使用的图是

  1. A. 活动图
  2. B. 状态图
  3. C. 序列图
  4. D. 协作图

51某项目在需求分析阶段发现用户对同一业务术语存在多种理解,最应优先产出的文档是

  1. A. 数据流图
  2. B. 数据字典
  3. C. 项目进度计划
  4. D. 模块结构图

52在软件架构设计中,关于分层架构风格的描述,下列哪些说法是恰当的(多选)

  1. A. 每层只能调用其相邻的下一层所提供的服务
  2. B. 上层可以绕过中间层直接调用更低层以提高效率
  3. C. 层与层之间通过定义良好的接口进行交互
  4. D. 只要接口不变,某一层的内部实现可以独立替换
  5. E. 分层越多系统整体性能一定越高

53在结构化分析方法中,数据流图的分层展开应遵循父图与子图平衡原则,下列做法中符合该原则的是

  1. A. 子图中新增一条父图中没有的输入数据流以细化处理
  2. B. 父图某加工的一个输入流在子图中对应为两个加工的共同输入
  3. C. 子图把父图中的一个数据存储拆成两个同名但不同编号的存储
  4. D. 父图某输出的数据流在子图中被合并到另一个输出的数据流中

54某软件项目在需求分析后直接进入编码,测试阶段才发现模块接口与需求严重不符,从软件过程模型角度看,最可能缺失的环节是

  1. A. 在编码前进行软件设计并评审接口与模块划分
  2. B. 在测试阶段增加回归测试以覆盖更多接口路径
  3. C. 在需求阶段引入原型以确认用户界面布局
  4. D. 在编码阶段采用结对编程提高代码质量

55某项目在敏捷开发中采用Scrum,冲刺评审会上产品负责人提出新增需求,团队当前冲刺还剩三天且已接近完成原定目标,最符合Scrum实践的处理方式是

  1. A. 由团队评估后把新需求纳入当前冲刺并调整任务
  2. B. 由产品负责人把新需求放入产品待办列表并排优先级
  3. C. 由Scrum Master直接分配新需求给空闲成员并行开发
  4. D. 由团队延长当前冲刺以保证新需求与原目标同时完成

56在UML中描述一个对象在生命周期内响应事件而发生的状态变化及触发动作,应优先选用

  1. A. 用例图
  2. B. 状态图
  3. C. 活动图
  4. D. 协作图

57在关系数据库设计中,若某关系模式存在非主属性对码的部分函数依赖,则该模式至少不满足

  1. A. 第一范式
  2. B. 第二范式
  3. C. 第三范式
  4. D. BC范式

58在软件配置管理中,用于记录配置项变更请求、评审和批准过程的主要活动是

  1. A. 版本控制
  2. B. 变更控制
  3. C. 配置审计
  4. D. 状态报告

59在软件设计阶段使用模块化方法时,若一个模块的内聚类型为“时间内聚”,则该模块内部的各个处理元素之间的关联特征是

  1. A. 各处理元素按固定先后顺序执行且前一个输出作为后一个输入
  2. B. 各处理元素因需要在同一时间段内执行而被组织在一起
  3. C. 各处理元素都围绕同一数据结构中的某个数据项进行操作
  4. D. 各处理元素共同完成一个明确的功能且缺一不可

60对某有序顺序表进行折半查找时,若查找成功时的比较次数最多为6次,则该顺序表的最大长度是

  1. A. 32
  2. B. 63
  3. C. 64
  4. D. 127

61在软件维护中,为了改进软件未来可维护性而对代码进行重构,但不改变软件外部可观察行为,这种维护类型属于

  1. A. 纠正性维护
  2. B. 适应性维护
  3. C. 完善性维护
  4. D. 预防性维护

62某系统采用白盒测试中的条件覆盖法设计测试用例,其要达到的目标是

  1. A. 使每个判定表达式的取真和取假分支至少各执行一次
  2. B. 使每个判定中每个条件的可能取值至少满足一次
  3. C. 使每个可执行语句至少执行一次
  4. D. 使每条可能的路径至少执行一次

63某项目采用增量模型开发,在第三个增量交付后发现前两个增量的接口定义存在冲突,最应该优先检查的配置项是

  1. A. 需求跟踪矩阵
  2. B. 接口控制文档
  3. C. 测试用例库
  4. D. 项目进度计划

64某软件在测试中发现:输入边界值附近的结果时对时错,且错误随运行次数增加而增多,最可能的原因是

  1. A. 边界条件判断使用了浮点数直接相等比较
  2. B. 测试用例覆盖了等价类划分
  3. C. 代码中使用了防御式编程
  4. D. 输入数据采用了十进制字符串表示

65在软件维护中,为适应外部环境变化而修改软件的活动属于

  1. A. 纠正性维护
  2. B. 适应性维护
  3. C. 完善性维护
  4. D. 预防性维护

66某模块内部各语句处理同一张数据表的不同字段,且这些处理之间没有执行顺序要求,则该模块的内聚类型是

  1. A. 逻辑内聚
  2. B. 时间内聚
  3. C. 通信内聚
  4. D. 功能内聚

67在面向对象设计中,若子类覆盖父类方法后,父类引用调用该方法时执行子类实现,这体现了

  1. A. 封装
  2. B. 继承
  3. C. 多态
  4. D. 抽象

68某软件公司承接一个银行核心系统升级项目,需求方要求在不改变原有对外接口的前提下替换底层数据库,设计时应优先考虑的设计原则是

  1. A. 提高模块间耦合度以便统一修改
  2. B. 对接口部分进行信息隐藏并封装数据库访问
  3. C. 将所有数据库访问语句分散到各业务模块
  4. D. 取消接口层直接让业务模块访问新数据库

69在UML中描述一个对象在生命周期内经历的状态以及引起状态转移的事件,应优先选用

  1. A. 状态图
  2. B. 活动图
  3. C. 序列图
  4. D. 协作图

70某程序需要频繁在表头插入和删除元素,且元素数量动态变化较大,从时间复杂度考虑最合适的存储结构是

  1. A. 单链表
  2. B. 顺序表
  3. C. 循环队列
  4. D. 哈希表

71某系统采用观察者模式实现事件通知,当被观察对象状态改变时需要通知多个观察者,若通知过程中某观察者抛出异常,较合理的处理策略是

  1. A. 捕获异常并继续通知其余观察者
  2. B. 立即终止通知并回滚被观察对象状态
  3. C. 忽略异常并直接返回成功
  4. D. 将异常包装后重新抛出并中断整个调用链

72某程序需要频繁在表头进行插入和删除操作,且数据量较大、对随机访问要求不高,较适合选用的数据结构是

  1. A. 单链表
  2. B. 顺序表
  3. C. 散列表
  4. D. 邻接矩阵

73某系统采用UML进行建模,若要描述对象在生命周期内响应外部事件时状态迁移及触发动作,应优先选用

  1. A. 状态图
  2. B. 用例图
  3. C. 类图
  4. D. 部署图

74某项目组在代码评审时发现,某函数既负责解析报文又负责写入数据库还负责生成日志,修改任一职责都可能影响其他功能,该设计最明显违反的是

  1. A. 单一职责原则
  2. B. 开闭原则
  3. C. 里氏替换原则
  4. D. 合成复用原则

75在UML中,若需要表达一个类在运行期间与另一个类存在整体与部分关系,且部分可以独立于整体存在,应使用下列哪种关系

  1. A. 聚合
  2. B. 组合
  3. C. 泛化
  4. D. 依赖

76某项目采用敏捷开发,在迭代评审会议上团队发现某用户故事无法在本次迭代完成,正确的处置方式是

  1. A. 将该故事移回产品待办列表并重新排优先级
  2. B. 延长本次迭代时间直到完成为止
  3. C. 降低该故事的验收标准使其通过
  4. D. 在迭代回顾会上追究该成员责任

77在编译原理中,若某文法产生式形如A→αBβ且B→γ,则对该产生式进行自顶向下语法分析时可能遇到的核心问题是

  1. A. 左递归导致无限递归
  2. B. 回溯导致效率低下
  3. C. 移进归约冲突
  4. D. 算符优先关系不唯一

78在面向对象设计中,若子类重写父类方法时把父类方法的访问权限由 public 改为 private,则这一做法主要违背了

  1. A. 里氏替换原则
  2. B. 开闭原则
  3. C. 依赖倒置原则
  4. D. 单一职责原则

79某项目采用白盒测试,要求设计测试用例使程序中每个判定表达式的每个条件都至少取一次“真”和一次“假”,这种覆盖标准是

  1. A. 语句覆盖
  2. B. 判定覆盖
  3. C. 条件覆盖
  4. D. 路径覆盖

80某开发团队在敏捷迭代中把“每个迭代结束必须交付可工作的软件”作为原则,这一原则最直接对应的敏捷宣言价值观是

  1. A. 个体和互动高于流程和工具
  2. B. 可工作的软件高于详尽的文档
  3. C. 客户合作高于合同谈判
  4. D. 响应变化高于遵循计划

81某系统采用UML进行面向对象建模,需要表达一个“订单”对象在创建后随支付、发货、收货等事件发生的状态迁移及触发条件,应优先选用

  1. A. 状态图
  2. B. 用例图
  3. C. 协作图
  4. D. 包图

82在编译原理中,若某文法产生的句子需要自底向上分析,且分析过程中使用移进-归约冲突消解策略,通常优先采用的消解方式是

  1. A. 移进
  2. B. 归约
  3. C. 报错
  4. D. 回溯

83在软件维护过程中,为了修复因需求理解偏差导致的功能错误而进行的修改,属于

  1. A. 纠正性维护
  2. B. 适应性维护
  3. C. 完善性维护
  4. D. 预防性维护

84某关系模式R(A,B,C,D)中,函数依赖集为{A→B, B→C, C→D},则R的候选码是

  1. A. A
  2. B. B
  3. C. C
  4. D. D

85某系统中多个进程需要共享一个打印机,若允许多个进程同时进入打印临界区,最可能出现的后果是

  1. A. 打印结果交错混乱,输出不可预期
  2. B. 进程因等待打印机而全部死锁
  3. C. 打印机驱动程序被自动卸载
  4. D. 临界区代码被操作系统禁止执行

86在软件设计评审中,下列做法有助于提高评审有效性的是(多选)

  1. A. 评审前将设计文档和检查清单提前发给评审人员
  2. B. 评审会中由设计者先详细讲解再请评审人员提问
  3. C. 对发现的问题记录严重程度并跟踪闭环
  4. D. 评审只邀请项目组内部同岗位人员参加

87在关系数据库模式设计中,若关系R(A,B,C)上存在函数依赖A→B、B→C,则R至少属于

  1. A. 第二范式
  2. B. 第一范式
  3. C. 第三范式
  4. D. BC范式

88某项目采用敏捷开发,在迭代评审会上发现已完成的某用户故事未达到验收标准,产品负责人正确的处置方式是

  1. A. 将该故事重新放入产品待办列表并重新排优先级
  2. B. 在本次迭代内立即返工直到通过验收
  3. C. 把该故事直接标记为已完成并顺延到下一迭代
  4. D. 由开发团队自行决定是否保留该故事

89在软件需求分析与建模过程中,下列活动属于需求获取阶段应完成的工作有(多选)

  1. A. 与客户面谈并记录业务目标与约束
  2. B. 分析现有系统的文档与业务流程
  3. C. 编写详细设计类图并确定类间关联
  4. D. 建立用例模型描述系统与参与者交互
  5. E. 编写程序代码验证需求可行性

90在UML中,若类A的变化需要同步引起类B的变化,且B不知道A的具体实现,通常应在A与B之间建立的设计模式是

  1. A. 观察者模式
  2. B. 适配器模式
  3. C. 装饰器模式
  4. D. 工厂方法模式

91某项目采用增量模型开发,第一个增量交付后用户提出基础架构需大改,导致后续增量返工严重,最可能的原因是

  1. A. 未在早期增量中确定核心架构
  2. B. 增量划分时按功能数量平均分配
  3. C. 每个增量都进行了独立测试
  4. D. 用户参与了第一个增量的评审

92某团队用Git协作,成员A在feature分支完成提交后执行git rebase master再推送到远程feature分支,可能导致其他成员拉取时出现问题的原因是

  1. A. rebase重写了feature分支的提交历史
  2. B. rebase会把master合并进feature
  3. C. rebase会自动删除远程分支
  4. D. rebase只能用于本地未推送的提交

93在 UML 中描述一个对象在生命周期内响应事件时所经历的状态序列及状态转移,应优先选用

  1. A. 状态图
  2. B. 活动图
  3. C. 协作图
  4. D. 部署图

94对某 C 语言程序进行静态分析时发现函数内局部数组被返回其首地址给调用者,该缺陷的本质是

  1. A. 返回了栈帧中对象的地址
  2. B. 数组名退化为常量指针
  3. C. 返回类型与数组类型不匹配
  4. D. 局部数组未初始化的读取

95采用贪心策略求解活动安排问题时,先将活动按结束时间递增排序,再依次选择与已选活动相容的活动,该策略能得到最优解的关键性质是

  1. A. 问题具有最优子结构和贪心选择性质
  2. B. 问题具有重叠子问题和无后效性
  3. C. 问题满足拟阵的交换性但不满足遗传性
  4. D. 问题满足动态规划的最优性原理但不满足贪心选择

96某模块内各功能必须按固定顺序依次执行,且前一个功能的输出是后一个功能的输入,则该模块的内聚类型是

  1. A. 顺序内聚
  2. B. 通信内聚
  3. C. 过程内聚
  4. D. 逻辑内聚

97在软件测试中,若某程序输入变量 x 的取值范围是 1≤x≤100,采用边界值分析法设计测试用例时,除 1 和 100 外还应优先选取

  1. A. 0 和 101
  2. B. 2 和 99
  3. C. 50 和 51
  4. D. -1 和 102

98某开发人员在重构时发现一个类同时承担订单校验、库存扣减和日志记录三项职责,且修改任一职责都会影响其他职责,此时最应优先采用的改进措施是

  1. A. 按职责拆分为多个类并明确各自接口
  2. B. 为该类增加更多方法以集中管理职责
  3. C. 将该类改为单例以保证状态一致
  4. D. 为该类添加更多注释说明各项职责

99在UML类图中,若类A与类B之间是整体与部分关系,且部分可以脱离整体独立存在,则两者之间应建模为

  1. A. 泛化关系
  2. B. 聚合关系
  3. C. 组合关系
  4. D. 依赖关系

100某项目进度网络图中,活动A历时3天,活动B历时5天,A完成后B才能开始,B完成后项目结束,若A延迟2天完成,则项目总工期将

  1. A. 不受影响
  2. B. 延长2天
  3. C. 延长5天
  4. D. 缩短3天

参考答案

  1. A 时序图按时间顺序展示对象间消息交互,并可表示激活期;通信图强调对象间链接关系而不突出时间顺序;状态图描述单个对象状态迁移…
  2. A 增量模型强调按优先级尽早交付可运行增量,先核心骨架再逐步增加功能符合该策略;先做非功能需求不易形成可运行增量;先完整设计…
  3. A 桥接/策略组合可将两个变化维度解耦并支持运行时装配;继续增加继承会导致类爆炸;静态常量分支难以扩展;单例内部判断仍把变化…
  4. C 知识点是三层架构的职责划分。数据访问层专门封装对数据库的增删改查操作,因此执行SQL的代码应放在该层;表现层负责界面展示…
  5. C 知识点是函数依赖的Armstrong公理。由A→B和B→C推出A→C使用的是传递律;自反律指若Y包含于X则X→Y;增广律…
  6. C 知识点是面向对象基本特性。多态指同一操作作用于不同对象产生不同执行结果,运行时根据实际对象类型绑定方法符合多态;封装强调…
  7. B 知识点是消息队列在削峰和顺序处理中的应用。消息队列可缓冲突发请求并由消费者按顺序处理,避免请求丢失;内存变量覆盖保存会丢…
  8. C 知识点为模块内聚类型。功能内聚指模块内所有元素协同完成单一明确功能,内聚度最高;逻辑内聚是多个逻辑相似功能组合,时间内聚…
  9. A 知识点为调度算法特征。时间片过大时每个进程一次基本能运行完,轮转失去意义,等效于按到达顺序执行即先来先服务;短作业优先需…
  10. B 知识点为命令模式的应用。命令模式把操作封装为对象,便于记录、撤销与重做;观察者用于对象间通知,工厂方法用于创建解耦,适配…
  11. B 知识点是架构质量属性。场景强调跨服务操作要么全成功要么全回滚,核心是一致性;可修改性关注变更成本,可用性关注故障恢复,可…
  12. B 知识点是关系范式。2NF 要求非主属性完全函数依赖于候选键,消除部分依赖;3NF 还需消除传递依赖;BCNF 要求每个决…
  13. A 知识点是面向对象设计原则。里氏替换原则要求子类对象能替换父类对象且不破坏原有语义,扩大前置条件会削弱可替换性;开闭原则关…
  14. A 知识点是重构与单一职责。该类承担多项职责,应使用提取类将不同职责分离;内联方法用于消除过度封装,上移字段用于继承体系调整…
  15. B 知识点为面向对象复用机制。通过继承并在子类中用super调用父类实现属于继承复用,故B正确;委托复用是持有对象并转发调用…
  16. A 知识点为事务的ACID特性。事务中部分操作失败后回滚已执行操作,保证要么全做要么全不做,体现原子性,故A正确;一致性强调…
  17. A 开闭原则要求软件实体对扩展开放、对修改关闭,通过增加新类而不是修改既有计算代码来扩展折扣类型,正符合该原则。里氏替换原则…
  18. B 知识点是UML动态建模图。状态图描述对象生命周期中的状态、事件和转换,因此正确。用例图描述系统功能与参与者关系;活动图强…
  19. B 知识点是瀑布模型变更控制。需求遗漏应尽早通过变更流程修改需求并重新评审受影响的设计,因此正确。继续编码、直接完成、事后统…
  20. A 知识点是模块独立性度量中的高内聚低耦合。正确项每个模块只完成一个明确子功能且接口参数少,体现功能内聚和低耦合。错误项把多…
  21. A 知识点是非功能需求的可验证性。正确项给出比例和阈值,便于测试验证。所有操作不超过 1 秒过于绝对且可能无法达到;平均响应…
  22. A 知识点是范式判定。存在非主属性对码的传递依赖时,不满足第三范式,但若已消除部分依赖,则属于第二范式。第三范式和 BCNF…
  23. A 知识点是UML行为图的用途辨析。时序图按时间顺序展示对象间消息交互,突出消息先后;协作图强调对象之间的结构关系和消息编号…
  24. A 知识点是关系模式的键约束与实体完整性。原复合主键可防止重复选课,改为流水号后该业务唯一性不再由主键保证,可能插入重复选课…
  25. A 知识点是分层架构与变更隔离。界面易变而业务稳定时,将表示层与业务逻辑分离可把变更限制在局部;配置文件只能减少硬编码,不能…
  26. A 知识点是结构化分析工具用途。数据流图描述数据流动、加工、存储和外部实体;模块调用层次用结构图表示;状态迁移用状态图;数据…
  27. A 知识点是模块独立性度量。高内聚低耦合正是让模块内部元素关联强、模块间依赖弱的目标;高耦合低内聚与目标相反;模块独立性与信…
  28. A 知识点是 UML 行为图用途。状态图描述一个对象在事件驱动下的状态与迁移,符合题意。活动图强调动作流程与并发控制流;协作…
  29. B 知识点是 McCabe 圈复杂度含义。圈复杂度等于线性无关路径数上限,数值为 6 时独立路径条数为 6。5 是判定结点数…
  30. D 知识点是模块耦合类型。内容耦合指一个模块直接访问另一模块内部数据或代码,耦合度最高,故正确。数据耦合只传递简单数据参数;…
  31. B 知识点是UML动态视图。状态图描述对象状态及事件驱动的迁移。活动图强调控制流与并发;序列图强调按时间顺序的消息交互;协作…
  32. D 知识点是范式判定。3NF消除了非主属性对码的部分和传递依赖,但不排除主属性对码的传递依赖,这正是3NF不属于BCNF的原…
  33. C 知识点是软件维护中的影响分析。修改被多模块调用的模块前,应先分析扇入扇出评估影响范围。直接修改风险高;补文档不能降低影响…
  34. A 知识点为 UML 各类图的用途辨析。状态图描述一个特定对象在生命周期中的状态变迁及触发事件,符合题意。活动图强调控制流与…
  35. B 知识点为增量模型下的变更管理。增量模型允许分批交付并逐步完善,对已交付部分的接口调整应通过变更控制纳入后续增量计划,既响…
  36. A 知识点为编译各阶段任务。词法分析负责扫描字符流并识别单词记号及其属性,符合题意。语法分析是在记号流基础上分析语法结构是否…
  37. A 知识点为单例模式的结构约束。单例模式核心是保证一个类仅有一个实例并提供全局访问点,构造函数公开且每次 new 会破坏唯一…
  38. A 知识点为等价类划分与边界值分析。三组用例覆盖了普通、等边及退化情形,但未覆盖零值、负值、极大值等边界非法输入,因此最可能…
  39. A 知识点为分布式接口幂等性设计。重复扣款根因是重试导致同一业务被多次执行,应通过唯一请求号在服务端识别并去重,保证幂等。同…
  40. C 知识点为数据结构选择。二叉排序树在平均情况下插入、删除和查找时间复杂度均为O(log n),能兼顾有序性与动态操作;顺序…
  41. D 知识点为关系规范化。第三范式允许主属性对码的传递依赖,但要求非主属性不传递依赖于码;若仍存在非主属性对码的传递依赖,说明…
  42. B 知识点为设计模式意图。装饰器模式在不改变原类的情况下动态给对象添加职责,符合题干;适配器模式用于转换接口;代理模式用于控…
  43. A 知识点是范式判定。第二范式要求消除非主属性对候选键的部分依赖,第三范式要求消除传递依赖;若仍存在部分依赖说明连第二范式都…
  44. A 知识点是敏捷需求变更管理。迭代内保持目标稳定,新需求进入产品待办列表由产品负责人排序,下个迭代再评估;停止迭代重规划破坏…
  45. A 知识点是主从复制延迟。异步复制下从库可能尚未收到主库最新事务,导致读不到刚写入数据;磁盘空间、隔离级别、索引损坏均不会造…
  46. A 知识点为模块耦合类型。只通过参数传递简单数据属于数据耦合,耦合度最低,故A正确。B项标记耦合传递的是数据结构的一部分;C…
  47. A 知识点为二叉树遍历还原。先序首元素A为根,中序中以A分左右:左子树中序DBE,右子树中序FC;继续还原得后序为DEBFC…
  48. A 知识点为关系数据库函数依赖公理。由A→B和B→C推出A→C是传递律,故A正确。B项自反律是由Y包含于X推出X→Y;C项增…
  49. A、B 知识点为软件维护类型。改正性维护是修复已发现的缺陷,A、B均属于修复运行中发现的错误。C项适应新政策属于适应性维护;D项…
  50. B 知识点是UML行为图的用途辨析。状态图面向单个对象,描述状态、事件、迁移和动作。错误项:活动图强调控制流与并发步骤;序列…
  51. B 知识点是需求分析阶段文档的作用。数据字典用于统一和精确定义数据项、数据流、数据存储等的含义,能消除术语歧义。错误项:数据…
  52. A、C、D 知识点是分层架构风格的特征。严格分层中每层仅调用相邻下层,层间通过接口交互,接口稳定则实现可替换。错误项:绕过中间层直接…
  53. B 知识点为数据流图父图子图平衡。平衡要求子图的所有输入输出流必须与父图对应加工的输入输出流一致,父图的一个输入流在子图中可…
  54. A 知识点为软件过程模型与阶段衔接。需求后直接编码跳过了设计阶段,导致模块接口与需求不符,正确处置是补上软件设计及评审。错误…
  55. B 知识点为Scrum冲刺规则。冲刺期间不应加入新需求,产品负责人应将其放入产品待办列表并排序,供后续冲刺规划。错误项在冲刺…
  56. B 知识点是UML动态建模图。状态图强调单个对象状态迁移与事件触发;用例图描述系统与参与者功能关系;活动图强调控制流与并发步…
  57. B 知识点是关系规范化。第二范式要求消除非主属性对码的部分函数依赖;第一范式只要求属性原子性;第三范式进一步消除传递依赖;B…
  58. B 知识点是配置管理活动。变更控制负责变更请求的评审、批准与跟踪;版本控制管理版本历史;配置审计检查一致性;状态报告提供配置…
  59. B 知识点是模块内聚类型。时间内聚指模块内元素因必须在同一时间段内执行而聚集,如初始化模块,故B正确;A描述的是顺序内聚;C…
  60. B 知识点是折半查找判定树高度。最多比较6次对应判定树高度为6,最多结点数为2^6-1=63,故B正确;32对应5次比较;6…
  61. D 知识点是软件维护分类。预防性维护指为预防未来问题、提高可维护性而修改软件,故D正确;纠正性维护针对已发现的错误;适应性维…
  62. B 知识点是白盒测试覆盖标准。条件覆盖要求每个条件的可能取值至少出现一次,故B正确;A是判定覆盖;C是语句覆盖;D是路径覆盖…
  63. B 知识点为软件配置管理与增量开发接口协调。接口控制文档记录各增量间接口定义与变更,是解决接口冲突的首要依据。需求跟踪矩阵用…
  64. A 知识点为浮点数比较与边界缺陷特征。浮点数直接相等比较在边界附近易因精度误差产生间歇性错误,且随数据累积更明显。等价类划分…
  65. B 知识点为软件维护类型划分。适应性维护指为适应外部环境(如操作系统、硬件、数据格式)变化而修改软件。纠正性维护修复已发现的…
  66. C 知识点是模块内聚。通信内聚指模块内各成分处理同一数据结构的不同部分;逻辑内聚是按逻辑相似性组合;时间内聚是同一时间段执行…
  67. C 知识点是面向对象特征。多态指同一消息在不同对象上产生不同行为;封装隐藏实现;继承复用结构;抽象提取共性。
  68. B 知识点是信息隐藏与低耦合设计。封装数据库访问可隔离变化;提高耦合会放大修改影响;分散访问不利于替换;取消接口层会破坏原有…
  69. A 知识点是UML动态建模图。状态图描述对象状态及事件驱动的转移,故正确;活动图强调控制流与并发活动;序列图强调按时间顺序的…
  70. A 知识点是线性表存储结构选择。单链表在表头插入删除为O(1)且动态扩展方便,故正确;顺序表表头插入删除需移动元素为O(n)…
  71. A 知识点是观察者模式异常处理。为保证通知的鲁棒性,应隔离单个观察者异常并继续通知,故正确;终止通知会使其他观察者漏收;忽略…
  72. A 知识点为线性表存储结构选择。单链表在已知位置进行头插头删时只需修改指针,时间复杂度为O(1),适合频繁插入删除;顺序表插…
  73. A 知识点为UML图适用场景。状态图描述对象状态、事件和迁移,适合生命周期行为建模;用例图描述系统与外部参与者的功能关系;类…
  74. A 知识点为面向对象设计原则。单一职责原则要求一个类或函数只承担一个引起变化的原因,该函数同时承担解析、入库、日志三类职责;…
  75. A 知识点为UML类间关系。聚合表示整体与部分且部分可独立存在,故A对;组合表示部分不能独立于整体,B错;泛化是继承关系,C…
  76. A 知识点为Scrum迭代管理。未完成的故事应放回产品待办列表重新排序,故A对;延长迭代时间违反迭代时间盒,B错;降低验收标…
  77. A 知识点为自顶向下分析中的左递归问题。若α可推导出空串或A本身,则可能左递归导致无限递归,故A对;回溯是另一问题但非该产生…
  78. A 知识点:面向对象设计原则。正确项:里氏替换原则要求子类对象能替换父类对象且不改变程序正确性,缩小方法可见性会破坏父类契约…
  79. C 知识点:白盒测试的逻辑覆盖标准。正确项:条件覆盖要求每个判定中的每个条件的真假值至少出现一次。错误项:语句覆盖只要求每条…
  80. B 知识点:敏捷宣言四条价值观。正确项:强调交付可工作的软件,对应“可工作的软件高于详尽的文档”。错误项:个体和互动强调人员…
  81. A 知识点是UML图的适用场景。状态图描述对象状态及事件驱动的迁移,适合订单生命周期,故A正确;用例图描述系统与参与者的功能…
  82. A 知识点是LR分析冲突消解。默认策略是移进优先,故A正确;归约优先在特定文法中才用;报错不是冲突消解策略;回溯是自顶向下分…
  83. A 知识点是维护类型。修复功能错误属于纠正性维护,故A正确;适应性维护是为适应环境变化;完善性维护是增加新功能;预防性维护是…
  84. A 知识点是函数依赖与候选码。由A可推出B、C、D,因此A能决定全属性;A的闭包为ABCD。错误项:B只能推出C、D,不能推…
  85. A 知识点是临界区与互斥。打印机属于独占资源,多个进程同时写会导致输出交错。错误项:同时进入不一定导致全部死锁;驱动程序不会…
  86. A、C 知识点是设计评审组织。提前发材料和检查清单能提高准备度;记录问题并跟踪闭环保证评审效果。错误项:设计者先详细讲解容易形成…
  87. A 知识点是范式判定。候选键为A,非主属性B、C均完全函数依赖于A,满足2NF;但C通过B传递依赖于A,故不满足3NF和BC…
  88. A 知识点是敏捷迭代评审与待办列表管理。未达验收标准的故事应回到产品待办列表并重新排优先级;返工应在后续迭代中安排而非强行拖…
  89. A、B、D 知识点是需求工程阶段划分。需求获取包括面谈、分析现有文档、建立用例模型等;编写详细设计类图属于设计阶段,编写代码验证属于…
  90. A 知识点:设计模式意图辨析。观察者模式定义一对多依赖,当主体状态改变时自动通知观察者,且主体不依赖观察者具体实现。B项适配…
  91. A 知识点:增量模型风险。增量模型要求先实现核心骨架再逐步扩展,若早期增量只做外围功能而未稳定架构,后期改动会波及所有增量。…
  92. A 知识点:Git rebase影响。rebase将feature提交在master新基点上重新应用,生成新提交哈希,历史被…
  93. A 知识点为 UML 动态视图的选型。状态图刻画单个对象的状态与事件驱动的转移。活动图强调控制流与并发动作;协作图强调对象间…
  94. A 知识点为栈帧生命周期与悬空指针。局部数组位于被调函数栈帧,函数返回后栈帧失效,返回其地址形成悬空指针。数组名退化是正常语…
  95. A 知识点:贪心算法适用条件。活动安排问题要求最优子结构和贪心选择性质,按结束时间最早选择可保证最优,故A正确;重叠子问题与…
  96. A 知识点:模块内聚类型。顺序内聚强调数据流顺序传递,故A正确;通信内聚强调使用同一输入或产生同一输出,不要求顺序,故B错;…
  97. A 知识点:边界值分析。边界值分析关注边界及其相邻值,故除 1、100 外应取 0、101,A正确;2 和 99 是有效区间…
  98. A 知识点:单一职责原则与重构。一个类承担多项变化原因不同的职责时应拆分,故A正确;增加方法会加剧职责集中,故B错;单例只控…
  99. B 知识点是UML类图中聚合与组合的语义区别。聚合表示整体与部分关系且部分可独立存在,生命周期不绑定;组合表示部分不能脱离整…
  100. B 知识点是关键路径与总时差。题干中A和B构成唯一路径,A是关键活动,无总时差,A延迟2天会直接导致项目工期延长2天。不受影…