软件工程及软件方法学
-
软件工程王庆育编本书全面系统地讲授软件工程的理论与实践,力求从不同的角度帮助读者迅速掌握软件工程的理论、方法和思路。全书共分软件工程基础、软件项目管理、传统的软件工程、面向对象的软件工程、软件工程的最新技术等五个部分。内容主要包括:软件工程概论、软件过程、软件建模语言、软件项目、团队管理、软件配置管理、系统设计、软件测试、面向对象的分析与设计、编码实现、基于构件的软件工程、客户服务器与Web软件工程、设计模式等。本书理论与实践相结合,采用案例教学并附有大量习题便于读者学习掌握。本书既可作为高等学校相关专业的教材或教学参考书,也可作为软件设计人员的自学用书。
-
软件工程张玲等编本书是作者在多年的软件工程教学和科研实践的基础上,总结和吸取了国内外大量同类书刊的精华,精心设计和撰写的。全书正文共13章,内容可分四部分:第一部分主要介绍软件工程的基本概念,并概要介绍了软件生存周期、开发模型及软件开发的各种方法;第二部分按生命周期模型详细介绍软件计划、需求分析、设计、编码、测试和维护各个阶段的有关概念和工作内容,重点介绍了结构化方法和Jackson方法的实施,并介绍了软件体系结构的相关内容;第三部分介绍面向对象的方法及UML建模语言;第四部分介绍了软件标准、文档、质量评价和质量保证技术、软件工程的管理、认证等内容。该书的内容系统完整,在介绍传统理论体系的基础上,融入当前软件工程的最新发展和新技术。书中采用大量图表,描述尽量做到通俗易懂,将原理、方法与实例结合,并较详实地给出了一个软件系统的开过程。通过大量的练习和案例分析,帮助读者加深对理论知识的理解。该书可作为高等院校软件工程课程的教材或教学参考书,也可作为软件项目管理者和软件开发人员的参考书。
-
软件项目管理(美)克里斯·F.克默勒(Chris F.Kemerer)著;李玉英等译本书提供了大量比较前沿的实用性和应用性资料及案例,而且文章的内容非常适时和重要。全书重点在于讲授模型的开发,目的是使人们更好地了解软件的开发和工具的使用,提高过程的生产率和质量,为项目管理的相关内容提供了完整的知识体系。 本书适合可作为软件管理课程的主要必备教材,以及系统分析和设计、信息系统管理、信息系统项目课程的补充教材,在向信息系统和计算机科学专业的研究生和高年级本科生,实际软件开发人员和软件管理人员。
-
UML与软件工程基础王立暂缺简介...
-
软件工程徐仁佐主编;徐仁佐,叶俊民编《面向21世纪计算机专业本科系列教材:软件工程》是“面向21世纪计算机专业本科系列教材”之一,是紧扣“计算机学科教学计划2000”进行编写的,是系统、全面地介绍软件工程的思想、技术和方法的最新教科书。《面向21世纪计算机专业本科系列教材:软件工程》分软件工程技术与软件工程管理两部分。软件工程技术部分包括软件工程概述,软件需求分析,软件复用,软件测试,软件维护与软件再工程,软件工具与软件开发环境等内容;软件工程管理部分包括软件质量管理(含软件可靠性与软件容错技术).软件文档与软件工程标准化,软件项目、配置及人员组织管理,软件知识产权保护等内容:最后介绍当前国际上软件工程研究的新方向。《面向21世纪计算机专业本科系列教材:软件工程》可作为计算机专业本科生的软件工程教材,也可作为广大软件产业及IT产业从业人员的软件工程参考工具书。
-
软件工程初步贾长云《软件工程初步》是高等教育出版社与CEAC国家信息化教育认证管理办公室联合推出的认证课程教材,为CEAC计算机软件技术专业助理工程师认证课程配套。《软件工程初步》针对职业学校学生的特点,充分体现素质为基础、能力为本位、需求为依据、就业为导向的基本原则,教学内容注重选择当前软件工程中的一些新理论、新方法与新技术,通过一个小型软件项目为案例贯穿全书,使学生在学完本书后能掌握软件工程的基本理论与方法以及它们在软件项目开发中的实际应用。其主要内容涉及软件工程中的软件系统策划、需求分析、软件设计、编码实现、软件测试及实施与维护等方面的内容,考虑到职业院校学生的就业定位,重点侧重于详细设计、软件编码、软件测试、软件维护这几个方面的基本知识与技能。为保持教学内容的先进性,同时便于对教学进行科学、灵活的组织,对诸如UML方法、面向对象的分析、面向对象的设计与编程、面向对象软件测试、CMM等也做了介绍。《软件工程初步》可以作为职业学校计算机类专业的软件工程课程的教材或参考书,也可作为IT行业程序员、测试员、维护员等的培训教材或参考书。
-
软件工程技术与实践刘志峰主编本书在注重实用的前提下,汇集了近年来国内外在软件工程开发和管理领域的主流技术和应用工具,内容丰富、系统严谨。本书主要介绍了软件工程领域的组织模式、项目管理模式、人员管理模式及质量管理模式。以理论和实践相结合的方式论述了软件开发管理策略和分析工具、可行性研究方法、需求分析方法、系统设计模型、编码、测试、维护等,并提供了大量已实际应用的范例。本书可作为高等院校高年级学生及研究生的教学参考书,同时对软件组织和单位的开发者、组织者、管理者来说也是一本实用性很强的参考书。
-
小型团队软件开发(美)Gary Pollice等著;宋锐,张静,张煜译;宋锐译本书不是一本关于RUP、敏捷开发过程或者项目管理的教材,而是一份来源于实际工作的“战地”报告。它记录了一个小型的分布式团队,经历许多变化最终成功地完成任务,向用户交付一个有价值的、可用的软件产品的过程。在本书中,这些“战士们”以直述的方式讲述了他们的故事,没有试图去“执导”有关的内容。我经常听到:“我们不需要采用一个开发过程,因为我们的项目又小又简单。”可能你也有类似的感觉。但是,实际上你总会采用某种开发过程,而且这一过程很可能是临时发明出来的。在我们的行业中有一种普遍存在的印象,就是一个预先描述好的开发过程只适合于大公司、用于大型项目、管理几百个开发人员;而对于小型项目来说,这种开发过程只会使开发人员过得更加痛苦。在本书中,你将会看到一个很小的团队在解决一个中等的项目时,如何按照他们的需要采用和剪裁RUP这样一个描述化的开发过程。他们并没有因为采用这一开发过程而增加过多的正规性。他们只选择了那些对自己有用的要素,甚至采用了类似PSP(PersonalSoftwareProcess,个体软件开发过程)、极限编程(eXtremeProgramming)以及其他一些敏捷开发方法。我也经常听到:“让我看看你到底是如何做的。”成功项目的例子和某些不成功项目的反例常常是导致开始采用一个新开发过程的关键。仅仅埋头于书本中或者网站上,苦读一页页有关某种理想处理方法的描述,对于我们大多数人来说都太抽象了。包装好的、与理论严格匹配的完美示例没有太多的说服力。本书最大的价值在于,它带领读者接触到一个实际项目中的真实经历,包括了其中的失败、错误的开始以及各种限制;而作者以批判的眼光来分析他们所采取的做法,以及这些做法为什么会成功或者失败。我们从自己的经验以及与别人经验的对比中进行学习。“噢,是的,我知道这种模式;我也曾经处于这种境地。啊,你是这样解决的。”本书讨论了在传统的开发过程(包括RUP)中都没有涉及到的问题。作者大胆地探索了关于开发人员、关于形成一个团队的力量、关于分布式环境中的通信联系、关于使用基于Internet的协作工具等方面的内容,而所有这些要素都是当前许多小型开源软件项目的组成部分。最后,本书强调了一个常常在计划中标明了,而在赶着完成任务的过程中通常被遗忘的关键性的实践步骤:自省(self-reflection),有时也被称为事后分析(post-mortem)或者回顾(retrospective)。这一步骤就是暂时停下,回头看看我们做过的、我们是如何做的,看看哪些做法有效,哪些做法无效,以及导致这种结果的原因。而这整本书就是一个非常完整的事后分析的极好例子,坦白而谦虚。本书不能代替你没有做的那些事后分析和回顾,但是可以让你意识到可能错过了哪些东西。那么,哪些人需要使用这本书以及何时需要这本书?可能性有很多:如果你刚接触现代的开发过程,如RUP、敏捷开发方法、PSP等等,那么本书可以让你了解它们的精髓,而不用深入到细节中去。如果你不确定该如何处理小型的分布式项目,你将可以学到极有价值的内容,这些内容的作者也曾经问过自己那些你可能会提出的问题。他们对这些问题曾经做出过选择,这些选择的对与错都通过最终的结果反映了出来。你很可能发现一些熟悉的模式,从书中的解答和解决方案中学会一些东西;这意味着在你自己的项目中犯的错误会更少。如果你是这些方法的专家,那么本书将为你打开新的途径——如何结合不同的方法或者缩减一个开发过程,并告诉你自省的价值。我从这本书中学到了许多关于RUP的知识,并学会了从不同的角度来看待它。感谢Gary、Jas、Liz和Chris与我们分享他们的经验。——PhilippeKruchten于加拿大温哥华在本书中,GaryPollice、LizAugustine、ChrisLowe和JasMadhur四位作者以自己的亲身经历说明了如何在一个小型团队、小型项目中应用Rational统一过程。其中包含了对开发过程中各种做法的原因和结果的全面分析,说明了开发团队如何对开发过程与开发环境进行动态的调整。本书的主要内容包括:如何在开发人员、开发过程和开发工具之间寻求平衡,并且在软件开发的整个过程中动态地维持这种平衡;如何组合RUP和敏捷开发原则中的多征方法来建立团队自身的开发过程,并且在项目进程中对开发过程进行适当的调整;如何选择适当的开发工具来对团队的活动提供支持,尤其是对于一个小型的分布式团队需要考虑哪些问题;客户的参与和意见关系到软件产品最终能否有效地满足客户需求。对本书的赞誉“我向所有那些希望在小型项目中实施RUP的人强烈推荐此书。Pollice和他的伙伴们揭开了笼罩着RUP的神秘面纱,并且在保证不遗失其精华的基础上进行了有效的缩减。此书是所有RUP使用者的必备书籍。”——丰田汽车销售公司过程工程学顾问ChrisSoskin“许多RUP使用者都在寻找其实际应用的例子,此书恰恰为如何在小型项目中实际应用RUP提供了非常好的示例。它将引导你穿越从项目启动到项目完成的不同阶段。作者非常成功地强调了他们所遭遇的困难以及他们所取得的成功。”——IBM公司Rational软件公司RUP部门经理PerKroll“这本书明了易读,且有许多对软件开发人员有帮助的好东西,所以我很喜欢它。它描述了一个小型团队如何有效地使用RUP——一种通常被认为只适用于大型的、规范度高的团队的开发过程。作者以直截了当的方式表达了许多严肃的事实与建议。每个人的书架上都应该有一本这样的书。”——NetObjectives公司高级顾问DanRawsthorne博士软件开发的目标是向用户交付具有一定价值的产品。为了提高工作效率,你必须在开发人员、开发过程与开发工具之间维持适度的平衡。每个人似乎都有自己最喜欢的开发工具、技巧和开发过程。软件公司把开发工具和方法卖给你,帮助你提高构建软件时的效率。顾问们向你宣讲他们的方法,试图让你相信他们知道如何帮助你的机构和项目团队做得更好。而我们开发人员则不停地学习新的技术、采用新的工具,来帮助我们在更短的时间里以更高的质量完成更多的工作。我们这些作者在各种软件项目中工作和对之进行观察的时间累计起来超过了七十五年。根据这些年中所得到的经验,我们得出一个结论,很可能一些聪明的读者也已经想到了:每一个项目都不一样,那些帮助某个团队取得了巨大成功的方法如果不具有通用性,可能会导致另一个团队的惨痛失败。每个团队都需要确定如何使用一个特定的开发过程,然后不断地进行调整才能取得进步。而在这种不会停止的变化面前,一个项目团队如何知道改变哪些做法可以获得最大的效果?我们的答案是,依靠学习尽可能多的技术,依靠学习有效使用支持不同技术的开发工具,然后确定哪些组合可以工作得最好,以及它们在什么情况下最有效。这也意味着一个不断学习的过程。好的程序员从其他的程序员那里学习。他们通过查看代码和阅读关于不同编程方法的书籍进行学习。测试人员通过学习测试专家的技巧、研究测试设计方案和学习如何使用新技术与新工具来获得提高。实际上,每一个独立的实践者都可以从其他从事相同工作的人那里,或者通过观察范例来学到知识。每个实践者都需要形成自己高效工作的风格,既作为独立的个人也作为一个更大的团队的一员。团队也一样需要利用其他团队如何工作的范例,来形成自己团队协同工作的风格。本书是关于一个小型团队如何开发一个软件工具的例子。它是关于我们做了什么以及为什么这样做的一本大事记。我们尝试着解释了为什么某些做法有效(或者无效),并讨论了下一次我们会改变些什么。在此过程中,我们特别指出了所获得的经验和教训,并提供了一些将这些经验通用化的思路。读者所要做的,就是观察我们所做的工作并汲取我们的经验。如果你正在从事小型的软件开发项目,你将立刻根据我们的经历发现一些问题。你可能已经面临一些我们曾遭遇的问题,并按照自己满意的方式解决了,或者你仍在试图找到合适的解决方法。我们希望本书能够为你提供一些有用思路,帮助你选择和使用合适的开发工具,与他人一起有效地工作,并选择最适合你个人和所在团队风格的技术。本书的所有作者都曾在软件行业的不同类型项目中工作了许多年,从很小的项目到很大的项目都曾涉及。我们对自己的工作都充满热情。我们在为Rational软件公司(现已被IBM公司收购)工作时相互结识。启动此项目的Gary曾经在第一个RationalSuite项目中工作,然后转到RationalUnifiedProcess,即RUP团队工作。Liz和Chris曾和Gary一起在RationalSuite团队中工作,而Jas是RUP团队的成员。我们看到过采用RUP或者其他开发过程并取得成功的项目,我们也看到过同样采用这些开发过程却失败了的项目。我们希望?彩龅恼飧鱿钅磕苋〉贸晒ΑN颐侨衔约喝肥党晒α恕8匾氖牵颐堑目突衔颐浅晒α耍饩褪俏颐堑墓适拢M隳芄幌不端?关于本书在本书中,我们讲述了我们如何作为一个团队一起工作的故事。我们谈及了面对的一些技术障碍以及克服它们的方法。我们描述了遇到的一些模式以及我们如何将它们应用于自己的团队、项目以及代码。我们说明了这个小团队如何发展了一种在成员之间以及与用户之间进行有效交流的方法。我们还讨论了所采用的不同技术和方法,并根据不同的开发方法学,如RUP、极限编程(XP)等等,进行了调整。本书并不包含任何一种特定软件开发技术的全部技术细节。它并没有描述一个开发过程。它并不是关于编写高效的代码、调试方法、测试技巧、需求管理或者过程工程的书。不过本书涉及了所有上述主题。PSPTools项目本书是关于我们开发一个软件项目——PSPTools的经历的大事记。PSPTools的目标是为WattsHumphrey的PSP(PersonalSoftwareProcess,个体软件开发过程)提供自动化的支持。在版本1中,我们为支持PSP等级1实现了计时器和数据收集工具。(关于PSP的更多内容,请参见附录B。)本书包含了屏幕截图、表格以及其他反映我们工作进展的材料片段。为了使读者可以了解我们的实际工作方式,我们据实地展现了自己的经历以及最终的软件,而不是理想化地解释我们希望如何工作。在本书的网站www.awprofessional.com/titles/0321202945,包含了我们的所有代码、其他一些非代码的项目制品、到其他有用网站的链接以及其他后来发生的新闻。我们也很希望能够听到大家的意见,无论是对此书的反映,还是关于你自己的软件开发经历。我们的电子邮件地址是psptools@yahoo.com。本书的组织结构本书的组织结构如下:第1~3章介绍此项目的相关情况。我们介绍了自己进行软件开发的方法;对于在开发人员、开发过程与开发工具之间维持平衡的重要性的观点;及对PSPTools项目的描述。第4、5、6、8、10和11章分别从团队和过程的角度说明了这个项目。我们讨论了RUP的不同阶段以及我们在每一阶段中做了什么。第7章和第9章提供了有关我们所处理的代码和使用的技术的详细情况。这两章并不是对整个应用的全面展示,而是用于体现一些代码的风格并解释我们所做的一些技术决策。我们希望这两章能够鼓励你从本书的网站下载整个项目内容来进行更深入的研究。附录中提供了一些主题的信息,如RUP、PSP和XP,我们假设你对它们已经有一定程度的了解。谁需要阅读此书?如果你是下列人士之一,那么你应该阅读此书:一个正在寻求有关的技术指南,以使得团队整体以及其中的个人都能更有效率工作的项目领导者。书中也讨论了我们所使用的开发工具以及它们的替代产品,还提供了关于如何使用类似RUP之类的开发过程来帮助、促进交流的实践性建议。一个工作于小型项目的独立实践者(一个程序员、一个测试员或者一个分析师)。本书可以帮助你学会如何在不增加无理负担的情况下,与团队中的其他成员进行交流。这里推荐了一些可能会有帮助的工具,并展示了如何有效地应用一种开发过程来指导、帮助你集中注意力,而不是给你增加负担。一个工作于开源项目的独立实践者。本书没有专门讨论开源开发,但确实提供了一些类似于开源项目的经验。它提供了一个如何组织分布于不同地点的团队开展工作的范例。显示了这个团队如何调整其工作风格与使用的开发工具,以适应地理的分隔、完全不同的开发工具以及在相互独立的网络上进行工作。其他对小型项目或者敏捷开发技术感兴趣,并对它们如何与其他开发过程(如RUP)结合感到好奇的独立实践者。致谢如果没有很多人的努力与贡献,本书将不可能得以出版。然而对于文中出现的任何错误,我们将承担相关责任。我们要感谢以下人士,他们的工作使得本书内容更为丰满、有趣和可信。Gary感谢整个开发团队。你们中的每一个人都在整个项目过程中提供了自己的见解、知识、努力与支持。RajSrinivasan在我们急需测试人员的时候加入进来,提供了有所侧重的、有益的问题报告。我要特别感谢PhilippeKruchten和PerKroll,从他们那里我领会了RUP的精神,从而形成了我自己在小型项目中使用RUP的风格。敏捷开发社区中的许多活跃分子教会了我很多事情,我试图将它们包含于我个人的开发过程中。我尤其感谢与BobMartin、RonJeffries和RandyMiller的交流。我确信其他的作者和我一样感谢为本书提供了极有价值的见解的审阅者们。除了PerKroll和PhilippeKruchten,我们很荣幸地请JamesDunion、MagnusLyckå、BobMartin、DanRawsthrone和ChrisSoskin对我们的工作进行了审阅。我们也很感谢来自于Rational软件公司的支持。最后,我们感谢Addison-Wesley出版公司那些过去和现在帮助我们完成本书的人们,他们是:PaulBecker、MaryO’Brien、BrendaMulligan、AmyFleischer、PatrickCash-Peterson,以及我们有才华的、仁慈的编辑RebeccaGreenberg。感谢你们付出的时间和无尽的耐心。Liz非常感谢我的经理KarlHakkarainen,他支持并鼓励我在此项目中进行工作。感谢Gary领导了这一项目,同时感谢其他作者——Chris、Jas和Gary——在完成项目的过程中与他们一起工作非常开心。最后,我还要感谢本书的审阅者们,他们充满理解力的、大量而风趣的评论促使此项目富有成果。Jas真诚地感谢Gary、Liz和Chris,感谢你们的善意、友好、见解与支持。Chris我想感谢与我同一办公室的SteveZerfas。他一直忍受着作为PSP项目一个组成部分的大量会议电话。他也比任何人更多地听我说:“在PSP项目中,我们……”。如果没有我的经理DaveZygadlo的宽宏许可,我将无法在此项目中工作。他即使在“午夜项目”不时地延伸到白天后仍保持着活力。最后,我希望感谢我的妻子Carmen,她对我写程序到深夜或长途旅行去拜访Gary从无怨言,而且始终欢迎Gary在来参加编程讨论时访问我们家。
-
Rational统一过程(美)Per Kroll,(美)Philippe Kruchten著;徐正生,陈逸,邓启威译;徐正生译每个软件开发团队都有意或无意地遵循某种过程。在一两个人或几个人组成的开发团队中,过程是很简单的。他们只产生很少的文档,分析和设计也不是很正规,项目的源代码在所有制品中占有很重要的地位。在几十人甚至上百人的开发团队中,团队成员通常分布在不同的大厦甚至是世界各地,因而过程也有更多规定。?且嘈锤嗟恼轿牡担蜕嬷诤献饕黄鹛致巯钅康姆治龊蜕杓疲⑼ü嵋椤⒄故尽⑽牡岛推渌破凡鞣治龊蜕杓啤O钅康拇胨淙灰埠苤匾皇窍低持诙嘀破分械囊桓鲎槌刹糠帧<虻サ墓毯透丛拥墓滩⒉皇嵌粤⒌模好恳桓鑫侍饬煊颉⒚恳恢挚⒎绞胶兔恳桓龅ザ赖南钅慷夹枰屎咸囟ㄐ枨蟮目⒐獭?也就是说,无论规模大小,所有成功的项目都有一些共同特征。相反,不成功的项目都不具备这些特征。通过观察一个成功的项目就会发现:团队成员合作得很好,每个开发人员都努力完成自己的活动和制品,同时与其他团队成员协调一致地工作。这种项目通常都很灵活、易于适应需求变更,并且它具有可预测性、可靠性,能够产生高质量的代码。总而言之,这些项目遵循的过程是开发工作方式的一部分,这个过程是不可见的,但是它的精神却通过团队成员生产的制品不断传递下去。Rational统一过程(或叫做RUP)的灵魂体现了这个不可见的过程。RUP不断地发展,它浓缩了不同领域数以千计的项目经验。PerKroll和PhilippeKruchten是最有资格以有效、务实的方法介绍RUP的人,他们在Rational软件公司创立并在世界范围内推广RUP的过程中起到了十分重要的作用。有些开发人员抵制使用RUP,他们认为RUP只不过用来减少代码。事实上,RUP并非他们想像的那样,它可以帮助开发团队成员更好地配合,把主要精力放到开发有价值的代码上。Per和Philippe首先介绍了RUP的灵魂,然后阐明如何在不同类型和规模的项目中应用RUP。在介绍了如何应用RUP后,本书讨论了更实际的问题,包括如何把RUP引入开发组和要避免哪些问题。本书首先让不同涉众接受RUP,然后分别从项目经理、系统分析员、系统架构师、开发人员和测试人员的角度介绍RUP。成功项目的开发过程看起来很简单,但实际上有很多深层次的思想蕴含在其中。在本书中,Per和Philippe以易懂、实用的方法阐述了这些思想。读完本书,相信你的项目也将会体现RUP的灵魂。GradyBoochRational软件公司首席科学家2003年2月虽然目前有数以千计的项目有效的使用Rational统一过程,但是一些开发团队仍然不敢轻易使用它。他们认为实施一个新的软件开发过程可能会很困难。本书的目的就是要告诉读者RUP实际上是很简单的。本书解释了RUP的基本软件开发原理,并指导读者在自己的开发组织中应用它。通过阅读本书,读者将会学到:·Rational统一过程的根本原理,数以百计的成功软件项目证明它是有效的;·在实践中如何通过遍历RUP项目的各个阶段应用这些原理;·在RUP项目中,项目经理、系统分析员、系统架构师、开发人员、测试人员和过程工程师担当的角色和职责;·如何以最小的风险不断采用并配置统一过程;·如何辨别失败项目的特征,如何避免失败。Rational统一过程(RationalUnifiedProcess,或RUP)①是由Rational软件公司研发并推广的一套软件工程过程框架。它凝结了众多领域成功的软件开发最佳实践经验的精华,很多计算机科学家曾为之共同努力。RUP在多年的实际应用过程中,被广泛应用在不同领域。它提供了一整套严格的方法来分配并管理软件开发组织中的任务和责任。通过应用RUP,软件开发团队可以生产出满足最终用户需求的高质量的软件产品,并且可以有效地控制项目的进度和预算。RUP指导软件开发者如何有效地应用现代软件最佳实践:迭代开发、以架构为中心进行开发的方法、在开发过程的每一个阶段化解风险及持续地验证软件质量等。虽然有数以千计的项目正有效地使用RUP,但是一些开发团队仍然不敢轻易使用它,他们认为实施一个新的软件开发过程?赡芑岷芾选J导噬希琑UP并不困难也不复杂。编写本书的目的就是要告诉读者RUP实际上是很简单的。本书解释了RUP的基本软件开发原理,并指导读者在自己的开发组织中应用它。本书还告诉读者如何在一个开发组织或项目中量身定制RUP过程配置。为什么写这本书在帮助软件企业应用RUP的十几年时间和开发RUP产品的六年时间中,我们有机会了解到RUP中哪些部分是很有效的,哪些不是。我们看到过很多成功应用RUP的例子,同时也看到了一些项目和开发团队在应用它时遇到的挑战。我们有幸与很多软件开发实践的先行者一同工作,并且通过日常的工作从他们身上学到了很多宝贵的经验。最近,我们看到了很多软件公司“过分地”应用了RUP。是的,事实确实是这样。我们觉得有必要写一本关于RUP的书,不仅要告诉读者应该去做什么,生产什么样的产品,并且要告诉读者如何正确地应用它,应该避免做什么。我们要给读者解释如何在实践中应用RUP,在一个特定项目中什么时候应用RUP的哪些部分。我们想帮助读者理解如何在不同规模和不同类型的项目中应用RUP。在这本书中,我们想和读者分享我和同事们在多年的实践中积累的宝贵经验。我们的目的是为项目经理、系统分析员、系统架构师、开发人员、测试人员、过程工程师和其他的团队成员以及涉众提供一个易懂的关于RUP的指导。我们通过提炼使用RUP的多年实际经验来达到这个目的,告诉每个角色要了解哪些最本质的内容,解释在RUP中如何扮演他们的角色。这本书不是RUP产品自身的替代品。这本书提供了几百页的实际开发指南,而RUP产品提供了长达几千页的指导,包括关于角色和活动的诸多方面的指导,同时还提供了可以加快开发进度的模板。并且它紧密地结合了开发工具、搜索引擎、图形导航和其他一些基于网络的特性。与本书不同的是,RUP是不断发展的,始终为应用项目提供最新的指导。最后,本书还指导读者结合特定的需求定制RUP的框架。从本书中可以学到什么通过阅读本书,读者将会学到:·RUP的基本原理,数以百计的成功软件项目证明它是有效的;·在实践中如何通过遍历RUP项目的各个阶段应用这些原理;·在RUP项目中,项目经理、系统分析员、系统架构师、开发人员、测试人员和过程工程师担当的角色和职责;·如何以最小的风险不断采用并配置RUP;·如何辨别失败项目的特征,如何避免失败。读者对象本书是为下列读者编写的:·正在使用或准备使用RUP的开发团队的所有成员,包括需要引入并大致了解RUP概念的管理人员和想要了解RUP的实际应用的管理人员·软件项目的实践者:要深入了解RUP并结合其特定角色应用RUP的项目经理、系统分析员、系统架构师、开发人员、测试人员和过程工程师·要了解如何将RUP应用在其组织中的管理人员和过程工程师本书的结构和内容本书分为四个部分:介绍、浏览、应用和基于角色的指导。第一部分介绍RUP。第1章解释了什么是RUP及开发和应用RUP的动机。第2章“RUP的灵魂”介绍了RUP的基本原理,它是通过总结很多成功的开发案例而得到的,并被精炼为几个简单的方针。理解这些原理有助于在项目中更好地应用RUP。第3章提供了一个比较不同过程的方法,并用这个方法对RUP和其他敏捷过程、传统的过程和像SEICMM和SPICE这样的过程评估框架进行比较。这些比较有助于理解针对不同的项目选用什么样的RUP配置。第4章提供了一个应用RUP的小项目的例子:一个人在一个星期内完成的项目。抛开大型项目的规范,可以更好地认识RUP的本质。第二部分通过讲述RUP的四个阶段更深入地描述了RUP。这四个阶段是:初始阶段、细化阶段、构造阶段和移交阶段。第5章介绍?绾斡τ玫椒ǎ赋稣馑母鼋锥沃谐<奈蠼狻5?6~9章分别对这四个阶段做了详细的介绍。我们把注意力集中到每个阶段的目的上,并且指导读者如何达到这些目的。这有助于在实际项目中集中精力完成最重要的活动。另外,从时间顺序——应用在实际项目中的顺序——的角度描述了RUP的活动,让读者理解在一个项目中,什么时候执行哪些活动。采用RUP需要开发组织有一些预备知识。第三部分提供了支持流水线型实现的一些重要领域的基础知识。第10章介绍RUP产品,解释如何对其进行扩展和配置以适用于特定的项目或开发团队。第11章简要介绍了有助于实现包含增量展示、试验性项目和培训课程的过程的一些策略。经验表明,项目经理完成从瀑布模型到迭代开发的转变是很困难的。第12章指导项目经理如何计划RUP项目。这么多年以来,我们见过很多使用RUP的成功案例和失败案例。第13章描述了一些失败的案例,并指导开发者避免重蹈覆辙。RUP产品提供广泛的软件开发活动的指导。第四部分,第14~18章对软件项目中的五种主要角色分别提供指导,这五种角色是:项目经理、系统分析员、系统架构师、开发人员和测试人员。分别站在每种角色的角度上解释RUP,描述他们的任务、需要具备的素质和主要活动,并推荐相应的读物和培训教材。本书没有一个独立的章节介绍过程工程师的工作:这个角色的描述包含在第10章和第11章中。如何阅读本书根据读者在软件组织中的角色和希望从本书学到的内容来分,我们推荐下面的阅读方法:·如果只是想对RUP有一个基本的认识,阅读第1、2、4章。·如果想对RUP有一个全面的了解,通读第1~9章。·如果想根据特定的角色详细了解RUP:——项目经理,阅读第1~14章。——系统分析员,阅读第1~9、13和15章(可选读第8、9章)。——系统?芄故Γ亩恋?1~9、13和16章。——开发人员,阅读第1~9、13、17章(可选读第6章)。——测试人员,阅读第1~9、13、18章。——过程工程师,阅读第1~11、13章。·对于执行官(executive)如果想对RUP有一个大概的认识,并了解采用RUP需要做哪些工作,阅读第1、2、4章和第11章。更多的信息本书的最新信息,包括更新、相关文章、论坛和作者演讲时间表可以在以下网址找到:brhttp://www.rupmadeeasy.com。RUP产品的附加信息,包括数据表和产品演示版本可以在Ratioanl软件公司的主页上找到:http://www.rational.com/products/rup。对于已经使用RUP产品的读者,在Rational开发者网络(RationalDeveloperNetwork,RDN)的RUP知识中心上可以找到更多资源:http://www.rational.net。研究机构可以联系Rational软件公司索取关于RUP的软件工程课程的信息:http://www.rational.com/corpinfo/college_relations/seed/index.jsp致谢Ratioanl统一过程集中了数以千计的天才软件开发实践者经验的精华。我们能有机会和他们在一起工作来开发RUP产品并编写这本书,感到非常荣幸。本书离不开RUP产品及其当前产品开发小组,他们是:MikeBarnard、AmandaBrijpaul、SusanBuie、MargaretChan、FionnaChong、ErinCurtis、PhilipDenno、CarlosGoti、DebraGray、BjörnGustafsson、SigurdHopen、KelliHouston、LarsJenzer、JohnLambert、BruceMacIssac、BrysantMacy、GlenysMacIsaac、JohnRingoen、DanShiffman、PaulSzymkowiak和ChinhVo。Rational小组和技术专家在很多年的研发及使用RUP的过程中积累了宝贵的经验。他们指出了RUP中哪些部分有效,哪些部分无效。我们很感谢这些专家提出的精辟见解,在这里特别感谢:GoranBegic、ThomasBichler、KurtBittner、AnthonyCrain、SamCourtenay、JérômeDesquilbet、MariaEricsson、CarlosGoti、JimHeumann、JoeMarasco、Pan-WeiNg、AndyPhillipson、GaryPollice、LesleeProbasco、WalkerRoyce、JohnSmith和IanSpence。还要感谢GradyBooch,他审阅了本书并为本书作序。当一个法国人和一个瑞典人在一起写书时,书稿的语言必然有许多需要改进之处。Rational软件公司的编辑CatherineSouthwood、MikePerrow和MarleneEllin以极大的热情和专业精神帮助我们解决了这个问题,还要感谢我们的编辑KellySweeney和JosephFatton。我们还要特别感谢我们的妻子SusanKroll和SylvieKruchten,她们耐心地陪伴我们度过很多个用于编写此书的周末和夜晚。最后,要感谢出版社的朋友:MaryO’Brien,Addison-Wesley产品与市场部的人员,其中包括TyrrellAlbaugh和ChristopherGuzikowski,他们帮助本书顺利出版。
-
机械系统建模与动态分析温熙森[等]编著本书以机械工程为背景,介绍机械系统建模与动态分析的基本理论及其在机械工程中的应用技术。主要内容包括基础理论篇、时域建模与分析篇、频域建模与分析篇和综合应用篇等四个部分。本书可作为机械工程及相关专业硕士研究生教材,使其掌握机械系统建模与动态分析的思想、原理、方法和技术手段,也可用作相关领域工程技术人员的参考书。