跳转至

2018年《软件过程与管理》试题 解答与解析

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

一、简答题

1. 软件发展三大阶段的特点和主流开发方法

点击查看答案与解析

解答

软硬件一体化

  • 特点:软件支持硬件完成计算任务、功能单一、复杂度有限、几乎不需要需求变更
  • 主流开发方法:三思而后行(Measure twice, cut once);Code and Fix(编码+改错)

软件成为独立的产品

  • 特点:摆脱了硬件的束缚(操作系统)、功能强大、个人电脑出现、需求多变、兼容性要求、来自市场的压力
  • 主流开发方法:形式化方法、结构化程序设计和瀑布模型

网络化和服务化

  • 特点:功能更复杂、规模更大、用户数量急剧增加、快速演化和需求不确定、分发方式的变化、进一步的服务化和网络化、盛行开源和共享文化
  • 主流开发方法:迭代式开发、敏捷开发(XP、Scrum、Kanban)、开源软件开发方式、DevOps

知识点出处assets/slides/软件质量与管理.第二讲.pdf——软件发展三大阶段。

2. 软件项目管理和软件过程管理

点击查看答案与解析

解答

  • 软件项目管理:是应用方法、工具、技术以及人员能力来完成软件项目,实现项目目标的过程。关注当前项目的成本、质量和工期。
  • 软件过程管理:是为了让软件过程在开发效率、质量等方面有着更好性能绩效。关注组织或团队的软件过程能力,使过程在效率、质量、可预测性等方面持续改进。

类比:项目管理像产品生产管理,过程管理像流水线的设计、维护和升级。二者相关但不等同。

知识点出处assets/slides/软件质量与管理.第二讲.pdf——软件项目管理与过程管理。

3. 生命周期模型与软件过程的区别和联系

点击查看答案与解析

解答

  1. 生命周期模型是对一个软件开发过程的人为划分
  2. 生命周期模型是软件开发过程的框架,是对软件开发过程的一种粗粒度划分
  3. 生命周期模型往往不包括技术实践

联系:生命周期模型为软件过程提供框架;软件过程在周期模型内填充具体实践。

知识点出处assets/slides/软件质量与管理.第二讲.pdf

4. 请描述一下PROBE方法的基本原理和过程,并解释在应用PROBE A方法估算时间的时候,为什么不用历史数据中的生产效率数据

点击查看答案与解析

解答

基本原理

  • 设立合理的代理作为精确度量和早期规划需要的度量之间的桥梁
  • 关注相对大小,而非绝对大小
  • 依赖高质量的历史数据和一致过程

过程

概要设计 → 代理识别和代理规模(E) → 估算并调整程序规模 → 计算预测区间
                                  → 估算并调整资源 → 计算预测区间

为什么不使用生产效率数据:在估算资源需求(例如人时)的时候,生产效率一般在分母上。考虑到个体软件工程师生产效率波动较大,容易导致估算偏差范围变大。时间估算偏差的原因可能正是估算结果本身(自我实现的预言),使得历史数据中时间偏差的参考价值不大。

知识点出处assets/slides/软件质量与管理.第四讲.pdf——PROBE方法。

5. 谈谈你对项目估算的认识,并简要解释应用PROBE方法估算的优缺点

点击查看答案与解析

解答

对项目估算的认识

  • 规模估算往往可以依据历史数据来完成,偏差产生原因相对客观,偏差可以用来修正新的估算结果
  • 时间估算的偏差产生原因更加复杂,一方面和规模有关,另外一方面跟人的主观能动性有关
  • 估算本质上是一种猜测,追求的目标应该是一致性以及估算结果的使用者对估算结果的信心

PROBE方法的优点

  • 通过定义的估算过程和数据收集以及使用的框架,使得估算结果可以尽可能一致
  • 使得一些统计方法可以用来调整估算结果,增强用户对估算结果的信心

PROBE方法的缺点

  • 非常依赖高质量的历史数据
  • 一旦数据不完整或者缺失,就可能导致估算结果有显著偏差

知识点出处assets/slides/软件质量与管理.第四讲.pdf——PROBE估算方法。

6. 请解释A/FR,PQI的计算方式,并且解释这两个指标有什么用途

点击查看答案与解析

解答

A/FR(Appraisal to Failure Ratio,质检失效比)

  • A/FR = PSP质检成本 / PSP失效成本
  • 质检成本 = 设计评审时间 + 代码评审时间
  • 失效成本 = 编译时间 + 单元测试时间
  • 用途:理论上A/FR值越大,质量越高;但A/FR值过大说明评审过多,开发效率低下。PSP中A/FR期望值为2.0

PQI(Process Quality Index,过程质量指标)

  • PQI为5个数据乘积(以基准值作为1,最后结果越接近1,质量越高):
  • 设计质量:设计时间应该大于编码时间 — min(设计时间/编码时间, 1)
  • 设计评审质量:设计评审时间应大于设计时间的50% — min(2×设计评审时间/设计时间, 1)
  • 代码评审质量:代码评审时间应大于编码时间的50% — min(2×代码评审时间/编码时间, 1)
  • 代码质量:编译缺陷密度应当小于10个/千行 — min(编译缺陷密度+10)/20, 1)
  • 程序质量:单元测试缺陷密度应当小于5个/千行 — min(单元测试缺陷密度+5)/10, 1)

PQI的用途

  • 判断模块开发质量
  • 规划质量活动计划
  • 过程改进

知识点出处assets/slides/软件质量与管理.第五讲.pdf——A/FR和PQI指标。

7. DevOps的特点,为什么流行?

点击查看答案与解析

解答

DevOps以敏捷项目管理技术和微服务支持为中心,通过基于版本控制标准的自动化来处理整个软件开发生命周期。

DevOps的好处(流行原因)

  • 敏捷团队项目管理:增强网站和移动应用软件开发的管理
  • 软件开发过程的优化:通过CI/CD功能实现,快速推出新的软件功能
  • 促进协作:Git允许开发人员在具有订单项回滚能力的团队中进行协作
  • 通过自动化提高效率:CI/CD通过企业编程工具支持自动化代码测试

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

二、简述题

1. 请结合软件开发特点介绍软件项目管理中自主型团队的必要性

点击查看答案与解析

解答

软件开发是一种智力活动,开发者是智力劳动者,而对于智力劳动者而言,管理的第一准则就是智力劳动者不能被管理,只能实现自我管理:

  • 处理和讨论非常抽象的概念
  • 把不同的部分整合成一个可以工作的正确的系统
  • 全身心地参与
  • 努力做出卓越的工作

因此,软件开发项目需要自主型团队,让知识工作者实现自我管理。

知识点出处assets/slides/软件质量与管理.第三讲.pdf——自主团队。

知识点分布总结

考查内容 对应课件
软件发展三大阶段 第二讲
软件项目管理 vs 过程管理 第二讲
生命周期模型 vs 软件过程 第二讲
PROBE估算方法 第四讲
A/FR, PQI指标 第五讲
DevOps 第七讲
自主团队必要性 第三讲