个体软件过程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何加强软件过程管理与训练,提高个体软件过程能力,做一个合格的软件工程师
11软工A1 田伟
个体软件过程是由美国Carnegie Mellon大学软件工程研究所(CMU/SEI)的Watts s. Humphrey领导开发的,于1995年推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。

PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。

PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。

在软件设计阶段, PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。

根据对参加培训的104位软件人员的统计数据表明,在应用了 PSP后,软件中总的差错减少了58.0%,在测试阶段发现的差错减少了71.0%,生产效率提高了20.0%。

PSP的研究结果还表明,绝大多数软件缺陷是由于对问题的错误理解或简单的失误所造成的,只有很少一部分是由于技术问题而产生的。

而且根据多年来的软件工程统计数据表明,如果在设计阶段注入一个差错,则这个差错在编码阶段引发了3一5个新的缺陷,要修复这些缺陷所花的费用要比修复这个设计缺陷所花的费用多一个数量级。

因此,PSP保障软件产品质量的一个重要途径是提高设计质量。

PSP的原则和思想
一个基本的PSP原则是:每个人都是不同的,对于某个工程师有效的方法不一定适合另一个,PSP帮助工程师测量和跟踪他们自己的工作,使得他们能够找到最适合自己的方法。

多数软件工程师总喜欢把自己当作精英,崇尚个人主义,以编码速度快二骄傲。

管理人员进行项目管理时,往往会采用统一死板的模式或方法,将规定强加于工程师身上,效果不一定好。

PSP过程该井正式针对这一情况,采用以人为本的方针,以自身为出发点,从本人坐起。

工程师根据自身的情况,亲自搜集有关本人的开发数据,基于这些自身的数据来制定最适合自己的改进目标和具体的改进措施,实行自我监督、自觉地不断改进和提高自己。

从理论上讲,这种策略是最有实效的,易于接受。

PSP内容丰富,具有良好的实践性,包括个人时间管理、时间跟踪、任务估计和阶段性工作计划等内容。

基于PSP,通过采用一些表格、脚本和标准,可帮助软件工程师估算和计划其个人的任务,改善个人软件过程及测量,从而最终获得高生产率的回报,能够在规定的预算和时间内开发出高质量的产品。

PSP帮助工程师掌握软件过程管理和项目管理方面最先进的技能和最佳的实践。

PSP的目的是为了改善软件工程师的开发性能,而提高性能在于早期对项目有一个比较准确的把握。

项目评估的准确度依赖于历史数据的积累,只有正确的历史数据越来越充分,在评估新项目时所采用的指标数才会越准确。

在项目进展过程中,还需要根据影响因素的变化不断调整估算指标。

PSP不仅帮助软件工程师提高编码水准,如何管理所开发的程序质量;还指导软件工程师更好的进行需求或过程定义、评审、测试和文档编写等。

通过记录软件工程师在项目设计、编写代码、测试与维护等各阶段所发生的错误、缺陷及解决办法,列出经常出现的错误及错误类型,可把错误尽量控制在交付用户使用前,并尽量减少错误的发生。

个体度量过程PSP0和PSP0.1
PSP0是建立个体过程的第一步。

通过这一步,学会使用PSP的各种表格采集过程的有
关数据,此时执行的是该软件开发单位的当前过程,通常包括计划、开发(包括设计、编码、编译和测试)以及后置处理三个阶段,并要作一些必要的试题,如测定软件开发时间,按照选定的缺陷类型标准、度量引入的缺陷个数和排除的缺陷个数等,用作为测量在PSP的过程中进步的基准。

PSP0.1增加了编码标准、程序规模度量和过程改善建议等三个关键过程域,其中过程改善建议表格用于随时记录过程中存在的问题、解决问题的措施以及改进过程的方法,以提高软件开发人员的质量意识和过程意识。

在这一阶段,必须理解和学会使用规划和度量的技术,以准确地满足期望的需求,其中最重要的是要保持数据的一致性、有用性和简洁性。

在这一阶段,重点是理解程序员之间约定俗称的编码规范。

在大型的程序开发中,需要很多人协作才能完成任务。

要想写作编写代码,必须要统一编码规范。

另外,一个合格的程序员,应该随时记录自己的软件开发过程中出现的问题以及解决这些问题的方法,作必要的备案。

这些都会是今后可以用到的重要材料。

个体规划过程PSP1和PSP1.1
PSP1的重点是个体计划,引入了基于估计的计划方法PROBE(PROxy Based Estimating),用自己的历史数据来预测新程序的大小和需要的开发时间,并使用线性回归方法计算估计参数,确定置信区间以评价预测的可信程度。

PSP1.1增加了对任务和进度的规划。

