Ruankao System Analyst (Senior) study materials
Ruankao System Analyst (Senior) study resources

Ruankao System Analyst (Senior) practice questions

One question at a time. Build your Ruankao System Analyst (Senior) understanding.

First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1Computer Systems Fundamentals and Architecture

在冯·诺依曼体系结构中,程序计数器(PC)在取指周期结束时的核心作用是下列哪一项?

  1. 保存当前指令执行后的算术运算结果
  2. 记录处理器当前所处的特权级别
  3. 缓存最近访问过的数据块以提高命中率
  4. 指向下一条将要被取出执行的指令地址 Correct answer.

Explanation

程序计数器保存的是下一条待取指令的地址,取指完成后通常自动递增或按转移指令被改写。它不参与运算结果保存,也不承担数据缓存或特权级别记录职能。理解 PC 与指令寄存器 IR 的分工是分析指令执行流程的基础。

Question 2Computer Systems Fundamentals and Architecture

某系统采用 32 位地址、按字节编址,并采用 4 路组相联 Cache,块大小为 64 字节,共 256 个组。主存地址中 tag 字段的位数是多少?

  1. 16 位
  2. 14 位
  3. 18 位 Correct answer.
  4. 20 位

Explanation

块内偏移需 log2(64)=6 位,组索引需 log2(256)=8 位,二者合计 14 位。32 位地址减去偏移和索引共 14 位,剩余 tag 为 18 位。路数只影响每组内的比较器数量,不改变 tag 宽度。

Question 3Computer Systems Fundamentals and Architecture

在流水线处理器中,数据冒险(data hazard)最常用的硬件解决手段是下列哪一项?

  1. 采用数据旁路(转发)技术 Correct answer.
  2. 提高时钟频率以缩短每拍时间
  3. 增加指令预取队列深度
  4. 扩大主存容量以容纳更多指令

Explanation

数据冒险源于后续指令需要使用前面尚未写回的结果,旁路或转发可以把运算结果直接从流水段输出送到需要的输入端,避免停顿。预取队列、主存容量和时钟频率都不能消除寄存器写读之间的依赖关系。这是流水线控制中必须掌握的核心机制。

Question 4Computer Systems Fundamentals and Architecture

RISC 架构相对于 CISC 架构在设计上的典型特征是下列哪一项?

  1. 微程序控制器承担绝大多数指令译码
  2. 指令长度可变且寻址方式丰富
  3. 大量指令直接对应复杂的内存操作
  4. 指令格式规整、以寄存器操作数为主 Correct answer.

Explanation

RISC 强调定长指令、规整编码和 load/store 分离的访存方式,运算主要在寄存器之间完成,便于流水线实现。可变指令长度、复杂内存操作和大量微程序控制都是 CISC 的典型特征。这一对比是体系结构选型分析的基础。

Question 5Computer Systems Fundamentals and Architecture

某磁盘转速为 7200 转/分,平均寻道时间为 8 ms。忽略传输时间,一次随机读写的平均访问时间约为多少?

  1. 16.3 ms
  2. 4.2 ms
  3. 8.0 ms
  4. 12.2 ms Correct answer.

Explanation

7200 转/分相当于每秒 120 转,旋转一周约 8.33 ms,平均旋转延迟为半周约 4.17 ms。平均访问时间等于平均寻道时间加平均旋转延迟,即 8 + 4.17 ≈ 12.2 ms。传输时间被忽略后不再额外计入。

Question 6Computer Systems Fundamentals and Architecture

在存储器层次结构中,引入 Cache 能够提升平均访问时间,其根本依据是下列哪一项?

  1. 总线的分时复用机制
  2. 中断向量的优先级仲裁
  3. 程序的局部性原理 Correct answer.
  4. 虚拟地址到物理地址的映射

Explanation

程序访问在时间和空间上具有局部性,使得少量近期或邻近数据被反复使用,从而可由高速小容量 Cache 服务大部分访问。总线复用、地址映射和中断仲裁都不解释命中率来源。局部性原理是存储层次设计成立的理论前提。

Question 7Computer Systems Fundamentals and Architecture

