对RUP和XP的简要认识

因现代软件工程对软件开发团队时间、质量等的高要求,产生了一些新的软件开发方法和开发思想。其中RUP和XP在如今众多软件过程中比较流行,且使用越来越广泛。

一、对RUP的认识

1.RUP

即统一软件开发过程(Rational Unified Process),是一个面向对象软件工程且基于网络的通用业务流程。因它与当前流行的JAVA, J2EE技术和面向对象的设计思想(OOAD)紧密的结合在一起,所以在大型的信息技术项目中得到了广泛的应用。最大的特点就是提供了一套完整的软件开发过程框架,任何组织或个人都可以根据需要来对该过程进行裁剪,并根据自身需要进行调整后使其成为个性化的过程。

2.RUP的开发生命周期

由四个顺序的阶段和九个核心的工作流组成,如下图。图片体现了RUP的整个体系架构,横轴通过时间组织,体现开发过程的动态结构。生命周期经历了4个阶段:先启阶段、精华阶段、构建阶段、产品化阶段。一次典型的迭代都需要经过九个核心工作流程:业务建模、需求、分析设计、实施、测试、部署、配置与变更管理、项目管理、环境。这些流程间相互影响和制约,但是根据实际的项目不同,对应的流程也会相应的删减或扩充。

RUP 生命周期的阶段是:

·先启(Inception): 在项目进行之前必须确定重要业务和需求风险 ;

·精化(Elaboration):为系统体系架构设定基础。该体系架构进化了对最重要的需求(哪些需求对系统的体系架构有很大的影响)的考虑和对风险的评估。

·构建(Construction):澄清剩余的需求并完成基于基本体系架构的系统的开发。在此阶段要强调对资源的管理和对操作的控制,用来优化成本、进度和质量。

·产品化(Transition): 重点确保软件对最终用户是可用的。产品化阶段可以跨越若干次迭代,该阶段包括为发布而进行的产品测试,以及根据用户反馈做出较小调整。在生命周期的这个阶段,用户的反馈应主要用于对产品进行微调、配置、安装和解决可用性问题,在项目生命周期的更早期就应该解决所有的主要结构问题。

3.RUP的三大特点: 

(1) 用例(Use Case)驱动的

Use Case 是RUP方法论中一个非常重要的概念。简单地说,一个Use Case就是系统的一个功能。例如在一个基于电子商务的医疗系统中,病人可以坐在家里通过网上浏览器与医生约定看病的时间(Make appointment),这样,“Make appointment”就是系统的一个Use Case。在系统分析和系统设计中,Use Case被用来将一个复杂的庞大系统分割、定义成一个个小的单元,这个小的单元就是Use Case,然后以每个小的单元为对象进行开发。在商务需求分析,系统分布和系统设计过程,开发实现过程和测试过程等中,都以Use Case进行操作。

(2) 以架构为中心

(3) 迭代和增量开发

增量、迭代是RUP统一过程常采用的软件开发生命周期模型。增量和迭代有区别但两者又经常一起使用,所以这里要先解释下增量和迭代的概念。假设要开发A,B,C,D四个大的业务功能,每个功能都需要开发两周的时间,则对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A,B功能,第二次增量完成C,D功能;而对于迭代开发来将则是分两次迭代来开发,第一次迭代完成A,B,C,D四个基本业务功能但不含复杂的业务逻辑,而第二个功能再逐渐细化补充完整相关的业务逻辑,在第一个月过去后采用增量开始时候A,B全部开发完成而C,D还一点都没有动,而采用迭代开发的时候A,B,C,D四个的基础功能都已经完成。

由于软件开发中人员和环境的复杂性,软件开发整个生命周 期中每一个阶段都有可能留下隐患和错误,如果在软件开发完毕后测试阶段发现重大问题,返工将造成巨大损失。所以为了及早发现隐患和错误,采取迭代模型。每次迭代都包含了需求,设计和开发,测试等各个过程,而且每次迭代完成后都是一个可以交付的原型,迭代不是并行,在每次迭代过程中仍然要遵循需求->设计->开发的瀑布过程。

时间: 2024-08-22 12:01:28

对RUP和XP的简要认识的相关文章

RUP、XP、敏捷过程含义

1.什么是RUP RUP是一个面向对象且基于网络的程序开发方法论.是由Rational软件公司推出的一种完整而且完美的软件过程. 2.什么是XP 极限编程(XP)是敏捷过程中最富盛名的一个,其名称中"极限"二字的含义是指把好的开发实践运用到极致.目前,极限编程已经成为一种典型的开发方法,广泛应用于需求模糊且经常改变的场合. 3.什么是敏捷过程 为使软件开发团队具有高效工作和快速响应变化的能力而起草的宣言,具有下述4个简单的价值观声明组成. (1)个体和交互胜过过程和工具 (2)可以工作

