个体软件过程个人学习报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
个体软件过程个人学习报告个体软件过程是由美国Carnegie Mellon大学软件工程研究所(CMU/SEI)的Watts s. Humphrey领导开发的,于1995年推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。
PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。
PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何对软件进行规模估计,如何控制质量,如何与进行进度管理和缺陷管理等等。
在软件设计阶段,PSP 的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。
据调查研究表明,在应用了PSP后,软件中总的差错减少了58.0%,在测试阶段发现的差错减少了71.0%,生产效率提高了20.0%。
PSP的研究结果还表明,绝大多数软件缺陷是由于对问题的错误理解或简单的失误所造成的,只有很少一部分是由于技术问题而产生的。
而且根据多年来的软件工程统计数据表明,如果在设计阶段注入一个差错,则这个差错在编码阶段引发了3一5个新的缺陷,要修复这些缺陷所花的费用要比修复这个设计缺陷所花的费用多一个数量级。
因此,PSP保障软件产品质量的一个重要途径是提高设计质量。
PSP有两个目标:一是帮助软件工程师开发程序;二是告诉我们如何利用过程来改善工作方式。
即告诉我们如何制定计划,然后按照计划进行工作,尽最大的陆离生产出高质量的产品。
PSP是一个记录经验的过程,一个总结经验的过程,一个了解自己的过程,一个对自己负责的过程,一个估计的过程,一个完善计划的过程。
我们都知道工作经验是很重要的,对不同的人,2年3年的工作经验在时间上是一样的,但是真正的经验是不一样的。
PSP可以统计自己的经验,并以文档的方式记录下来,而不仅是散乱在头脑中。
我认为PSP是西方规范化、规律化、规矩化生产方式的严格过程,而国内很多不规范的软件公司,没有规律和不喜欢规矩的软件工程师,来实施这个过程难度是很大的。
不完全采样PSP,通过学习PSP,最起码能令我们明白可以统计这些数据,而这样做可以认识我们的价值,提高我们的价值(我想在求职中,完全可以把自己的数据反映给公司,你也能确实的明白你知道什么,你做过什么,你的效率如何),指导我们的工作。
如果能严格的采用这套过程,开始可能会很苦很费时间,但是一旦实践数据积累到一定程度,我想我们的工作经验可能是一张张的数据表(比如完成××模块类型的代码速度是?秒/行)就像我们的健康状态、考试成绩一样,而不是说2年5年的经验了,在对一个项目做计划时也就好像RPG游戏觉得如何使用招式、学校按成绩排考场座位一样。
但是PSP真的能实施得完美吗?我想这个问题应该不是软件工程中的问题,而是个人态度和习惯的问题,就比如说可以为每个人设计一条同样的成为足球球星的道理,但是不并见得都成为球星;大家在学校的课程安排不都一样吗,怎么还有清华大学生与二流三流大学生和广大没上过大学的同龄人呢?
一个成功的软件产品的三要素是:时间,成本,质量,时间要素是客观存在的,我们没办法改变。
但我们可以改进完成项目的方法,避免开发过程中的弯路来降低开发时间成本。
时间的成本自然是建立在效率的基础之上来谈论的,重点是在时间效率和时间评估这两点之上。
时间效率的重点杜绝浪费,浪费与否谁说了算,过程说了算,谁的过程,当然是自己的过程,团队的过程,组织的过程。
以这样来看,过程的定义是在给定目标、入口、出口、规则的前提下我们所执行的具体的可操作的步骤。
在传统行业的经验来看,生产过程是可以定量,可度度量化的,而软件的过程更多的是人的过程,相比第一、二次工业革命自动化,工业化,尽量减少人在过程的因素来讲,软件的过程是人的过程,有它的特殊之外,比如0生产过程、人们对这种智力活动产品研制的规律缺乏足够的认识等,但是目标是定量和可度
量的并没有改变。
PSP是一个功能非常强大但是使用起来却比较繁琐的软件,不过能够严格实践的人,真的非常令人佩服的!实践过,但是不严格实施的人,也能沉淀不少东西吧。
只是学学,不实践的人,起码应该明白,很多东西可以量化的,规范化的,能注意总结自己不为是件好事!其他没学过,但是严格要求自己的人,其实他也在实施一个PSP过程。