RUP是用例驱动,以架构为中心,迭代式开发过程。
一、用例驱动
用例(Use Case)是一种通过用户的使用场景获得需求的技术。区别于传统的功能分解获取需求的办法,用例方法强调用户是如何使用系统的,即描述用户与系统之间的交互,而不涉及系统内部的行为。用例的一般表示法是UML用例图。
用例方法的主要特点有:
需求表述的抽象性。用例方法以UML用例图的形式表示,对于用例、参与者之间的关系一目了然,能更在一个高的抽象级别上理解系统。
需求表述的完整性。某些用户可能并不了解他会使用到系统的某个功能,但UML用例图将有助于发现这些问题。
用例驱动指的是在软件开发过程中,采用用例方法捕获及分析业务需求,并确保由它们来驱动软件的设计、实现和测试,使最终系统更能满足最终用户的需要。
二、以架构为中心
软件架构(体系结构)是构成软件各部分的组件、组件之间的交互及组件组合的约束。软件架构也关系到功能性、可用性、系统弹性、性能、可重用性、可理解性等方面。
在RUP开发的细化阶段,建立一个健壮架构的基础。在构造阶段和交付阶段,再进一步完善架构。在整个开发过程中,架构进一步完善。RUP强调以架构为中心,有利用打造一个可持续开发、可持续维护的软件;且最大限度规避了项目的技术风险。
三、迭代式开发
RUP是一个基于迭代式生命周期模型定义的软件过程。RUP分为4个阶段,即初始阶段、细化阶段、构造阶段、交付阶段。每个阶段可以有多次迭代。在每次迭代中,包含商业建模、需求、分析及设计、测试、部署等依次进行的活动(核心过程工作流),以及配置和变更管理、项目管理、环境(核心支持工作流)。
由于是迭代式开发,在后一阶段就有机会更正前一阶段的错误和疏漏。但是,这样会不会产生惰性,导致把更多问题遗留到后续的迭代中呢?RUP明确定义了各阶段的目标,必须在达到目标后,才能进入下一阶段:
初始阶段,目标是确定项目边界。
细化阶段,目标是分析业务领域以确定架构,并编制明细项目计划。
在构建阶段,目标是构造可运行的代码,并集成测试。
交付阶段的重点是确保软件对最终用户是可用的。
RUP的缺点:
RUP的优点很多。用例驱动对需求管理非常有利,能够确保需求在与用户交互时、系统实现时均不被遗漏;以架构为中心有利于打造一个强健的系统,而不会因系统规模增大而倒塌;迭代式开发有效消解了风险。那么,RUP还有什么不完美的吗?
对于我们这些行业应用软件开发者来说,RUP过于复杂。
用例驱动。用例分析作为一项软件技术,远远比功能分解复杂。大部分需求人员不具备编写用例的能力,用户多数看不懂用例。因此,在交互过程中,传统以功能列表描述为主的《需求规格说明书》应用更加广泛。
以架构为中心。对于业务逻辑非常复杂的系统,打造一个强健的架构是必须的。但对于一些业务逻辑相对简单,而用户交互逻辑复杂的系统,过于强调架构似乎没有必要。例如,对于一个有着很多模块的网站,各个模块相对独立,访问各自的表,维护一套用例图、类图、时序图就成为累赘。
迭代式开发。迭代式开发作为消解风险是非常必要的。RUP迭代中的6个核心工作流和3个核心支持工作流过于繁杂,必须为每个工作流指定其执行者。虽然RUP指出这些工作流在每次迭代中并不都是必须的,但对于一个严谨的软件过程来说,给予项目经理过多的裁剪权,也意味着为项目引入新的风险。
分享到:
相关推荐
本文将探讨三种高级软件开发过程:Rational统一过程(RUP)、敏捷过程和微软过程,这些都是现代软件开发中常用的方法论。 1. Rational统一过程(RUP) RUP是由IBM开发的一种迭代和面向过程的软件开发框架,它强调了...
### 软件需求分析方法和工具的选用——IC行业内部的CAD应用 #### 概述 本文聚焦于集成电路(IC)设计领域的软件项目,探讨了软件需求分析的方法与工具选用,特别是在计算机辅助设计(CAD)应用背景下的实践。文章...
### 软件工程术语与概念详解 #### 一、软件工程基础概念 **软件危机:** 软件危机指的是在软件开发过程中出现的各种...软件过程是指软件开发过程中的一系列活动,包括计划、分析、设计、实现、测试和维护等。 **软件...
软件过程模型是描述软件生命周期内各过程、活动和任务的结构框架。瀑布模型是最经典的模型,其特点是阶段间的顺序性和依赖性,每个阶段都有严格的文档验证。优点是强制规范开发流程,但缺点在于一旦需求不明确或后期...
- **常用的软件架构风格**:包括MVC、事件驱动架构、管道-过滤器架构等,以及各自的适用情况分析。 - **SOA及分层架构设计**:探讨了面向服务架构(SOA)的概念及其在构建分布式系统中的应用。 #### 五、架构设计实践...
#### 一、软件过程及常用的软件开发模型 **软件过程**是指为了获得高质量的软件所需完成的一系列任务框架,其中包括了完成各项任务的具体工作步骤。 - **瀑布模型**:这是一种线性的开发流程,将软件生命周期划分...
这里介绍一种常用的建模方法论——RUP(Rational Unified Process)。 ##### 1. RUP概述 RUP是由Rational软件公司提出的一种面向对象的软件开发过程,其主要特点包括: - **用例驱动**:所有的开发活动都围绕用例...
- **答案解析**:软件危机通常指的是软件开发过程中遇到的一系列问题,这些问题导致项目延期、成本超支以及质量下降等(选项D)。并非单一指向质量降低、开发周期延长或成本上升。 #### 15. 数据流图平衡原则 - **...
5. 过程方法:RUP(Rational Unified Process)和XP(Extreme Programming)是软件开发过程中的方法论,它们强调迭代和敏捷开发,提供了一套指导整个项目周期的规则和实践。RUP是一种结构化的软件开发过程,而XP则更...
- **概述**: 本书是针对全国计算机技术与软件专业技术资格(水平)考试——系统分析师级别的参考用书。内容涵盖《系统分析师考试大纲》的部分要点,并作为《系统分析题教程》的补充资料。 - **主要内容**: - 系统...
- **《统一软件开发过程》**:由Rational统一过程(RUP)创始人Ivar Jacobson等人编写,介绍了RUP的方法论及实施指南。 - **重点内容**:需求分析、架构设计、迭代开发、测试策略等。 以上书籍涵盖了从Java基础知识...
- **过程模型**:深入学习瀑布模型、SDLC(系统开发生命周期)、RUP(统一过程)、RAD(快速应用开发)等软件开发模型。 - **敏捷方法**:理解敏捷开发的核心理念,掌握敏捷开发中的重要实践——极限编程。 ##### 3...
- **章节目的**:了解统一软件开发过程(RUP)的各个阶段。 - **主要内容**: - 初始阶段的需求收集和风险评估。 - 构建阶段的设计实现和测试验证。 - 移交阶段的部署和支持工作。 - 过程改进的持续循环。 ####...