本书探讨了Rational统一过程、敏捷过程与微软过程三种目前软件界最具影响力的软件开发过程各自的优势与不足,帮助软件开发企业从中进行选择。本书首先分析了瀑布模型、螺旋模型等传统的软件生命周期模型在解决现代软件产业困境方面存在的局限性,提出走出现代软件产业困境需要如Rational统一过程、敏捷过程与微软过程的“软件过程模式”。接着围绕软件过程模式中的生命周期、人员、方法与产品四大要素及相互关系,分别剖析了三种软件过程的原则规范、思想本质、存在的优点和缺陷及适用的软件项目类型。阐述过程注重深入浅出、理论联系实际,既有抽象的思想分析,又有生动的实际案例对原则的内涵及运用方法进行诠释;既有成功的项目实践经验介绍,又有失败的项目教训总结。本书最后在综合吸收三种软件过程的优点、克服其缺点的基础上,提出一种新的集成过程模式,并指出:该模式也不是一种放之四海皆准的软件过程模式,任何软件项目都应根据项目的具体需求和环境对选用的软件过程模式进行适当地裁剪或扩充,寻求最适于该项目的、专用的最佳软件过程。本书可作为高等院校计算机及相关专业的研究生和本科高年级学生的教材,也可作为软件开发人员、项目经理、企业领导选择和实施Rational统一过程、敏捷过程与微软过程的快速指南和简明参考资料。本书前言软件项目开发曾被喻为“野马”。目前在软件界,最有能力驾驭这匹“野马”的三种软件开发过程是Rational统一过程、敏捷过程与微软过程。如果开发人员、项目经理、企业领导希望在自己的软件项目或企业组织中引入软件开发过程,究竟应该选择哪一种?这三种软件开发过程究竟孰优孰劣?本书即探讨了这些问题。本书主要内容和结构安排第1章为绪论。分析了瀑布模型、螺旋模型等经典的软件生命周期模型在解决现代软件产业困境方面存在的局限性,提出走出现代软件产业困境需要诸如Rational统一过程、敏捷过程与微软过程这类“软件过程模式”。第2~4章围绕软件过程模式中的生命周期、人员、方法与产品四大要素及相互关系,在三个章节中分别剖析了Rational统一过程、敏捷过程与微软过程三种软件过程的原则规范、思想本质、三者对比存在的优缺点和相互关系,以及适用的软件项目范围。每种过程的阐述深入浅出、理论联系实际,既有抽象的原则思想分析,又有形象生动的实际案例,对原则内涵及运用方法进行诠释;既有成功的项目实践经验介绍,又有失败的教训总结。第5章在综合比较吸收前三章给出的三种软件过程各自的优点、同时克服相应缺点的基础上,提出一种新的集成过程模式,同时指出:集成过程模式也不是一种放之四海皆准的软件过程模式,任何软件项目都应根据项目的具体需求和环境对选用的软件过程模式进行适当地裁剪或扩充,寻求适于该项目的、专用的最佳软件过程。本书特色相对其他软件开发过程方面的书籍,本书具有如下特色。1.先进性、前沿性和实用性本书跟踪全球软件界最新的软件过程方法技术和实践经验,分析了三种软件开发过程:Rational统一过程、敏捷过程与微软过程。这三种软件开发过程是目前在软件学术界最具影响力,同时也是软件企业界目前最受欢迎、正在使用或正准备使用的三种软件过程。这三种软件开发过程所具有的先进性、前沿性和实用性与它们的创立者密切相关。其中:“Rational统一过程”由专业化的软件过程产品提供商:Rational公司提出并维护,该公司聚集了面向对象领域三位杰出的专家GradyBooch、JamesRumbaugh和IvarJacobson,他们也是面向对象开发的行业标准语言——UML(UnifiedModelingLanguage,统一建模语言)的创立者,整个Rational统一过程(RUP)从最初的Ericsson(爱立信)方法到最终的RUP的发展史实质就是一部Rational公司对现代软件开发中诸多最佳实践经验三十多年的跟踪捕获史;“敏捷过程”则是2001年2月由17个软件方法学家组织成立的敏捷软件开发联盟提出的软件开发准则,其目的是矫正某些官僚、烦琐的软件过程;“微软过程”则是由世界上最大、也是最成功的软件公司:微软公司根据自身三十多年软件开发的经验总结而成,微软自身的巨大成功说明了该过程的实用性与有效性。2.独特性国内外目前已有一些专门独立论述这三种软件开发过程的书籍资料。然而,对于希望在自己的软件项目或企业组织中引入软件开发过程的开发人员、项目经理、企业领导而言,摆在他们面前的一个更现实的问题是:这三种软件开发过程究竟孰优孰劣?究竟应该选择哪一种?至今尚未有一本书籍将这三种软件开发过程综合在一起进行对比论述,并给出以上问题的答案。本书填补了这一空白,从软件过程模式角度,纵横捭阖,对比分析了Rational统一过程、敏捷过程、微软过程三种软件过程的原则规范、思想本质、存在的优点和缺陷、三种软件过程的相互关系以及各自适用的软件项目范围。3.综合性本书综合吸收了国内外同类书籍的优秀成果,主要参考书籍包括:*《统一软件开发过程》[6]该书由Rational公司面向对象领域的三位大师IvarJacobson,GradyBooch,JamesRumbaugh合著而成。他们也是UML的创立者。*《敏捷软件开发:原则、模式与实践》[8]该书由RobertC.Martin(美)著,并于2003年6月荣获美国《软件开发》杂志举办的第13届Jolt大奖。*《微软开发过程与案例》[12]该书由微软中国研究院的项目经理和开发人员根据在微软公司的亲身软件开发实践总结而成。该书在浙江大学作为试用教材,获得了极大的成功。4.理论的严谨性本书首先分析了瀑布模型、螺旋模型等传统的软件生命周期模型在解决现代软件产业困境方面存在的局限性,在对最新的软件开发实践经验进行分类整理和加工提炼的基础上,提出一个新的有关软件过程的概念:软件过程模式。相对软件生命周期模型,软件过程模式更全面、深刻、细致地反映了软件过程中的各个层面和各个环节,是对软件生命周期模型的补充和发展。接下来,本书从软件过程模式的四要素及相互关系的角度分析三种典型的软件过程模式:Rational统一过程、敏捷过程与微软过程,使读者能条分缕析、纲举目张地迅速而准确地把握这些软件过程的思想本质、原则规范以及各自的优缺点和适用范围,最终能在自己的软件开发项目中对各种软件过程模式进行选择、取舍、结合、定制,得到适于该项目的、专用的最佳软件过程。5.理论紧密联系实际本书对各种软件过程模式进行阐述时,既有抽象的理论原则分析,同时又引用和列举了大量生动的实际案例,对每种理论的原则内涵及运用方法进行诠释。这些案例既有成功的项目实践经验,又有失败的教训总结,特别在最后一章,从集成软件过程模式的角度汇总了软件业中常见的错误实践和规避策略。6.融合了编者多年在企业进行软件开发的心得软件是一门实践性的学科,正如俗语所说,“纸上得来终觉浅”。本书是编者对自身多年在不同规模的企业中参与或大或小的项目实践的感悟。7.教学与参考价值本书论述深入浅出,理论联系实际,且每章后均附有习题,因此适合作为高等院校计算机及相关专业研究生和本科高年级学生的教材,也可作为一些高级进修班的培训教材。参考学时为32学时。本书亦可作为软件开发人员、项目经理、软件企业领导的案头参考书籍。本书作为教材的试用效果本书的原稿作为讲义,在全国35所示范性软件学院之一——湖南大学软件学院的脱产和在职研究生班进行了试讲,学生们反响热烈,尤其是对于那些有过几年甚至十几年工作经历的在职研究生(他们当中有些已经是大中型项目的项目经理和技术主管)。他们认为本课程内容针对性很强,一方面解决了很多在以往工作中困扰他们及其所在项目组的实际难题;另一方面使他们能从实践层面上升到理论高度,从而系统、全面地接受软件开发过程的各种思想、原则、概念、方法、技巧的培训,而这些正是他们选择重新回到学校、进行进一步深造所希望实现的目标。致谢与其他全书由金敏主编,第1章和第5章的部分内容由周翔编写。本书在编写过程中参考了不少相关文献资料,书中引用的文字和图片均已清楚注明作者姓名、作品名称、文献出处并加入参考文献。这些引用是本书内容阐述所需,绝无侵权意图,特此申明。同时,对所引用的这些文献资料的作者或编者深表谢意。在本书的出版过程中,得到了湖南大学软件学院谢冬青教授的热情支持,他在百忙中仔细阅读了全部书稿,提出了宝贵意见,在此表示衷心感谢。本书在编写过程中力求精益求精,但由于编者水平有限,书中难免存在缺点、错误或有争议的问题,恳请读者批评指正并与我们探讨交流。编者2005年4月