个人软件过程改进课程笔记.docx
《个人软件过程改进课程笔记.docx》由会员分享,可在线阅读,更多相关《个人软件过程改进课程笔记.docx(12页珍藏版)》请在冰点文库上搜索。
个人软件过程改进课程笔记
(SPI:
softwareprocessimprovement)
参考教材:
Introductiontopersonalsoftwareprocessimprovement
Introductiontoteamsoftwareprocessimprovement
特点:
采集数据:
time时间defect缺陷
成绩:
期末60 (PSP英文)实践20
期中12 (TSP中文 四次课学完,第五次课期中考) 平时8
实验:
6811次课及之后
期末:
第九周 五一之后
L12018.3.6
Lecture1:
一 个体软件过程的定义 :
软件工程师的任务:
在预期的进度、费用下高质量地开发软件产品(3点)
PSP:
控制、管理和改进个人开发工作的自我改进过程
结构化框架:
开发表格、指南和规程
PSPi(I—>introduction)
时间管理—>计划过程
缺陷管理—>产品质量
二时间管理
1、时间管理的逻辑原理
·制定计划,按照计划去做
·跟踪现在时间使用情况
·检查时间与计划的准确性,写成文档与实际情况作比较
·检查存在的错误
2、了解时间使用情况
将数据保存在合适的地方
3、工程记事本
记录时间使用情况
·纪录作业、跟踪所承诺的工作、作课堂笔记
·工作实施方案的凭证
·保护知识产权
*编号 *终止日期 每一页编号,前两页作为目录
三时间跟踪
目标:
估算完成任务的时间以定义质量目标
单位:
分钟
工具:
标准的时间记录日志
时间记录日志:
Ccompleted Unit
数据来源工程记事本
**及时总结记录的时间数据
四阶段计划
1.定义:
•阶段计划 短时间的计划
•产品计划 基于活动的计划
二者互相包含
2.阶段计划:
工具:
周活动总结表 三个子表
数据来源于时间记录日志
0无意义不计入最大最小
作用:
获得每个活动的平均时间
参考之前的表格,制定下一周计划
新信息逐渐减少后,可使用月活动总结表
五产品计划 ——作为下一产品的计划
判断某项工作进展程度,还需多久完成
术语:
产品项目(产生唯一的产品)任务过程计划作业
基本产品计划:
(实际项目计划可能更多)
规模估计
项目时间
项目进度计划
制定小任务的计划
工具:
作业编号日志(产品计划日志文档)
数据来源于时间记录日志
Lecture2:
L2-2018.3.8
优点:
记录和访问历史数据提供的一种简洁方法—>准确估计的关键
均衡估计(无偏估计)——好的估计的关键
[x]
六产品规模
1.与以往的产品规模对比,采取相同规模产品所用时间作为计划。
2.规模测量
程序规模测量:
LOC (自己编写或修改的代码,开发辅助工具生成的不计)
程序规模估计:
查看需求—>与以往开发的程序比较—>估计可能的LOC
程序规模估计表
积累历史数据—>作出好的规模
(时间记录日志选择合适的单位编号,比如具体到行、页)
七进度管理
1.制定项目进度表
2.Gantt图:
制定项目进度表 小菱形:
检查点(milestone)项目中可以测量的进度点 ***必须清晰,没有二义性,要么完成,或未完成,是可以客观验证的***
个人:
5-10小时一个检查点 项目:
每周
e.g“我完成了设计” (不明了,应满足公司等机构的要求)
此时(周二),进度拖后了,仅完成了70%。
八项目计划
项目计划严格写成文档——与实际性能比较的基准
Loc/Hour=hour/(minute/loc)
开发时间:
开发速率*程序规模
九个体软件开发过程
1.术语:
过程:
包括多个阶段(phase)or步骤 (每个阶段都有明确的入口、出口准则(检查点))
有完整描述的过程:
已定义的过程。
每个阶段产生一个特定的结果,阶段完成时即为一个检查点。
一般组成:
脚本、表格、模板和标准
2.元素
3.流程
4.PSP过程脚本
5.PSP项目计划总结表 (斜体表示新填)
累计百分比:
估计下一个阶段
[]
第一章------第九章时间管理
十缺陷
1.缺陷:
客观存在的事物
2.管理缺陷:
WHY?
①软件质量的首要体现
②提高程序设计水平
③减少程序中缺陷的个数
④节省时间
⑤节约开支
⑥负责任的完成工作
3.缺陷类型 关键:
实践中进行分类,反映问题最大的缺陷
Lecture3:
2018.3.13
4.缺陷记录日志记录缺陷以及相关的缺陷以了解缺陷,从而预防;每个阶段都有可能引入缺陷
**精力集中在编译和测试阶段排除缺陷 (缺陷主要在设计、编码阶段引入)
累计百分比:
用于下一次计划
十一 缺陷查找技术
defect:
导致程序失败的弱点notjustabug
1.发现缺陷的步骤:
(6个)
•标识缺陷征兆
•从征兆推断缺陷的位置
•确定程序中的错误
•***决定如何修复缺陷
•修复缺陷
•验证此修复是否已经解决了问题
2.发现和修复缺陷的方法:
•编译器标识出大部分语法错误
•测试 大部分程序无法完全测试
•发行有缺陷的产品,等待用户的反馈 (花费最大
•个人复查源程序清单(代码复查) (最有效)
3.代码复查发现缺陷
目标:
尽早尽多发现缺陷
注意事项:
***第一次编译前进行代码复查
在打印出的源程序清单上复查
在缺陷记录日志上记录发现的每一个缺陷
参考以往的缺陷类型复查
4.编译前复查原因:
(5个)
•编译前、后,完整代码复查时间基本相同
•先做复查将节省大量编译时间
•一旦编译,很多工程师就不能彻底查自己的代码
•无论在代码复查前或后编译,对检查语法的有效性效果相同
•经验证明,编译阶段缺陷很多,测试阶段可能也有许多缺陷
PSP:
计划—>设计—>编码—>代码复查—>编译—>测试—>后置处理(postmortem)
十二章 代码复查检查表
1.用途:
·精确的规程 ·如何进行代码复查,并测量复查的效率 ·改进编程习惯,降低缺陷
2.按照个人情况设计复查检查表
3.定期更新检查表 —>集中注意力在关键地方
十三章缺陷预测
1.原因:
估计进行多少次代码复查
2.缺陷密度:
每千行代码的缺陷数 **单位Defects/KLOC Dd=1000*D/N
3.缺陷估计:
Dplan=Nplan*Ddplan/1000
十四章 缺陷排除效益(yield)缺陷引入率和排除率
1.缺陷排除效益:
某一种排除方法所发现的缺陷的百分比
总缺陷数是估计值,即缺陷排除效益不是准确值
PSP中,缺陷排除效益是第一次编译和测试前(即个人代码复查)发现缺陷的百分比,也叫作过程效益
2.累计缺陷引入率和累计缺陷排除率
3.过程效益计算
过程效益=100*(编译前排除的缺陷数)/(编译前引入的缺陷数)
4.降低缺陷引入率,提高缺陷排除率
Def/hour累计缺陷引入、排除率的单位
5.提高缺陷排除率:
•精力集中于排除缺陷效益上,使过程效益达到70%及以上
•第一次编译前复查代码
•定期更新代码复查检查表,提高代码复查速度
十五章过程质量
1.过程测量 PSP只从缺陷引入和排除两方面测量
2.质量成本:
•过失成本:
修复产品中缺陷的开销 (PSP中,修复是指编译和测试)
•质检成本:
确定产品中是否仍有缺陷过程的开销,不包括修复 (PSP:
个人代码复查)
•预防成本:
避免引入缺陷
3.质检/过失比
A/FR:
质检成本/过失成本 or复查时间/编译和测试的时间
PSP:
A/FR尽量大于2 程序质量更高
只要过程效益还没有达到80%~100%的范围,就要继续增加A/FR的值—>做计划时可以增加代码复查的时间,无需再按累计百分比计算。