第九章Rational统一过程

一、学习内容

(一)什么是Rational统一过程

1. RUP是一种软件工程化过程
  1. 他提供了在开发组织中分派任务和责任的方法;
  2. 目标:在可预见的预算前提下,以合理的进度,开发出满足用户需求的高质量软件产品;
2. RUP还是由Rational公司(2003年被IBM收购)开发和维护的一套过程产品
  1. 包括工作指南、模板和工具;
  2. 帮助开发团队提高生产力;
  3. 用来创建和维护软件开发过程中各种工件;
3. RUP还是统一建模语言(UML)的使用指南
  1. UML是一种用于交流用户需求、系统设计和系统架构的工业标准语言;
4. RUP本身是可配置的过程

(二)核心概念

1. 架构:是关于捕获最高系统高级层级结构的策略
  1. 定义:系统在其所处环境中的最高层次概念(IEEE)
  2. 构成:4+1视图,主要方面被抽象为逻辑、开发、处理和物理4个视图,由第五个用例视图整合到一起;
    (1)逻辑视图(功能需求):当采用面向对象的设计方法是,逻辑视图是对象模型;
    (2)开发视图:描述软件在开发环境下的静态组织,质量属性有可扩展性、可重用性、可移植性、易理解性;
    (3)处理视图:描述系统的并发和同步方面的设计,质量属性有易用性、性能、可伸缩性、持续可用性、鲁棒性、安全性;
    (4)物理视图(安装和部署需求):描述软件如何映射到硬件,反映系统在分布方面的设计。
2. 工作流程:一系列预定义的活动
1.核心工作流程:在整个项目中与主要“关注领域”相关的活动的集合
  1. 9大核心工作流:业务建模、需求、分析设计、实施、测试、部署、配置与变更管理、项目管理、环境管理;
2.工作流程明细
  1. 工作流程明细图:展示核心工作流程所涉及的角色、输入和输出工具以及要执行的活动之间的相互关系;
3. 角色
  1. 定义了在软件开发组织中,个人或协同工作的多人小组的行为和职责;
  2. 代表项目中个人承担的任务,并定义如何完成任务;
  3. 角色、活动、工件的关系:每个角色要执行相互联系的活动,这些活动紧密相关,在功能上互相补充,所以最好由同一个人来执行,因而也就归属于同一个角色。活动与工件密切相关:工件是活动的输入和输出,并提供活动之间的通信机制。
4. 活动
  1. 定义了角色执行的工作;
  2. 活动是参与项目的角色为提供符合要求的工件而进行工作;
5.步骤
  1. 构思步骤:角色了解任务的实质,收集并检查输入工件,规划输出结果,有查找行为者、查找用例、说明行为者和用例的交互方式三个细化步骤;
  2. 执行步骤:角色创建或更新某些工件,有将用例和行为者打包、在用例图中显示用例模型、生成用例模型的概览细分步骤;
  3. 复审步骤:角色按某些标准检查结果,有评估结果细分步骤;
6. 工件
  1. 是工作流程的产品,是单个角色的职责;
  2. 表现形式:模型、模型元素、文档、源代码或某种构件、可执行程序

(三)6个最佳实践

“最佳实践”是指在商业中综合运用,并能够解决软件开发根本问题的策略

1. 迭代式的软件开发
  1. 优点:减小了项目风险、更容易对需求变更进行控制、高度的可重用性、项目小组可以在开发中学习、更佳的系统总质量。
2. 需求管理
1. 在RUP中进行需求管理的意义
  1. 定义:正在构建的系统必须符合的条件或具备的功能;
  2. 优点:更好地控制复杂项目、提高软件质量和客户满意度、降低项目成本和延迟、增强团队中的交流;
2. RUP捕获和描述需求的方法
  1. 用例方法:针对每一个参与者,用例仅描述系统为这些参与者提供了什么样的服务,或者说系统是如何被这些参与者使用的;
  2. 用例能够用于发现每个用户需要的功能,避免冗余功能,从而有效确定系统的范围和行为,使整个系统的业务为每个用户提供最大的价值;
3. “4+1视图”帮助捕获和描述需求
  1. 逻辑视图:关注功能;
  2. 开发视图:关注程序包;
  3. 处理视图:关注进程、线程和对象等运行时概念,以及相关并发、同步和通信等问题;
  4. 物理视图:关注目标程序及其依赖的运行库和系统软件最终如何安装或部署到物理及其,以及如何部署及其和网络来配合软件系统的可靠性、可伸缩性等要求;
