个体软件过程 Personal Software P

上传人:cn****1 文档编号:563468484 上传时间:2023-03-26 格式:DOCX 页数:16 大小:25.58KB
返回 下载 相关 举报
个体软件过程 Personal Software P_第1页
第1页 / 共16页
个体软件过程 Personal Software P_第2页
第2页 / 共16页
个体软件过程 Personal Software P_第3页
第3页 / 共16页
个体软件过程 Personal Software P_第4页
第4页 / 共16页
个体软件过程 Personal Software P_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《个体软件过程 Personal Software P》由会员分享,可在线阅读,更多相关《个体软件过程 Personal Software P(16页珍藏版)》请在金锄头文库上搜索。

1、个体软件过程Personal SoftwareP个体软件过程(Personal Software Process, PSP)2011 年 05 月 16 日星期 一 10: 00 A.M.个体软件过程(Personal Software Process, PSP)是一种可用 于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发 表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者 设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能 够说明个体软件过程的原则;帮助软件工程师作出准确的计划;确定软件工程 师为改善产品质量要采取的步骤;建立度

2、量个体软件过程改善的基准;确定过 程的改变对软件工程师能力的影响。随着软件工程知识的普及,软件工程师都知道,要开发高质量的软件,必 须改进软件生产的过程。目前,业界公认由CMU/SEI开发的软件能力成熟度模 型SW-CMM是当前最好的软件过程,并且CMM已经成为事实上的软件过程工业标 准。但是,CMM虽然提供了一个有力的软件过程改进框架,却只告诉我们应该 做什么,而没有告诉我们应该怎样做,并未提供有关实现关键过程域所需要 的具体知识和技能。为了弥补这个欠缺,Humphrey又主持开发了个体软件过程 (Personal Software Process, PSP)。在CMM1.1版本的18个关键

3、过程域中有12个与PSP有关,据统计,软件项 目开发成本的70%取决于软件开发人员个人的技能、经验和工作习惯。因此, 一个单位的软件开发人员如能接受PSP培训,对该单位软件能力成熟度的升级 是一个有力的保证。CMM侧重于软件企业中有关软件过程的宏观管理,面向软 件开发单位,PSP则侧重于企业中有关软件过程的微观优化,面向软件开发人 员。二者互相支持,互相补充,缺一不可。按照PSP规程,改进软件过程的步骤首先需要明确质量目标,也就是软件 将要在功能和性能上满足的要求和用户潜在的需求。接着就是度量产品质量, 有了目标还不行,目标只是一个原则性的东西,还不便于实际操作和判断,因 此,必须对目标进行分

4、解和度量,使软件质量能够测量。然后就是理解当前 过程,查找问题,并对过程进行调整。最后应用调整后的过程,度量实践结果, 将结果与目标做比较,找出差距,分析原因,对软件过程进行持续改进。就象CMM为软件企业的能力提供一个阶梯式的进化框架一样,PSP为个体 的能力也提供了一个阶梯式的进化框架,以循序渐进的方法介绍过程的概念, 每一级别都包含了更低一级别中的所有元素,并增加了新的元素。这个进化框 架是学习PSP过程基本概念的好方法,它赋予软件人员度量和分析工具,使其 清楚地认识到自己的表现和潜力,从而可以提高自己的技能和水平。一、个体度量过程PSP0和PSPO.l PSP0的目的是建立个体过程基线,

5、通过 这一步,学会使用PSP的各种表格采集过程的有关数据,此时执行的是该软件 开发单位的当前过程,通常包括计划、开发(包括设计、编码、编译和测试)以 及后置处理三个阶段,并要作一些必要的试题,如测定软件开发时间,按照选 定的缺陷类型标准、度量引入的缺陷个数和排除的缺陷个数等,用作为测量在 PSP的过程中进步的基准。PSP0.1增加了编码标准、程序规模度量和过程改善建议等三个关键过程域, 其中过程改善建议表格用于随时记录过程中存在的问题、解决问题的措施以及 改进过程的方法,以提高软件开发人员的质量意识和过程意识。应该强调指出,在PSP0阶段必须理解和学会使用不合格进行规划和度量的 技术。设计一个

