Rational公司开发的一种软件工程过程,是开发组织用于分配和管理任务及职责的规范化方法,其目标是帮助开发人员在预定的进度和预算范围内开发出符合最终用户需求的产品。
本书介绍IBM的支持Web的软件工程过程,简洁而清楚地描述了RUP(Rational UnifiedProcess)的概念、结构、内容以及动机。本书提供的软件开发方法用于指导如何借助统一建模语言(UML)、软件自动化以及其他行业最佳实践,按计划在预算范围内生产高质量的软件。
RUP统一了整个软件开发团队,并通过行业领先者的经验以及从成千上万个项目中总结出的教训,使每位开发者的生产效率得以提高。RUP为软件开发生命周期的所有阶段提供了详细而实际的指南,但是RUP并非一成不变,开发人员可以进行裁剪,以适应各种项目和组织的实际需求。
本书反映了RUP 2003中的变化,并附带一张结构图,其中列举了关键的RUP元素:规程、工作流、制品、阶段以及里程碑。RUP 2003还增加了以下内容:
■RUP Builder,它具有增强的配置能力、过程视图以及3个基本配置。
■MyRUP,使RUP配置的视图个性化。
■丰富了Rational Process Workbench,用以定义过程构件、实施对RUP的修改以及创建过程插件。
■专门介绍了过程工程过程,为裁剪RUP、创建插件和部署RUP提供指南。
本书依照RUP 2003进行编写,全面而简洁地介绍了RUP的概念、结构、内容和动机,帮助读者学会如何开发出高质量的软件。作者是RUP的首席架构师,本书融入作者几十年的开发经验,极具实用性。本书适合所有参与软件开发的人员阅读。
译者序
前言
第一部分过 程
第1章 最佳的软件开发实践
1. 1 软件的价值
1. 2 软件开发问题的症状和根本原因
1. 3 最佳的软件实践
1. 4 软件的迭代开发
1. 5 管理需求
1. 6 应用基于构件的架构
1. 7 为软件建立可视化模型
1. 8 对软件的质量进行持续的验证
1. 9 控制软件的变更
1. 10 RUP
1. 11小结
第2章 RUP
2. 1 什么是RUP
2. 2 作为产品的RUP
2. 2. 1 过程产品的组织
2. 2. 2 关于过程工程师
2. 2. 3 二维过程结构
2. 3 RUP中的最佳软件实践
2. 3. 1 迭代开发
2. 3. 2 需求管理
2. 3. 3 架构和构件的使用
2. 3. 4 建模和UML
2. 3. 5 配置管理和变更管理
2. 4 RUP中的其他重要特征
2. 4. 1 用况驱动的开发
2. 4. 2 过程配置
2. 4. 3 工具支持
2. 4. 4 谁在使用RUP
2. 5 RUP的发展简史
2. 6 小结
第3章 静态结构:过程描述
3. 1 RUP的模型
3. 2 角色
3. 3 活动
3. 4 制品
3. 4. 1 报告
3. 4. 2 制品集
3. 5 规程
3. 6 工作流
3. 6. 1 核心工作流
3. 6. 2 工作流细节
3. 6. 3 迭代计划
3. 7 附加过程元素
3. 7. 1 指南
3. 7. 2 模板
3. 7. 3 工具指南
3. 7. 4 概念
3. 8 过程框架
3. 9 小结
第4章 动态结构:迭代开发
4. 1 顺序开发过程
4. 1. 1 一个合理的方法
4. 1. 2 错误假设1:需求是固定的
4. 1. 3 错误假设2:我们可以在进行开发之前做出正确的书面设计
4. 1. 4 提出风险分析
4. 1. 5 延长时间
4. 1. 6 减少文书工作
4. 1. 7 基于规模和基于时间的计划
4. 2 克服困难:迭代
4. 3 获取控制:阶段和里程碑
4. 4 生命周期中焦点的转移
4. 5 阶段重访
4. 5. 1 初始阶段
4. 5. 2 里程碑:生命周期目标
4. 5. 3 细化阶段
4. 5. 4 里程碑:生命周期架构
4. 5. 5 构造阶段
4. 5. 6 里程碑:最初的可操作能力
4. 5. 7 移交阶段
4. 5. 8 里程碑:产品发布
4. 6 迭代方法的好处
4. 6. 1 缓解风险
4. 6. 2 适应变更
4. 6. 3 在过程中不断学习
4. 6. 4 增加复用机会
4. 6. 5 更好的整体品质
4. 7 小结
第5章 以架构为中心的过程
5. 1 模型的重要性
5. 2 架构
5. 3 架构的重要性
5. 4 架构的定义
5. 5 架构的表示
5. 5. 1 多重视图
5. 5. 2 架构的4+1视图模型
5. 5. 3 模型和视图
5. 5. 4 架构不仅仅是一个蓝图
5. 6 以架构为中心的过程
5. 7 架构的目标
5. 7. 1 智能控制
5. 7. 2 复用
5. 7. 3 开发的基础
5. 8 基于构件的开发
5. 9 其他的架构概念
5. 9. 1 架构风格
5. 9. 2 架构机制
5. 9. 3 架构模式
5. 10 小结
第6章 用况驱动的过程
6. 1 定义
6. 1. 1 用况和活动者
6. 1. 2 事件流
6. 1. 3 场景
6. 1. 4 用况模型
6. 2 确定用况
6. 3 用况的进化
6. 4 用况的组织
6. 5 在过程中使用用况
6. 6 小结
第二部分 过程规程
第7章 项目管理规程
7. 1 目的
7. 2 计划迭代项目
7. 3 风险的概念
7. 3. 1 什么是风险
7. 3. 2 策略:如何处理风险
7. 4 度量的概念
7. 5 角色和制品
7. 6 工作流
7. 6. 1 工作流细节
7. 6. 2 制定一个阶段计划
7. 7 制定一个迭代计划
7. 7. 1 细化阶段的迭代
7. 7. 2 构造阶段的迭代
7. 7. 3 移交阶段的迭代
7. 7. 4 迭代中的工作细节
7. 8 小结
第8章 业务建模规程
8. 1 目的
8. 2 为什么要进行业务建模
8. 3 在业务建模中使用软件工程技术
8. 4 业务建模场景
8. 5 角色和制品
8. 6 工作流
8. 7 从业务模型到系统
8. 7. 1 业务模型和系统活动者
8. 7. 2 自动业务工作人员
8. 7. 3 分析模型中的业务模型和实体类
8. 7. 4 在资源计划中使用业务分析模型
8. 7. 5 系统需求的其他来源
8. 7. 6 业务模型和系统架构
8. 8 为软件开发业务建模
8. 9 工具支持
8. 10 小结
第9章 需求规程
9. 1 目的
9. 2 什么是需求
9. 2. 1 功能性需求
9. 2. 2 非功能性需求
9. 3 需求的种类
9. 3. 1 项目相关人员:请求与需求
9. 3. 2 系统特征
9. 3. 3 软件需求
9. 3. 4 通过用况详细说明软件需求
9. 4 捕获和管理需求
9. 5 需求工作流
9. 6 需求中的角色
9. 7 需求中使用的制品
9. 8 工具支持
9. 9 小结
第10章 分析和设计规程
10. 1 目的
10. 2 分析与设计
10. 3 到底要设计到什么程度
10. 4 角色和制品
10. 5 设计以用户为中心的界面
10. 6 设计模型
10. 7 分析模型
10. 8 接口扮演的角色
10. 9 实时系统的制品
10. 10 基于构件的设计
10. 11 工作流
10. 12 工具支持
10. 13 小结
第11章 实现规程
11. 1 目的
11. 2 构造
11. 3 集成
11. 4 原型
11. 5 角色和制品
11. 6 工作流
11. 7 工具支持
11. 8 小结
第12章 测试规程
12. 1 目的
12. 2 在迭代生命周期中进行测试
12. 2. 1 质量
12. 2. 2 产品质量所有权
12. 3 测试的维
12. 3. 1 质量维
12. 3. 2 测试的阶段
12. 3. 3 测试的类型
12. 3. 4 回归测试
12. 4 角色和制品
12. 5 工作流
12. 5. 1 定义评估任务
12. 5. 2 验证测试方法
12. 5. 3 验证构造的稳定性
12. 5. 4 测试和评估
12. 5. 5 完成验收任务
12. 5. 6 改进测试资产
12. 6 工具支持
12. 7 小结
第13章 配置和变更管理规程
13. 1 目的
13. 2 CCM立方体
13. 2. 1 配置管理
13. 2. 2 变更请求管理
13. 2. 3 状态和度量
13. 3 角色和制品
13. 4 工作流
13. 4. 1 计划项目配置和变更控制
13. 4. 2 建立项目CM环境
13. 4. 3 变更和交付配置条款
13. 4. 4 管理基线和发布
13. 4. 5 监控和报告配置状态
13. 4. 6 管理变更请求
13. 5 工具支持
13. 6 小结
第14章 环境规程
14. 1 目的
14. 1. 1 配置RUP
14. 1. 2 实例化RUP
14. 1. 3 定制RUP
14. 1. 4 实现RUP
14. 2 角色和制品
14. 3 工作流
14. 3. 1 为项目准备环境
14. 3. 2 为迭代准备环境
14. 3. 3 为迭代提供支持环境
14. 4 工具支持
14. 5 小结
第15章 部署规程
15. 1 目的
15. 2 角色和制品
15. 3 工作流
15. 3. 1 计划部署
15. 3. 2 开发支持材料
15. 3. 3 产品部署单元
15. 3. 4 在开发地点管理接受测试
15. 3. 5 beta测试产品
15. 3. 6 在安装现场管理接受测试
15. 3. 7 打包产品
15. 3. 8 提供对下载地点的访问
15. 4 小结
第16章 典型的迭代计划
16. 1 定义产品构想和业务用况
16. 1. 1 结果
16. 1. 2 初始阶段的后继迭代
16. 2 建立架构原型
16. 2. 1 结果
16. 2. 2 细化阶段中的后继迭代
16. 3 实现系统
16. 4 小结
第17章 实施RUP
17. 1 概述
17. 2 实施过程的效果
17. 3 逐步实施RUP
17. 3. 1 步骤1:评估当前状态
17. 3. 2 步骤2:建立或修订目标
17. 3. 3 步骤3:识别风险
17. 3. 4 步骤4:计划过程实施
17. 3. 5 步骤5:执行过程实施
17. 3. 6 步骤6:评价过程实施
17. 4 实施过程也是一个项目
17. 5 小结
附 录
附录A 角色小结
附录B 制品小结
附录C 缩写词
术语表
参考文献
索引
目前, 越来越多的领域中的用户都希望把更多. 更难的问题交给计算机去解决. 这使得计算机软件的规模和复杂性与日俱增, 软件技术也不断地受到新的挑战. 开发一个具有一定规模和复杂性的软件系统和编写一个简单的程序的方法大相径庭. 大型的. 复杂的软件系统开发是一项工程, 必须按照工程学的方法组织软件的生产与管理, 这是人们从软件危机中获得的最重要的教益. 开发软件系统时, 建模和编程都很重要, 但也要遵循合适的开发过程. 统一软件开发过程就是目前流行的开发过程之一.
针对《统一软件开发过程》一书中所描述的更通用的过程, RUP为其一个特定的详尽实例. RUP综合了许多现代软件开发的最佳实践, 并使用一种可裁剪的方式来表达, 以适用于各种各样的项目和组织. 它以一种详尽. 实用的方式将这些最佳实践在线地提供给项目组. 其目的是帮助软件开发人员在预定的进度和预算范围内, 开发出符合最终用户需要的高质量软件.
本书讲述了RUP中的主要概念. 结构. 内容以及动机, 各种相关的技术细节可从IBM的在线知识库中获得.
本书按照RUP 2003进行了更新. 与第2版相比, 本书中的几个术语发生了变动, 引入了新元素, 对部分过程进行了一些重新设计, 并更深入地将RUP开发为一个过程框架. 在本书中结合了许多读者的反馈意见.
本书适合所有参加软件开发的人员, 如项目经理. 质量工程师. 过程工程师. 研究方法的专家. 系统工程师和程序员等使用. 打算采用RUP的单位可根据自己的实际需要, 对该过程进行裁剪.
RUP本身处于不断的进化之中. 机械工业出版社已于2002年出版了《The Rational Unified Process:An Introduction》第2版的中文译本《Rational统一过程引论》, 本书是第3版的中文译本. 在翻译本书的过程中, 有很多地方借鉴了第2版的中文译法, 在此向第2版的译者表示感谢.
由于译者自身的水平有限, 译文难免存在错误和疏漏, 希望读者给予批评与指正.
译者
2004年5月于北京
Philippe Kruchten博士是RUP的首席架构师. 他在电信. 国防. 航空以及运输领域的大型软件密集系统的开发方面有30多年的经验. 本书的前两版已经被翻译成8种语言, 前两版的销售量超过了160 000本.
RUP(Rational Unified Process)最初是由Rational软件公司(现在已合并到IBM公司)开发并向市场推广的一个软件工程过程. 它是开发组织用以分配和管理任务及职责的一个规范化方法. RUP的目标是在预定的进度和预算范围内开发出符合最终用户需要的高质量软件.
RUP综合了许多现代软件开发的最佳实践, 并使用一种可裁剪的方式来体现这些实践, 以适用于各种项目和组织. 它以一种详尽. 实用的方式将这些最佳实践在线地提供给项目团队.
本书介绍了RUP的概念. 结构. 内容以及动机.
本书的目标
利用本书, 你将学习到如下内容:
·何为RUP.
·RUP的术语及如何理解其结构.
·在RUP中综合的最佳实践的优点.
·在一个项目中, RUP如何向你提供完成特定职责所需要的指导.
本书没有涵盖完整的RUP, 而只涉及其中一部分内容, 用以介绍RUP. 在完整的RUP中, 你可以找到进行开发工作所需要的详细指导. 完整的RUP产品--在线知识库, 可从IBM获得.
本书大量引用统一建模语言(Unified Modeling Language, UML)的内容, 但它并不是一本介绍UML的书. 如果读者希望了解UML, 请参考以下两本书:《UML用户指南》和《UML参考手册》.
本书还讲授了建模和面向对象技术, 但并没有讲授设计方法, 也没有讲解如何建模. 有关嵌入RUP中的各种技术的详尽步骤和指南, 只能在过程产品中找到.
本书有几章讨论了项目管理问题, 描述迭代开发计划和风险管理等主题. 然而本书决不是一本完整的有关项目管理和软件经济学的手册. 如果要得到这方面的更多信息, 请参考《软件项目管理:一个统一的框架》这本书. 《统一软件开发过程》'这本书描述了更加通用的软件开发过程, 而本书只介绍一个特殊而详细的实例. 谁应该阅读这本书
本书是为参与软件开发的各类人员撰写的, 这些人员包括:项目经理. 开发人员. 质量工程师. 过程工程师. 方法专家. 系统工程师以及分析员.
本书尤其适合那些已经采纳或即将采纳RUP的开发组织中的人员阅读. 通常, 一个组织可能会裁剪RUP来适应自己的需求, 但是本书中描述的核心过程在RUP的所有实例中都应该保持统一的特性.
本书对于学生学习由IBM Rational软件公司以及其业界和学术界的伙伴提供的专业教程也是一本很好的补充教材, 它提供了这些教程中涉及的一些主题的相关内容.
本书假定读者已对软件开发具有一定的理解, 但不要求读者具备编程语言. 面向对象方法或统一建模语言(UML)方面的特定知识.
如何使用本书
在全部或部分采用RUP的组织中工作的软件专业人员应该顺序地阅读本书. 本书的结构按RUP自身特性的顺序组织.
项目经理可以只读第1章. 第2章. 第4章和第7章. 这些章介绍风险驱动的迭代开发过程的含义.
过程工程师或方法学专家可能需要裁剪RUP, 并在他们的开发组织中建立这种过程. 他们应该认真学习第3章. 第14章和第17章, 这些章描述了过程结构以及全面实施RUP的方法.
本书的组织和特征
本书分为两部分.
第一部分介绍过程. 内容. 历史. 结构和软件开发生命周期, 还描述了RUP区别于其他软件开发过程的关键特征.
·第1章最佳的软件开发实践
·第2章RUP
·第3章静态结构:过程描述
·第4章动态结构:迭代开发
·第5章以架构为中心的过程
·第6章用况驱动的过程
第二部分给出了过程的各种构件或者规程的概况. 每一章对应一个规程.
·第7章项目管理规程
·第8章业务建模规程
·第9章需求规程
·第10章分析和设计规程
·第11章实现规程
·第12章测试规程
·第13章配置和变更管理规程
·第14章环境规程
·第15章部署规程
·第16章典型的迭代计划
·第17章实施RUP
大多数介绍规程的章由六个部分组成:
·规程的目的.
·定义和关键概念.
·角色和制品.
·一个典型的工作流:活动的概况.
·工具支持.
·小结.
书后用附录总结了从第7章-第15章中介绍的过程的所有角色和制品(过程的工作产品). 最后提供了缩写词和术语表以及一个带简短注释的参考文献. 获得更多的信息
关于RUP的资料, 如数据表和可下载的演示版本, 可以通过因特网从IBM Rational软件公司的网站www. rational. com/rup/获得.
假如你已经在使用RUP, 可以从Rational开发者园地(Rational Developers Network, RDN)获得更多的资料, 包括额外的产品. 更新以及合作者链接. 在RUP的在线版本中可以找到到RDN的超级链接.
学术机构可以与IBM取得联系, 以获得将RUP作为课程的资料.
第2版
《The Rational Unified Process:An Introduction》的第2版按照"RUP2000"进行更新.
第3版
本书按照"RUP 2003"进行更新. 在本版本中, 几个术语发生了变动, 对部分过程进行了一些重新设计(特别是测试和环境规程), 并更深入地将RUP开发为一个过程框架. 本版中还引入了新的元素:过程构件和过程插件的概念, 一个由RUP Modeler. RUP Organizer. RUPBuilder和MyRUP构成的新工具集, 以及一个独立的过程工程过程. 在本版本中结合了许多读者的反馈意见.
致谢
RUP凝聚了来自Rational软件公司以及其他各方面软件专业人员的共同智慧. 本书第2章介绍了这一过程的历史. 但是要把各个方面人员的共同智慧综合成一本书, 即使是像这样一本概论式的书, 也需要一批人付出极大的热忱和努力. 在这里, 我把他们一一介绍给读者.
过程开发组(Process Development Group)的早期成员创建了RUP, 并对本书做出了贡献. 首先是StefanBylund, 然后是KurtBittner, 最后是BruceMacisaac对有关分析和设计的章做出了贡献. MariaEricsson与Leslee Probasco开发了业务工程和需求管理的有关内容. 测试部分开始于BruceKatz, 然后由Paul Szymkowiak完全重新设计. John Smith扩展了RUP 2000的项目管理方面的内容. Jas Madhur对配置管理. 变更管理和部署贡献了很多见解. Hakan Dyrhage对过程的组织和结构及其实施和配置贡献了许多想法. MargaretChan和SusanBuie负责产品集成以及本书绝大多数原图的汇编工作. SigurdHopen在BjornGustafsson的帮助下开发了PEP.
PerKroll是开发组的经理, Mike Barnard是产品经理. Alffedo Bencomo. Chinh Vo. PhilipDenno. LarsJenzer. GlenysMacisaac以及FionnaChong开发了产品的基础结构. DebbieGray是这个横跨9个时区的团队的尽职尽责的行政助理.
RUP以及本书得益于过去8年来许多人的评阅和思想. 他们包括:Stefan Ahlqvist. DaveBernstein. Grady Booch. Murray Cantor. Geoff Clemm. Catherine Connor. Mike Devlin. Christian Ehrenborg. Ian Gavin. Christina Gisselberg. Sam Guckenheimer. Djorn Gustafsson. Matt Herdon. Ivar Jacobson. Paer Jansson. Ron Krubek. Dean Leffingwell. Andrew Lyons. Bruce Malasky. Roger Oberg. Gary Pollice. Terri Quatrani. Walker Royce. Jim Rumbaugh. IanSpence. JohnSmith以及BrianWhite.
我们非常感谢GradyBooch为本书撰写了第1章.
特别感谢Rational领域的人员. 我们的Chat_RUP列表中的成员以及RUP论坛的成员所提供的反馈意见和做出的贡献.
最后要深深感谢本书的编辑Mary O'Brien. 本书前任编辑J. Carter Shanklin以及BrendaMulligan. Amy Fleischer和她的团队, 还要感谢Addison-Wesley的所有员工, 正是由于他们的努力才使得本书能够尽快问世.
Philippe Kruchten
温哥华B.C., 加拿大