下列关于虚拟存储器中页表与 TLB 关系的描述,正确的是哪一项?

  1. TLB 的容量通常大于页表,因此可完全替代页表
  2. TLB 存放的是页表项的副本,命中时可免去一次访存查页表 Correct answer.
  3. 页表失效时 TLB 中对应条目会自动重新加载而无需软件介入
  4. TLB 命中后仍需访问内存中的页表才能得到物理地址

Explanation

TLB 是页表项的高速缓存,命中时直接得到页框号,省去访问内存页表的一次开销。未命中才需要查页表,并由硬件或操作系统填入 TLB。TLB 容量远小于页表,无法替代页表。

Question 8Computer Systems Fundamentals and Architecture

在总线系统中,采用分离事务(split transaction)方式相对于独占总线方式的直接好处是下列哪一项?

  1. 使所有设备共享同一物理地址空间
  2. 降低总线时钟频率以减少功耗
  3. 在从设备准备数据期间释放总线供其他主设备使用 Correct answer.
  4. 彻底消除总线仲裁所需的控制信号

Explanation

分离事务把一次总线访问拆成请求与应答两个阶段,中间等待期间释放总线,从而提高总线利用率。它并不降低时钟频率,也不取消仲裁信号,更与地址空间划分无关。理解该机制有助于分析 I/O 带宽瓶颈。

Question 9Computer Systems Fundamentals and Architecture

DMA 方式与程序中断方式相比,在批量数据传输中的主要优势是下列哪一项?

  1. 数据传送由 DMA 控制器直接完成,CPU 仅在传送结束时被通知 Correct answer.
  2. 中断响应延迟被完全消除
  3. 需要 CPU 逐字查询设备状态寄存器
  4. 每传输一个字节都需要 CPU 执行一条指令

Explanation

DMA 由控制器接管总线在内存与设备间直接搬运数据,CPU 只在整块传送开始和结束时介入,因而大幅减少开销。逐字节指令搬运或查询状态属于程序控制与中断方式的特点。该对比是 I/O 方式选型的常见考点。

Question 10Computer Systems Fundamentals and Architecture

某系统采用 16 位定长指令字,指令包含 4 位操作码和两个各 6 位的寄存器编号字段。该格式最多可定义多少条不同的操作?

  1. 256 条
  2. 32 条
  3. 16 条 Correct answer.
  4. 64 条

Explanation

操作码字段占 4 位,可编码 2^4 = 16 种不同操作。两个寄存器字段各 6 位共 12 位,加上 4 位操作码正好构成 16 位指令字。寄存器字段的位数决定可寻址寄存器数量,不增加操作码容量。

Question 11Computer Systems Fundamentals and Architecture

在中断处理过程中,保存断点和现场信息的主要目的是下列哪一项?

  1. 减少中断向量表的存储开销
  2. 避免中断嵌套时产生总线冲突
  3. 使被中断的程序在中断返回后能正确继续执行 Correct answer.
  4. 提高中断优先级仲裁的速度

Explanation

中断会打断当前程序的执行流,必须保存返回地址和寄存器等现场信息,中断服务结束后据此恢复,保证原程序正确继续。保存现场与仲裁速度、向量表开销和总线冲突没有直接因果关系。这是中断机制正确性的关键环节。

Question 12Computer Systems Fundamentals and Architecture

某流水线由取指、译码、执行、访存、写回五段组成,各段延迟均为 2 ns,流水段寄存器开销忽略。连续执行 100 条无冒险指令所需时间约为多少?

  1. 208 ns Correct answer.
  2. 200 ns
  3. 202 ns
  4. 1000 ns

Explanation

流水线填满需要 5 个周期,之后每周期完成一条指令。总周期数为 5 + (100 − 1) = 104,每周期 2 ns,共约 208 ns。若按每周期一条粗算会得到 200 ns,忽略了流水线填充开销。

Question 13Computer Systems Fundamentals and Architecture

关于 RAID 5 与 RAID 1 的比较,下列说法正确的是哪一项?

  1. RAID 1 的写性能随磁盘数量线性提升
  2. RAID 5 至少需要两块磁盘即可构成
  3. RAID 1 通过奇偶校验实现单盘容错
  4. RAID 5 的磁盘空间利用率通常高于 RAID 1 Correct answer.

