1 / 45

软件过程与管理 第二讲 个体软件过程

软件过程与管理 第二讲 个体软件过程. 荣国平 南京大学软件学院 2013 年 秋. 经典语录. “在很多方面,管理一个大型的计算机编程项目和管理其他行业的大型工程很相似 —— 比大多数程序员所认为的还要相似;在另外一些方面,它又有差别 —— 比大多数职业经理人所认为的差别还要大” ——Frederick P. Brooks. JR. 本讲要解决的问题. 为什么要有 PSP ? PSP 是什么? PSP 该如何实施?. 内容. PSP 简介 流程 度量 PROBE 估算方法. PSP 渊源和作用. 过程改进运动 TQM

luana
Download Presentation

软件过程与管理 第二讲 个体软件过程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 软件过程与管理 第二讲个体软件过程 荣国平 南京大学软件学院 2013年 秋

  2. 经典语录 • “在很多方面,管理一个大型的计算机编程项目和管理其他行业的大型工程很相似——比大多数程序员所认为的还要相似;在另外一些方面,它又有差别——比大多数职业经理人所认为的差别还要大” ——Frederick P. Brooks. JR

  3. 本讲要解决的问题 • 为什么要有PSP? • PSP是什么? • PSP该如何实施?

  4. 内容 • PSP简介 • 流程 • 度量 • PROBE估算方法

  5. PSP渊源和作用 • 过程改进运动 • TQM • Humphrey早期工作 • PSP/TSP • PSP作用 • 个人级别估算和计划 • 承诺和拒绝承诺 • 理解和改进 • 工业水准的过程和规范 • 客观决策的数据

  6. 什么是PSP? • PSP是包括了数据记录表格、过程操作指南和规程在内的结构化框架。 • 一个基本的PSP流程包括策划、设计、编码、编译、单元测试以及总结等阶段。 • 在每个阶段,都有相应的过程操作指南,用以指导该阶段的开发活动 • 所有的开发活动都需要记录相应的时间日志与缺陷日志。

  7. 典型PSP流程

  8. PSP基本原则 • 软件系统的整体质量由该系统中质量最差的某些组件所决定; • 软件组件的质量取决于开发这些组件的软件工程师,更加确切的说,是由这些工程师所使用的开发过程所决定; • 作为合格的软件工程师,应当自己度量、跟踪自己的工作,应当自己管理软件组件的质量; • 作为合格的软件工程师,应当从自己开发过程的偏差中学习、总结,并将这些经验教训整合到自己的开发实践中,也就是说,应当建立持续地自我改进机制。

  9. PSP成熟度级别

  10. PSP过程度量 • 过程度量在过程管理和改进中起着极为重要的作用。 • PSP基本度量项 • 即时间 • 缺陷 • 规模 • 日程(TSP)

  11. PSP时间度量(时间日志)

  12. 时间日志示例

  13. PSP缺陷度量(缺陷日志)

  14. PSP 缺陷类型标准

  15. PSP规模度量标准选择 • 选择的规模度量方式必须反映开发成本; • 选择的度量方式必须精确; • 选择的度量方式必须能用自动化方法来统计; • 选择的度量方式必须有助于早期规划;

  16. PSP 典型规模度量方式 • LOC • 物理 • 逻辑 procedure ISet.Set(var N: int; var inc: boolean); begin inc := false; SearchPtr := SetStart; while (SearchPtr<>nil) and (inc == false) do if SearchPtr^.ThisN == N then inc := true else SearchPtr:=SearchPtr^.NextN; end;

  17. 规模度量的困境 • 精确的度量方式往往不便于早期规划; • 有助于早期规划的度量往往难以产生精确度量结果; • LOC VS. FP? • PROBE的作用

  18. 内容 • PSP简介 • 流程 • 度量 • PROBE估算方法

  19. PROBE原理示例 • PROBE(PROxy Based Estimation)

  20. 相对大小矩阵 大小 类型 130+200+90×2+60+25+240+400 = 1235(平方尺)

  21. 相对大小矩阵C++语言

  22. 通用计划框架

  23. PROBE 估算流程

  24. 线性回归调整规模估算

  25. 线性回归调整时间估算

  26. 预测区间

  27. PROBE方法的应用 • 历史数据的处理 • 有限历史数据 • 个别极端数据的处理

  28. 历史数据的处理 • 简单方法 • 正态分布 • 对数正态分布

  29. 某人的历史数据 计算每个方法的代码行数,可以得出如下的数据:13,25.4,32.9.333,12,10.5。

  30. 简单方法 • 基本思想是: • 将每个方法的代码行数进行排序 • 选择最小值作为VS; • 选择最大值作为VL; • 选择中值作为M; • 选择VS与M的均值作为S; • 选择VL与M的均值作为L。 • 计算结果:VS = 9.333,VL = 32,M = 12 或者13,S = 11.2,L = 22.5。

  31. 正态分布法(1)

  32. 正态分布法(2) • 使用正态分布法的计算方法如下: • 选择所有数据的均值作为M,计算所有数据的标准差σ。 • 那么S = M- σ,VS = M-2 σ,L = M+ σ,VL = M+2 σ。 • 计算结果: • 在上述例子中,VS = -1.67,S =7.68,M = 17.04,L = 26.39,VL = 35.75。

  33. 对数正态分布(1) • 大部分人习惯写很多规模很小的程序,少量规模较大的程序 • 此外,程序的规模不可能出现负数

  34. 对数正态分布(2) • 计算方法: • 以e为底计算所有数据的自然对数; • 计算取对数之后的值的均值作为M,计算相应标准差σ。 • 那么S = M- σ,VS = M-2 σ,L = M+ σ,VL = M+2 σ。 • 取反对数; • 计算结果: • VS = 5.55,S =9.19,M = 15.22,L = 25.21,VL = 41.75。

  35. 三种方法对比 • 简单方法 • 计算简单,但是,不稳定 • 正态分布法 • 相对稳定,在历史数据基本符合正态分布的情况下,可以给出非常好的相对大小矩阵 • 对数正态分布法 • 更加符合人们对于程序的规模的直观感觉

  36. 有限历史数据 • Probe方法依赖历史数据,但是实际历史数据有可能 • 历史数据少于3个数据点; • 有足够的历史数据,但是数据的质量不高

  37. 相关性 • 相关性描述的是两组变化的数据之间相互关联的程度; • 在PSP中为确保估算质量,对于历史数据的相关性要求r≥0.7。

  38. 显著性 • 它描述的是上述两组数据的相关关系出现的偶然性 • 因此,显著性越小越好。在PSP中要求显著性s≤0.05

  39. PROBE 估算规模

  40. PROBE 估算时间

  41. 极端数据 • PROBE A方法和B方法的时候,对于数据的相关性有要求。 • 然而很多时候,历史数据中的一些极端数据会造成相关性的“假象”。

  42. r=0.26

  43. 160 • 140 • 120 • 100 • Writing Time • 80 • 60 • 40 • 20 • 0 • 0 • 5 • 10 • 15 • 20 • 25 • 30 • 35 • Chapter Pages r = 0.91

  44. 本章小结 • PSP基本概念 • PSP过程度量 • 时间、规模、缺陷 • PROBE估算方法 • 估算流程 • 历史数据组织 • 有限历史数据

  45. 问题回顾 • 为什么要有PSP? • PSP是什么? • PSP该如何实施?

More Related