发信人: t_venus()
整理人: leeyg(2001-06-05 21:58:43), 站内信件
|
Rational Unified Process — 新一代的软件工程方法
作者:广东省邮电科学技术研究院 孙剑晖
Rational Unified Process(以下简称 RUP)是一套软件工程过程,同时也是文档化的软件工程产品,所有 RUP 的实施细节及方法导引均以 Web 文档的形式集成在一张光盘上,由 Rational 公司开发、维护并销售,当前版本是 5.0。
另一方面,RUP 又是一套软件工程方法的框架,各个组织可根据自身的实际情况,以及项目规模对 RUP 进行裁剪和修改,以制定出合乎需要的软件工程过程。
二维的软件开发模型
传统的软件开发模型 Waterfall Process 是一个单维模型,开发工作划分为多个连续的阶段。在一个时间段内,只能作某一阶段的工作,而在 RUP 中,软件开发生命周期根据时间和 RUP 的核心工作流划分为二维空间:时间维从组织管理的角度描述整个软件开发生命周期,是 RUP 的动态组成部分,它可进一步描述为周期(Cycle)、阶段(phase)、迭代(Iteration)。核心工作流从技术角度描述 RUP 的静态组成部分,它可进一步描述为行为(activities)、工作流(workflow)、产品(artifact)、工人(worker)。值得注意的是,几乎所有的工作流在所有的时间段内均有工作量,只是大小不同而已。这与 Waterfall Process 有明显的不同。
1.静态结构:方法描述
软件开发过程描述了什么时候、什么人、做什么事以及怎样实现某一特定的目标。RUP 采用以下四个基本模型元素,组织和构造系统开发过程:
Workers : the who
Activities : the how
Artifacts : the what
Workflows ; the when
Worker 也就是角色,它描述某个人或一个小组的行为与职责。一个开发人员可以同时是几个 Worker,一个 Worker 也可以由多个开发人员共同承担。RUP 预先定义了很多 Workers,并对每一个 Worker 的工作和职责都作了详尽的说明。
Activity 是一个有明确目的的独立工作单元。Artifact 是 Activity 生成、创建或修改的一段信息。它是 Activity 的输入同时又是它的输出结果。Artifact 以多种形式存在,包括模型(Model)、原代码、可执行文件和文档等。
Model 是从某一角度对系统的完全描述。RUP 很大一部分工作就是设计和维护一系列模型,其中包括 Use Case Model、Business Model、Analysis Model、Design Model 等。所有这些模型都以 UML 描述,因此它们是标准的并为多种 CASE 工具支持。
Wrokflow 描述了一个有意义的连续 Activititys 序列,每个 Workflow 产生一些有价值的 Artifacts,并显示出Workers 之间的关系。RUP 主要提供两种组织 Workflow 的方式: 核心工作流(Core workflows)和迭代工作流(Iteration workflows)。
核心工作流从逻辑上把相关的 Workers 和 Activities 划分为组,以描述 RUP 的逻辑组成部件。它们相当于模板,并不在开发过程中真正执行;迭代工作流是 RUP 的一个具体实现过程,它们对核心工作流进行裁剪,是核心工作流的具体实现。
RUP 有 9 个核心的工作流。以下简单描述这些工作流的目的:
· 商业建模理解待开发系统的组织结构及其商业运作,确保所有参与人员对待开发系统有共同的认识;
· 需求分析定义系统功能及用户界面,使客户了解系统的功能、开发人员了解系统的需求,为项目预算及计划提供基础;
·分析与设计把需求分析的结果转化为实现规格;
·实现定义代码的组织结构、实现代码、单元测试和系统集成;
·测试校验各子系统的交互与集成,确保所有的需求被正确实现并在系统发布前发现错误;
·发布打包、分发、安装软件,升级旧系统;培训用户及销售人员,并提供技术支持,制定并实施 beta 测试;
·配置管理跟踪并维护系统所有 Artifacts 的完整性和一致性;
·项目管理为计划、执行和监控软件开发项目提供可行性指导;为风险管理提供框架和环境;为组织提供过程管理和工具的支持。
2.动态结构:迭代式开发
在时间维上,为了能够方便地管理软件开发过程,监控软件开发状态,RUP 把软件开发周期划分为 Cycles,每个 Cycle 生成一个产品的新版本并依次由四个连续的阶段组成,每个阶段都应完成确定的任务:
·起始阶段定义最终产品视图、商业模型并确定系统范围;
·演化阶段设计并确定系统的体系结构,制定工作计划及资源要求;
·构造阶段构造产品并继续演进需求、体系结构、计划直至产品提交;
·提交阶段把产品提交给用户使用。
每个阶段结束前都有一个里程碑(MileStone)评估该阶段的工作。如果未能通过该里程碑的评估,则决策者应该决定是取消该项目,还是继续进行该阶段的工作。
每一个阶段都由一个或多个连续的迭代(Iteration)组成,每一个迭代都是一个完整的开发过程。与 Core Workflow 不同,RUP 并没有也无法给出 Iteration Workflows 的具体实现步骤,它需要项目经理根据当前迭代所处的阶段、以及上次迭代的结果,适当地对 Core Workflows 中的 Activities 进行剪裁以实现一个具体的迭代工作流。
RUP 的迭代开发过程是受控的,在项目计划中就制定了项目迭代的个数、每个迭代的延续时间以及目标。在每一个迭代的起始阶段都制定了详细的迭代计划和具体的 Iteration Workflow。每次迭代过程都生成该次迭代的 Release 作为下次迭代的基础。在迭代结束前,都应执行测试工作,并仔细评估该迭代过程,为下一次迭代做好准备。
Use Case 驱动
因为缺乏贯穿整个开发过程的线索,传统的面向对象开发方法很难阐述清楚一个软件系统是如何实现其功能的。
Use Cases Model 是需求分析工作流的结果, 它从用户的角度描述该系统应该实现的功能。利用 Use Case Model 可以有效地界定系统范围及其行为, 并为用户及开发人员认同。 Use Case Model 主要由 Use Cases 和 Actors 构成。Use Case 是系统执行的一系列行为,并为 Actor 生成一些有意义的结果。Actor 是所有与本系统有交互的外部系统,可以是人、其他软件系统等。
Use Case 作为分析与设计工作流的输入,是实现分析与设计模型的基础。设计模型作为实现工作流的规格说明书,它自 然要实现 Use Case 模型所定义的功能。同样在测试工作流中,Use Case Model 组成测试实例,用来有效地校验整个系统的正确性。
RUP 的优点
迭代式开发方法是一个不断降低风险的过程,每一次迭代过程都选择风险最大的 Use Cases 执行。因此风险在迭代过程中不断地被发现、被消灭。
迭代式开发方法能够更容易地管理需求的变化,整个开发过程由一次次的独立迭代组成,项目经理能够比较容易地调整迭代过程,使最终产品品满足变化的需求。开发人员以及项目相关人员能够及时地从迭代过程中得到反馈信息,并能够及时修改以前工作中的失误,有效地监控开发过程,并对迭代工作流进行校正,这对一个时间跨度很长的项目具有重要的意义。
以 Use Case 驱动、体系结构为中心的开发使得开发人员能比较容易地控制整个系统的开发过程,管理其复杂性并维护其完整性。
体系结构中定义清晰、功能明确的组件为基于组件式的开发和大规模的软件复用提供了有力的支持,也是项目管理中计划与人员安排的依据。
Rational 公司提供了丰富的 CASE 工具支持 RUP,包括可视化建模工具 Rational Rose、需求管理工具 Requisite Pro、版本管理工具 Clear Case、文档生成 SoDa、测试工具 SQA 和 Perfomence 等。由于 RUP 采用标准的 UML 描述系统 的模型体系结构,因此可以利用很多第三方厂家提供的产品。
---- 昨天没死
就是说今天我还活着 |
|