PSP软件工程师的自我改进过程(英文影印版)
基本信息
- 作者: (美)Watts S. Humphrey [作译者介绍]
- 丛书名: 软件工程经典系列
- 出版社:人民邮电出版社
- ISBN:7115145970
- 上架时间:2006-4-13
- 出版日期:2006 年4月
- 开本:16开
- 页码:368
- 版次:1-1
- 所属分类:
计算机 > 软件工程及软件方法学 > 综合
内容简介回到顶部↑
随着软件工程专业的发展和成熟,个体软件过程(psp)得到了广泛认可和应用实践。本书系统描述了个体软件过程(psp),并且解释了按可预测的进度交付优良产品的实践和方法。读者将会了解一个规范的软件工程过程所包括的具体内容。.
本书通过14章分步介绍了psp方法。第1章描述了psp整体原理及介绍策略。第2章和第3章解释了如何遵循一个定义的过程和怎样收集和使用用于管理程序开发作业的数据。第4至第7章介绍了估算和计。第8章至第12章阐述了质量管理和设计。第13章描述了如何将psp方法用于各种工作。第14章描述如何将psp方法用于tsp过程,以及tsp指导经过psp训练的软件工程师怎样在一个项目中使用这些方法。..
本书实用性与可读性较强,可作为高等学校计算机软件工程课程的教材,也可作为工程技术人员自学个体软件过程的教材,同时也是进行软件过程改善和能力成熟度模型sw-cmm评估的重要参考资料。此书作为sei的psp body of knowledge(bok)的学习指导教材,为掌握psp知识体提供必要的帮助。本书还可供软件过程改进人员、软件开发项目经理、程序员阅读参考。...
本书通过14章分步介绍了psp方法。第1章描述了psp整体原理及介绍策略。第2章和第3章解释了如何遵循一个定义的过程和怎样收集和使用用于管理程序开发作业的数据。第4至第7章介绍了估算和计。第8章至第12章阐述了质量管理和设计。第13章描述了如何将psp方法用于各种工作。第14章描述如何将psp方法用于tsp过程,以及tsp指导经过psp训练的软件工程师怎样在一个项目中使用这些方法。..
本书实用性与可读性较强,可作为高等学校计算机软件工程课程的教材,也可作为工程技术人员自学个体软件过程的教材,同时也是进行软件过程改善和能力成熟度模型sw-cmm评估的重要参考资料。此书作为sei的psp body of knowledge(bok)的学习指导教材,为掌握psp知识体提供必要的帮助。本书还可供软件过程改进人员、软件开发项目经理、程序员阅读参考。...
作译者回到顶部↑
本书提供作译者介绍
Watts S.Humphrey是一系列有关软件开发过程及软件过程改进有影响的书的著名作者,Humphrey先生是卡内基
梅隆大学软件工程研究所的资深研究员(fellow),他具有远见卓识,在早期领导开发了能力成熟度模型(CMM),广泛地用于一个组织的软件开发能力的评估,后来发展为能力成熟度模型集成(CMMI)。...
.. << 查看详细
梅隆大学软件工程研究所的资深研究员(fellow),他具有远见卓识,在早期领导开发了能力成熟度模型(CMM),广泛地用于一个组织的软件开发能力的评估,后来发展为能力成熟度模型集成(CMMI)。...
.. << 查看详细
目录回到顶部↑
chapter 1 the personal process strategy .
1.1 the psp's purpose
1.2 the logic for a software engineering discipline
1.3 using disciplined development practices
1.4 operational processes
1.5 defining and using a personal process
1.6 learning to use a personal process
1.7 preparing for the team software process
1.8 summary
reference
chapter 2 the baseline personal process
2.1 what is a process?
2.2 defining your own process
2.3 baseline process contents
2.4 why forms are helpful
2.5 the psp process elements
2.6 the psp0 process
2.7 psp0 measures
2.8 time recording
2.9 defect recording
1.1 the psp's purpose
1.2 the logic for a software engineering discipline
1.3 using disciplined development practices
1.4 operational processes
1.5 defining and using a personal process
1.6 learning to use a personal process
1.7 preparing for the team software process
1.8 summary
reference
chapter 2 the baseline personal process
2.1 what is a process?
2.2 defining your own process
2.3 baseline process contents
2.4 why forms are helpful
2.5 the psp process elements
2.6 the psp0 process
2.7 psp0 measures
2.8 time recording
2.9 defect recording
前言回到顶部↑
大多数开发组的记录是不尽如人意的,而软件组的记录尤其差。Standish组报告,一半以上的软件项目严重拖期且超过预算,而且近四分之一的项目没有完成就被取消了。只有低于30%的项目是成功的。据我了解,大多数的软件开发人员非常清楚这些问题,甚至可以解释它们的原因,如:不切实际的进度,不充分的资源和不稳定的需求。尽管这些问题是广为人知的,也不难解决,可是很少有开发人员知道如何解决它们。.
常见的推辞是面对自己的困难宋责备其他人,而一副受害者的态度是不能解决问题的。当以适当的方式着手解决这些问题时,通常可以解决它们。然而,这大概需要一些你从来没有学过的技能和实践,也需要用管理的观点来处理管理问题。我们可以用个体软件过程(PSP)获得需要的实践。本书描述了PSP,并且解释了按可预测的进度交付优良产品的实践和方法。当学习了这些技能后,就可以成为一个有资格的团队软件过程(TSP)的小组的一员。
这样的小组称为“自指导”小组,因为自己能够定义工作实践并能够与管理人员沟通他们的计划和进度。本书的最后一章描述了TSP及它是如何使你管理个人的工作的。
作为—名软件工程师
作为一个工程师应该知道怎样一致地且可预测地完成优良的工作。在美国许多州有管理工程实践的规章,那些自称工程师的人必须展示他们的专业能力,否则不被承认。大多数工程领域的建立,最初是因为公众要求防止不合格的操作,特别在建筑结构、蒸汽发电厂等领域。虽然颁发执照制度没有奇迹般地解决所有这些问题,但还是起到了很大作用。
有执照的工程师使用已知的且证明了的方法,经过测试来确保他们能够自始至终完成优良的工作。他们需要展示出来他们在生产安全产品方面的能力。有执照的工程师与其他技术工人间的差别就是工程师知道用适当的方法来执行他们的工作,这是法律的需要,而不管管理、客户或其他压力。
如果我们称我们自己为工程师,我们必须学会在可预测的进度下生产优良的产品。这需要我们学会如何始终满足我们的承诺,并且我们知道如何处理日常创造性的开发工作的挑战。软件开发是具有挑战的专业化职业,我们必须自始至终使用最好的、有用的方法来满足我们管理方面和客户的需要。
质量问题
缺乏质量管理引发许多现今的软件问题。大多数的软件专业人员在开发和最终测试期间花费近一半的时间来测试并修复他们的产品。不良质量也会导致进度问题,有缺陷的产品交付期会较长。尽管修复一些缺陷看起来好像较麻烦,可是连一些小的程序都会有上百个缺陷的话,发现和修复它们则需要花几周甚至几个月。软件质量始于开发人员本身,如果任何程序模块都有大量的缺陷的话,就很难去测试,也会花很多时间将他们集成到较大的系统中,并且还会给用户带来许多麻烦。
在编写一些小程序时,我们中间的大多数人都有很高的生产率。然而,当我们开发较大程序时,我们的生产率急剧下降。虽然开发较大的系统还及到一些额外的构架和设计工作,大多数增加的工作量是由缺陷引起的。随着程序的增大,平均花在发现和修复每个缺陷上的时间以指数倍数增加。然而,如果我们能够自始至终地编写高质量的模块化的程序,我们就会生产出更好的产品并且提高我们的生产率及组织的生产率。
一个有规范的软件工程过程包括有效地缺陷管理、全面的计划、精确的项目跟踪和报告。本书指出作为一个个体或一个TSP组成员如何使用这些规范来执行更好的开发工作。它还说明了如果想要管理自己的工作这些实践就是基础。
软件工程师的收益
在我们的生活中越来越依赖软件,安全、保密及质量要求不断增加。这意味着要求有能力的软件专业人员也随之增加。不幸的是,没有任何方法可以将软件开发人员与许多草草编出劣质代码的程序员区分开。经过了PSP训练,你可以向软件工程研究所申请一个软件专业人员正式的资格证书。这是唯一的资格,这是你与其他开发人员的区别。PSP训练也使你有资格参与到一个TSP团队,为了达到可预测的成本和承诺的进度的目的,PSP证书是确保你成为有能力生产高质量软件的潜在的雇员。还有一些PSP证书的好处,它增加了作为一个有技能的软件专业人员的认可度,同时容易获得更多信任和高薪的岗位。目前具有这样资格的开发人员可以获得更广泛选择机会,而且将来这样的需要将会更多。
哪些人应该学习PSP
现代技术工作涉及到许多专业,而且参与到开发现代产品和系统的人员来自广泛的学科。为了在可预测的进度下生产出优良的产品,这些人们的所有工作必须要计划、管理及质量控制。这意味着与系统开发相关的每个人必须知道如何执行有规范的工程工作,这也意味着做这个工作的任何一个人都会从学习PSP中获益。
虽然在这本书中列举的例子和练习是针对开发小程序的,正是因为即使是小程序,软件开发也会有丰富的可以度量和分析的过程。这使软件过程特别适合讲授有规范的工程实践。几乎任何技术领域中的大多数现代的专业人员在他们受教育期间都学过写程序,因此PSP课程适合几乎任何一个从事计划工程或技术生涯的人,而且特别适合任何一个计划在产品和系统开发中工作的人们。
本书采用的方法
随着软件及软件产品的重要性的捉高,组织对软件工程师的需要也随之增加,要求这些工程师要坚持使用规范的个人实践。为了满足这些需要,必须在我们写的每个程序中学习和坚持实践这些规范。如果我们在编写模块程序时不使用合理的开发实践,我们就几乎没有机会在写大程序时使用这些实践。
当学生开始编写程序时,通常从学习编程语言开始。他们学着解决很初级的问题,提高个人处理初级问题的技能。随着课程的增多,完善了个人的技能,并且能较快地开发模块级别较大的程序了。然而,开发小程序的技能本身就受到限制,尽管他们能够足以胜任小模块的个人任务,可是很难提供足够的基础来解决在一个项目组内的大规模、多人多任务问题。..
本书遵循着一个根本上就不同的策略而展开。它按比例调整工业界软件实践来满足模块规模程序开发的需要,然后按照一系列软件过程提供对大级别模块软件开发的合适的基础指导。通过做练习并使用本书介绍的方法,可以学会如何在自身实践中使用这些方法。一旦你掌握了这些技能并且在模块级别程序开发上应用了这些实践,就可以使用这些技能来开发大项目。虽然我们在开发大程序时还需要另外的需求、设计、实现及测试方法,但是本书中讲授一些基本的软件工程规范可以直接应用到大规模系统开发。这就是为什么一个大系统能够通过对程序模块的集成而建立起来的原因,而这些模块很像你在PSP课程中开发的程序。
常见的推辞是面对自己的困难宋责备其他人,而一副受害者的态度是不能解决问题的。当以适当的方式着手解决这些问题时,通常可以解决它们。然而,这大概需要一些你从来没有学过的技能和实践,也需要用管理的观点来处理管理问题。我们可以用个体软件过程(PSP)获得需要的实践。本书描述了PSP,并且解释了按可预测的进度交付优良产品的实践和方法。当学习了这些技能后,就可以成为一个有资格的团队软件过程(TSP)的小组的一员。
这样的小组称为“自指导”小组,因为自己能够定义工作实践并能够与管理人员沟通他们的计划和进度。本书的最后一章描述了TSP及它是如何使你管理个人的工作的。
作为—名软件工程师
作为一个工程师应该知道怎样一致地且可预测地完成优良的工作。在美国许多州有管理工程实践的规章,那些自称工程师的人必须展示他们的专业能力,否则不被承认。大多数工程领域的建立,最初是因为公众要求防止不合格的操作,特别在建筑结构、蒸汽发电厂等领域。虽然颁发执照制度没有奇迹般地解决所有这些问题,但还是起到了很大作用。
有执照的工程师使用已知的且证明了的方法,经过测试来确保他们能够自始至终完成优良的工作。他们需要展示出来他们在生产安全产品方面的能力。有执照的工程师与其他技术工人间的差别就是工程师知道用适当的方法来执行他们的工作,这是法律的需要,而不管管理、客户或其他压力。
如果我们称我们自己为工程师,我们必须学会在可预测的进度下生产优良的产品。这需要我们学会如何始终满足我们的承诺,并且我们知道如何处理日常创造性的开发工作的挑战。软件开发是具有挑战的专业化职业,我们必须自始至终使用最好的、有用的方法来满足我们管理方面和客户的需要。
质量问题
缺乏质量管理引发许多现今的软件问题。大多数的软件专业人员在开发和最终测试期间花费近一半的时间来测试并修复他们的产品。不良质量也会导致进度问题,有缺陷的产品交付期会较长。尽管修复一些缺陷看起来好像较麻烦,可是连一些小的程序都会有上百个缺陷的话,发现和修复它们则需要花几周甚至几个月。软件质量始于开发人员本身,如果任何程序模块都有大量的缺陷的话,就很难去测试,也会花很多时间将他们集成到较大的系统中,并且还会给用户带来许多麻烦。
在编写一些小程序时,我们中间的大多数人都有很高的生产率。然而,当我们开发较大程序时,我们的生产率急剧下降。虽然开发较大的系统还及到一些额外的构架和设计工作,大多数增加的工作量是由缺陷引起的。随着程序的增大,平均花在发现和修复每个缺陷上的时间以指数倍数增加。然而,如果我们能够自始至终地编写高质量的模块化的程序,我们就会生产出更好的产品并且提高我们的生产率及组织的生产率。
一个有规范的软件工程过程包括有效地缺陷管理、全面的计划、精确的项目跟踪和报告。本书指出作为一个个体或一个TSP组成员如何使用这些规范来执行更好的开发工作。它还说明了如果想要管理自己的工作这些实践就是基础。
软件工程师的收益
在我们的生活中越来越依赖软件,安全、保密及质量要求不断增加。这意味着要求有能力的软件专业人员也随之增加。不幸的是,没有任何方法可以将软件开发人员与许多草草编出劣质代码的程序员区分开。经过了PSP训练,你可以向软件工程研究所申请一个软件专业人员正式的资格证书。这是唯一的资格,这是你与其他开发人员的区别。PSP训练也使你有资格参与到一个TSP团队,为了达到可预测的成本和承诺的进度的目的,PSP证书是确保你成为有能力生产高质量软件的潜在的雇员。还有一些PSP证书的好处,它增加了作为一个有技能的软件专业人员的认可度,同时容易获得更多信任和高薪的岗位。目前具有这样资格的开发人员可以获得更广泛选择机会,而且将来这样的需要将会更多。
哪些人应该学习PSP
现代技术工作涉及到许多专业,而且参与到开发现代产品和系统的人员来自广泛的学科。为了在可预测的进度下生产出优良的产品,这些人们的所有工作必须要计划、管理及质量控制。这意味着与系统开发相关的每个人必须知道如何执行有规范的工程工作,这也意味着做这个工作的任何一个人都会从学习PSP中获益。
虽然在这本书中列举的例子和练习是针对开发小程序的,正是因为即使是小程序,软件开发也会有丰富的可以度量和分析的过程。这使软件过程特别适合讲授有规范的工程实践。几乎任何技术领域中的大多数现代的专业人员在他们受教育期间都学过写程序,因此PSP课程适合几乎任何一个从事计划工程或技术生涯的人,而且特别适合任何一个计划在产品和系统开发中工作的人们。
本书采用的方法
随着软件及软件产品的重要性的捉高,组织对软件工程师的需要也随之增加,要求这些工程师要坚持使用规范的个人实践。为了满足这些需要,必须在我们写的每个程序中学习和坚持实践这些规范。如果我们在编写模块程序时不使用合理的开发实践,我们就几乎没有机会在写大程序时使用这些实践。
当学生开始编写程序时,通常从学习编程语言开始。他们学着解决很初级的问题,提高个人处理初级问题的技能。随着课程的增多,完善了个人的技能,并且能较快地开发模块级别较大的程序了。然而,开发小程序的技能本身就受到限制,尽管他们能够足以胜任小模块的个人任务,可是很难提供足够的基础来解决在一个项目组内的大规模、多人多任务问题。..
本书遵循着一个根本上就不同的策略而展开。它按比例调整工业界软件实践来满足模块规模程序开发的需要,然后按照一系列软件过程提供对大级别模块软件开发的合适的基础指导。通过做练习并使用本书介绍的方法,可以学会如何在自身实践中使用这些方法。一旦你掌握了这些技能并且在模块级别程序开发上应用了这些实践,就可以使用这些技能来开发大项目。虽然我们在开发大程序时还需要另外的需求、设计、实现及测试方法,但是本书中讲授一些基本的软件工程规范可以直接应用到大规模系统开发。这就是为什么一个大系统能够通过对程序模块的集成而建立起来的原因,而这些模块很像你在PSP课程中开发的程序。

点击看大图

加载中...