3. 使用基于构件的架构,以架构为中心的过程
  1. 用例对RUP起着驱动作用;
  2. RUP关注早期开发、将健壮的、可执行的系统架构作为基线;
  3. RUP基于构件开发;
  4. 构件是实现清晰功能的模块,包括子系统,它完成一个明确的功能有着明确的界限,并且能够集成到一个定义良好的架构中;
  5. 基于构件开发的方式:
    (1)在定义一个模块化的架构时,要确定、分离、设计、开发和测试已成型的构件,这些构件可以分布测试并逐渐集成,最终成为完整系统;
    (2)可以为很多普遍存在的问题提供共同解决方法的构件,可以被开发成可复用的构件,这些可复用的构件要比纯粹的公用程序或类库的集合大和多,形成了一个组织中复用的基础,提高了整个软件的生产率和质量;
    (3)支持软件构件概念的基础结构在商业上也取得了成功,这促进了用于不同领域的现成商业构件的发展,开发人员可以购买并集成商业构件,而不用自行开发;
  6. RUP支持构件开发的方式:
    (1)迭代方法允许开发人员逐渐确定构件;
    (2)利用系统架构的概念,可以使开发团队明确整个系统的架构;
    (3)在分析和设计中将用到如包、子系统和层这样的概念来组织构件和指定接口;
    (4)开始对独立构件组织测试,随后将逐渐扩大到对更大的集成构件进行测试;
4. 可视化软件建模
  1. 工业级标准UML是成功进行可视化软件建模的基础;
  2. UML是一种图形语言,用来将软件密集型系统的工件可视化、具体化,构造并记录这些工件;
  3. UML提供一种规划系统蓝图的标准方法;
5. 验证软件质量
  1. 质量应该基于可靠性、功能、应用和系统性能,并根据需求来进行认证;
  2. RUP帮助计划、设计、实现、执行和评估这些测试类型;
  3. 质量评估内建于过程和活动,包括全体成员,使用客观的度量和标准,并且不是事后型的或单独小组进行的分离活动;
6. 控制软件变更
  1. 变更管理密切关注开发组织的需求,它是对需求、设计和实现中的变更进行管理的一种系统性方法,他也涵盖一系列重要的活动;

(四)RUP的二维结构

1. 动态结构:阶段和迭代时间轴
1. 初始阶段

用来为系统建立商业案例和确定系统的边界,也就是获得项目的基础,重点是业务建模工作流程和需求工作流程。
里程碑:生命周期目标里程碑,用来评估项目的基本可行性;

2. 细化阶段

目标是分析问题领域,建立比较健全的架构基础,编制项目计划,淘汰项目中最高风险的元素;
生命周期架构里程碑,为系统架构建立管理基线,并使项目团队能够在构造阶段调整规模;

3. 构造阶段

目标是阐明剩余的需求,并基于已建立基线的架构完成系统开发;
里程碑:最初操作性能里程碑,确定产品是否已经可以部署到Beta测试环境;

4. 移交阶段

当基线已经足够完善,可以部署到最终用户领域中,则进入移交阶段;
重点是确保最终用户可以使用软件;
里程碑:产品发布里程碑,确定是否达到目标,或者是否需要开始另外一个开发周期;

2. 静态结构:工作流程轴
  1. 4类主要建模元素:角色、活动、工件、工作流程;

(五)核心工作流程

代表所有角色和活动的逻辑分组情况
核心工程工作流程:业务建模、需求工作、分析和设计、实现工作、测试工作和部署共六个工作流程;
核心支持工作流程:配置和变更管理、项目管理、环境共三个工作流程

1. 业务建模工作流程
1. 业务建模工作流程的目的
  1. 了解目标组织的结构及动态特性;
  2. 了解目标组织中当前存在的问题并确定改进的可能性;
  3. 确保客户、最终用户和开发人员就目标组织达成共识;
  4. 导出支持目标组织所需的系统需求;
2. 业务建模工作流程的说明
  1. 在一次迭代中,系统分析员将评估目标组织的状态;
  2. 如果系统分析员任务不需要完整的业务模型,只需要领域模型,他将采用该工作流程的另一种路径领域建模;
  3. 如果系统分析员决定不对目标组织中当前业务流程进行大的更改,那么只需将这些流程制作成流程图,并推导出系统需求;
  4. 如果进行业务建模的目的是改进或重建现有业务,则需要对当前业务和新业务进行建模;
  5. 如果进行业务建模的目的是从零开始开发一种全新业务,那么需求预想新业务,并构件该新业务的模型,就要跳过“说明当前业务”这一步;
2. 需求工作流程
1. 需求工作流程的目的
  1. 项目干系人在系统的工作内容方面达成一致;
  2. 使系统开发人员能够更清楚地了解系统需求;
  3. 定义系统边界;
  4. 为计划迭代的技术内容提供基础;
  5. 为估算开发系统所需成本和时间提供基础;
  6. 定义系统的用户界面,重点是用户的需要和目标;