Explanation

RAID 5 采用分布式奇偶校验,只有相当于一块磁盘的容量用于校验,利用率高于完全镜像的 RAID 1。RAID 1 依靠镜像而非校验实现容错,至少需两块盘;RAID 5 至少需三块盘。镜像写通常需要写多份,不会随盘数线性提升。

Question 14Computer Systems Fundamentals and Architecture

在对称多处理(SMP)系统中,维持各处理器 Cache 一致性的核心要求是下列哪一项?

  1. 任一处理器对共享数据的写入最终对其他处理器可见 Correct answer.
  2. 每个处理器必须运行相同的用户进程
  3. 所有处理器必须共享同一个物理 Cache
  4. 处理器之间不得使用私有 Cache

Explanation

Cache 一致性协议要保证对同一地址的读写在各处理器看来顺序一致,即写入最终可见且不出现陈旧读。共享单一物理 Cache 或禁止私有 Cache 并非必要条件,运行相同进程也与一致性无关。监听或目录协议正是为实现该目标而设计。

Question 15Computer Systems Fundamentals and Architecture

某浮点数采用 1 位符号、8 位阶码(含偏移量 127)、23 位尾数的 IEEE 754 单精度格式。十进制数 −0.5 的阶码字段值应为多少?

  1. 127
  2. 128
  3. 126 Correct answer.
  4. 129

Explanation

−0.5 规格化后为 −1.0 × 2^(−1),真实阶码为 −1。加上偏移量 127 得到阶码字段值 126。符号位单独表示负号,不参与阶码计算。掌握偏移表示是浮点编码题的基本功。

Question 16Computer Systems Fundamentals and Architecture

下列哪一项最准确地描述了 CISC 中微程序控制器的特点?

  1. 微指令与机器指令一一对应且长度固定
  2. 每条机器指令由一段微指令序列解释执行 Correct answer.
  3. 控制器完全由组合逻辑门直接产生控制信号
  4. 只能用于 RISC 处理器的指令译码

Explanation

微程序控制器把机器指令的执行分解为若干微指令,存放在控制存储器中逐条取出执行,便于实现复杂指令且设计规整。硬布线控制才是由组合逻辑直接产生信号。微程序与机器指令是多对一关系,也不限于 RISC。

Question 17Computer Systems Fundamentals and Architecture

某程序 60% 的指令为算术逻辑运算、40% 为访存指令。若将算术逻辑指令的执行周期数减半而访存指令不变,按 CPI 加权计算,整体加速比最接近下列哪一项?

  1. 2.00
  2. 1.43 Correct answer.
  3. 1.18
  4. 1.67

Explanation

设原 CPI 为 1,则原平均 CPI = 0.6×1 + 0.4×1 = 1。改进后算术逻辑指令周期减半为 0.5,新 CPI = 0.6×0.5 + 0.4×1 = 0.7。加速比为 1 / 0.7 ≈ 1.43。该计算体现 Amdahl 定律对局部优化的限制。

Question 18Computer Systems Fundamentals and Architecture

在采用写回(write-back)策略的 Cache 中,被修改过的 Cache 行被替换时需要执行的操作是下列哪一项?

  1. 直接丢弃该行内容,无需任何写操作
  2. 立即向所有处理器广播无效信号
  3. 先将该行写回主存,再装入新块 Correct answer.
  4. 把该行内容复制到 TLB 中保存

Explanation

写回策略下,修改只发生在 Cache 中并置脏位,替换时必须先把脏行写回主存以保持一致性,再装入新块。直接丢弃会丢失修改;广播无效属于一致性协议动作;TLB 保存的是地址映射而非数据。

Question 19Computer Systems Fundamentals and Architecture

下列关于 I/O 端口编址方式中“统一编址”(内存映射 I/O)的描述,正确的是哪一项?

  1. 统一编址下访问 I/O 无需地址译码
  2. 统一编址要求每个外设拥有独立的地址总线
  3. I/O 端口拥有独立地址空间,必须使用专用 I/O 指令
  4. I/O 端口与内存共用同一地址空间,可用普通访存指令访问 Correct answer.

