软件工程(Rational统一过程)
Rational统一过程(Rational Unified Process,RUP)是由Rational软件公司推出的一种完整而且完美的软件过程。
RUP总结了经过多年商业化验证的六条最有效软件开发经验,这些经验被称为“最佳实践”。
1,最佳实践
(1)迭代式开发
通常,采用线性顺序的开发方法不可能开发出当今客户的需要的大型复杂软件系统。事实上,在整个软件开发过程中客户的需求会经常发生变化,因此需要一种能够通过一系列细化,若干个渐进的反复过程而得出有效的解决方案的迭代方法。
迭代式开发允许每次迭代过程中需求都可以有变化,这种开发方法通过一系列细化来加深对问题的理解,因此能更容易地容纳需求的变更。
也可以把软件开发过程看着一个风险管理过程,迭代式开发通过采用可验证的方法来减少风险。采用迭代式开发方法,每个迭代过程以完成可执行版本结束,这不仅使最终用户可以不断地介入和提出反馈意见,而且开发人员有因随时有一个可交付的版本而提高士气。
(2)管理需求
在开发软件过程中,客户需求将不断发生变化,因此,确定系统的需求是一个连续的过程。RUP描述了如何提取,组织系统的功能性需求和约束条件并把它们文档化。
(3)使用基于构件的体系结构
所谓构件就是功能清晰的模块或子系统。系统可以由已经存在的,由第三方开发商提供的构件组成,因此构件使软件重用成为可能,RUP提供了使用现有的或新开发的构件定义体系结构的系统化方法,从而有助于降低软件开发的复杂性,提高软件的重用率。
(4)可视化建模
为了更好地理解问题,人们常常采用建立问题模型的方法。所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。由于应用领域不同,模型可以有文字、图片或数学表达式等多种形式,一般来说,可视化的图形形式更容易理解。
(5)验证软件质量
某些软件不受欢迎的一个重要原因,是其质量低下。在Rational统一过程中,软件质量评估不再是事后型的或由单独小组进行的孤立活动,而是内建在贯穿于整个开发过程的、由全体成员参与的所有活动中。
(6)控制软件变更
在变更是不可避免的环境中,必须具有管理变更的能力,才能确保每个修改都是可接受的而且能被追踪的。RUP描述了如何控制、跟踪和监控修改,以确保迭代开发的成功。
2,RUP软件开发生命周期
RUP软件开发生命周期是一个二维的生命周期模型。
(1)核心工作流
· 业务建模:深入了解使用目标系统的机构及其商业运作,评估目标系统对使用它的机构的影响。
· 需求:捕获客户的需求,并且使开发人员和用户达成对需求描述的共识。
· 分析与设计:把需求分析的结果转化成分析模型与设计模型。
· 实现:把设计模型转换成实现结果(形式化地定义代码结构;用构件实现类和对象;对开发出的构件进行单元测试;把不同实现人员开发出的模块集成为可执行的系统)。
· 测试:检查各个子系统的交互与集成,验证所有需求是否被正确地实现了,识别,确认缺陷并确保在软件部署之前消除缺陷。
· 部署:成功地生成目标系统的可运行版本,并把软件移交给最终用户。
· 配置与变更管理:跟踪并维护在软件开发过程中产生的所有制品的完整性和一致性。
· 项目管理:提供项目管理框架,为软件开发项目制定计划、人员配备、执行和监控等方面的实用准则,并为风险管理提供框架。
· 环境:向软件开发机构提供软件开发环境,包括过程管理和工具支持。
(2)工作阶段
RUP把软件生命周期划分为四个阶段:
· 初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围。
· 精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求。
· 构件阶段:开发出所有构件和应用程序,把它们集成为客户需要的产品,并且详尽地测试所有功能。
· 移交阶段:把开发出的产品提交给用户使用。
(3)RUP迭代式开发
迭代计划的特点:
- 一个迭代是总体项目计划的一个阶段
- 需要明确的交付目标(或可以运行的系统)
- 多个比较明确的角色的参与
- 可以串行也可以并行
- 体现了 RUP 架构驱动、关注风险的特点
- 实现快速交付,缩短大项目的交付周期
- 提高客户参与度和项目的可视化
迭代计划的开发考虑的因素:
- 总体项目计划
- 项目规模大小、周期
- 需求明确程度和技术风险
- 团队成熟度和规模
- 项目所处的阶段,在同一个项目的不同的阶段可以采用不同的迭代计划方法
开发特征
1.在进行大规模的投资之前就解决了关键的风险分析。
2.使得早期的用户反馈在初始迭代中就能出现。
3.对各个目标里程碑提供了短期的焦点(阶段性的中心)。
4.对过程的测量是通过对实现的评定(而不仅仅是文档)来进行的。
5.可以对局部的实现进行部署。
软件工程(Rational统一过程)相关推荐
- Rational统一建模过程的十大要素
转贴自 http://www.chinaitpower.com/A200508/2005-08-07/184053.html Rational统一建模过程的十大要素 为了有效的应用 Rationa ...
- 软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷)
软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷开发) 目录 软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷开发) 瀑布模型 特性 优点 缺点 适用 ...
- AUP2敏捷统一过程之一:序言及降低过程的总体拥有成本
这是敏捷统一过程系列的第一篇.(前篇,之一序言,栏目总目录) 敏捷统一过程的全称是AUP(Agile Unified Process),不过为了能区别已经被提过一次的AUP(就是RUP),这里称之为A ...
- 开发过程---统一过程
统一过程 统一过程(Unified Process,UP)是由 Rational 公司开发的一种迭代的软件过程,是一个优秀的软件开发模型,它提供了完整的开发过程解决方案,可以有效地降低软件开发过程的风 ...
- 软件工程过程模型——统一过程模型
统一过程模型 统一过程模型 一.统一过程二维模型 1.二维模型图示 2.模型构成 二.统一过程实践方法 欢迎关注我.共勉:star: 统一过程模型 好的设计思想总是会在不同的模型中以不同的表达方式反复 ...
- 102.怎么学好软件工程?软件工程 = 工具 + 方法 + 过程
文章目录 3.怎么学好软件工程? (1)首先必须了解一下软件工程的道.术.器 (2)软件工程知识全景图 (3)何为工具?何为方法?何为过程? 1️⃣ 什么是过程? 2️⃣ 什么是方法? 3️⃣ 什么是 ...
- 统一过程(UP)定义了初启阶段、精化阶段、构建阶段、移交阶段和产生阶段,每个阶段以达到某个里程碑时结束,其中()的里程碑是生命周期架构。 A.初启阶段 B.精化阶段 C.构建阶段 D.移交阶段
[最全!最详细解析!!!] 统一过程(UP)定义了初启阶段.精化阶段.构建阶段.移交阶段和产生阶段,每个阶段以达到某个里程碑时结束,其中()的里程碑是生命周期架构. A.初启阶段 B.精化阶段 C.构 ...
- 【系统设计】统一过程的类抽取
统一过程是用例驱动的.在需求分析阶段,用例以软件产品的类描述. 统一过程有三种类: 实体类:实体类为长期存在的信息建模 边界类:边界类为软件产品和它的参与者之间的交互行为建模,通常与输入和输出相关 控 ...
- ZT——你怎么过河? -在CMM实践中你是否愿意多走1公里-软件工程 CMM与过程改进
from :http://bbs.csai.cn/BBSOldArticle/A2/E6AA141A-200C-4F29-A918-38E61BA9FBED.html 作 者 guwangjun 阅读 ...
最新文章
- Java学习之移动文件(转)
- http方法_手撸HTTP是理解HTTP的最好方法(0)
- Linux安装与硬盘分区
- 讲解web服务所涉及到的重要知识点
- Linux常用命令—文件处理命令—文件处理命令
- java程序linux自己更新自己,Linux下升级JAVA的一个小方法
- 【王道计组笔记】储存系统(1):基本概念
- i.MX6 设备树 GPIO 默认值
- android后台倒计时,android倒计时封装(活动进入后台,倒计时依然能正常计时)...
- 从大数据的角度看 房价一定会下跌
- ppt竖排文字方向HTML 5,PPT文本框中文字方向的设置方法是什么
- 基于crontab的服务器恶意程序
- 熊啸锋:在线生成个人网站,如何建立个人网站教程
- 噜噜噜啦啦啦啦啦啾啾啾~
- 读书笔记:《关于上班这件事--自序·朱德庸》
- JAVA集成支付宝支付 周期扣费 (证书方式)
- 【ubuntu】fatal: detected dubious ownership in repository at ...
- 有关腾讯云简单的域名解析笔记
- webpack、sass-loader、npm audit fix、npm audit fix --force兼容性问题
- MySQL数据类型以及基本使用详解
热门文章
- Leetcode 704.二分查找
- mysql连接不上怎么重置密码错误_MySQL数据库连接不上、密码修改问题
- atomic在linux编译不通过,内存障碍和在linux上的atomic_t
- 拼的html页面乱,页面分页html拼接
- 怎么看调用的接口_SpringCloud服务间调用
- php启动 大量sess文件,关于PHP中Session文件过多的问题
- python用outlook自动发邮件_python使用两种发邮件的方式smtp和outlook示例
- html制作圆盘时钟,jquery+html5制作超酷的圆盘时钟表
- Linux相关配置 集群免密码登录配置
- python staticmethod有什么意义_关于静态方法:python中的@staticmethod有什么意义?