常用软件过程——RUP

news/2024/7/6 6:44:18

RUP是用例驱动,以架构为中心,迭代式开发过程。

一、用例驱动

用例(Use Case)是一种通过用户的使用场景获得需求的技术。区别于传统的功能分解获取需求的办法,用例方法强调用户是如何使用系统的,即描述用户与系统之间的交互,而不涉及系统内部的行为。用例的一般表示法是UML用例图。

用例方法的主要特点有:

  • 需求表述的抽象性。用例方法以UML用例图的形式表示,对于用例参与者之间的关系一目了然,能更在一个高的抽象级别上理解系统。
  • 需求表述的完整性。某些用户可能并不了解他会使用到系统的某个功能,但UML用例图将有助于发现这些问题。

用例驱动指的是在软件开发过程中,采用用例方法捕获及分析业务需求,并确保由它们来驱动软件的设计、实现和测试,使最终系统更能满足最终用户的需要。

二、以架构为中心

软件架构(体系结构)是构成软件各部分的组件、组件之间的交互及组件组合的约束。软件架构也关系到功能性、可用性、系统弹性、性能、可重用性、可理解性等方面。

在RUP开发的细化阶段,建立一个健壮架构的基础。在构造阶段和交付阶段,再进一步完善架构。在整个开发过程中,架构进一步完善。RUP强调以架构为中心,有利用打造一个可持续开发、可持续维护的软件;且最大限度规避了项目的技术风险。

三、迭代式开发

RUP是一个基于迭代式生命周期模型定义的软件过程。RUP分为4个阶段,即初始阶段、细化阶段、构造阶段、交付阶段。每个阶段可以有多次迭代。在 每次迭代中,包含商业建模、需求、分析及设计、测试、部署等依次进行的活动(核心过程工作流),以及配置和变更管理、项目管理、环境(核心支持工作流)。

由于是迭代式开发,在后一阶段就有机会更正前一阶段的错误和疏漏。但是,这样会不会产生惰性,导致把更多问题遗留到后续的迭代中呢?RUP明确定义了各阶段的目标,必须在达到目标后,才能进入下一阶段:

  1. 初始阶段,目标是确定项目边界。
  2. 细化阶段,目标是分析业务领域以确定架构,并编制明细项目计划。
  3. 在构建阶段,目标是构造可运行的代码,并集成测试。
  4. 交付阶段的重点是确保软件对最终用户是可用的。

http://www.caixiaodong.com/archives/87.html

RUP的缺点:

RUP的优点很多。用例驱动对需求管理非常有利,能够确保需求在与用户交互时、系统实现时均不被遗漏;以架构为中心有利于打造一个强健的系统,而不会因系统规模增大而倒塌;迭代式开发有效消解了风险。那么,RUP还有什么不完美的吗?

对于我们这些行业应用软件开发者来说,RUP过于复杂。

用例驱动。用例分析作为一项软件技术,远远比功能分解复杂。大部分需求人员不具备编写用例的能力,用户多数看不懂用例。因此,在交互过程中,传统以功能列表描述为主的《需求规格说明书》应用更加广泛。

以架构为中心。对于业务逻辑非常复杂的系统,打造一个强健的架构是必须的。但对于一些业务逻辑相对简单,而用户交互逻辑复杂的系统,过于强调架构似乎没有必要。例如,对于一个有着很多模块的网站,各个模块相对独立,访问各自的表,维护一套用例图、类图、时序图就成为累赘。

迭代式开发。迭代式开发作为消解风险是非常必要的。RUP迭代中的6个核心工作流和3个核心支持工作流过于繁 杂,必须为每个工作流指定其执行者。虽然RUP指出这些工作流在每次迭代中并不都是必须的,但对于一个严谨的软件过程来说,给予项目经理过多的裁剪权,也 意味着为项目引入新的风险。


http://www.niftyadmin.cn/n/1733102.html

相关文章

在OLED上用大于126的ASCII码显示定制符号

在OLED上用大于126的ASCII码显示定制符号 陈拓 2021/07/09-2021/07/09 1. 概述 在做嵌入式开发时我们经常会遇到显示非ASCII码符号的问题,比如摄氏温度符号或者一个充电的电池图标。而通常的字体库只能显示标准ASCII字符集的32-126个可打印字符。 在本文中我们将…

Web设计新手应知道的10个锦囊妙计

摘要:你在网页设计所学到的大多数教训都来自工作经验。学习是一个反复持续的过程,并且没有比犯错更好的方式来获得知识。在本文中,我们将讨论10个重要并常规的技巧,这是每位Web设计师新手都应该知道。 在做网站时会遇到很多的问题…

Win10的Linux子系统Ubuntu安装图形界面

Win10的Linux子系统Ubuntu安装图形界面 陈拓 2021/07/25-2021/07/26 1. 概述 Win10的linux子系统Windows Subsystem for Linux(简称 WSL)之Ubuntu安装见文章: 《Win10启用Linux子系统安装Ubuntu》 https://zhuanlan.zhihu.com/p/34139446…

仿Google自动补全 jQuery 不含索引处理

http://javazeke.javaeye.com/blog/512390关键字: 仿google自动补全自动补全1&#xff0e; 页面有一个文本框&#xff0c;一个自动提示层&#xff0c;一个按Xml代码1. <script type"text/javascript" src"../js/jquery-1.3.2.js"></script> 2…

在Win10的Linux子系统Ubuntu中使用Qt

在Win10的Linux子系统Ubuntu中使用Qt 陈拓 2021/07/26-2021/07/26 1. 概述 在《Win10的Linux子系统Ubuntu安装图形界面》 https://zhuanlan.zhihu.com/p/393145947 https://blog.csdn.net/chentuo2000/article/details/119104547 一文中我们为WSL安装了图形界面。在本文中…

IE6兼容png图片

<!--[if IE 6]><script src"/js/DD_belatedPNG.js"></script><script>DD_belatedPNG.fix(img,a.opt,.png_bg);</script><![endif]--> DD_belatedPNG.js源码 /*** DD_belatedPNG: Adds IE6 support: PNG images for CSS backgrou…

[从jQuery看JavaScript]-JavaScript

http://blog.csdn.net/natineprince/archive/2009/10/31/4751609.aspx什么是JavaScript&#xff1f;相信随便百度Google一下都能找到一大堆的定义解释。而在我的理解中&#xff0c;JavaScript就是一种客户端的脚本 语言&#xff0c;用于处理页面数据逻辑和用户体验&#xff08;…

海康威视客户端iVMS-4200连接NVR

海康威视客户端iVMS-4200连接NVR 陈拓 2021/07/30-2021/08/01 1. 概述 iVMS-4200客户端是一款与网络监控设备配套使用的综合应用软件&#xff0c;可满足用户多方面需求&#xff0c;如设备管理、人员管理、考勤、可视对讲、数据分析、远程设备配置等。客户端可与DVR、NVR、IPC…