Explanation

内存映射 I/O 把设备寄存器映射到内存地址空间,处理器可用普通 load/store 指令访问,编程灵活但占用部分地址空间。独立编址才需要专用 I/O 指令。任何编址方式都需要地址译码来选中设备。

Question 20Computer Systems Fundamentals and Architecture

某系统采用 4 级流水线,因分支指令导致每 5 条指令中有 1 条产生 2 个周期的流水线停顿。忽略其他因素,该流水线的实际 CPI 约为多少?

  1. 1.4 Correct answer.
  2. 1.2
  3. 1.6
  4. 2.0

Explanation

分支指令占 1/5,每条分支带来 2 个停顿周期,平均每条指令的停顿为 0.2×2 = 0.4 周期。理想流水线 CPI 为 1,故实际 CPI ≈ 1.4。计算时要把停顿按指令比例分摊,而不是直接加到 CPI 上。

Question 21Computer Systems Fundamentals and Architecture

在指令流水线中,控制冒险(control hazard)产生的根本原因是下列哪一项?

  1. 相邻指令争用同一个功能部件
  2. 转移指令的目标地址在取指阶段尚未确定 Correct answer.
  3. 寄存器堆读写端口数量不足
  4. Cache 容量小于程序工作集

Explanation

控制冒险源于分支或跳转指令改变了指令流方向,而目标地址往往要到译码或执行阶段才能确定,导致后续取指可能取错。功能部件争用属于结构冒险,寄存器端口不足也是结构冒险,Cache 容量影响的是缺失率而非控制流。

Question 22Computer Systems Fundamentals and Architecture

关于磁盘调度算法,下列哪一项描述符合 SCAN(电梯)算法的行为?

  1. 按请求到达的先后顺序依次服务
  2. 随机选择队列中的请求以减少饥饿
  3. 磁头沿一个方向移动并服务沿途请求,到达端点后反向 Correct answer.
  4. 总是选择距离当前磁头位置最近的请求

Explanation

SCAN 算法让磁头像电梯一样单向扫描,服务途经的请求,到达磁盘端点后反向继续,兼顾吞吐与公平。最短寻道优先会选择最近请求,先来先服务按到达顺序,随机选择并非标准调度算法。

Question 23Computer Systems Fundamentals and Architecture

某系统采用 8 位数据总线,主存按字节编址。若一次突发传送连续读取 4 个 32 位字,至少需要多少个总线周期(不考虑等待周期)?

  1. 4 个
  2. 8 个
  3. 32 个
  4. 16 个 Correct answer.

Explanation

每个 32 位字需要 4 个字节,8 位总线每周期传送 1 字节,因此每个字需 4 个周期。4 个字共需 4×4 = 16 个总线周期。总线宽度决定了传送一个字所需的周期数,这是带宽估算的常用方法。

Question 24Computer Systems Fundamentals and Architecture

在存储层次设计中,采用多级页表的主要目的是下列哪一项?

  1. 提高 TLB 的命中率
  2. 减少页表本身占用的连续内存空间 Correct answer.
  3. 使虚拟地址空间小于物理地址空间
  4. 消除缺页中断的发生

Explanation

单级页表需要为整个虚拟地址空间连续存放页表项,开销巨大;多级页表按需分配各级页表,使未使用的地址区间不占内存。它并不直接提高 TLB 命中率,也不能消除缺页,虚拟空间通常大于物理空间。

Question 25Software Engineering and Development Methods

在结构化分析方法中,数据流图(DFD)用于描述系统的功能与数据流动。下列关于分层DFD的叙述中,正确的是哪一项?

  1. 父图与子图的平衡要求父图中某个加工的输入输出数据流与对应子图的输入输出数据流在数量和名称上一致 Correct answer.
  2. 数据流图中必须同时画出控制流,才能表达加工的执行顺序
  3. 分层DFD中每层都必须画出全部外部实体和数据存储以保证完整
  4. 子图可以自由增加父图中不存在的输入输出数据流,只要子图内部逻辑自洽

Explanation

