软件质量管理-期末
1. 过程线
1.1. 概念
[[01-软件质量管理概述]]
- 管理是什么?
- 复现别人的成功
- 管理的三要素
- 目标:典型三大目标,成本、质量、工期
- 状态:在接近目标还是远离目标
- 纠偏
- 管理的软件工程视角:成功是否可以复制?
- 软件过程:为了实现一个或多个事先定义的目标而建立起来的一组实践的集合。这组实践之间往往有一定的先后顺序,作为一个整体来实现事先定义的一个或多个目标。
- 生命周期模型:对软件过程的一种人为划分
- 软件过程vs软件生命周期模型
- 迭代式
- ![[02-历史与演变#5.2.1. 迭代式开发]]
- 瀑布模型
- ![[02-历史与演变#4.2.1. 瀑布模型]]
- 迭代式
1.2. 软件过程管理
PDCA和IDEAL:元模型
- ![[02-历史与演变#PDCA模型]]
- ![[02-历史与演变#IDEAL模型]]
CMM/CMMI
- ![[02-历史与演变#4.2.2. 成熟度模型]]
1.3. 软件工程演变的历史视角
[[02-历史与演变]]
- 软件危机和软件工程
- 三大阶段
- 敏捷宣言
- ![[02-历史与演变#5.2.2. 敏捷开发]]
- 驱动力:本质难题
2. 项目管理线
2.1. 概念
三大目标:成本、时间、质量
2.2. 团队动力学
[[03-团队动力学]]
- 知识工作的特点
- 知识工作管理:不能被管理,而是自管理
- 领导者和特点
- 不同激励方式
- 马斯洛需求层次理论
- 期望理论
- 自主团队
- 内外部环境
- TSP角色和职责
- ![[03-团队动力学#2.2.3. 典型的TSP角色和职责]]
- TSP启动过程
- ![[03-团队动力学#2.2.2. 启动会议/九次会议]]
- SCRUM角色和职责
- ![[03-团队动力学#2.3. SCRUM团队]]]
2.3. 估算和计划
- 估算要点
- 估算目的是什么:团队达成一致
- 抽象、相对的估算
- PROBE估算方法,相对大小矩阵
- ![[04-估算、计划和跟踪#1.3. PROBE估算方法]]
- SCRUM故事点
- ![[04-估算、计划和跟踪#1.4. SCRUM中的Story point]]
- 通用计划框架:正推
- ![[04-估算、计划和跟踪#2.3. 通用计划框架]]
- 各类计划
- 质量管理
- 风险
- 定量管理计划:自顶向下
- 过程模型
- 过程能力基线
- 过程组合
- 关键子过程性能目标
- 整体过程性能目标
![[08-定量管理与仿真建模]]
2.4. 跟踪
- 挣值管理:相对保守,完成才能拿到
- 简单,中级和高级
- 变形:燃尽图
- 为何适应软件项目
- 定量管理的跟踪:自底向上
- 关键子过程性能控制
2.4.1. 挣值管理
![[04-估算、计划和跟踪#2.6. 挣值管理方法]]
2.4.2. 定量管理跟踪
关键子过程性能控制
3. 质量管理线
3.1. 概念
- 关键质量管理的挑战:从管理三要素看,质量管理很困难
- 面向用户的质量观
- ![[05-质量管理#1.2. 面向用户的质量观]]
- 质量管理策略和背后逻辑
- ![[05-质量管理#1.3. PSP质量策略]]
3.2. 评审
- 个人评审
- 关键控制因素
- 时机选择
- 小组
- 过程质量控制方式
3.3. 质量评审指标
- Yield
- A/FR
- PQI
- DRL
- 特点和用途
![[05-质量管理#1.5. 质量指标]]
3.4. 质量路线图
- Journey:顺序:
- ![[05-质量管理#1.6. 质量路径]]
- 设计:
- 模板:要哪些信息
- ![[05-质量管理#2.4. PSP设计模板]]
- 设计的层次
- 模板:要哪些信息
- 设计评审 [[05-质量管理#2.6. 设计验证方法]]
- 状态机:检查状态机的完整性和正交性
- 符号化执行:用符号替换关键的变量,带入伪码程序,分析行为
- 优点:
- 实施简单,可以给出一般化结果
- 适合不复杂的算法,特别是遗漏系统改造中,应用这种方法世界和理解原有的设计
- 缺点:
- 不适合复杂逻辑的场景
- 纯手工验证容易出错
- 优点:
- 执行表
- 优点:实施简单;结果可靠,可用于验证复杂逻辑
- 缺点:每次只能验证一个用例;手工验证比较耗时,容易引入错误
- 跟踪表
- 使用符号或以及用例识别等方式对程序进行一般化验证,是对执行表的补充,一次可以验证多个样例
- 正确性证明
- 将伪码当作数学定理,用形式化方法加以推理和验证
4. 工程技术线
4.1. 需求
客户需求
产品需求
![[06-团队工程开发#1.2. 需求分类]]
产品经理
4.2. 设计
- 自顶向下
- 自顶向下,逐层精化,有利于建立系统的整体观;利于评审
- 考虑点
- 团队智慧的运用
- 设计标准
- Design for reuse
- 可测试性支持
- 可用性支持
- ![[06-团队工程开发#2.2. 设计考虑点]]
4.3. 实现
- 考虑点
- 为了实现评审
- 复用,自底向上实现
- 可测试性考虑
![[06-团队工程开发#2.3. 实现策略]]
4.4. 基础
- 覆盖范围
- 基本策略:每一种策略的优缺点、
- 大爆炸
- 逐一添加
- 集族式
- 扁平化
![[06-团队工程开发#3. 集成的策略选择]]
4.5. V&V
- 概念和区别
- verification验证:产品需求
- 检验获得的产品和产品组件能不能满足各自事先定义好的需求规格
- validtion确认:客户需求
- 确保产品可以满足客户需求以及实际操作场景的要求
- verification验证:产品需求
![[06-团队工程开发#4. 验证和确认(V & V)]]
5. 其他
5.1. 配置管理
配置项
基线
![[07-项目支持活动#1.1. 配置管理介绍]]
5.2. 度量和分析
GQM度量体系
![[07-项目支持活动#2.2. GQM方法]]
5.3. 决策分析与解决方案
招投标
![[07-项目支持活动#3. 决策分析]]
5.4. 根因分析与解决方案
2-8发展,用来选择问题,选出分析项
鱼骨图,归因
![[07-项目支持活动#4. 根因分析与解决方案]]
6. 往年题
2022软件质量与管理-考题复习_软件管理中的phase yield例题-CSDN博客
6.1. 软件项目管理和软件过程管理
- 软件项目管理是应用方法、工具、技术以及人员能力来完成软件项目,实现项目目标的过程
- 软件过程管理是为了让软件过程在开发效率、质量等方面有着更好性能绩效
6.2. 生命周期模型与软件过程的区别和联系
- 生命周期模型是对一个软件开发过程的人为划分
- 生命周期模型是软件开发过程的框架,是对软件开发过程的一种粗粒度划分
- 生命周期模型往往不包括技术实践
6.3. [2020]结合软件发展的三大阶段,描述不同阶段的典型软件开发方法和实践
- 软硬件一体化:线性顺序过程,实质上是硬件开发流程;measure twice, cut once;code anf fix
- 软件成为独立产品:结构化程序设计,瀑布模型,成熟度模型
- 网络化和服务化:迭代式开发,敏捷运动,开源软件开发,devops
6.4. [2018]软件项目管理和软件过程管理
- 软件项目管理是使用方法、工具、技术以及人员能力等完成软件项目,实现项目目标的过程
- 软件过程管理是为了让软件过程在开发效率、质量等方面有着更好的性能绩效
6.5. 生命周期模型与软件过程的区别和联系
- 软件生命周期模型是对软件过程的人为划分
- 生命周期模型是软件开发过程的框架,是对软件过程的一种粗粒度划分
- 生命周期模型往往不包含技术实践
6.6. 如何理解瀑布模型
- 瀑布模型不是单一模型,而是一些列模型,覆盖最简单的场景到最复杂的场景
- 软件项目应该结合实际情况选择合适过程元素的瀑布模型,基本原则是,项目面临的困难越多选择的模型越复杂
- 软件项目团队往往低估挑战,选择过于简单而不适应的瀑布模型
6.7. Schedule plan
- Task Order
- Schedule Hour
- Task List
- Task hour for each task
不包含Task Size
6.8. 谈谈你对项目估算的认识,并简要解释应用 PROBE 方法估算的优缺点
- 对估算的认识:
- 规模估算往往可以根据历史数据来完成,其原因在于规模估算结果的偏差产生原因相对客观,历史数据偏差可以用以修正新的估算结果
- 时间估算的偏差产生原因更加复杂,一方面和规模有关,另一方面和人的主观能动性有关,因此,时间估算偏差的原因可能在于估算结果本身,这是的历史数据中的时间偏差参考价值不大
- 估算本身是一种猜测,追求的目标应该是一致性以及估算结果的使用者对估算结果的信心
- PROBE优缺点:
- PROBE估算方法通过定义的估算过程和数据收集以及使用框架,使得估算结果可以尽可能一致,从而使得一些统计方法可以用来调整估算结果,增强用户对估算结果的信心
- 但是这种估算方法非常依赖高质量的历史数据,一旦数据不完整或缺失,就可能导致估算结果有显著的偏差
6.9. PROBE方法估算时间的时候,为什么不使用历史数据中的生产效率数据?
在估算资源(如人时)时候,生产效率一般在分母上,考虑到个体软件工程师生产效率的波动,易导致估算的偏差范围变大。
6.10. 请结合软件开发的特点介绍软件项目管理中自主型团队的必要性以及自主团队应该具备的特征?
- 软件开发是一项非常复杂又具有创造力的知识工作。
- 软件开发是一种智力活动,开发者是智力劳动者,对智力劳动者不能被管理,只能自我管理。
- 处理和讨论非常抽象的概念
- 把不同部分整合成一个可以工作的正确的系统
- 全身心地参与
- 努力做出卓越的工作
- 自主团队的特点
- 自行定义项目的目标
- 自行决定团队组成形式和成员角色
- 自行决定项目的开发策略
- 自行定义项目的开发过程
- 自行制定项目的开发计划
- 自行度量、管理和控制项目工作
6.11. 知识工作者的领导的特点
- 善于倾听团队成员的想法,并加以分析和改进
- 善于通过询问诱导团队成员向着正确的方向前进
- 善于通过激励以及设定挑战目标等方式吸引团队成员努力表现
- 当出现不一致的意见时,领导者善于提供各种沟通方式,促使团队达成一致意见
- 培养团队成员技能
- 鼓励建立合理的授权机制
- 通过挑战建立目标,确定团队努力方向
- 标题: 软件质量管理-期末
- 作者: Charlie
- 创建于 : 2024-06-11 11:06:00
- 更新于 : 2024-07-05 12:55:04
- 链接: https://chillcharlie357.github.io/posts/ac2f1649/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论