RUP

本文介绍了软件危机的主要特征及RUP(Rational Unified Process)的概念、目标与核心思想,阐述了RUP如何通过迭代式开发、管理需求、使用构件架构、可视化建模等措施实施最佳实践。此外,还概述了RUP的基本特征、软件开发生命周期以及其带来的观念变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 软件危机

主要特征

软件开发周期大大超过规定日期;

软件开发成本严重超标;

软件质量难于保证。

2.RUP介绍

概念

指想要达到一个目标而采取的一组有序的步骤

(Rational Unified Process):Rational统一过程

目标

在预定的进度和预算中提供高质量的、满足最终用户需求的软件。

与UML的联系

UML很大程度上是过程独立的,可以将它运用于许多软件过程

RUP是一种特别是基于UML的生命周期方法

RUP提出了一整套以UML为基础的开发准则,用以指导软件开发人员以UML为基础进行软件开发

处理的问题

有缺陷的、如法预见结果的、高度依赖与个别“英雄”程序员的、不可重复的开发过程

开发的软件难以适应用户的要求

在应对需求的 变更方面无能为力

需要单调乏味和昂贵的测试流程

项目中出现的严重缺陷发现得太迟

开发的软件难以维护和扩充

开发人员共享

同一个知识库

同一个开发过程

同一个开发视图

同一种建模语言

3.RUP思路

RUP达到最佳实践的几种措施 Implementing Best Practices

迭代式开发

优点

降低风险

得到早期用户反馈

持续的测试和集成

适应变更

提高复用性

特征

在进行大规模的投资之前就解决了关键的风险问题

使得早期的用户反馈在初始迭代中就能出现

各个目标里程碑提供了短期的焦点

对过程的测量时通过对实现的评定(而不仅仅是文档)来进行的

可以对局部的实现进行部署

管理需求(Manage Requirements)

概念

一种用于查找、记录、组织和跟踪系统需求变更的系统化方法

构成

提取、组织系统的功能和约束,并将它们写成文档

估计需求的变化并评估它们会产生的影响

跟踪需求的实现

使用构件架构

优势

对体系结构进行自下而上的设计、实现和测试

用一种系统化的做法来定义好的体系结构

采用定义明确的接口来使得变更有弹性

采用线程的和通过一项工程得到的构件

由高级别的用例来驱动

易于直观上的理解

层次(自上而下)

Application specific

Business specific

Middleware

System software

可视化建模

描述体系结构的特点和结构。

描述系统里的各个元素如何组合在一起。

保证设计和实现上的一致性。

保证没有歧异的沟通。

检验质量

概念

为每个关键模块创建测试用例并测试,从而保证所有的需求被正确的实现

不可接受的应用性能和不能接受的可靠性对一个软件系统的影响同等重要

验证软件可靠性

对每一次迭代进行测试

检验内容

Functionality(功能)

Performance(性能)

Supportability(维修能力)

Usability(可用性)

Reliability(可靠性)

控制变更

管理哪些变更

控制、追踪和监控项目的所有变更,从而启动每次迭代。

为每个开发者建立安全的工作空间。

对不同工作空间的改动提供隔离机制。

控制多有的软件制品:模型、代码、文档等。

变更管理

Workspace Management(工作空间管理)

Process Integration;(过程集成)

Parallel Development(并行开发)

Build Management(建筑管理)

4.RUP基本特征

迭代式增量开发

将软件开发分为一系列小的迭代过程,在每个迭代过程中逐步增加信息、进行细化

根据具体情况决定迭代次数、每次迭代延续的事件以及迭代工作流

每次迭代都选择目前对风险影响最大的用例进行,以分解和降低风险

用例驱动(Use Case-driven)

采用用例来捕获对目标系统的功能需求

采用用例来驱动软件的整个开发过程,保证需求的可跟踪性,确保系统所有功能均被实现

将用户关心的软件系统的业务功能模型和开发人员关心的目标软件系统的功能实体模型结合起来

以软件体系结构为中心

强调在开发过程早期,对于软件体系结构紧密相关的用力进行分析、设计、实现和测试,形成体系结构框架

在后续阶段对框架细化,最终实现整个系统

在早期形成良好的体系结构,有利于对系统的理解、支持重用和有效的组织软件开发

5.RUP软件开发生命周期

时间(Time)

周期(Cycles)

阶段(Phases):

Inception(起始阶段)

意图

建立业务模型用例

明确项目的范围

结果

项目的实际需求:初始用例模型和领域模型(10-20%完成)

初始的业务案例:成功准则;风险评估;所需资源评估;显示主要里程碑进度表的阶段计划

最后

检查项目的生命周期目标,决定是否继续进行全范围的开发

Elaboration(细化阶段)

意图

分析问题域

建立一个健全的、合理的体系结构基础

明确该项目中分先的元素

制定一个合理的项目开发计划

结果

用例图和领域模型(80%完成)

一个可执行的体系结构和文档

一个修订的用例图和风险评估

一个针对整个项目的开发计划

最后

检查已经细化的系统目标和范围,体系结构的选择以及主要风险的解决办法, 决定是否需要进行构造

Construction(构建阶段)

意图

迭代增量的开发一个完整的软件系统,该产品是准备提交给用户使用

产品

完整的用例图和设计模型

用户手册

可执行代码

开发文档

每次迭代的评测标准

改进的开发计划

Transition(提交阶段)

意图

为用户安装部署软件

产品

可执行的程序

改进的系统模型

每次迭代的评测标准

发出程序的描述和评测指标描述

改进的用户文档

改进的开发文档

迭代(Iterations)

概念

每个阶段进行若干次。

迭代代表一个完整的开发周期

结束标志

每个阶段和迭代都有一些风险缓解焦点,并以一个定义良好的里程碑结束

迭代和阶段的关系

每个极端可以分解成多个迭代

一个迭代式一个完整的开发循环, 他将产生一个可执行茶品的发布版本,这个版本构成最终产品的一个子集, 然后迭代的得到最终系统

核心工作流(Core Workflow)

工作流(Workflow)

对应于特定的迭代的连续活动。

活动(Activities)

需求定义、分析、设计、实现和测试。

中间制品(Artifacts)

活动的结果。

6.RUP带来的观念变化

1)更强的计划性

2)坦然面对迭代过程中一部分中间制品的推倒重来

3)把软件放在首位

4)尽早进行困难的工作

5)坦然面对中间制品的“不美观”

6)加强开发过程监控与量化管理

7)确定迭代的数量、持续时间和内容

8)既需要好的项目管理者,也需要好的体系结构设计师

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值