父子图平衡是分层数据流图的基本一致性约束,即父图中某加工的输入输出数据流应与其展开的子图的输入输出数据流相对应,否则分层模型会产生语义矛盾。控制流属于状态转换图或控制流图的表达范围,数据流图只关心数据流动。

Question 26Software Engineering and Development Methods

某项目采用原型化方法开发,用户在试用可执行原型后频繁提出新需求,导致原型反复修改。为控制这一风险,最恰当的做法是?

  1. 禁止用户在原型阶段提出任何需求变更
  2. 把原型直接交付生产环境以缩短工期
  3. 在原型开发前明确原型的类型与目标,并约定原型是否作为最终产品保留 Correct answer.
  4. 取消原型,直接进入详细设计阶段以避免返工

Explanation

原型化方法的风险主要来自目标不清晰和需求蔓延,因此需要事先界定原型属于抛弃型还是演化型,并明确其用途与验收边界。直接取消原型会丧失需求澄清的价值,而禁止用户反馈则违背原型方法的本意。

Question 27Software Engineering and Development Methods

在软件能力成熟度模型集成(CMMI)中,已管理级(第2级)与已定义级(第3级)的关键区别在于?

  1. 第3级要求组织建立标准过程集,项目过程由组织标准过程裁剪而来 Correct answer.
  2. 第3级要求所有度量数据必须实时自动化采集
  3. 第3级取消了项目级的管理活动,只保留组织级活动
  4. 第2级要求过程必须量化管理并建立统计基线

Explanation

CMMI第3级强调组织级标准过程及其裁剪,使项目过程具有组织一致性;第2级只是在项目层面实现可管理。量化管理与统计基线属于第4级已量化管理级的特征。

Question 28Software Engineering and Development Methods

某团队采用Scrum,产品负责人希望在冲刺进行中插入一个高优先级需求。按照Scrum规则,最合适的处理方式是?

  1. 由产品负责人直接通知开发人员在新需求上投入部分工时
  2. 与开发团队协商后终止当前冲刺,重新规划冲刺并纳入新需求 Correct answer.
  3. 把新需求作为技术债记录,等所有冲刺结束后统一处理
  4. 由Scrum Master决定是否插入,开发团队无权参与讨论

Explanation

Scrum规定冲刺目标一旦确定应保持稳定,若确有必要变更范围,可由产品负责人与团队协商取消冲刺并重新计划,而不是在冲刺内随意插入工作。冲刺内的范围调整会破坏时间盒与可预测性。

Question 29Software Engineering and Development Methods

在敏捷估算中,故事点与理想人天的主要区别是?

  1. 故事点必须由产品负责人单独确定,理想人天由团队共同估算
  2. 故事点只能用于单个团队,理想人天可跨团队直接比较
  3. 故事点是相对度量,不随人员能力变化;理想人天是绝对时间度量 Correct answer.
  4. 故事点用于缺陷估算,理想人天用于需求估算

Explanation

故事点衡量相对规模,剔除了人员能力差异,便于团队内部持续估算与速率跟踪;理想人天带有绝对时间含义,易受个体能力影响。两者用途不同,但都不是跨团队可直接比较的绝对单位。

Question 30Software Engineering and Development Methods

关于演化模型中的增量模型,下列描述正确的是?

  1. 增量模型等同于瀑布模型,只是把阶段名称改了
  2. 增量模型要求所有增量完成后才能进行第一次集成测试
  3. 增量模型不允许在后续增量中调整需求优先级
  4. 每个增量交付一个可运行的产品子集,早期增量即可投入使用 Correct answer.

Explanation

增量模型把系统划分为若干增量,每个增量交付可运行的部分功能,用户可以尽早使用并反馈。这使得集成与测试随增量持续进行,且后续增量的优先级可依据反馈调整。

Question 31Software Engineering and Development Methods

在统一过程(RUP)中,先启阶段(Inception)结束时的主要里程碑是?

  1. 产品发布里程碑,完成全部测试与交付
  2. 构架基线里程碑,完成可执行构架原型
  3. 初始运作能力里程碑,完成首个可运行版本
  4. 生命周期目标里程碑,确认项目范围与可行性并形成初步用例模型 Correct answer.

