个体软件过程(PSP)课件翻译-1:个体软件过程(PSP)和团队软件过程(TSP)简介
软件工程师个体软件过程 第一部分
(课件提供:卡内基梅隆大学软件工程学院)
个体软件过程(PSP)和团队软件过程(TSP)简介
课件主题:
变化的需求
个人软件过程(PSP)和团队软件过程(TSP)原则和目标
什么是团队软件过程(TSP)?
管理支持的需求
什么是个体软件过程(PSP)和它有什么作用?
课程总结
软件世界的变化:
现今,软件控制着大多数商业、政府和军事系统。
l 工厂由软件来管理
l 大多数高级商品由软件控制
l 金融、集中管理和商业操作大部分由软件来操作
软件的花费、安排和质量现在都属于商业范畴。
软件产品规模越来越大:
摩尔定律:18个月增长为两倍,5年增长为19倍。
大规模的软件项目经常失败:
随着尺寸的增长,项目越来越麻烦。
这是一个扩展性的问题:现在的软件实践并不适合扩展,随着尺寸增大,项目就会陷入困境。
(Standish混乱报告[1999年])
为什么项目失败-1:
无论大小软件项目失败主要有四个原因。
项目提交的报告中描述的经常是不现实的。
l 越大的项目,冲突和问题怎么可能越少?
l 如果我们没什么可说的,谁又会去听呢?
规模大的项目控制起来很困难。
l 现今,越来越少的开发人员有个人计划。
l 没有计划,你不可能知道工作的状态。
l 如果你不知道你处于什么位置,管理层就不可能了解工作状态。
l 如果管理层不了解工作状态,他们就不能管理项目。
为什么项目失败-2:
质量问题随着项目尺寸而越来越糟糕。
l 在软件系统中,如果任何部分出现质量问题,软件系统将会出现质量问题。
l 如果开发人员不管理质量,他们的团队不可能管理质量。
l 当处于无管理的状态时,质量就经常会变得很糟糕。
为了更有效率,团队需要领导和训练。
l 领导让团队有动力和有输出产品。
l 训练开发人员团队成为能解决问题的团队。
l 能解决问题、有效率、有提交产品的团队的工作是相当出色的。
变化的需求:
许多个人和企业都依赖于软件。
我们需要提前获得大型的、更复杂、更安全的软件系统。
但是不同的软件实践下,却可能无法实现这个目标。
团体软件过程(TSP)标示了这个需求。
个体软件过程(PSP)提供了开发人员需要的知识和技能,来满足开发人员在实行团队软件过程(TSP)团队中工作的需要。
管理支持-1:
团队软件过程(TSP)的最初目标是提高管理信心使你的团队获得导向性。
一个自导向的团队:
l 设定一个它自己的目标
l 拥有并划分它拥有的角色
l 决定它自己的开发策略
l 定义它自己的软件过程
l 开发它自己的计划
l 测量、管理和控制它自己的工作
自导向的团队会工作得很出色。
管理支持-2:
管理层将支持你直到你
l 达到他们的需要
l 提供你工作的正规报告
l 你的计划听起来增加他们的信心
l 做有质量的工作
l 响应变化的需求
l 你遇到困难的时候找他们以获得帮助
管理支持-3:
自导向的团队是优良的团队。
管理层将认同你管理自己的工作,因为他们相信你会做得非常出色。
为了让他们有这样的信心,你必须:
l 维护花费和记录计划
l 测量和跟踪你的工作
l 适当地向让他们展示你可以做出色的工作。
个体软件过程将向你展示如何做到这些。
个体软件过程(PSP)原则-1:
一个软件系统的质量决定了它最差的组件的质量。
一个软件组件的质量取决于开发它的个体。
一个软件组件的质量取决于开发它所使用的过程的质量。
质量的关键是个体开发人员的技巧、提交产物和执行什么样的个体过程。
个体软件过程(PSP)原则-2:
作为软件专业人士,你应该积极寻找自己的个体过程。
你应该测量、跟踪和分析你的工作。
你应该从你的能力差异中吸取经验和教训。
你应该将独立学习的课程应用到你的个体实践中。
个体软件过程(PSP)提供什么:
稳定、成熟的个体软件过程(PSP)允许你:
l 估计和计划你的工作
l 发现你所需要的提交物
l 免受无原因提交物的困扰
你也将会:
l 明白你现在的能力
l 更好地装备自己以提高你的能力
个体软件过程(PSP)提供什么:
个体软件过程(PSP)提供:
l 一个已经被证实从个体角度出发的个体过程进行开发和使用的基础。
l 展示如何提高你的个体过程的经验。
l 持续提高你工作的生产性、性能和可预期能力的数据。
什么是个体软件过程(PSP):
个体软件过程(PSP)是一个为了开发软件或者执行任何其它定义活动的个体过程。个体软件过程(PSP)包括:
l 定义步骤
l 表单
l 标准
它提供了用来发现和管理你工作的测量和分析框架。
它也是一个定义的过程来帮助你提高你的个人能力。
个体软件过程(PSP)过程流:
由脚本(Scripts)来支持过程。
过程包括:计划(Planning)->设计(Design)->代码(Code)->编译(Compile)->测试(Test)->项目管理(PM)
过程的输入为需求(Requirements)。过程的输出为最终产品(Finished Product)。
过程还要产生日志(Logs)和项目总结(Project Summary)。
而项目总结(Project Summary)输出项目和过程数据总结报告(Project and Process data summary report)。
个体软件过程:
个体软件过程(PSP)过程是设计来为个体使用。
它是基于向下扩展的个体软件实践。
个体软件过程(PSP)课程演示了使用一个定义和可测量过程的价值。
它帮助你和你的组织了解高质量和长时间开发的软件会遇到的持续增长的破坏。
学习个体软件过程(PSP)-1:
个体软件过程(PSP)基于六个向上兼容的阶段。
你在每个阶段写一个或者更多模块级别的程序。
你总结和分析你工作的数据。
你使用分析的结果来提高你个人的能力。
学习个体软件过程(PSP)-2:
PSP0:Current process、Time recoding、Defect recording、Defect type standard
PSP0.1:Coding standard、Size measurement、Process improvement proposal(PIP)
PSP1:Size estimating、Test report
PSP1.1:Task planning、Schedule planning
PSP2:Code reviews、Design reviews
PSP2.1:Design templates
TSP:Team development
学习个体软件过程(PSP)-3:
PSP0:你将获得一个可测量能力的基线
PSP1:你创造规模、资源和时间表计划
PSP2:你练习检测和领域管理
课程结论:
你将可以练习面向个体能力的软件过程的关键元素。
你将了解那些方法对你来说更有效。
你将做出更加出色的工作。
你将有长期提高的目标。
课程结果:
我们现在有数据显示超过300000个程序是使用个体软件过程编写的。
其他人都在如何在个体软件过程(PSP)过程中提高自己。
l 影响估计
l 编译和测试时间
l 生产性
需要牢记的信息:
个体软件过程(PSP)是定义过程来帮助你更好的工作。
当你完成了课程,你将知道如何让个体软过程(PSP)加入并满足你个人的需要。
你将会获得在一个执行团队软件过程(TSP)团队中工作的知识和技能。
通过PSP0,目标是集中计算和完成你的工作数据。