1.前言

本文主要对迭代开发的一种方法 统一过程(UP),进行概要说明,以作为《UML和模式应用》这本书的补充.

2. 统一过程概述

  • 统一过程

统一过程(RUP/UP,Rational Unified Process)是一种以用例驱动、以体系结构为核心、迭代及增量的软件过程模型,由UML方法和工具支持,广泛应用于各类面向对象项目。

  • RUP

. RUP 是 Rational 公司开发的一套软件过程框架

. RUP 本身支持可裁减性,可以应付各种领域软件和不同的项目规模

. RUP蕴含了大量优秀的实践方法,如:迭代式软件开发、需求管理、基于构件的构架应用、建立可视化的软件模型、软件质量验证、软件变更控制等

. RUP 把整个软件开发生命周期分为多个循环,每个循环由四个阶段组成,每个阶段完成确定的任务,结束前有一个里程碑评估本阶段的工作

3. 统一过程模型

图 RUP 统一过程模型

  • RUP的二维结构

. 横轴按时间组织,显示RUP的动态特征,通过迭代式软件开发的周期、阶段、迭代和里程碑等动态信息表示;

. 纵轴按内容组织,显示RUP的静态特征,通过过程的构建、活动、工作流、产品和角色等静态概念来描述系统

注:其中每个工作流的高度体现随时间变化工作量的变化,早期的迭代趋向于更多的需求和设计,后期则减少这方面的工作

  • RUP的静态结构

. 6个核心工作流:业务建模、需求、分析设计、实现、测试、部署

. 3个核心支持工作流:配置与变更管理、项目管理和环境

  • RUP的工作流
工作流 制品 工作内容
业务建模

商业逻辑建模(USE CASE)(ROSE)

业务需求说明书(MS WORD)

专业词汇表(英汉对照)(MS WORD)

风险说明(MS WORD)

复审说明书

 
需求 用例图

了解目标组织的结构及机制

明确目标组织中当前存在的问题并确定改进的可能性

确保客户、最终用户、开发人员就目标组织达成一致

导出支持目标组织所需的系统需求

分析设计  

将系统需求转化为未来系统的设计

逐步开放强壮的系统架构,使设计适合于实施环境,为提高性能而进行设计

实施   定义代码结构,以构件的方式实施类和对象,对已开发的构件按类和单元来测试,并且将结果集成到可执行的系统中
测试  

测试仅限于对各个类进行单元测试,测试工作流包括:

  核实对象之间的交互

  核实软件的所有构件是否正确集成

  核实所有需求是否已经正确实施

  确定缺陷,确保在部署软件之前将风险降到最低

表 RUP的工作流

注:其中业务建模、需求、设计、实施是《UML与模式应用》中重点关注的科目

  • RUP的四个阶段
RUP阶段 工作内容
初始阶段 大体上的构想,业务案例,范围,和模糊评估。定义系统的业务模型,确定系统的范围。完成后建立目标里程碑
细化阶段 已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。完成系统的体系结构设计,完成系统开发计划。建立结构里程碑
构建阶段 对遗留下的风险较低和比较简单的元素进行迭代实现,准备部署。构造产品,并继续演进需求、体系结构和计划,直到产品完成
移交阶段 进行系统部署,系统测试,最终移交给用户。最后建立发布里程碑

表 RUP的四个阶段

每个阶段都由一个或多个迭代组成。每个迭代都要针对不同的业务用例或系统用例进行细化和实现

4. 参考文档

[1] 论UP(统一过程方法)的应用

[2] 统一过程模型(RUP/UP)