2. 需求工作流程的说明

开发人员可以根据开发系统的不同以及在开发生命周期当中所处的位置,选择不同的路径完成这个工作流程;

3. 需求工作流程同其他工作流程的关系
  1. 业务建模工作流程提供了以为规则、业务用例模型和业务对象模型;
  2. 在需求工作流程中创建的用例模型和词汇表是分析设计工作流程中的主要输入工件;
  3. 测试工作流程对系统进行测试,以便验证代码是否与用例模型一致;
  4. 环境工作流程用于开发和维护在需求股那里和用例建模中使用的支持性工作;
  5. 管理工作流程用于制订项目计划,并制订需求管理计划及各次迭代计划;
3. 分析和设计工作流程
  1. 分析和设计是需求和实现之间的桥梁;
  2. 目的在于将需求转换为未来系统的设计;
  3. 是软件架构师的职责;
4. 实现工作流程
1. 实现工作流程的目的
  1. 对照实施子系统的分层结构定义代码结构;
  2. 以构件的方式实施类和对象;
  3. 对已开发的构件按单位进行测试;
  4. 将各实施单位完成的结构集成到可执行系统中。
2. 实现工作流程的说明
  1. 建立实施模型
  2. 制订集成计划
  3. 实施构件
  4. 集成子系统
  5. 集成系统
5. 测试工作流程
1. 测试工作流程的目的
  1. 核实对象之间的交互;
  2. 核实软件的所有构件是否正确集成;
  3. 核实所有需求是否已经正确实施;
  4. 确定是否存在缺陷并确保在部署软件之前将缺陷解决;
2. 测试工作流程的说明
  1. 制订测试计划:确定和描述要实施和执行的测试;
  2. 设计测试:确定、描述和生成测试模型及其工件;
  3. 实施测试:实施测试过程;
  4. 集成测试:确保各构件组合在一起后能够按既定意图协作运行,并确保增量构件的行为正确;
  5. 系统测试:确保整个系统按既定意图运行;
  6. 评估测试:生成并交付测试评估摘要。
6. 部署工作流程

描述那些为确保最终用户可以正常使用软件产品而进行的活动,是开发环境的最后一环;

1. 部署工作流程的目的

成功的生成版本,将软件分发给最终用户;

2. 部署工作流程的说明
  1. 制订部署计划:确保最终用户可成功地使用产品;
  2. 编写支持材料:不同职位的人员有效使用新系统所需的培训材料;
  3. 管理验收测试:确保产品在发布之前进行了充分的测试;
  4. 生成部署单元:为进行beta测试而创建或根据其成熟度为最终产品而创建;
  5. Beta产品测试:创建Beta程序;
  6. 管理验收测试:确保产品在发布之前进行了充分的测试;
  7. 包装产品:说明创建市售产品所需的活动;
  8. 提供下载站点:让用户能够通过互联网下载软件;
7. 配置和变更管理工作流程

描绘了如何在多个成员组成的项目中控制大量的工件;

8. 项目管理工作流程
1. 项目管理工作流程的目的
  1. 为软件密集型项目提供管理框架;
  2. 为项目的计划、人员配备执、执行和监测提供实用的准则;
  3. 为管理风险提供框架。
2. 项目管理工作流程的说明
  1. 初始阶段:由构思新项目开始管理工作流程;
  2. 开发计划制订:判断争取资金还是放弃;
  3. 下一次迭代:要改进和实现的需求;
  4. 迭代评估标准复审,对迭代测试计划进行复审;
  5. 管理迭代的同时,监控项目中执行每天、每周和每月的立项项目管理任务;
  6. 最后迭代完成时:进行主要里程碑复审;
  7. 迭代评估和验收复审之后,将在评估项目规模和风险中重新检查前景、风险列表和商业理由;
9. 环境工作流程
1. 环境工作流程的目的

给软件开发组织提供如那件开发环境;

2. 环境工作流程的说明

在项目的早期迭代中,将通过执行准备项目环境来启用工作流程。

二、小结

  1. RUP 是一个软件开发过程,是一个将用户需求转化为软件系统所需呀的活动的集合;
  2. RUP是基于构件的,即所构造的软件系统是由软件构件相互连接所建造起来的;
  3. 实用UML来制订软件系统的所有蓝图;
  4. RUP的突出特点是用例驱动、以架构为中心、迭代和增量的;
  5. RUP指导软件开发有6个最佳实践;
  6. 9个核心工作流程和4个开发阶段(初始、细化、构造、移交)。
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值