Explanation

RUP先启阶段以生命周期目标里程碑结束,重点是确定愿景、范围、关键风险与可行性,产出初步用例模型和业务案例。构架基线属于精化阶段,初始运作能力属于构建阶段,产品发布属于移交阶段。

Question 32Software Engineering and Development Methods

某系统需要在不修改已有类的前提下为其增加日志记录与权限校验功能,且这些功能可动态组合。最适合采用的模式是?

  1. 工厂方法模式
  2. 单例模式
  3. 外观模式
  4. 装饰器模式 Correct answer.

Explanation

装饰器模式通过包装对象在运行时透明地叠加职责,且可任意组合,符合在不修改原有类的前提下扩展功能的要求。单例关注实例唯一性,工厂方法关注对象创建,外观关注简化子系统接口。

Question 33Software Engineering and Development Methods

在面向对象设计中,里氏替换原则(LSP)要求?

  1. 子类必须重写父类的全部方法
  2. 子类只能增加属性不能增加方法
  3. 子类型必须能够替换其基类型而不破坏程序的正确性 Correct answer.
  4. 父类不应包含任何具体实现

Explanation

里氏替换原则强调子类型在行为上应可替代基类型,调用方无需感知具体子类型即可正确工作。它约束的是行为契约的一致性,而不是方法重写数量或父类的抽象程度。

Question 34Software Engineering and Development Methods

某订单系统需要在运行时根据配置切换不同的支付渠道实现,且不希望客户端代码依赖具体渠道类。最合适的做法是?

  1. 让所有渠道类继承同一个具体基类并共享其内部状态
  2. 把渠道选择逻辑写入数据库触发器
  3. 定义支付接口,由各渠道实现,并通过工厂或依赖注入在运行时选择实现 Correct answer.
  4. 在客户端使用大量if-else直接实例化各渠道类

Explanation

面向接口编程配合工厂或依赖注入可以把实现选择推迟到运行时,并让客户端只依赖抽象,从而满足可替换与低耦合要求。直接在客户端实例化具体类会造成强耦合,新增渠道需修改客户端。

Question 35Software Engineering and Development Methods

关于软件架构中的管道-过滤器风格,下列叙述正确的是?

  1. 该风格不支持过滤器并发执行
  2. 该风格要求所有过滤器在同一进程中顺序调用
  3. 过滤器必须共享同一全局数据结构以保证一致性
  4. 过滤器之间相互独立,不共享状态,仅通过管道传递数据 Correct answer.

Explanation

管道-过滤器风格中每个过滤器是独立变换单元,彼此不共享状态,数据经管道单向流动,因此便于复用、替换与并发执行。共享全局数据结构是仓库风格的特征。

Question 36Software Engineering and Development Methods

某系统对可用性要求极高,架构师采用双机热备并配置心跳检测与自动切换。这一设计主要提升的质量属性是?

  1. 可修改性
  2. 易用性
  3. 可测试性
  4. 可用性 Correct answer.

Explanation

双机热备、心跳检测与故障自动切换属于典型的可用性战术,通过冗余与故障检测恢复来缩短不可用时间。可修改性关注变更成本,可测试性关注观察与控制能力,易用性关注用户操作效率。

Question 37Software Engineering and Development Methods

在软件复用中,白盒复用与黑盒复用的根本区别是?

  1. 白盒复用只能复用源代码,黑盒复用只能复用目标代码
  2. 白盒复用需要理解并可能修改构件内部实现,黑盒复用仅通过接口使用构件 Correct answer.
  3. 白盒复用不需要文档,黑盒复用必须有完整文档
  4. 白盒复用适用于商业构件,黑盒复用适用于自研构件

Explanation

白盒复用的本质是对构件内部可见并可能加以调整,通常用于源码级复用;黑盒复用把构件视为不可见的整体,仅依赖其接口契约。两者的区别在于对内部实现的可见性与可修改性,而非代码形态或来源。

Question 38Software Engineering and Development Methods

