2020年《软件质量与管理》期中试题 解答与解析¶
试题来源: 综合
assets/exams/软件质量往年题目整理.pdf、assets/exams/软件质量管理-习题-EagleBear.pdf、assets/exams/软质管古老往年卷.pdf中标有【2020-mid】的题目整理。本次为2020年秋季学期期中考试。
一、选择题¶
1. 关于Brooks提及的软件开发本质难题,下列说法中不准确的是¶
A. 本质难题总共有四个,分别为复杂、不可见、可变和质量挑战 B. 既然是本质难题,那就说明是根植于软件开发本身,因而是不可能在软件开发当中得到缓解 C. 严格来说,只有不可见才是真正的"本质"难题,其他三个因项目而异 D. 四大本质难题贯穿软件发展的不同历史阶段,但是在不同历史阶段,相互凸显程度不一样
点击查看答案与解析
答案:A、B
知识点出处:
assets/slides/软件质量与管理.第二讲.pdf——质量挑战不是Brooks四大本质困难之一(A错);本质困难可以缓解,但不可消除(B错)。
2. 下列软件应用和开发的典型特征中属于软硬件一体化阶段的是¶
A. 可以通过引入操作系统,摆脱了硬件束缚 B. 几乎不需要考虑需求变更 C. 缺乏科班的软件工程师 D. 系统兼容对应软件开发的成败非常关键
点击查看答案与解析
答案:B、C
知识点出处:
assets/slides/软件质量与管理.第二讲.pdf——软硬件一体化阶段特征:软件支持硬件、几乎不需需求变更、团队以硬件工程师和数学家为主(缺乏科班软件工程师)。A属于软件成为独立产品的特征;D属于软件成为独立产品的特征。
3. 下列名词和术语中不属于软件过程的有哪些¶
A. SCRUM B. CMM/CMMI C. GATE方法 D. IDEAL
点击查看答案与解析
答案:B、D
知识点出处:
assets/slides/软件质量与管理.第二讲.pdf——CMM/CMMI是过程管理和改进模型,IDEAL是过程改进参考模型,两者不属于软件过程本身。SCRUM和GATE方法是软件过程/开发方法。
4. 下列哪些项不属于管理活动应该包含的要素¶
A. 成本 B. 质量 C. 目标 D. 工期
点击查看答案与解析
答案:A、B、D
知识点出处:
assets/slides/软件质量与管理.第四讲.pdf——管理活动的要素是:目标、状态、纠偏。三大典型管理目标是成本、质量、工期,但它们本身不是管理活动的要素。
5. 完成一份完整的项目日程计划,需要下列哪些信息¶
A. 任务清单 B. 任务顺序 C. 质量要求 D. 人员资源水平
点击查看答案与解析
答案:A、B、D
知识点出处:
assets/slides/软件质量与管理.第四讲.pdf——通用计划框架中的日程计划需要任务清单、任务顺序和人员资源水平。
6. 在TSP的团队组建过程中,确定软件开发策略的是第几次会议¶
A. 第一次 B. 第二次 C. 第三次 D. 第四次
点击查看答案与解析
答案:C(第三次)
知识点出处:
assets/slides/软件质量与管理.第三讲.pdf——TSP团队组建过程:第一次会议确定目标,第三次会议确定开发策略。
7. 下列关于挣值管理方法的描述中错误的是¶
A. 这是一种可以用来跟踪项目预算消耗的方法 B. 这种方法高度依赖估算准确性 C. 这种方法可以支持质量管理 D. 这种方法可以用来跟踪项目进度
点击查看答案与解析
答案:C
知识点出处:
assets/slides/软件质量与管理.第四讲.pdf——EVM主要用于进度和成本管理,不直接支持质量管理。
8. 下列描述当中,属于过程经理的工作内容有哪些¶
A. 建立团队的开发标准 B. 主持项目周例会 C. 记录周例会的会议记录 D. 制定开发计划
点击查看答案与解析
答案:A、C
知识点出处:
assets/slides/软件质量与管理.第三讲.pdf——过程经理负责建立开发标准、记录会议记录等。主持周例会和制定开发计划属于项目组长和计划经理的职责。
9. 下列术语描述的技术或者方法是同类型的是¶
A. CMMI SPICE PDCA B. IDEAL XP SCRUM C. Cleanroom Gate TSP D. Waterfall SCRUM XP
点击查看答案与解析
答案:C、D
知识点出处:
assets/slides/软件质量与管理.第二讲.pdf——C都是软件过程;D都是软件实践/开发方法。A中SPICE是软件过程管理,PDCA是改进模型;B中IDEAL是改进模型。
二、简答题¶
1. 请结合软件发展的三大阶段,描述不同阶段的典型软件开发方法和实践¶
点击查看答案与解析
解答:
| 阶段 | 典型开发方法和实践 |
|---|---|
| 软硬件一体化 | 线性顺序过程、事实上是硬件开发流程;"Measure twice, cut once"理念;Code and Fix |
| 软件成为独立产品 | 结构化程序设计、瀑布生命周期模型、成熟度运动 |
| 网络化和服务化 | 迭代式开发、敏捷运动(XP、Scrum、Kanban)、DevOps |
知识点出处:
assets/slides/软件质量与管理.第二讲.pdf。
2. 请描述CMMI模型的5个等级的特征,并且解释为何CMMI模型不应该是敏捷方法的对立面¶
点击查看答案与解析
解答:
五个等级:Initial(原始级)→ Managed(已管理级)→ Defined(已定义级)→ Quantitatively Managed(定量管理级)→ Optimizing(优化级)
为何不应该是对立面:CMMI是过程管理/改进模型,刻画了软件组织从不成熟到成熟的路线图;大部分敏捷方法都是开发方法;两者是完全不同性质的事物,将两者对立是不合适的。
知识点出处:
assets/slides/软件质量与管理.第七讲.pdf——CMMI。
3. 请完整描述敏捷宣言¶
点击查看答案与解析
解答:
敏捷宣言四条核心价值观:
- 个体和互动 胜过 流程和工具
- 可以工作的软件 胜过 详尽的文档
- 客户合作 胜过 合同谈判
- 响应变化 胜过 遵循计划
也就是说,尽管右项有其价值,我们更重视左项的价值。
知识点出处:
assets/slides/软件质量与管理.第二讲.pdf、assets/slides/8敏捷概述.pdf。
4. 请简要描述按照通用计划框架,为了开发合理的项目计划,应该要做哪些估算?PROBE方法充当什么角色?¶
点击查看答案与解析
解答:

通用计划框架流程:定义需求 → 概要设计 → 规模估算 → 资源估算 → 日程计划 → 开发产品。
PROBE方法充当了虚线框内的角色,用来完成规模估算和资源估算。
在PROBE框架中:
- 规模估算:利用代理识别和规模历史数据进行
- 资源估算:利用生产效率历史数据进行
- 最终计算预测区间,生成日程计划
知识点出处:
assets/slides/软件质量与管理.第四讲.pdf——通用计划框架与PROBE方法。
5. 请描述一下PROBE方法的基本原理和过程¶
点击查看答案与解析
解答:
基本原理:
- 设立合理的代理作为精确度量和早期规划需要的度量之间的桥梁
- 关注相对大小,而非绝对大小
- 依赖高质量历史数据和一致过程
估算过程(流程图):
flowchart LR
A[概要设计] --> B[代理识别和<br>代理规模 E]
B --> C[估算并调整<br>程序规模]
B --> D[估算并调整<br>资源]
C --> E[计算预测区间]
D --> E
PROBE ABCD方法分级:
- A方法:有3组以上代理数据,满足严格的统计质量要求(r≥0.7, s≤0.05等)
- B方法:有3组以上计划程序规模与实际程序规模数据
- C方法:有历史数据,但不足3组
- D方法:没有历史数据,只能猜测
知识点出处:
assets/slides/软件质量与管理.第四讲.pdf——PROBE估算方法。
6. 使用PROBE方法估算时间的时候,为什么不使用历史数据中的生产效率数据?¶
点击查看答案与解析
解答:
在估算资源需求(例如人时)的时候,生产效率一般在分母上。考虑到个体软件工程师生产效率波动较大,如果将生产效率数据直接用于时间估算,容易导致估算偏差范围变大。
具体来说:
- 规模估算偏差相对客观,可以利用历史数据进行修正
- 时间估算偏差原因更复杂:一方面与规模有关,另一方面与人的主观能动性有关
- 时间估算偏差的原因可能正是估算结果本身(比如估算多少时间就按多少时间完成),使得历史数据中时间偏差的参考价值不大
知识点出处:
assets/slides/软件质量与管理.第四讲.pdf——PROBE方法中的估算策略。
7. 请描述PROBE ABCD方法在估算规模的时候,对历史数据的质量有什么要求?¶
点击查看答案与解析
解答:
| PROBE方法 | 数据要求 | 数据质量要求 |
|---|---|---|
| A | 3组或3组以上代理规模(E)与实际程序规模 | r≥0.7; s≤0.05; β0≤估算结果的25%; 0.5≤β1≤2 |
| B | 3组或3组以上计划程序规模与实际程序规模 | r≥0.7; s≤0.05; β0≤估算结果的25%; 0.5≤β1≤2 |
| C | 有历史数据 | 无特殊要求(按比例调整) |
| D | 没有历史数据 | 无(只能猜测) |
知识点出处:
assets/slides/软件质量与管理.第四讲.pdf——PROBE ABCD方法数据质量要求。
8. 生命周期模型与软件过程的区别和联系¶
点击查看答案与解析
解答:
- 生命周期模型是对一个软件开发过程的人为划分
- 生命周期模型是软件开发过程的框架,是对软件开发过程的一种粗粒度划分
- 生命周期模型往往不包括技术实践
联系:生命周期模型为软件过程提供框架和阶段性划分;软件过程在生命周期模型框架内填充具体的技术实践和管理实践。
区别:生命周期模型是框架(What),软件过程是具体实施(How)。
知识点出处:
assets/slides/软件质量与管理.第二讲.pdf。
9. 请结合软件开发的特点介绍软件项目管理中自主型团队的必要性以及自主团队应该具备的特征¶
点击查看答案与解析
解答:
软件开发特点:
- 软件开发是一项既复杂又富有创造性的知识工作
- 软件开发是一种智力劳动:处理和讨论极其抽象的概念;把不同的部分(不可见)整合成一个可以工作的系统
- 知识工作者必须实现自我管理
自主团队必要性: 管理知识工作的关键规则是:管理者无法管理知识工作者,知识工作者必须实现并且学会自我管理。这就要求:
- 必须全身心地参与工作
- 主观意愿上努力追求卓越
自主团队的特点:
- 自行定义项目的目标
- 自行决定团队组成形式以及成员的角色
- 自行决定项目的开发策略
- 自行定义项目的开发过程
- 自行制定项目的开发计划
- 自行度量、管理和控制项目工作
知识点出处:
assets/slides/软件质量与管理.第三讲.pdf——知识工作管理、自主团队。
10. 我们如何理解瀑布模型(6分)¶
点击查看答案与解析
解答:
- 瀑布模型不是单一模型,是一系列模型,覆盖最简单场景(过程元素少)到最复杂的场景(过程元素多)
- 软件项目应该结合实际情况选择合适过程元素的瀑布模型,基本原则是,项目面临困难和挑战越多,选择的模型应该越复杂
- 软件项目团队往往低估项目的挑战,选择了过于简单的不适用的瀑布模型
知识点出处:
assets/slides/软件质量与管理.第二讲.pdf。
知识点分布总结¶
| 考查内容 | 对应课件 |
|---|---|
| Brooks本质困难 | 第二讲 |
| 软件开发三大阶段 | 第二讲 |
| 软件过程 vs 过程改进模型 | 第二讲 |
| 管理活动要素 | 第四讲 |
| 项目日程计划要素 | 第四讲 |
| TSP团队组建 | 第三讲 |
| EVM挣值管理 | 第四讲 |
| CMMI成熟度模型 | 第七讲 |
| 敏捷宣言 | 第二讲/第八讲 |
| 通用计划框架与PROBE | 第四讲 |
| 瀑布模型理解 | 第二讲 |
| 自主团队 | 第三讲 |
| 生命周期模型 vs 软件过程 | 第二讲 |