跳转至

2021年《软件质量与管理》试题 解答与解析

试题来源: 综合assets/exams/软件质量往年题目整理.pdfassets/exams/软件质量管理-习题-EagleBear.pdf中标有【2021Fall】或【2021】的题目整理。

一、选择题

1. 基于Yield指标构建缺陷预测模型,并列举该模型的可能改进方案

点击查看答案与解析

解答

总体思想:利用回归技术预测软件开发过程中各阶段的Inject Rate(缺陷注入率)和Yield(缺陷消除率)。

Yield指标只能用来估算,不可以用来度量。构建模型需要知道:

  • 注入阶段注入多少缺陷
  • 缺陷注入的密度(需求每一页注入多少缺陷)
  • 缺陷注入的速度(每小时注入多少缺陷)
  • 消除阶段的缺陷注入密度和速度
  • 历史数据中的软件规模、文档规模、开发人员规模

步骤

  1. 确定纳入影响因子的数据以及数据度量方法
  2. 从系统历史库中收集历史数据,并进行整理
  3. 依照回归技术进行计算
  4. 在项目进行过程中不断收集数据,与预测数据进行比较,调整回归参数
  5. 项目过程中依据实际数据与预测数据的误差进行风险的预防、识别和控制

改进方案

  • 维护历史数据,保证数据质量(简单性、可理解性、稳定性、可度量性、相关性)
  • 影响因子选择上不仅需要软件规模数据,还需要开发过程、文档、人员等方面的数据
  • 反馈模型:随着实际数据产生,将其作为输入变量调整回归参数
  • 重要改进:假设注入水平和消除水平都符合正态分布,计算均值和标准差,用蒙特卡罗方法模拟结果

知识点出处assets/slides/软件质量与管理.第五讲.pdf——Yield指标与缺陷预测模型。

2. 解释至少5个DevOps技术、实践、方法

点击查看答案与解析

解答

  1. 方法论基础:敏捷软件开发、精益思想以及看板Kanban方法
  2. 微服务架构:以领域驱动设计为指导的微服务架构方式
  3. 虚拟化技术:大量虚拟化技术的使用(如容器技术)
  4. XaaS理念:一切皆服务(X as a Service)的理念指导
  5. 工具链自动化:构建了强大的工具链,支持高水平自动化(CI/CD)

可遵循的DevOps最佳实践

  • 培养协作和无责沟通的文化
  • 采用持续集成和交付(CI/CD)
  • 设置自动化测试
  • 关注可观察性并找到正确的指标
  • 使用自动化避免手动工作
  • 在开发生命周期的早期加入安全性
  • 从事件中学习并围绕它们构建流程
  • 采用基础设施即代码(IaC)

知识点出处assets/slides/软件质量与管理.第七讲.pdf——DevOps。

3. 列出TSP角色并解释其中5个的职责

点击查看答案与解析

解答

角色 职责
项目组长 激励团队成员努力工作;主持项目周例会;每周汇报项目状态;分配工作任务;维护项目资料;组织项目总结
计划经理 开发完整的、准确的团队计划和个人计划;每周准确地报告项目小组状态;跟踪项目进度
开发经理 制定开发策略;开展产品规模估算和所需时间资源的估算;开发需求规格说明;开发高层设计;实现软件产品
质量经理 带领团队开发和跟踪质量计划;向项目组长警示质量问题;评审软件产品;组织小组评审
过程经理 带领团队定义和记录开发过程并支持过程改进;建立维护团队开发标准;记录维护项目会议记录
支持经理 识别开发过程中所需各类工具和设施;主持配置管理委员会;维护风险和问题跟踪系统;支持复用策略
开发人员 执行具体的开发任务

知识点出处assets/slides/软件质量与管理.第三讲.pdf——TSP团队角色与职责。

二、简答题

1. 我们如何理解瀑布模型(6分)

点击查看答案与解析

解答

  1. 瀑布模型不是单一模型,是一系列模型,覆盖最简单场景(过程元素少)到最复杂的场景(过程元素多)
  2. 软件项目应该结合实际情况选择合适过程元素的瀑布模型,基本原则是,项目面临困难和挑战越多,选择的模型应该越复杂
  3. 软件项目团队往往低估项目的挑战,选择了过于简单的不适用的瀑布模型(这是瀑布模型实践中失败的最常见原因)

知识点出处assets/slides/软件质量与管理.第二讲.pdf——瀑布模型的理解。常见失败原因是低估项目挑战,选择过于简单的瀑布模型,而非"瀑布模型天然无效"。

2. 给一个挣值管理的表格,项目进度提前还是落后?有可能出现什么风险?

点击查看答案与解析

解答

分析挣值管理表格的核心指标:

  • SV(Schedule Variance)= EV − PV:正值表示进度超前,负值表示进度落后
  • SPI(Schedule Performance Index)= EV / PV:>1表示进度超前,<1表示进度落后
  • CV(Cost Variance)= EV − AC:正值表示成本节约,负值表示成本超支
  • CPI(Cost Performance Index)= EV / AC:>1表示成本节约,<1表示成本超支

课上讲的具体例子分析

  • 通过To-date看,Earned Value to date中Actual > Plan,说明迄今为止进度没有落后
  • 但是,hours to date总共花的时间大于预期,每个小时预期创造0.3个价值,实际上每小时创造0.28个价值,说明实际工作效率不如预期
  • 结论:在下周或过几周,项目进度可能会逐渐落后,项目开发有隐患

知识点出处assets/slides/软件质量与管理.第四讲.pdf——EVM数据分析和风险识别。

3. 设计一个Yield预测模型。描述如何建模;需要哪些数据,有什么要求;用什么方法构建模型并预测?

点击查看答案与解析

解答

参见上面"基于Yield指标构建缺陷预测模型"的完整解答。

关键数据要求

  • 注入阶段缺陷数量
  • 缺陷注入的密度(需求每页注入多少缺陷)
  • 缺陷注入的速度(每小时注入多少缺陷)
  • 消除阶段的缺陷注入密度和速度
  • 历史数据中的软件规模、文档规模、开发人员规模

构建方法:回归分析;蒙特卡罗模拟(改进方案)。

知识点出处assets/slides/软件质量与管理.第五讲.pdf——Yield缺陷预测模型。

三、判断题

过程改进模型可不可以作为评价公司能力的标准?比如某公司宣称自己达到了CMMI 5级,开发能力比谷歌强,你认为合理吗?

点击查看答案与解析

解答:不合理。

理由

  1. CMMI不是过程优劣的标准,也不适合用作公司之间的能力比较
  2. 它是每个公司自我反思改进的依据
  3. 由于企业所处环境以及业务目标等的差异,过程改进模型对不同企业的含义不同
  4. 例如:银行对数据一致性、可靠性有很高要求,开发模型侧重测试、原型等;而嵌入式公司更关注性能
  5. 成熟度等级不应该脱离企业环境直接横向比较;处于相同的成熟度等级,也不能说明这些企业的研发能力是相同的

知识点出处assets/slides/软件质量与管理.第七讲.pdf——CMMI的应用场景和局限性。

知识点分布总结

考查内容 对应课件
Yield缺陷预测模型 第五讲
DevOps技术实践 第七讲
TSP角色与职责 第三讲
瀑布模型理解 第二讲
EVM数据分析 第四讲
CMMI应用 第七讲