某遗留系统需要逐步替换为微服务架构,团队采用绞杀者模式(Strangler Fig)。该模式的关键特征是?

  1. 通过数据库复制让新旧系统双写同一张表
  2. 在新旧系统外围建立门面,逐步把功能迁移到新系统,最终停用旧系统 Correct answer.
  3. 保留旧系统永久运行,新系统仅做只读镜像
  4. 一次性重写全部功能后整体切换

Explanation

绞杀者模式通过门面把请求逐步引流到新实现,旧功能被逐块替换直至可下线,从而降低整体切换风险。一次性重写和永久并行都不属于该模式的核心思想。

Question 39Software Engineering and Development Methods

在DevOps实践中,持续集成与持续交付(CI/CD)流水线的核心价值是?

  1. 用人工审批替代自动化测试以保证质量
  2. 要求每个功能分支长期存在以隔离变更
  3. 把所有环境合并为单一生产环境以简化配置
  4. 通过自动化构建、测试与部署缩短反馈周期并降低发布风险 Correct answer.

Explanation

CI/CD通过自动化流水线把集成、测试与部署串联起来,使问题尽早暴露、发布更频繁且可回滚,从而缩短反馈周期并降低风险。人工审批替代测试或长期分支都会削弱持续集成的效果。

Question 40Software Engineering and Development Methods

某团队采用测试驱动开发(TDD),其典型的红-绿-重构循环顺序是?

  1. 先重构,再编写测试,最后编写生产代码
  2. 先编写完整生产代码,再补测试,最后重构
  3. 先编写测试并使其通过,再删除测试,最后编写生产代码
  4. 先编写失败的测试,再编写刚好使测试通过的生产代码,最后重构 Correct answer.

Explanation

TDD的红-绿-重构循环要求先写一个失败的测试明确期望,再写最小实现使其通过,最后在测试保护下重构。先写生产代码再补测试属于测试后行,不是TDD。

Question 41Software Engineering and Development Methods

在软件配置管理中,基线(baseline)的作用是?

  1. 作为开发人员本地的工作副本,可随时覆盖
  2. 作为已批准并受控的配置项集合,后续变更须经变更控制流程 Correct answer.
  3. 作为代码仓库的备份,不参与变更管理
  4. 作为测试环境的快照,仅用于性能对比

Explanation

基线是经过评审批准、作为后续开发与变更参照的配置项集合,一旦建立其修改必须走变更控制流程,从而保证可追溯性与稳定性。本地副本、环境快照或普通备份都不具备基线的受控语义。

Question 42Software Engineering and Development Methods

某项目采用COCOMO II估算工作量,模型中的规模度量主要使用?

  1. 需求文档页数
  2. 源代码行数或功能点折算的未调整规模 Correct answer.
  3. 测试用例数量
  4. 团队人数乘以项目月数

Explanation

COCOMO II以规模为主要输入,早期设计阶段可用功能点或对象点,后体系结构阶段用源代码行数,再通过成本驱动因子调整。人数与工期是估算结果而非输入,文档页数和用例数不是模型规模度量。

Question 43Software Engineering and Development Methods

在需求工程中,用例图中的«include»与«extend»关系的区别是?

  1. «include»用于可选行为,«extend»用于必经行为
  2. 两者都表示继承关系,可互换使用
  3. «include»只能连接参与者与用例,«extend»只能连接两个参与者
  4. «include»表示被包含用例是基用例执行的必经部分,«extend»表示在特定条件下对基用例的可选扩展 Correct answer.

Explanation

«include»把公共必经行为抽取为被包含用例,基用例执行时一定会调用它;«extend»描述在满足扩展条件时才插入的可选行为,扩展用例指向基用例。二者语义相反,不能互换。

Question 44Software Engineering and Development Methods

某团队在需求评审中发现大量需求描述含糊且不可验证。为改善这一状况,最有效的措施是?

  1. 由开发人员单方面决定需求含义
  2. 增加需求文档的篇幅以覆盖更多细节
  3. 建立需求质量检查单,要求需求具备可验证的验收标准并开展同行评审 Correct answer.
  4. 把需求评审推迟到编码阶段进行

Explanation