在PSP1阶段应该学会编制项目开发计划,这不仅对承担大型软件的开发十分重要,即使是开发小型软件也必不可少。

因为,只有对自己的能力有客观的评价,才能作出更加准确的计划,才能实事求是地接受和完成客户的需求。

个体质量管理过程PSP2和PSP2.1
PSP2的重点是个体质量管理,根据程序的缺陷善建立检测个人软件过程PSP之过程改进表,按照检测表进行设计复查和代码复查(有时也称"代码走查"),以便及早发现缺陷,使修复缺陷的代价最小。

随着个人经验和技术的积累,还应学会怎样改进检测表以适应自己的要求。

PSP2.1则论述设计过程和设计模板,介绍设计方法,并提供了设计模板、但PSP 并不强调选用什么设计方法,而强调设计完备性准则和设计验证技术。

在此阶段,开发者最重要的学会对自己的代码进行恰当的评估,并学会用正确的方法来复查自己的代码,及早地找出代码中的Bug,防止缺陷进入之后的开发流程导致缺陷修复的成本增加。

PSP3---个体循环过程
PSP3的目标是把个体开发小程序所能达到的生产效率和生产质量,延伸到大型程序;其方法是采用螺旋式上升过程,即迭代增量式开发方法,首先把大型程序分解成小的模块,然后对每个模块按照PSP2.1所描述的过程进行开发,最后把这些模块逐步集成为完整的软件产品。

应用PSP3开发大型软件系统,必须采用增量式开发方法,并要求每一个增量都具有很高的质量。

在这样的前提下,在新一轮开发循环中,可以采用回归测试的方法,集中力量考察新增加的这个(这些)增量是否符合要求。

因此,要求在PSP2中进行严格的设计复查和代码复查,并在PSP2.1中努力遵循设计结束准则。

在PSP3阶段,一个程序员已经达到了一个较高的水平,他所面对的往往是一些大型的程序,因此合理的安排自己的任务、约束自己的代码,从而提高自己代码的质量就显得尤为重要。

增量式开发模式是大型程序开发的有效方法,在采用恰当的增量的同时,利用PSP3来提高代码的质量,将十分有利于快速开发高质量的大型程序。

软件过程管理
软件过程需求管理
需求管理首先要针对需求做出分析,随后应运用产品并提出方案。

需求分析的模型正式产品的原型样本,优秀的需求管理提高了这样的可能性。

它使最终产品更接近于解决需求,提高了用户对产品的满意度,从而使产品成为真正优秀合格的产品。

需求管理的过程中,应遵循如下规定:
1.建立需求基线。

2.制定简单、有效的变更控制流程,并形成文档。

3.成立项目变更委员会或相关职能的类似组织,负责裁定接受哪些变更。

4.需求变更一定要先申请然后再评估,最后经过与变更大小相当级别的评审确认。

5.需求变更后,受影响的软件计划、产品和活动都要进行相应变更,保持与更新的需求一致。

6.妥善保存变更产生的相关文档。

软件过程技术管理
技术架构主要是指用于支持软件工程过程和管理过程的技术基础设施,包括各类在技术过程中所采用的方法、工具等。

技术构成的主要内容如下:
1.数据和文档的存储、检索工具。

2.过程分析和决策支持工具。

3.过程裁剪的技术方法。

4.软件过程度量和聘雇工具。

软件过程项目管理
软件项目管理过程从一组称为项目计划的活动开始,这些活动中的第一个就是估算,将项目分解成若干主要的功能及相关的软件工程活动,通过逐步求精的方式进行成本及工作量估算。

任何项目都不能避免风险,因此,在项目管理过程中,提前识别风险对项目最终的成败起着重要的作用。

软件过程质量管理
ISO 9000“质量管理和质量保证”标准规定:“质量管理是指全部管理职能的一个方面。

该管理职能负责质量方针的制定与实施。

”ISO 8402“质量管理和质量保证术语”标准中,将质量管理的含义进行了扩展,规定:“质量管理是指确定质量方针、目标和职责,并通过质量体系中的质量策划、质量控制、质量保证和质量改进来使其实现的所有管理职能的全部活动。


随着开发的软件系统越来越复杂,潜在的缺陷爷越来越多。

所以对于软件工程师来说,个人的工作质量与整个软件的质量息息相关。

PSP指导软件工程师如何有效地跟踪和管理缺陷,从而提高软件开发效率和质量。

为了以正确的方法完成分配的任务,软件工程师应该事先按照定义的流程做好工作计划。

根据PSP过程,工程师必须计划、度量和跟踪产品状况,从而保证整个项目的产品质量。

要想提高工作质量,必须进行对将要完成的任务估计出完成每一项任务所要花费的时间。

另外还必须要进行缺陷的管理。

