2021年《软件质量与管理》试题 解答与解析¶
试题来源: 综合
assets/exams/软件质量往年题目整理.pdf、assets/exams/软件质量管理-习题-EagleBear.pdf中标有【2021Fall】或【2021】的题目整理。
一、选择题¶
1. 基于Yield指标构建缺陷预测模型,并列举该模型的可能改进方案¶
点击查看答案与解析
解答:
总体思想:利用回归技术预测软件开发过程中各阶段的Inject Rate(缺陷注入率)和Yield(缺陷消除率)。
Yield指标只能用来估算,不可以用来度量。构建模型需要知道:
- 注入阶段注入多少缺陷
- 缺陷注入的密度(需求每一页注入多少缺陷)
- 缺陷注入的速度(每小时注入多少缺陷)
- 消除阶段的缺陷注入密度和速度
- 历史数据中的软件规模、文档规模、开发人员规模
步骤:
- 确定纳入影响因子的数据以及数据度量方法
- 从系统历史库中收集历史数据,并进行整理
- 依照回归技术进行计算
- 在项目进行过程中不断收集数据,与预测数据进行比较,调整回归参数
- 项目过程中依据实际数据与预测数据的误差进行风险的预防、识别和控制
改进方案:
- 维护历史数据,保证数据质量(简单性、可理解性、稳定性、可度量性、相关性)
- 影响因子选择上不仅需要软件规模数据,还需要开发过程、文档、人员等方面的数据
- 反馈模型:随着实际数据产生,将其作为输入变量调整回归参数
- 重要改进:假设注入水平和消除水平都符合正态分布,计算均值和标准差,用蒙特卡罗方法模拟结果
知识点出处:
assets/slides/软件质量与管理.第五讲.pdf——Yield指标与缺陷预测模型。
2. 解释至少5个DevOps技术、实践、方法¶
点击查看答案与解析
解答:
- 方法论基础:敏捷软件开发、精益思想以及看板Kanban方法
- 微服务架构:以领域驱动设计为指导的微服务架构方式
- 虚拟化技术:大量虚拟化技术的使用(如容器技术)
- XaaS理念:一切皆服务(X as a Service)的理念指导
- 工具链自动化:构建了强大的工具链,支持高水平自动化(CI/CD)
可遵循的DevOps最佳实践:
- 培养协作和无责沟通的文化
- 采用持续集成和交付(CI/CD)
- 设置自动化测试
- 关注可观察性并找到正确的指标
- 使用自动化避免手动工作
- 在开发生命周期的早期加入安全性
- 从事件中学习并围绕它们构建流程
- 采用基础设施即代码(IaC)
知识点出处:
assets/slides/软件质量与管理.第七讲.pdf——DevOps。
3. 列出TSP角色并解释其中5个的职责¶
点击查看答案与解析
解答:
| 角色 | 职责 |
|---|---|
| 项目组长 | 激励团队成员努力工作;主持项目周例会;每周汇报项目状态;分配工作任务;维护项目资料;组织项目总结 |
| 计划经理 | 开发完整的、准确的团队计划和个人计划;每周准确地报告项目小组状态;跟踪项目进度 |
| 开发经理 | 制定开发策略;开展产品规模估算和所需时间资源的估算;开发需求规格说明;开发高层设计;实现软件产品 |
| 质量经理 | 带领团队开发和跟踪质量计划;向项目组长警示质量问题;评审软件产品;组织小组评审 |
| 过程经理 | 带领团队定义和记录开发过程并支持过程改进;建立维护团队开发标准;记录维护项目会议记录 |
| 支持经理 | 识别开发过程中所需各类工具和设施;主持配置管理委员会;维护风险和问题跟踪系统;支持复用策略 |
| 开发人员 | 执行具体的开发任务 |
知识点出处:
assets/slides/软件质量与管理.第三讲.pdf——TSP团队角色与职责。
二、简答题¶
1. 我们如何理解瀑布模型(6分)¶
点击查看答案与解析
解答:
- 瀑布模型不是单一模型,是一系列模型,覆盖最简单场景(过程元素少)到最复杂的场景(过程元素多)
- 软件项目应该结合实际情况选择合适过程元素的瀑布模型,基本原则是,项目面临困难和挑战越多,选择的模型应该越复杂
- 软件项目团队往往低估项目的挑战,选择了过于简单的不适用的瀑布模型(这是瀑布模型实践中失败的最常见原因)
知识点出处:
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级,开发能力比谷歌强,你认为合理吗?¶
点击查看答案与解析
解答:不合理。
理由:
- CMMI不是过程优劣的标准,也不适合用作公司之间的能力比较
- 它是每个公司自我反思改进的依据
- 由于企业所处环境以及业务目标等的差异,过程改进模型对不同企业的含义不同
- 例如:银行对数据一致性、可靠性有很高要求,开发模型侧重测试、原型等;而嵌入式公司更关注性能
- 成熟度等级不应该脱离企业环境直接横向比较;处于相同的成熟度等级,也不能说明这些企业的研发能力是相同的
知识点出处:
assets/slides/软件质量与管理.第七讲.pdf——CMMI的应用场景和局限性。
知识点分布总结¶
| 考查内容 | 对应课件 |
|---|---|
| Yield缺陷预测模型 | 第五讲 |
| DevOps技术实践 | 第七讲 |
| TSP角色与职责 | 第三讲 |
| 瀑布模型理解 | 第二讲 |
| EVM数据分析 | 第四讲 |
| CMMI应用 | 第七讲 |