统一过程模型(UP)的更多相关文章

  1. 瀑布模型,(增量开发)渐增式开发,原型化开发,统一过程模型(RUP)

    瀑布模型:设计在开发阶段 瀑布模型有以下优点 1)为项目提供了按阶段划分的检查点. 2)当前一阶段完成后,您只需要去关注后续阶段. 3)可在迭代模型中应用瀑布模型. 增量迭代应用于瀑布模型.迭代1解决 ...

  2. 统一过程模型(RUP/UP)

    http://blog.sina.com.cn/s/blog_6a06f1b7010121hz.html 统一过程(RUP/UP,Rational Unified Process)是一种以用例驱动.以 ...

  3. Atitit 软件工程概览attilax总结

    Atitit 软件工程概览attilax总结 1.1. .2 软件工程的发展 进一步地,结合人类发展史和计算机世界演化史来考察软件工程的发展史. 表2 软件工程过程模型 表2将软件工程的主要过程模型做 ...

  4. UML和模式应用2: 迭代、进化和敏捷

    1.前言 本章主要介绍迭代.敏捷开发及UP(统一过程)的基本概念 2.基本术语 Items Note 软件开发过程 描述了构造.部署及维护软件的方式 迭代开发 是一种软件开发过程的生命周期模型,依赖短 ...

  5. .NET Core的日志[1]:采用统一的模式记录日志

    记录各种级别的日志是所有应用不可或缺的功能.关于日志记录的实现,我们有太多第三方框架可供选择,比如Log4Net.NLog.Loggr和Serilog 等,当然我们还可以选择微软原生的诊断框架(相关A ...

  6. 通过自定义特性,使用EF6拦截器完成创建人、创建时间、更新人、更新时间的统一赋值(使用数据库服务器时间赋值,接上一篇)

    目录: 前言 设计(完成扩展) 实现效果 扩展设计方案 扩展后代码结构 集思广益(问题) 前言: 在上一篇文章我写了如何重建IDbCommandTreeInterceptor来实现创建人.创建时间.更 ...

  7. 利用log4j+mongodb实现分布式系统中日志统一管理

    背景     在分布式系统当中,我们有各种各样的WebService,这些服务可能分别部署在不同的服务器上,并且有各自的日志输出.为了方便对这些日志进行统一管理和分析.我们可以将日志统一输出到指定的数 ...

  8. [原创]django+ldap+memcache实现单点登录+统一认证

    前言 由于公司内部的系统越来越多,为了方便用户使用,通过django进行了单点登录和统一认证的尝试,目前实现了django项目的单点登录和非django项目的统一认证,中间波折挺多,涉及的技术包括dj ...

  9. [原创]django+ldap实现统一认证部分二(python-ldap实践)

    前言 接上篇文章 [原创]django+ldap实现统一认证部分一(django-auth-ldap实践) 继续实现我们的统一认证 python-ldap 我在sso项目的backend/lib/co ...

随机推荐

  1. 学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator

    前言 主要是完成微服务的监控,完成监控治理.可以查看微服务间的数据处理和调用,当它们之间出现了异常,就可以快速定位到出现问题的地方. springboot - version: 2.0 正文 依赖 m ...

  2. [hgoi#2019/2/16t2]friend

    题目描述 在一个遥远的国度里有n个人,每个人手上写着4个互不相同的数. 这个国度比较奇怪,如果两个人至少有一个数字相同,则他们是一对朋友. 现在这n个人按序号从左到右排成了一排,每个人都想知道在他左边 ...

  3. 批量导入导出站点权限site permissions

    批量导入站点权限   cls $Web = Get-SPWeb "http://16.178.115.14:91/" Get-Content c:\export\account.t ...

  4. Announcing WebKit SDL port

    转自:http://www.dorothybrowser.com/announcing-webkit-sdl-port/ 下载地址 https://gitorious.org/spiegel/webk ...

  5. A1033. To Fill or Not to Fill

    With highways available, driving a car from Hangzhou to any other city is easy. But since the tank c ...

  6. 初次认识:Transfer-Encoding: chunked

    Transfer-Encoding: chunked 表示输出的内容长度不能确定,普通的静态页面.图片之类的基本上都用不到这个. 但动态页面就有可能会用到,但我也注意到大部分asp,php,asp.n ...

  7. 2018.9青岛网络预选赛(C)

    传送门:Problem C https://www.cnblogs.com/violet-acmer/p/9664805.html 题意: 定义五个指令,判断能否从输入的n条指令中成功跳出循环,如果不 ...

  8. 20145215《网络对抗》Exp6 信息搜集与漏洞扫描

    20145215<网络对抗>Exp6 信息搜集与漏洞扫描 基础问题回答 哪些组织负责DNS,IP的管理? 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.DNS和 ...

  9. redis分布式工具类 ----RedisShardedPoolUtil

    这个是redis分布式的工具类,看非分布式的看  这里 说一下redis的分布式,分布式,无疑,肯定不是一台redis服务器.假如说,我们有两台redis服务器,一个6379端口,一个6380端口.那 ...

  10. CentOS6.8下安装memcached并设置开机自启动

    参考资料:http://www.cnblogs.com/handongyu/p/6419305.html    http://coolnull.com/1986.html 一.安装libevent 首 ...