了解时间的使用情况
1.将主要活动分类。

2.记录每项主要活动所花费的时间。

3.用标准的方法记录时间。

4,以分钟为测量单位。

5.处理中断时间。

6.将时间数据保存在合适的地方。

7.周活动总结表。

8.记录时间的提示。

合理管理时间
可以按照如下步骤管理时间:
1. 分析自己使用时间的历史记录;
2. 制定时间安排表,决定如何使用时间;
3. 对照制定的安排表跟踪使用时间的方式;
4.决定应该改变什么意思自己的行动达到所作安排的要求。

收集时间是为了帮助自己更好地管理时间,而如果收集的数据被证明是没有用的,就需要重新考虑自己收集时间数据的方法。

但是,只有在已经实践了安排的时间之后再这样做。

即使作了时间安排表,如果由于一些原因对时间安排变化很大,那么也应该收集更多的数据,知道自己明白当前是如何使用时间为止。

缺陷管理
当开发一个新的程序时,可能会觉得很难估计你将引入多少缺陷,理由是缺陷的个数因程序的不同而不同。

随着开发过程的改进,过程会逐步稳定下来。

缺陷也将容易预测。

可根据对最近的程序跟踪每千行引入和排除的缺陷数,估计出在将来的程序中可能引入和排除的缺陷数。

软件过程评估与改进
软件过程评估的目的是对当前组织内部所运行的软件过程能力、性能等状态进行准确的、客观的描述,试图发现当前过程实施的特点,标示出其中的强项与弱项,并给出过程改进的建议或者行动计划。

PSP是一个需要逐步改进的过程。

过程改进是非常困难的,因为人们很多时候不愿意尝试新事物。

定义测量方法不是件容易的事情,首先需定义测量方法,规定了测量方法后,就必须收集和分析数据。

如果需要作些改进,接下来就要分析工作过程,看看什么地方需要改进。

最后要想真正的改进,必须切实做出改进。

在很大程度上工作方式决定了所得到的结果。

在软件项目的整个工程中,要将随时的改进更新。

做一名合格的软件工程师
软件工程师是对于从事软件开发职业人的统称,成为一名合格的软件工程师需要许多硬性条件,比如精通不止一名语言;比如丰富的项目经验;比如善于与客户交流;又比如一份软件工程师的认证。

但我认为其中最为重要的还是项目经验,而个体软件过程正是有利于完成一个个项目的基石。

打铁还需自身硬,提高PSP能力无疑就是在加强自身顺利完成项目的重中之重。

PSP可以帮助软件工程师在个人的基础上运用过程的原则,借助于PSP提供的一些度量和分析工具,了解自己的技能水平,控制和管理自己的工作方式,使自己日常工作的评估、计划和预测更加准确、更加有效,进而改进个人的工作表现,提高个人的工作质量和产量,积极而有效地参与高级管理人员和过程人员推动的组织范围的软件工程过程改进。

成为合格软件工程师应该遵循的5项原则:站在用户角度看问题;面对问题,解决问题;解决问题,要系统化;专注于细节问题;以最小代价,获最大效益。

在整个项目的计划实施中,软件工程师要明白个人服从团队,一个团队有一个很优秀的软件工程师,而不去愿意与团队合作,导致最终项目失败,个人再优秀,也不能代替一个团队。

在项目的各阶段,每个软件工程师都是在一个团队的前提下,来进行项目的计划、分析、实施、交付用户及检验。

团队利益要绝对凌驾与个人利益至上。

管理人员要密切与各个软件工程师保持联系,统一每个人的思想,为整个软件项目的研究而提供坚实的技术保障。

个体软件过程,它是一个记录经验的过程;一个总结经验的过程;一个了解自己的过程;一个对自己负责的过程;一个估计的过程;一个完善计划的过程。

我们都知道工作经验是很重要的,而PSP就是可以统计自己先前的经验,并以文档的方式记录下来,而不是散乱在头脑中,遗忘于脑海间。

我们需要在课堂所学知识中、在一次次项目实践的积累中,提高自身个体软件过程的能力。

作为软件工程专业的一员,无论将来是从事技术还是算法的研究,利用PSP提高自己的程序修为,我认为都是很有必要的,一个人的快速成长离不开正确的理论指导,PSP正是这样一个较为科学的理论。

不仅如此,在PSP完成一个项目的过程中,它有一个目标,同时具备从低到高的各个等级,在不同的等级PSP也有着各自的任务,总而最终得以完美地完成次项目,达到原定的目标。

人生就像一个项目,我们需要先为自己制定一个长远的理想,同时在各个成长阶段,我们需要用适应本阶段的要求约束自己,完成每个阶段的任务和目标,并最终达成并实现我们的理想。

相关文档
最新文档