需求质量问题的根源常在于缺乏可验证性与评审标准,因此应建立检查单、明确验收标准并坚持同行评审,使模糊描述在早期暴露。增加篇幅或推迟评审都不能提升需求的清晰度与可验证性。

Question 45Software Engineering and Development Methods

在软件维护分类中,为适应外部运行环境变化(如操作系统升级)而修改软件属于?

  1. 纠正性维护
  2. 完善性维护
  3. 预防性维护
  4. 适应性维护 Correct answer.

Explanation

适应性维护是为使软件适应变化的外部环境(硬件、操作系统、数据格式等)而进行的修改。纠正性维护针对已发现的缺陷,完善性维护针对新增功能或性能改进,预防性维护针对未来可能的问题。

Question 46Software Engineering and Development Methods

关于形式化方法在软件开发中的应用,下列叙述正确的是?

  1. 形式化方法只适用于用户界面密集的系统
  2. 形式化方法可以完全取代测试,因此无需再设计测试用例
  3. 形式化方法要求项目放弃需求变更管理
  4. 形式化方法用数学符号描述系统规约并支持推理验证,适用于安全关键系统的关键部分 Correct answer.

Explanation

形式化方法以严格数学语义描述规约,可进行一致性检查与性质证明,常用于安全关键系统的核心逻辑。但它不能完全替代测试,且成本较高,通常选择性地应用于关键部分。

Question 47Software Engineering and Development Methods

某系统采用微服务架构,服务间通过同步调用串联多个下游服务,高峰期出现级联故障。从架构设计角度,最有效的组合措施是?

  1. 增加更多同步重试次数以提升成功率
  2. 把所有服务合并为单体以彻底消除调用
  3. 提高下游服务的线程池上限而不设上限
  4. 引入熔断、超时与舱壁隔离,并对非关键调用降级 Correct answer.

Explanation

级联故障源于故障沿同步调用链传播,熔断可快速失败、超时限制阻塞、舱壁隔离限制资源扩散,降级则保证核心功能可用。盲目重试会放大流量,无上限扩容会加剧资源竞争。

Question 48Software Engineering and Development Methods

某团队采用看板方法管理运维工作,发现工作在制品(WIP)数量持续偏高且周期时间变长。根据看板理论,最合理的干预是?

  1. 取消所有列的WIP限制以提高吞吐
  2. 增加更多人员并行处理所有在制品
  3. 把周期时间作为唯一度量并忽略流动效率
  4. 为各列设置WIP上限,限制同时进行的工作数量以缩短周期时间 Correct answer.

Explanation

利特尔法则表明在制品数量与周期时间正相关,设置WIP上限可以限制并行工作、暴露瓶颈并缩短周期时间。无限制并行会增加切换成本与排队,反而降低流动效率。

Question 49Software Engineering and Development Methods

在领域驱动设计(DDD)中,限界上下文(Bounded Context)与聚合(Aggregate)的关系是?

  1. 限界上下文必须与一个聚合一一对应
  2. 聚合用于划分团队,限界上下文用于划分数据库表
  3. 聚合是跨限界上下文的全局事务单元
  4. 限界上下文是模型边界,聚合是其内部保证一致性的最小事务边界 Correct answer.

Explanation

限界上下文界定某个领域模型适用的边界,聚合则位于上下文内部,用于维护业务不变式并作为事务一致性的边界。跨上下文的一致性通常通过领域事件等方式最终一致,而非一个大聚合。

Question 50Software Engineering and Development Methods

在螺旋模型中,每一个螺旋周期都从确定本阶段目标、可选方案和约束条件开始,随后进行风险分析与原型验证。该模型最本质的特征是?

  1. 以代码驱动为核心,强调尽早编写可运行代码
  2. 以合同驱动为核心,按固定价格逐阶段验收
  3. 以文档驱动为核心,每阶段必须交付完整的规格说明书
  4. 以风险驱动为核心,将原型验证嵌入每一轮迭代 Correct answer.

Explanation

螺旋模型由Boehm提出,把瀑布模型的系统性与原型模型的迭代性结合,每一圈都显式进行风险识别、风险分析和原型验证,风险大小决定迭代是否继续。因此它适用于大型、高风险项目,其驱动因素是风险而非文档或代码。