第2章 RUP软件开发过程
2.2 RUP过程框架
3. 构建阶段 在构建阶段,主要完成选择所需要的构件,开 发应用程序的主要功能,并把这些功能集成为 产品,并对这些产品进行测试。从某种意义上 说,构建阶段是一个制造过程,其重点放在管 理资源及控制运作以及优化成本、进度和质量。 构建阶段结束时是第三个重要的里程碑—功能 里程碑。
2.5 RUP的活动 (2)细化阶段核心活动 细化阶段的核心活动有:快速确定构架、确认 构架并为构架建立基线;根据此阶段获得的新 信息改进前景,对推动构架和计划决策的最关 键用例建立可靠的了解;为构建阶段创建详细 的迭代计划并为其建立基线;改进开发案例, 定位开发环境,包括流程和支持构建团队所需 的工具和自动化支持;改进构架并选择构件。
2.4 RUP的角色
RUP角色可以分为以下五个角色集: (1)分析员角色集 (2)开发人员角色集 (3)测试人员角色集 (4)经理角色集 (5)其它角色集
在RUP中的软件开发迭代式解决方案促 进从业者采用两种观点。首先,它促进团 队理解整体解决方案,然后在每一次迭代 中基于上一次迭代重新评估并调整整体解 决方案。第二,在每次迭代中,它促进团 队主要着重于解决方案的一个方面 —— 每次后继迭代构建解决方案的一个方面, 直至整体完成。
2.3 RUP的静态结构
1. 业务建模 业务建模工作流描述了系统开发的一个构想, 使用业务用例模型来描述这个构想,包括业务 对象模型中定义组织的过程、角色和责任。大 多数实际工程项目的主要问题在于软件工程和 企业工程这两个领域无法进行有效的交流,导 致对企业工程的分析无法直接进行转换用于软 件开发。
2.1 RUP软件开发过程概述 2.1.2 RUP主要特点 RUP有三个突出的特点: (1)用例驱动 (2)以构架为中心 (3)采用迭代和增量模型 (1)所有的软件开发都是用户需求驱动的。统一 软件开发过程采用用例来描述用户需求,同时提供 了一套方法把用例转化为设计的类图,进一步变成 最终的程序代码。在整个软件开发过程中,需求用 例是可跟踪的。
2.2 RUP过程框架
2. 细化阶段 细化阶段也称为精化阶段。细化阶段的目标是 分析问题领域,准备构架的设计,编制项目计 划,淘汰项目中最高风险的元素。为此必须在 理解整个系统的基础上确定系统的构架,包括 系统的范围、主要的功能需求以及性能需求。 同时为项目建立支持环境,包括创建开发案例, 创建模板并准备工具。细化阶段结束时第二个 重要的里程碑—周期结构里程碑。
2.2 RUP过程框架
4. 产品化阶段 产品化阶段又称为交付阶段,这个阶段的重点 是确保软件对最终用户是可用的。产品化阶段 可以跨越几次迭代,包括为发布做准备的产品 测试,基于用户反馈的少量的调整。在产品化 阶段的终点是第四个里程碑—发布里程碑。此 时需要判断最初预定的目标是否实现,是否应 该开始下一个开发周期。
2.3 RUP的静态结构 6. 部署 部署工作流的目的是成功的生成版本并将软件 分发给最终用户。部署工作流描述了那些与最 终用户相关的活动,包括:软件打包、生成软 件本身以外的产品、安装软件、为用户提供帮 助。
2.3 RUP的静态结构 7. 配臵与变更管理 配臵与变更管理工作流描绘了如何在多个成员 组成的项目中控制和管理变更。配臵和变更管 理工作流提供了一套准则来跟踪软件创建过程 中的各个版本。配臵与变更管理工作流描述了 如何管理并行开发、分布式开发、如何自动化 创建工程。同时也阐述了对产品修改原因、时 间、人员进行记录。把谁、什么时候、为什么 对什么产品做的什么修改记录下来。
2.3 RUP的静态结构
2. 需求 需求工作流的目标是描述系统应该做什么,并 使开发人员和用户就这一描述达成共识。为了 达到该目标,要对需要的功能和约束进行提取、 组织、文档化,最重要的是理解系统所解决问 题的定义和范围。
2.3 RUP的静态结构 3. 分析设计 分析设计工作流将需求转化成未来系统的设计, 为系统开发一个健壮的结构,并调整设计使其 与实现环境相匹配,优化其性能。分析设计的 结果是一个设计模型和一个可选的分析模型。 设计模型是源代码的抽象,由设计类和一些描 述组成。设计类被组织成具有良好接口的设计 包(Package)和设计子系统(Subsystem), 而描述则体现了类的对象如何协同工作以实现 用例的功能。
2.2 RUP过程框架 2.2.2 RUP迭代开发模式
RUP中的每个阶段可以进一步分解为迭代。一 个迭代是一个完整的开发循环,产生一个可执 行的产品版本,是最终产品的一个子集。采用 增量开发方式,不断从一个迭代过程到另一个 迭代逐步积累,一步一步地完成最终的系统。
2.3 RUP的静态结构
在RUP模型图中包括九个工作流,被称为RUP 的核心工作流。核心工作流进一步分为六个核 心过程工作流和三个核心支持工作流。模型图 中的阴影部分描述了不同的工作流在不同的时 间段内工作量的不同。
对应于这两个方面的两种视角通常被 称为广度视角与深度视角。在一个迭代式 项目中,你首先集中于广度视角,然后精 选一个方面以集中于深度。分离的广度与 深度,正如在迭代式开发中所做的那样, 使得一个项目可以更灵活地被更改。不仅 仅是广度视角可以更容易的建立,而且当 更改来临时,可以并且很轻易的调整广度 视角。
2.1 RUP软件开发过程概述
(2)构架是一个小的、皮包骨头的系统,它实现了 用户的核心需求,包括了系统中最重要的静态和动 态特征。构架刻画了系统的整体设计,它舍弃了细 节部分,突出了系统的重要特征。 (3)在进行软件系统开发时,统一软件开发过程 采用迭代和增量的开发方式,把一个软件产品划分 成多个较小的部分,每次完成一个部分,这个部分 是产品的一个增量部分。每个增量部分的生产过程 是都受控的。
2.5 RUP的活动 (1)先启阶段核心活动 先启阶段的核心活动有:明确地说明项目规模; 计划和准备商业理由、评估风险管理、人员配 备、项目计划和成本/进度/收益率折衷的备选方 案;综合考虑备选构架,评估设计和自制/外购/ 复用方面的折衷,从而估算出成本、进度和资 源;准备项目的环境,评估项目和组织,选择 工具,决定流程中要改进的部分。
信息系统分析与设计
第2章 RUP软件开发过程
第2章
RUP软件开发过程
为了保证项目的成功不仅需要面向对象的分析设计 工具,还需要一个好的软件开发过程。 RUP(Rational Unified Process)又称为统一软件 过程能够有效的管理工作进度,控制和改善工作效 率。它是目前的软件过程中与UML结合最好的过程, 支持面向对象的软件开发,本章将对RUP进行简要 的介绍。
2.3 RUP的静态结构 8. 项目管理 软件项目管理平衡各种可能产生冲突的目标, 管理风险,克服各种约束并成功交付使用户满 意的产品。其目标包括:为项目的管理提供框 架,为计划、人员配备、执行和监控项目提供 实用的准则,为管理风险提供框架等。
2.3 RUP的静态结构 9. 环境 环境工作流的目的是向软件开发组织提供软件 开发环境,包括过程和工具。环境工作流集中 于配臵项目过程中所需要的活动,同样也支持 开发项目规范的活动,提供了过程指导手册并 指导项目组如何来实现过程。环境工作流的重 点是在项目环境中,进行软件开发过程的配臵 活动。
2.5 RUP的活动 在RUP中,为每个角色定义了要完成的工作, 每个单独的工作成为一个活动。一项活动是一 个工作单元,由参与项目的某一成员执行,活 动有明确的目的,其内容通常表述为创建或更 新某些工件,例如一个模型、一个类或一个计 划。每个活动都被分配给具体的角色。一个活 动一般延续几个小时到几天,它通常涉及一个 或几个角色,只影响一个或少数几个工件。一 项活动应该是一个便于实施的计划单元及流程 单元。
ห้องสมุดไป่ตู้
2.2 RUP过程框架 2.2.1 RUP过程框架模型
使用RUP开发软件产品,每个软件产品的开发 过程都应该包括多次循环。每个循环包括四个 阶段:初始、细化、构建和产品化。每个阶段 又包括多个迭代过程。
2.2 RUP过程框架 统一软件过程是一个二维结构,如图2.1所示
2.2 RUP过程框架 2.2.2 RUP过程阶段
2.1 RUP软件开发过程概述 2.1.3 RUP最佳实践 RUP在不断的实践过程中,总结出六个最有效地实 践经验,称为最佳实践。这些最佳实践是对实际软 件开发过程应用的总结,这六个最佳经验是: (1)迭代的软件开发 (2)需求管理 (3)使用基于构件的体系结构 (4)可视化软件建模 (5)验证软件质量 (6)控制软件变更
相反的,一个迭代式项目领导者将广度从深 度中分离开,为广度视角建立一个粗颗粒度的计 划以显示各个阶段,列出业务用例,并显示出当 项目成熟时如何对评估进行更改。深度视角是对 每个单一迭代更细节的计划,也许是在整个持续 时间中的六个星期。这个计划将比试图猜测在一 或二个星期内的所有项目细节的计划更准确且不 容易导致错误。 这个迭代的广度及深度解决方案对所有九个 RUP规程都有效,而不仅仅对项目管理而言。
2.4 RUP的角色
角色是抽象的职责定义,它定义的是所执行的 一组活动和所拥有的一组工件。角色通常由一 个人或作为团队相互协作的多个人来实现。项 目团队成员通常要履行许多不同的角色职能, 就象一个人可以担任许多职务,一个人也可以 担任许多不同的角色。角色并不代表个人,而 是说明个人在业务中应该如何表现以及他们在 业务活动中应该承担的责任。
2.1 RUP软件开发过程概述 2.1.1 RUP简介 RUP是Rational公司推出的软件过程模型,它是软件 业界迄今为止商品化最成功的软件过程模型。RUP 的近千页文档可以从Rational公司的网站下载,RUP 的主要特征包括: 采用迭代的、增量式的开发过程 采用UML语言描述软件开发过程 有一系列功能强大的软件工具支撑
2.3 RUP的静态结构 4. 实施 实施工作流的目的包括以层次化的子系统形式 定义代码的组织结构,以构件的形式(源文件、 二进制文件、可执行文件)实现类和对象,将 开发出的构件作为单元进行测试,以及集成由 单个开发者所产生的结果,使其成为可执行的 系统。