词条 | 软件过程管理 |
释义 | 作为一个新的研究领域,软件过程管理是提高软件生产率和保证软件质量的一个重要的方法,正日益受到学术界和工业界的关注,并开发了一些软件过程的集成环境以提供相应的支持。 书名:软件过程管理 作者:美。瓦茨。S.汉弗莱 类别:计算机 出版社:计算机 基本信息原书名: Managing the Software Process 原出版社: Addison-Wesley 作者: Watts S. Humphrey [作译者介绍] 译者: 高书敬[同译者作品] 顾铁成 胡寅 丛书名: 卡内基·梅隆大学软件工程丛书 出版社:清华大学出版社 ISBN:7302061661 上架时间:2003-4-28 出版日期:2003 年3月 开本:16开 页码:508 版次:1-1 所属分类: 计算机 > 软件工程及软件方法学 > 综合 教材 > 研究生/本科/专科教材 > 工学 > 计算机 教材 > 计算机教材 > 本科/研究生 > 计算机专业 > 计算机专业课程 > 软件工程 内容简介本书为能力成熟度模型(CMM)奠基之作。以软件过程管理为核心,围绕软件过程改进的5个方面展开描述,循序渐进地提出软件过程改进模型,为软件开发组织提高管理能力提供了引路的"灯塔"。本书首先描述了软件过程管理框架及其在软件过程评估中的作用,阐述了开始有效过程改进的步骤;其次确定了软件过程管理所需要的活动;接着又提出相关概念,确定开发过程和管理及控制过程所需要的技术和管理;随后介绍了对软件过程进行量化控制的方法;最后引导人们如何防患于未然,将工作重心从解决问题转移到预防问题。 本书是美国卡内基·梅隆大学软件工程研究所推荐教材,适合软件学院和高校计算机相关专业的软件工程相关课程使用。亦是软件开发人员和开发经理的提高级读物。 作译者作者瓦茨·S·汉弗莱(Watts S. Humphrey)教授,在IBM工作了27年,负责管理IBM全球产品研发。离任后,受美国国防部委托,加入卡内基·梅隆大学软件工程研究所(SEI),领导SEI过程研究计划,并提出了能力成熟度模型(CMM)思想。在CMM浪潮席卷软件工业界之时,他又力推个人软件过程(Personal Software Process,PSP)和团队软件过程(Team Software Process,TSP),成为软件开发人员和开发团队的自修宝典。 瓦茨·S·汉弗莱在软件工程领域享有盛誉. 目录第Ⅰ部分 软件过程成熟度 第1章 软件成熟度框架 1.1软件过程改进 1.2过程成熟度级别 1.3优化过程中的人员 1.4对优化过程的需求 1.5小结 参考文献 第2章 软件过程改进的原则 2.1过程透视 2.26项基本原则 2.3对软件过程的一些常见误解 2.4实施软件过程改进的策略 2.5小结 参考文献 第3章 软件过程评估 3.1评估概述 3.2评估阶段 3.35项评估原则 3.4评估过程 .3.5评估实施 3.6实现考虑 3.7小结 参考文献 第4章 初始过程 4.1初始过程的特征 4.2一个浑沌项目的案例研究 4.3软件组织浑沌的原因 4.4软件过程熵 4.5出路 4.6小结 参考文献 第Ⅱ部分 可重复过程 第5章 软件组织管理 5.1承诺规章 5.2管理系统 5.3建立项目管理系统 5.4小结 参考文献 第6章 项目计划 6.1制定项目计划的原则 6.2项目计划内容 6.3规模度量 6.4估计 6.5影响生产率的因素 6.6进度安排 6.7项目跟踪 6.8开发计划 6.9计划模型 6.10最后的考虑事项 6.11小结 参考文献 第7章 软件配置管理(一) 7.1配置管理的意义 7.2软件产品术语 7.3基本的配置管理功能 7.4基线 7.5配置管理职责 7.6对自动化工具的需求 7.7小结 参考文献 第8章 软件质量保证 8.1质量管理 8.2SQA的作用 8.3启动SQA程序 8.4SQA计划 8.5SQA需要考虑的问题 8.6SQA人员 8.7独立的验证和确认 8.8小结 参考文献 第Ⅲ部分 已定义过程 第9章 软件标准 9.1定义 9.2定义软件标准的原因 9.3标准的效益 9.4主要标准举例 9.5软件标准的建立 9.6标准与指南 9.7小结 参考文献 第10章 软件审查 10.1评审的类型 10.2审查的目标 10.3审查的基本原则 10.4审查的实施 10.5审查的培训 10.6报告和跟踪 10.7需要考虑的其他问题 10.8启动审查程序 10.9未来的方向 10.10小结 参考文献 第11章 软件测试 11.1定义 11.2软件测试的原则 11.3软件测试的类型 11.4测试计划 11.5测试开发 11.6测试的执行和报告 11.7测试的工具和方法 11.8实时测试 11.9测试的组织 11.10小结 参考文献 第12章 软件配置管理(二) 12.1软件配置管理计划 12.2软件配置管理的问题 12.3SCM支持功能 12.4需求阶段 12.5设计控制 12.6实现阶段 12.7操作数据 12.8测试阶段 12.9对工具的配置管理 12.10配置记录 12.11软件配置审计 12.12小结 参考文献 第13章 定义软件过程 13.1过程标准 13.2定义 13.3软件过程模型的层次 13.4模型的规定和描述性使用 13.5软件过程构架 13.6软件过程的关键问题 13.7初级过程构架 13.8更大的过程模型 13.9详细的过程模型 13.10实体过程模型 13.11过程模型视图 13.12过程定义的建立和使用 13.13基本的过程指导原则 13.14小结 参考文献 第14章 软件工程过程组 14.1软件过程的变更 14.2SEPG的作用 14.3建立标准 14.4过程数据库 14.5技术引入的焦点 14.6教育和培训 14.7过程咨询 14.8过程状态和评估 14.9建立SEPG 14.10小结 参考文献 第Ⅳ部分 已管理过程 第15章 数据采集和分析 15.1数据采集的原则 15.2数据采集过程 15.3软件度量 15.4数据分析 15.5需要考虑的其他问题 15.6小结 参考文献 第16章 软件质量管理 16.1质量管理的模式 16.2质量管理举例 16.3进行质量管理的动因 16.4度量准则 16.5建立软件质量计划 16.6软件质量评估 16.7清除错误的效率 16.8质量目标 16.9质量计划 16.10软件质量的跟踪和控制 16.11小结 参考文献 第Ⅴ部分 优化的过程 第17章 缺陷预防 17.1缺陷预防并非新话题 17.2软件缺陷预防的原则 17.3改进过程以预防缺陷 17.4缺陷预防应考虑的问题 17.5管理层的作用 17.6小结 参考文献 第18章 软件过程的自动化 18.1对软件自动化的需求 18.2什么需要自动化 18.3开发环境 18.4组织的自动化计划 18.5技术转换 18.6一些特殊考虑事项 18.7生产率 18.8关于申请理由方面的考虑 18.9小结 参考文献 第19章 软件合同的签订 19.1软件合同的签订 19.2软件合同的协商 19.3对软件合同进行有效管理的原则 19.4软件合同的管理 19.5过程证明 19.6技术领导 19.7小结 参考文献 第20章 结论 20.1软件过程改变的框架 20.2对软件过程改变所遇阻力的管理 20.3下一步该做什么 20.4最后的评论 参考文献 附 录 附录A. 软件过程成熟度框架 附录B. 软件工程研究所评估协议 附录C .实施软件审查 名词对照表 译者序总 序 ——为清华大学出版社出版"SEI软件工程译丛"而作 美国卡内基·梅隆大学软件工程研究所(CMU/SEI)是美国联邦政府资助构建的研究单位,由美国国防部主管。他们确认,为了保证软件开发工作的成功,由软件开发人员、软件采办人员和软件用户组成的集成化团队必须具有必要的软件工程知识和技能,以保证能按时向用户交付正确的软件。所谓"正确的"就是指在功能、性能和成本几个方面都能满足用户要求且无缺陷;所谓"无缺陷"就是指在编码后对软件系统进行了彻底的穷举测试并修复了所有的缺陷,或保证所编写的代码本身不存在缺陷。 CMU/SEI为了达到这个目的,提出了创造、应用和推广的战略。这里的"创造"是指与软件工程研究社团一起,共同创造新的实践或改进原有的实践,而不墨守成规。这里的"应用"是指与一线开发人员共同工作,以应用、改进和确认这些新的或改进的实践,强调理论联系实际。这里的"推广"是指与整个社团一起,共同鼓励和支持这些经过验证和确认的、新的或改进的实践在世界范围内的应用,通过实践进行进一步的检验和提高。如此循环,往复无穷。 他们把所获得的成就归纳为两个主要领域。一个是倡导软件工程管理的实践,使软件组织在采办、构建和改进软件系统时,具有预测的能力与控制质量、进度、成本、开发周期和生产效率的能力。另一个是改进软件工程技术的实践,使软件工程师具有分析、预测和控制软件系统属性的能力,其中包括在采办、构建和改进软件系统时,能进行恰当的权衡,作出正确的判断和决策。CMU/SEI通过出版软件工程丛书,总结他们的研究成果和实践经验,是推广这两个领域经验的重大举措。 SEI软件工程丛书由CMU/SEI和Addison Wesley公司共同组织出版,共分4个部分:计算机和网络安全(已出版了2本著作),工程实践(已出版了8本著作),过程改进和过程管理(已出版了11本著作),团队软件过程和个体软件过程(已出版了3本著作)。前两者属于软件工程技术实践,后两者属于软件工程管理实践。目前这4个部分共出版了24本著作,以向软件工程实践人员和学生方便地提供最新的软件工程信息。这些著作凝聚了全世界软件工程界上百位开拓者和成千上万实践者的创造性劳动,蕴含了大量的宝贵经验和沉痛教训,很值得我们学习。 清华大学出版社邀请我和郑人杰教授共同组织SEI软件工程译丛编委会。清华社计划首先影印6本著作,翻译出版15本著作。据我所知,在Addison Wesley公司出版的SEI软件工程丛书中,人民邮电出版社已经翻译出版了《个体软件过程》和《团队软件过程》,还拟影印出版《个体软件过程》和《软件工程规范》;电子工业出版社已经翻译出版了《净室软件工程的技术与过程》、《能力成熟度模型CMM 1.1指南》、《能力成熟度模型集成CMMI》和《软件项目管理》;北京航空航天大学出版社已经翻译出版了《统计过程控制》。这些出版社共计影印2本著作,翻译出版7本著作。这样,可以预期我国在今年年底共可影印8本著作,翻译出版22本著作。各个出版社的有远见的辛勤劳动,为我们创造了"引进、消化、吸收、创新"的机遇。我们应该结合各自的实践,认真学习国外的先进经验,以大大提高我国软件工程的理论和实践水平。 在这套丛书中,特别值得一提的是,在过程工程领域被誉为软件过程之父的Humphrey先生所撰写的《软件过程管理》、《技术人员管理》、《软件工程规范》、《个体软件过程》、《团队软件过程》和《软件制胜之道》等6本著作,将于今年年内全部翻译出版,其中《软件过程管理》、《技术人员管理》、《软件工程规范》、《个体软件过程》和《软件制胜之道》这5本著作亦已经或将于今年年内影印出版。 《软件过程管理》是软件过程领域的开创性著作,是为软件公司经理和软件项目经理撰写的。用这本书提出的原理来指导软件开发,可以有效地按照预定进度得到高质量的软件,同时还可了解如何持续进行过程改进。美国CMU/SEI按照这本书提出的原理开发了能力成熟度模型,在国际上得到绝大多数国家的认可和广泛采用,是改进软件过程能力的有力武器。在信息技术迅速发展和企业激烈竞争的今天,能否持续改进过程往往决定企业的命运。 作为一个软件经理,在改进组织的能力之前,首先必须明确绝大多数软件问题是由管理不善所引起的。因此,要改进组织的性能,首先需要改进自己的管理模式。同时还要认识到软件开发是一项智力劳动,需要拥有掌握高技能和忘我工作的技术人员。因此,有效的软件管理需要充分注意技术人员的管理。 《技术人员管理》这本著作就是为达到这个目的而撰写的。高质量的技术工作要求没有差错,这就要求人们高度专心和高度献身。因此要求人们对他所从事的工作不仅具有高度的责任感,而且具有浓厚的兴趣和高度的热忱。在当前知识经济群龙相争的今天,一个能激励人们进行创造性工作的领导群体,是众多竞争因素中最重要的因素。本书提供了大量的实用指南,可用来有效地改进工程人员、经理和组织的性能。 Humphrey先生还认为这本书特别适合于在我国工作的软件经理。我国是一个人口大国,拥有大量能干的知识分子,而且信息领域的劳动力价格比国际市场的价格要低,因此吸引了许多国家到我国来投资。但若不提高人员的素质,不在产品质量和进度方面也狠下功夫,就不能在这方面持续保持优势。 《软件工程规范》是为编程人员撰写的。它精辟地阐述了个体软件过程(PSP)的基本原理,详尽地描述了人们如何来控制自己的工作,如何与管理方协商各项安排。在软件工程界,这本著作被誉为是软件工程由定性进入定量的标志。目前在世界范围内,有成千上万的软件工程技术人员正在接受有关PSP的培训,以便正确地遵循PSP的实践、开发和管理工作计划,在他们承诺的进度范围内,交付高质量的产品。 《软件制胜之道》这本著作描述了团队软件过程的基本原理,详尽地阐述了在软件组织中如何应用PSP和TSP的原理以及它所能带来的效益。此外,虽然CMM同样适用于小型组织,但在其他著作中都没有描述如何应用CMM于个体或小型团队,这本书填补了这个空白。应该指出,如果一个组织正在按照CMM改进过程,则PSP和TSP是和CMM完全相容的。如果一个组织还没有按照CMM改进过程,则有关PSP和TSP的训练,可以为未来的CMM实践奠定坚实的基础。 在软件工程技术实践方面目前共出版了10本著作,其中《用商业组件构建系统》、《软件构架实践》和《软件构架评估--方法和案例研究》等3本著作详尽地阐述了软件构架的构建、实践和评估。鉴于是否有一个稳定的软件构架,对软件的质量和成本影响很大,因此如何获得一个良好的构架就成为当今软件界研究的重点。我相信这几本著作的出版,将对我国软件构架领域的研究与实践有重要的参考价值。此外,众所周知,计算机与网络的安全问题对信息系统的可靠使用关系极大,《CERT安全指南--系统与网络安全实践》的出版将会对我国在这一领域的研究和实践起积极的促进作用。《风险管理--软件系统开发方法》、《软件采办管理--开放系统和COTS产品》、《项目管理原理》、《软件产品线--实践和模式》和《系统工程--基于信息的设计方法》等5本著作,分别从风险管理、软件采办、项目管理、软件产品线以及信息系统设计方法等几个方面阐述了大型、复杂软件系统的开发问题,是有关发展软件产业的重要领域,很值得我国软件产业界借鉴。 目前我们所处的时代是信息化时代,是人类进入能够综合利用物质、能量和信息三种资源的时代。千百年来以传统的物质产品的生产、流通、消费为基本特征的物质型经济,将逐步进入以信息产品的生产、流通、利用和消费为基本特征的知识型经济。在这个历史任务中,建造和广泛应用各类计算机应用系统是其公共特征。计算机软件是计算机应用系统的灵魂,没有先进的软件产业,不可能有先进的信息产业,从而也不可能建成现代化的知识型经济。 我们应该看到,在软件领域中我国在总体上离世界先进水平还有相当大的差距。但是,我们不能跟随他国的脚印,走他人的老路。我们应该抓住机遇,直接针对未来的目标,在软件工程技术和软件工程管理两个方面,注意研究SEI软件工程丛书中倡导的原理和方法,联系实际,认真实践,并充分利用我国丰富优秀的人力资源和尊重教育的优良传统,大力培养各个层次的高质量的软件工程人员,使其具有开发各类大型、复杂软件系统的能力。我衷心地预祝清华大学出版社影印和翻译出版这套丛书,在把我国建设成为一个真正现代化的软件产业大国的历史任务中起到推波助澜的作用,并请读者在阅读这些译著时,对这套丛书的选题、译文和编排等方面都提出批评和建议。 周伯生 于北京 2002年8月18日 前言如果您不知道要去哪里,走任何一条路都可以。 ——中国谚语 如果您不知道身在何处,任何地图都与事无补。 ——瓦茨·S·汉弗莱 软件工程学的发展在为软件开发带来效益的同时,尚有许多方面不尽如人意。面对软件开发领域的巨大挑战,我们仍然举步维艰,许多软件开发过程常常跌入可怕的深渊。从美国来说,软件开发的状况和水平亟待改进,分清轻重缓急,制定一个变更计划也迫在眉睫。制定此类计划时,要求我们认清现状,明确目标,这便是本书的主题。 确定软件过程的现状似乎看是一件微不足道的小事,事实上并非如此。准确定义软件过程现状,要求我们有一套评价标准、一个度量框架以及对其他许多工作提出要求。明确现状是正确解决问题的前提。要衡量一个软件组织的能力,方法之一是观察该组织在危机时刻的表现。危机时刻最需要优秀实践的时候,同时也是软件人员最缺乏指导的时候。本书将帮助读者回答如下问题: (1)当前的软件过程处于什么水平? (2)必须做什么才能改进过程? (3)从哪里着手? 本书取材于卡内基·梅隆大学软件工程研究所的一项美国空军项目的研究成果。这项研究的目的在于为军方选择合格的软件供应商提供正确的指导。 事实证明,评价软件供应商优劣的方法同样适用于评估其他软件组织。本书阐述了评估中发现的、对于改进软件过程十分重要的技术和管理话题。 书中的各个话题都和软件过程管理的基本原则相关。本书的目的在于为读者提供一个软件开发过程评估和改进框架及相关技术,而非单纯地提供一套特定的解决方案,这与学习如何阅读和具体去读某个故事之间的区别相似。软件领域是一个新的领域,很多新的工具和方法将会相继产生。本书阐述的技术基于数世纪以来一直推动科学和工程技术进步的、持续有效的原则。这些原则为学习和改进软件工程过程构建了一个强大的概念框架。 个人、团队和大军 软件开发的历史是一个规模不断扩大的历史。初期少数几个人可以手工编写一些小程序,但这种生产能力很快便难以满足发展的要求。由一打、两打专业人员组成的团队应运而生,但软件开发的成功却变得含糊了。在很多组织解决了小型系统问题的同时,软件开发的规模在继续扩大。今天,大型的项目需要很多团队协同工作。软件开发的复杂程度已经不允许我们靠直觉及时解决问题,我们急需更有条理的软件过程管理方法。 我们发现过程改进方法既适用于大型项目,也适用于较小的项目,事实上稍作简化,这套方法也非常适用于个人编程。这一点很关键,如果不能为单个的专业人士服务,它就失去了生命力。 人才和软件过程 在任何软件组织中,人都是最重要的因素。找到优秀人才是至关重要的第一步。软件开发人员水平越高、经验越丰富,产出一流产品的可能性就越大。 竭尽所能找到优秀人才之后,下一步该做什么呢?如果每个人都使用不同的编程语言,使用不同的约定,或者更改设计和编码时不与他人协调,结果就只能是一团糟。成功的软件组织已经认识到,即使最优秀的专家也需要一个结构化、制度化的环境,这样的环境是保证团队协作的前提。 在没有建立这些规则的软件组织中,员工经常无休止地重复处理技术细节问题。也许挑战性的工作正等待处理,可是人们已经被堆积如山的、失控的细节问题压得无暇顾及。除非这些细节问题得到严格的管理,否则最优秀的人也无法有所作为。一流的人才是基础,但只有在有序的过程支持下,一流人才才能完成一流的工作。 超级程序员的神话 人们通常认为,几个软件高手远比普通的软件团队工作更有成效,这就是说,这些高手凭直觉就能知道如何完成一流的工作,任何有序的过程框架都是多余的。果真如此的话,拥有优秀人才的软件组织就不会存在软件质量和生产能力方面的常见问题。事实上,一些国内领先的软件组织一直在最好的计算机院校招聘高材生,这些组织的员工都是当时最好的人才,但他们所在的软件开发组织和其他软件组织一样,面临着同样的问题。看来超级程序员方法需要的是更优秀的人才,即使在一流大学里也找不到。很显然,这种靠超级高手解决软件问题的想法,充其量只能是一个理论上的解决方案,没有任何现实意义。吸引优秀人才固然重要,但通过对软件过程的有效管理,为优秀人才提供支持也必不可少。 过程和技术 另一个神话是一种广泛流传的观点,认为某些技术先进的工具和方法可以魔术般地消除软件危机。这种观点不仅错误,而且危险。长期的改进离不开技术,但是不加思考地依赖虚无飘渺的"银弹" ,会使人们的注意力偏离追求更好的过程管理。 当问及面临的关键问题时,很少会有软件专业人士提到技术。他们担心的问题主要涉及到没完没了的需求、对系统的修改失控、随意的进度安排、测试时间不足、缺乏培训以及未经管理的系统标准等。他们还会提到使用电脑的时间有限、终端不足、工具质量低劣等问题,但是这些问题大多与管理有关,而非单纯的技术问题。 几方面的因素都制约了软件技术的高效运用:过程定义不清、技术实施不协调以及过程管理不善等。在这些问题得到足够重视之前,软件技术不可能充分发挥作用。 本书主要阐述软件过程管理。软件过程是将用户的需求转化为有效的软件解决方案的一系列活动,许多软件组织无法正确定义和控制这一过程,但这恰恰是组织改进的关键,也是本书关注的焦点。 本书概览 本书分5个部分,分别涵盖软件过程改进的5个不同的方面。 编排的顺序和书中阐述的软件过程改进模型一致,这一模型已经为一批领先的软件组织提供了适用的过程改进框架。 每个部分中的各章和相应改进阶段的关键要素对应。根据第1章中提出的成熟度框架,软件组织可以确定自身目前所处的阶段, 从而明确应从何处开始实施改进活动,然后根据后文相应的内容,确定过程改进的重点和步骤。例如处于1级的组织,应当集中关注第II部分的内容, 处于2级的组织,应当重视本书第III部分的内容。 值得注意的是,很多软件问题是相互关联的,一些内容几乎贯穿软件活动的所有阶段。过程管理的关键问题是优先顺序,不仅要知道改进应关注的问题,还要清楚谁先谁后。本书的逻辑结构也是按照管理的优先次序编排的。例如,在第III部分强调标准,并不代表标准问题在已定义过程阶段之前、之后都不重要,而是表明在第III部分,标准需要优先得到管理层的关注。 本书每部分都简要概述了当前部分的主要话题以及这些话题在当前阶段的过程改进中的重要性。 本书5个部分的内容简述如下: 第I部分"软件过程成熟度",描述了软件过程管理框架及其在软件过程评估中的作用,阐述了开始有效过程改进的步骤。 第II部分"可重复过程",概述了确立对软件过程的基本控制所需要的活动,这些活动可以保证过程持续有序地改进所需要的稳定性。 第III部分"已定义过程",阐述如何确定开发过程以及控制该过程所需要的技术和管理方面的概念。软件开发是一个难以预料的过程,一个已定义过程有助于有条不紊地应对突发事件。 第IV部分"已管理过程",介绍了对软件过程的量化控制方法。在本阶段,通过收集和分析数据,可以做到对质量和过程的量化管理。量化管理是指导我们准确把握工作任务的工具,是准确控制活动的方法,是持续改进的正确基础。 第V部分"优化的过程",代表了软件过程进化的最高级别;它将人们关注的焦点从解决问题转移到预防问题。在这一级别上,软件经理和专业技术人员学会利用量化的过程方法,发挥技术作用,达到质量和生产能力的持续改进。 本书阅读方法建议 本书的编排顺序适合从头至尾阅读。读者如果想从总体上了解本书的内容,可先阅读第1章、第19章、第20章,然后再读其他各章最后的小结,这样就可以从总体上认识当前的软件问题和未来的过程目标。然后,从本书的开头开始,结合所在组织在软件过程改进实践中的进展,逐步往后阅读。 致 谢 1986年从IBM退休之前,我有幸和很多充满激情的同事一起工作,承担了许多具有挑战性的任务。这主要应归功于Vin Learson,是他委派我负责开发早期的IBM 360系统软件。当时,大型软件开发对我们来说属于新生事物,但是,与世界上所有其他软件组织相比,才华出众的IBM软件开发团队具有更丰富的系统编程经验。虽然碰到了很多问题,但他们的工作仍然相当出色。对其能力的最好赞扬,是兼容360系统的竞争者家族的日益增大,这些竞争者的基本策略就是要在其产品中使用IBM专家开发的系统软件。模仿是最真诚的恭维,显然这些人的工作极其出色,没有这些尽心尽力的高素质专业人士,没有英明的企业管理,我是不可能完成这项任务的。在各方的支持下,这段时间的工作不仅使我获得了丰富的经验,而且给了我深刻的启迪。 这个项目之后,我曾在很多技术领导手下工作过。在控制和改进IBM软件开发的过程中,George Kennard,Earl Wheeler和Jack Kuehler曾给了我极大的支持和指导,在此感谢这些领导,并向在IBM的27年中,与我共同工作、对我提供支持的经理和专家们致谢。 本书在编写过程中,参考了很多专家已发表的大量观点和经验,其中Fred Brooks和Barry Boehm的观点和本书的理念十分相近,在此一并感谢。很多专家对本书的影响都很大,尤其是Joel Aron,Vic Bassili,Edsger Dijkstra,Mike Fagan,Harlan Mills和Gerry Weinberg,通过阅读他们的著作,我更深刻地理解了自身的经验,本书也试图吸取他们各种理念的精髓。为我所取得的一切,向他们致以深切的谢意。在本书的概念框架中,有一部分以W. E. Deming和J. M. Juran的开拓性研究成果为基础。20世纪50、60年代,他们倡导的统计质量控制,在汽车、照相机、钢铁、造船和电子等领域,把日本的工业推动到世界领先水平。近期的很多的研究表明,他们提出的理念同样适用于软件。 还必须感谢我的很多同事,他们慷慨地抽出时间审阅本书手稿,并提出了有价值的建议。特别感谢Jon Bently,Bob Goldberg,Rich Pethia,Al Pietrasanta,Bill Riddle和Glenn Secor,他们分别对本书的部分和全部内容进行了全面独到的评审。还要感谢其他很多人,他们花费了大量的时间,审阅本书的一章或数章,提出了有益的评论和建议。他们是:Rodger Blair,Maribeth Carpenter,Currie Colket,Susan Dart,Betty Deimel,Jo Delgado,Ken Diamond,Larry Druffel,Bob Glass,John Goodenough,Mark Kellner,Dave Kitson,Jhon Maher,Steve Masters,Don O Neill,Mark Paulk,Jim Tomayko,Jay Warshowski,Jim withey和Janet Yodanis。同时感谢其他所有提供建议、评论和鼓励的人。正如在软件开发过程中,没有评审的支持,一个人的工作就会局限于个人的能力一样,评审员在花费时间进行评审的同时,让我们共享了他的才华和智慧,期盼我们可以取得更大的成就。所以我深切地感谢所有曾经如此慷慨的人们,相信本书会充分体现他们的智慧和经验的价值。特别感谢Peter Freeman,感谢他有益的审稿意见并为本书撰写前言。 Addision Welsey的出版商Peter Gordon、Helen Goldstein 和Helen Wythe也对本书提供了极大的帮助。Michael Bass、Ellen Silge、Randy Miyake 和Julie Anjos在手稿编辑和成书过程中提供了非常重要的指导和支持,从而使这项工作比我预想得容易一些。Dorothy Josephson同样对我帮助很大,她是一位很能干的秘书,负责安排会晤、分发手稿、处理来往书信以及大量十分占用作者时间的杂事。 最后,必须感谢我的妻子芭芭拉的帮助和鼓励。在我牺牲周末超时工作、撰写本书的时候,她从不抱怨。没有她的支持,我不可能完成本书的撰写。 瓦茨·S·汉弗莱 宾夕法尼亚,匹茨堡 序言"软件危机"已经消亡! 您可能会问,"软件危机是什么时候消亡的?"。很多人尚未注意到这一事实,我们也的确无法确定软件危机消亡的准确日期。但是软件开发领域的现实显然已今非昔比。 本书就是我所看到的这种变化的最好佐证之一。 20多年来,我们已经耳闻目睹并深深陷入困扰我们的一系列可怕情形,并把它解释为"软件危机",但我更愿意用"关键时刻"或"转折点"来解释"危机"这个术语。虽然很多可怕的情形(超支、逾期、质量低劣、不合理预期)仍然出现在我们的四周,但在我们眼中,软件已不再是令人束手无策的洪水猛兽。我们相信,在正确的条件下,可以像管理其他困境一样来管理软件。 曾经担任过软件经理,现在是开发过程领域的求知者的瓦茨·汉弗莱(Watts Humphrey),凭借自己丰富的经验深刻地认识到,构造软件的过程并不是铁板一块,而是各有千秋,而且永远如此。本书的中心主题明确地指出,我们可以采用某种方式,对不同开发组织中观察到的哪些差别进行分类,从而找出一个软件过程成熟度级别的序列。 理解成熟度的不同级别,是决定我们身在何处、何去何从的前提条件,是从浑沌的软件开发过程向更加严格管理和控制的过程进化的关键。这也是本书--一本流畅易读、基础坚实、务实性强的专著--的主题。它将帮助我们把握软件管理的精髓,找出软件管理对策,驱散笼罩着软件过程管理转折点(或危机)的迷雾。 危机万岁! 彼得·弗里曼(Peter Freeman) 加州拉瓜那海滩 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。