对RUP和XP的简要认识

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

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

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

 

二、对XP的认识

1.XP

极限编程(eXtreme Programming),他提供了一个全局的、价值驱动的开发过程视图。XP经历了许多实践考验,成功被应用在许多大型公司,如:Bayerische Landesbank,Credit Suiss Liff。适用于需求不确定、变化快、项目历时不超过半年,而人数不超过10个,在同一地点工作的中小型团队,也被用于构造中小型复杂的系统。

 

2.XP的四个核心价值目标

沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇气(Courage此外还扩展了第五个价值观:谦逊(Modesty

·沟通:最大程度的减少开发人员、客户、管理人员之间由于沟通不畅造成的误解。极限编程的很多实践都是必须依靠 交流来实现的,比如单元测试、结对编程、工作的评估等。

·简单:设计简单、代码简单,测试用例的编写本着简单的原则, 在符合设计的要求下进行编写,越简单越好。只需要注重眼前的需求,不要考虑以后的需要变化。

·反馈:在极限编程中,无论是设计、测试、开发 过程中,反馈都是非常重要的信息。例如在设计时,尽快获得用户的反馈,并且越详细越好,使得开发人员能够保证自己的成果符合用户的需要。

·勇气:这是最重要的核心价值。因为XP强调要"拥抱变化",因此对于用户的反馈,要勇于对自己的代码进行修改,针对错误信息来编写及修改代码,勇于面对,最终解决问题顺利通过测试,显示出所期望的Green Bar。勇气又可以进一步的增强信心,提高效率,使得整个过程良性循环发展。

 

3.XP的生命周期

包括4个基本活动:编码、测试、需求分析和设计

XP非常注重测试,要求先写测试后编码,因此,他的基本活动的次序是:需求分析、测试、编码、设计。即先了解需要做什么;然后编写测试,如果测试通过,则证明交付了需要做的东西;然后编写通过测试的任务代码;最后,调整代码的设计使其更简单有效,同时仍然能通过测试。

 

4.XP有十二条惯例

规划策略、小型发行版、系统隐喻、测试、正确的设计、重构、成对编程、集体代码所有权、持续集成、每周四十小时工作制、现场客户、编码标准。XP的革新在于把所有的惯例放在一起,以便他们互相支持,互相用优势弥补缺点。以有效的实践规则将整个团队紧密联系起来,通过充分的反馈使团队能随时知道自己目前的状况和恰当的调节规则以适应自己的特殊情况。 

 

三、总结

·在设计方面:RUP考虑产品的适应性、可扩展性与可重用性等高性能需求;XP强调简单化设计,只考虑当前定义的功能而不考虑以后需求的变化。这俩种方法看似对立,实际上是对产品不同质量需求的不同应对策略。

·在测试方面:RUPXP都强调质量问题,只是在项目开发周期中首先出现的位置设置不同。XP强调“测试先行”。

·在开发方面:都强调迭代开发,XP强调的短迭代,小交付可以改进RUP只有部署时用户才能看到真正的系统问题。

posted @ 2017-09-23 21:36  Hiooary  阅读(752)  评论(0编辑  收藏  举报