6、好的表格并不容易,需要在实践中积累经验,以准确地满足期 望的需求,其中最重要的是要保持数据的一致性、有用性和简洁性。二、个体规划过程PSP1和PSP1.1 PSP1的重点是个体计划,引入了基于估 计的计划方法PROBE(PROxy Based Estimating),用自己的历史数据来预测新 程序的大小和需要的开发时间,并使用线性回归方法计算估计参数,确定置信 区间以评价预测的可信程度。PSP1.1增加了对任务和进度的规划。在PSP1阶段应该学会编制项目开发计划,这不仅对承担大型软件的开发十 分重要,即使是开发小型软件也必不可少。因为,只有对自己的能力有客观的 评价,才能作出更加准确的计划,才

7、能实事求是地接受和完成客户(顾客)委托 的任务。三、个体质量管理过程PSP2和PSP2.1 PSP2的重点是个体质量管理,根据 程序的缺陷善建立检测表,按照检测表进行设计复查和代码复查(有时也称代 码走查),以便及早发现缺陷,使修复缺陷的代价最小。随着个人经验和技术 的积累,还应学会怎样改进检测表以适应自己的要求。PSP2.1则论述设计过程 和设计模板,介绍设计方法,并提供了设计模板、但PSP并不强调选用什么设 计方法,而强调设计完备性准则和设计验证技术。实施PSP的一个重要目标就是学会在开发软件的早期实际地、客观地处理 由于人们的疏忽所造成的程序缺陷问题。人们都期盼获得高质量的软件,但是 只

8、有高素质的软件开发人员并遵循合适的软件过程,才能开发出高质量的软件, 因此,PSP2引入并着重强调设计复查和代码复查技术,一个合格的软件开发人 员必须掌握这两项基本技术。四、个体循环过程PSP3 PSP3的目标是把个体开发小程序所能达到的生产 效率和生产质量,延伸到大型程序;其方法是采用螺旋式上升过程,即迭代增 量式开发方法,首先把大型程序分解成小的模块,然后对每个模块按照PSP2.1 所描述的过程进行开发,最后把这些模块逐步集成为完整的软件产品。应用PSP3开发大型软件系统,必须采用增量式开发方法,并要求每一个增 量都具有很高的质量。在这样的前提下,在新一轮开发循环中,可以采用回归 测试的方

9、法,集中力量考察新增加的这个(这些)增量是否符合要求。因此,要 求在PSP2中进行严格的设计复查和代码复查,并在PSP2.1中努力遵循设计结 束准则。从对个体软件过程框架的概要描述中,可以清楚地看到,如何作好项目规 划和如何保证产品质量,是任何软件开发过程中最基本的问题。PSP可以帮助软件工程师在个人的基础上运用过程的原则,借助于PSP提 供的一些度量和分析工具,了解自己的技能水平,控制和管理自己的工作方式, 使自己日常工作的评估、计划和预测更加准确、更加有效,进而改进个人的工 作表现,提高个人的工作质量和产量,积极而有效地参与高级管理人员和过程 人员推动的组织范围的软件工程过程改进。PSP软

10、件工程规程为软件工程师提供了发展个人技能的结构化框架和必须 掌握的方法。在软件行业,开发人员如果不经过PSP培训,就只能靠在开发中 通过实践逐步掌握这些技能和方法,这不仅周期很长,要付出很大的代价,而 且有越来越大的风险。培训的方式有很多,既可以到专门的学校进修,也可以 进行自学和参加培训班,例如:CMM网校中就有个体软件过程的课程。五、个体软件过程PSP之过程改进PSP是一个需要逐步改进的过程。Watts S.Humphrey服兵役的时候,必须学会机枪射击。开始训练时用猎枪 打泥鸽子,Watts的成绩非常差,并且努力训练还是没有提高。教官对Watts 进行了一段观察后,建议他用左手射击。作为

11、一个习惯右手的人,开始Watts 很不习惯,但练了几次后,Watts的成绩几乎总是接近优秀。这个事例说明了几个问题。首先,要通过测量来诊断一个问题,通过了解 Watts击中了几只鸽子和脱靶的情况,很容易看出必须对Watts做些调整。然 后,必须客观的分析测量的数据,通过观察Watts的射击,教官就可以分析 Watts射击的过程-上膛、就位、跟踪目标、瞄准,最后射击。教官的目的就是 发现Watts哪些步骤存在问题,找到问题所在,于是建议目的就是发现用左手 射击。最后,也是最重要的,就是自身的变化。过程改进是非常困难的,因为人 们很多时候不愿意尝试新事物。他们传统的习惯看起来很自然,以至于不相信