关于RUP、XP及敏捷过程

什么是RUP? RUP即Rational 统一过程(Rational Unified Process),是一种完整且完美的软件过程.采用佚代开发,在开发过程中能允许在每次佚代过程中有变化的需求,能使用户可以不断的介入和提出反对意见,并且开发人员也因为随时有一个可以交付的版本而提高士气.在管理需求上,RUP描述了如何提取.组织系统的功能性需求和约束条件并把它们规范化.RUP使用基于构件的体系结构,并提供了使用现有的或新开发的构件定义体系结构的系统化方法,从而有助于降低软件开发的复杂性,提高软件重用

补9.12号:rup,xp,敏捷过程

RUP:RUP中文名叫统一软件开发过程,是一个面向对象且基于网络的程序开发方法论.通俗地讲,RUP好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针.模板以及事例支持.RUP和类似的产品把面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等)整合在一个统一的框架内.RUP中的软件生命周期在时间上被分解为四个顺序的阶段.初始阶段:初始阶段的目的是为系统建立商业案例并确定项目的边界.细化阶段:细化阶段的目标是分析问题领域,建立健全的体系结构基础

软件工程之学习RUP、XP笔记

RUP(Rational Unified Process)即统一软件开发过程.它是以面向对象方法为基础的方法,RUP坚持以用例驱动,以架构为中心,迭代和增量的开发方法.RUP描述了如何有效地利用商业的.可靠的方法开发和部署软件,是一种重量级过程,因此特别适合于大型团队开发大型软件项目. RUP思维导图如下:(图片来自网络) RUP开发过程: RUP软件开发生命周期是一个二维的软件开发模型.RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是: 初始阶段(Inception):定义最终产品

山东大学软件过程管理复习纲要

1.项目管理支持活动有哪些? 配置管理,度量和分析,决策分析. 2.CMM/CMMI.PSP.TSP.RUP.XP.SCRUM.PDCA.MSG.SEPG.WBS.SPI CMM--软件能力成熟度模型(CapabilityMaturity Model,CMM)是美国卡内基.梅隆大学软件工程研究所(SEI)汇集了世界各地软件过程管理者的检验和智慧而产生的软件过程改进的指导性模型.该模型经过世界各地软件组织的实际应用,证明其对软件过程改进具有建设性作用. CMMI--软件能力成熟度模型集成(Capa

Think in UML笔记第1章--为什么要UML

1.1 面向过程还是面向对象 面向过程和面向对象都是一种软件技术.例如把面向过程归纳为结构化程序设计.DFD图.ER模型.UC矩阵等,而面向对象则被归纳为继承.封装.多态.复用等具体的技术.事实上,上述的所有技术都只是人们在采用不同的方法来认识和描述这个世界时所采用的工具,它们都只是表征而不是本征. UML创始人Grady Booch说过:我对面向对象编程的目标从来就不是复用.相反,对我来说,对象提供了一种处理复杂性问题的方式.这个问题可以追溯到亚里士多德:您把这个世界视为过程还是对象?在面向对

CMMI的SG/GG概念区别与SP/GP概念的区别

每一个 “流程区域” 会细分为多个子目标.若该子目标只对应单一的流程区域,称为 “特定目标(Specific goal)”:若子目标会涵跨多个流程区域,则称为 “一般目标(Generic goal)”. 每一个特定目标/一般目标会列出一到多个 “期望(expected)” 的特定实务(specific-practice, sp)/一般实务(generic-practice, gp).实务为一段陈述(statement),表达了完成子目标时的作法. 实务并非为绝对.唯一达成子目标的唯一作法,它是

UML建模学习1:UML统一建模语言简介

一什么是UML? Unified Modeling Language(UML又称为统一建模语言或标准建模语言)是国际对象管理组织OMG制定的一个通 用的.可视化建模语言标准,可以用来描述(specify).可视化(visualize).构造(construct)和记载(document)软件密集 型系统的各种工件(artifacts,又译为制品). UML是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由 需求分析到规格,到构造和配置. UML是面向对

taiyi_interview(Introduction To Database Refactoring)

Introduction To Database Refactoring 原文链接:by Scott W. Ambler:http://www.tdan.com/view-articles/5010/ Published: July 1, 2006 Published in TDAN.com July 2006 Material for this article was modified from Refactoring Databases: Evolutionary Database Desi