RUP (Rational Unified Process)是IBM公司一款软件开发过程产品,它提出了一整套以UML为基础的开发准则,用以指导软件开发人员以UML为基础进行软件开发。RUP汲取了各种面向对象分析与设计方法的精华,提供了一个普遍的软件过程框架, 可以适应不同的软件系统、应用领域、组织类型和项目规模。
请围绕“论软件开发过程RUP及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.详细论述软件开发过程产品RUP所包含的4个阶段以及RUP的基本特征。
4个阶段:
使用RUP过程开发软件系统,软件的生命周期分为以下几个阶段:
起始阶段;
目标:
确定项目的软件范围和边界条件
识别出系统的关键用例
展示系统的候选框架
估计整个项目需要费用和事件安排,评估项目风险
主要活动:
建立系统的业务模型
捕获系统的基本需求
确定系统边界
识别关键任务
确定系统验收标准
进行项目风险评估
进行活动资源评估与效益分析
制定项目开发计划与重要里程碑
本阶段的重点是需求分析与系统分析;
里程碑-生命周期目标
细化阶段;
目标:
迅速定出实用框架
规划完成项目的活动,估算完成项目所欲资源
细化初始阶段模型
为构造阶段定出高精度的计划
主要活动:
细化构想,建立对大多数关键用例的确定理解
分析问题域,建立坚实的架构
细化架构并选择组件
获取80%的功能需求用例
精华风险评估
建立可执行的软件原型
定义非功能需求
制定过程迭代计划和迭代的评价标准
细化阶段的重点:
关注需求、分析和设计工作流
工作流关注以下各项:
需求-精细化系统范围和需求
分析-确定构造什么
设计-创建稳定的架构
实现-构造架构基线
测试-测试架构基线
里程碑-生命周期架构
细化阶段的主要产品:
系统架构基线
UML静态模型、UML动态模型、UML用例模型
修订的风险评估
修订的用例
修订的项目计划
可执行的原型
构建阶段;
目标:
实现管理层和用户达成共识的产品的所有用例
一个移交阶段的高精度计划
关键特性和核心功能得到实现
产品发布的验收标准
初步的用户手册
产品质量的详细分析
主要活动:
资源管理、资源控制和过程优化
完成组件开发并根据已定义的评价准则进行测试
利用构想定制的准侧对发布的产品进行评估
重点:
关注系统的实现工作流。每个工作流关注项:
需求-解释任何遗漏的需求
分析-完成分析模型
设计-完成设计模型
实现-构造处室运作功能
测试-测试处室运作功能
里程碑:初始运作功能
主要产品:
可运行的软件系统
UML模型
测试用例
用户手册
发布描述
交付阶段。
目标:
使用产品并改正使用中发现的缺陷
制定安装板并培训用户
支持在线支持
主要活动:
将软件系统部署到用户环境
修复软件的缺陷
编制用户手册和其他文档
培训用户和维护人员
提供用户咨询
重点:
关注系统的测试和配置流程
关注如下各项:
设计-如果β测试中出现问题,修改设计
实现-为用户场地裁剪软件,修复在β测试中发现的问题
测试-β测试及其在用户现场验收测试。
配置-将软件系统部署到环境中,并配置相应参数。
里程碑:产品发布
主要产品:
可运行的软件产品
用户手册
用户支持计划
每个阶段结束于一个主要的里程碑(Major Milestones),在每个阶段的结尾执行一次评估,以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。每个阶段本质上是两个里程碑之间的时间跨度。
RUP核心工作流:
核心过程工作流:
商业建模、需求、分析、设计、实现、测试、部署
核心支持工作流:
设置和变更管理、项目管理、环境
突出的特点:
用例驱动、以架构为核心、迭代和增量过程。
基本特征:
1、迭代式的增量开发
受控的迭代式增量开发
1)将软件开发分为一系列小的迭代过程,在每个得带过程中逐步增加信息、进行细化
2)根据具体情况决定迭代的次数、每次迭代延续的时间以及迭代工作流
3)每次迭代都选择目前对风险影响最大的用例进行,以分解和降低风险
2、用例(Use case-driven)驱动
1)采用用例来捕获对目标系统的功能需求
2)采用用例来驱动软件的整个开发过程,保证需求的可跟踪性,确保系统所有功能均被实现
3)将用户关心的软件系统的业务功能实体功能模型和开发人员结合起来,提供一种贯穿整体软件生存周期的开发方式,使得软件开发的各个阶段的工作自然、一致地协调起来
3、以软件体系结构为中心
1)强调在开发过程的早期,识别出软件与软件的体系结构紧密相关的用例,并通过对这些用例的分析、设计、实现和测试,形成体系结构框架;
2)在后续阶段中对已形成的体系结构框架进行不断细化,最终实现整体系统
3)在开发过程中的早期形成良好的软件体系结构,有利于对系统的理解、支持重用和有效的组织软件开发
RUP采用如下的4+1视图模型:
在4+1视图模型中,
分析人员和测试人员关心的是系统的行为,因此会侧重于用例视图;
最终用户关心的是系统的功能,因此会侧重于逻辑视图;
程序员关心的是系统的配置、装配等问题,因此会侧重于实现视图;
系统集成人员关心的是系统的性能、可伸缩性、吞吐率等问题,因此会侧重于进程视图;
系统工程师关心的是系统的发布、安装、拓扑结构等问题,因此会侧重于部署视图。
5个核心工作流程:
需求捕获、分析、设计、实现、测试
3.结合你所参与管理和开发的软件项目,详细阐述RUP在该项目中的具体实施内容,包括核心工作流的选择、制品的确定、各个阶段之间的演进及迭代计划以及工作流内部结构的规划等。