12、改变会有什么帮助。Watts总是使用右手,从来没有想过左手射击会是什么样 子。但是自Watts采纳了教官的建议,他的成绩就提高了。定义测量方法不是件容易的事情,但它总是可能的。首先定义测量方法。 规定了测量方法后,就必须收集和分析数据。如果需要作些改进,接下来就要 分析工作过程,看看什么地方需要改进。最后要想真正的改进,必须切实做出 改进。如果Watts不改进他的射击过程,它的成绩几年后都不会有什么变化,也 不会成为一个优秀的枪手。仅仅进行测量并不会产生什么提高,仅仅靠努力也 不会有什么提高。在很大程度上工作方式决定了所得到的结果。如果还是按照 老办法工作,得到的结果还会是老样子。改进工作方式

13、与Watts学习射击的步骤一样。它们并不复杂,如图1所示:?XML: NAMESPACE PREFIX=O/六、个体软件过程PSP之时间管理1、时间管理的逻辑原理人们很可能像上星期那样安排这星期的时间。当然,随着工作的不同,也 有很多例外的情况。为了制定切实可行的计划,必须对所用的时间进行跟踪。如果问上周的时 间是怎么利用的,一般人都认为很容易所出每项工作花了多少时间,但是当看 到实际的数据时,很可能感到十分惊讶:花在编程上的时间比估计的少得多, 花在消遣的时间比预期的多得多;乐意做的事情做的特别快,用的时间也似乎 特别少,令人头疼的事情占用的时间似乎比实际花费的时间多得多。要搞清楚 时间都用

14、在什么地方,必须对时间进行跟踪,保留一份准确的记录。为了检查时间估计和计划的准确性,必须把它们写成文档并在今后与实际 情况进行比较。做计划是一种技能,学习制定好的计划,第一步就是要先做计 划,然后把该计划写下来,以便今后与实际数据相比较。为了制定出更准确的计划,需要知道以前的计划中存在哪些错误,哪些地 方可以进行改进。当按照计划进行工作时,记录下所花费的时间。通过比较文 档化的计划和实际的结果,就可以发现计划中存在哪些错误以及如何改进做计 划的过程。制定准确计划的关键就是要坚持制定计划,并把每个计划与实际结 果相比较,然后就会知道如何才能制定出更好的计划。为了管理好时间,首先制定时间分配计划,

15、然后按照计划去做。制作计划 容易,但真正实施计划是困难的。特别开始的时候,按照计划进行工作可能比 较困难,你可能会有很多借口,最常见的就是这份计划制作的不好。但只有按 照计划去做,你才能知道它的优劣。按照计划进行工作有三点好处:第一,了解计划存在哪些问题,有助于更 好的计划下一个项目。第二,按照好的计划完成工作。这看起来不重要,但是 事实上软件工程中的许多错误都是由于考虑不周、粗心大意或是不注意的小细 节而造成的,按照好的计划工作是避免这些错误的最好途径。另一个更加微妙 的好处就是它实际上在改变你的工作方式,有了计划就不用浪费时间去考虑下 一步要干什么,它会帮助你把精力集中在所中的事情上,很少

16、分心,从而提高 了工作效率。2. 了解时间的使用情况将主要活动分类。在开始分配时间时,你会发现大部分时间都用在相对很 少的几个活动上。记录每项主要活动所花费的时间。坚持记录时间需要很强的自我约束能力, 要想进行精确的记录,必须记录下每件主要工作开始和结束的时间。除非你知 道自己实际上用了多少时间,否则就不可能管理好使用时间的方式。用标准的方法记录时间。必须使用标准的时间日志。因为需要采集的时间 数据的数量增加得很快,如果不认真记录和存储这些数据,它们很可能丢失或 变得混乱,这样很不利于查找或对它们进行解释。如果不打算对这些数据进行 适当的整理、归纳,就根本不必要去收集数据。以分钟为测量单位。工程是在完成任务中不间断工作的时间一般都少于1 小时,因此以小时为单位对工作时间进行测量不能提供用以计划和管理工作所 需要的详细数据,而用分钟跟踪时间容易得多。一旦决定进行时间跟踪,用分 钟作为测量单位将比用小时更恰当

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号