RUP与XP中的模式应用及比较

来源 :计算机时代 | 被引量 : 0次 | 上传用户:caozheng853
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:简要介绍了Rational统一过程(RUP)、极限编程(XP)和模式,并就模式在RUP和XP中的应用进行了分析和比较
  关键词:软件过程:模式:RUP XP
  
  0 引言
  
  软件过程是软件工程的基础。软件过程是由一系列的项目的阶段、方法、技术和实践组成,人们利用它们来开发、维护软件和相关的产物(artifacts)。一个有效的软件过程能够增强一个组织的软件生产力。在当今众多的软件过程中,RUP和XP最为流行,且使用越来越广泛。在面向对象系统的设计中,经常会发现类和通信对象重复出现的模式。这些模式解决特定的设计问题,并使得面向对象设计更灵活、优美和最终可复用,如果在面向对象系统的设计过程中,将过程和模式的优点结合,会使两者相得益彰。本文就当今最流行的两个软件过程(RUP和XP)中模式的应用进行分析与比较。
  


  
  1 相关介绍
  
  1.1 Rational统一过程
  RUP(Rational Unified Process)是一个面向对象软件工程的通用业务流程。它描述了一系列相关的软件工程流程,使之具有相同的结构,即相同的流程构架。RUP为在开发组织中分配任务和职责提供一种规范方法。任何一个RUP的开发周期都是可以迭代的。
  RUP的三大特点是:用例驱动、以构架为中心、迭代和增量开发。RUP的生命周期,由四个顺序的阶段和九个核心的工作流组成。四个阶段分别是:初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和交付阶段(Transition)。九个核心工作流又分为六个核心过程工作流:业务建模、需求、分析和设计、实现、测试、部署和三个核心支持工作流:配置和变更管理、项目管理、环境。图1勾画了RUP的完整的生命周期。
  1.2极限编程
  极限编程XP(eXtreme Programming)是敏捷方法中颇具代表的一种、1996年,Kent将XP新概念用于项目ChryslerComprehensive Compensation system的开发中,取得了显著的效果,XP提供了一个全局的、价值驱动的开发过程视图,体现了四个价值目标:沟通、简化、反馈和勇气。XP的生命周期包括四个基本活动:编码、测试、聆听和设计。XP非常注重测试,要求先写测试后编码,因此,它的基本活动的次序是:聆听、测试、编码、设计。先听取需要做什么;然后编写测试,如果通过了,则证明交付了需要做的东西;下一步,编写那些通过测试的任务代码;最后,调整代码的设计使其更简单、更有效,同时仍能够通过测试。XP有十二条惯例:规划策略、小型发行版、系统隐喻、测试、正确的设计、重构、成对编程、集体代码所有权、持续集成、每周四十小时工作制、现场客户、编码标准。XP的革新在于把所有的惯例放在一起,以便它们互相支持,让一些惯例的优势弥补其它惯例的缺点。XP已经经历了很多实践考验,而且已经被成功应用在许多大型的公司,如:Bayerische Landesbank,Credit Suiss Life。XP适用于需求不确定、变化快,项目历时不超过半年,而人数不超过十个、在同一地点工作的中小型团队,也被用于构造中小型复杂的系统。方案。一个模式有四个必要部分:模式适用的上下文陈述;模式提出的问题;形成解决方案过程中的约束;对这些约束的解决方案。
  模式主要有分析模式、设计模式、组织模式、过程模式等。分析模式是用于系统领域建模的模式,是针对某种常见的应用领域问题的建模。设计模式则是关于如何保持设计的灵活性的,它们在软件的很多地方都有应用。在《Design Patterns》中设计模式被分为创建型(creational)、结构型(Structural)、行为型(Behavioral)三种。而在《POSA Volume 1:A System ofPatterns》中模式分为体系结构模式(architecural pattern)、设计模式(design pattern)和惯用法(idiom)。
  
  2 模式在RUP和XP应用及比较
  
  2.1模式在RUP中的应用
  


  RUP在不同的核心过程工作流中可能会用到不同的软件模式。
  在分析设计工作流中,定义备选构架的活动之一是构架分析。构架分析要定义系统构架模式、核心机制和建模约定。在构架设计中应用构架模式可以增强构架的稳定性。这里的构架模式就是POSA中的体系结构模式,表示软件系统的基本结构化组织图式。RUP作了进一步的解释:构架模式是一个特定范围的模式(即解决方案模板),并且也是具体软件构架的模板。它涉及整个系统范围内的特征,并且通常涉及子系统范围内(而非类级别)的关系。对于交互系统,使用MVC(模型一视图一控制器)模式。比如,在网上商店中,MVC模式用于提供不同的人员与系统之间进行交互的界面视图,如图2所示。在定义构架时,RUP中应用到了分析机制的概念。分析机制代表常见问题的常用解决模式,它们可能表示结构模式或行为模式,也可能同时表示这两者。分析机制通常实例化一个或多个构架模式或分析模式。而RUP的分析模式把Fowler的分析模式扩展到了业务领域之外的其他领域。而且,RUP主张在构架设计中利用分析机制代表构架中的中低层的复杂技术来避免细节分散构架的重点。比如,“永久性”分析机制使得在对象生存期用例、进程生存期或系统关闭和启动等方面在确定对象永久性方面的需要时,不必考虑永久性机制的确切功能或工作方式。
  在对构架进行改进时,初期的重点活动之一是确定设计机制。设计机制是对相应分析机制的改进,设计机制为概念上的分析机制添加具体的细节,但又并不具体到所需的技术。跟分析机制类似,设计机制可以实例化一种或多种构架模式或设计模式。设计模式为改进软件系统的子系统、构件或其间的关系提供了方案。设计模式规模比构架模式较小,通常独立于编程语言。当设计模式的范围界定之后,它将形成一部分具体的设计模型。设计模式还可用在构件的设计及类的设计中。
  在确定设计机制的活动中,有一步是将设计机制映射到实施机制。实施机制是使用特定的编程语言及其他实施技术对相应设计机制的改进。一个实施机制可以实例化一个或多个代码模式或实施模式,在其构建过程中很可能运用多种实施模式(代码模式)。实施模式也就是POSA中的惯用法,是一种编程语言专用的低级模式,说明如何利用给定语言的特性来实施构件的某些特定方面或实施构件之间的关系。比如,记数指针使C++的动态分配共享对象的内存管理更容易。
  RUP最大的特点之一就是以构架为中心,在整个生命周期中,各个阶段的工作始终围绕构架展开。在构架的定义、确定、改进过程中,充分利用了各层次的模式。
  
  2.2模式在XP中的应用
  XP强调即时实现,没有明确的分析和设计阶段。XP的四 个活动中,编码和设计是同时进行的,编码和设计活动便融为一体,这样就弱化了构架的概念,这是它与强调以构架设计为中心的RUP的最大不同。XP看似没有构架设计,但实际上构架设计还是存在的。XP提倡使用一些简单的图例、比喻等方式来表达软件的构架,而这种构架设计是无时无刻不在进行的,即XP用系统隐喻代替了RUP的形式上的架构。系统隐喻是表示系统如何工作的一个简单的分配事例。这个事例包含一些类和模式,正是这些类和模式形成了将要建立系统的核心内容。通过与已经熟悉的情况的类比,这些模式帮助我们理解新的和不熟悉的事情。因而XP可针对需求的特点,采用相应的模式来设计构架。同时,XP的文档较少,模式通过代码共享、结对编程起到了沟通的作用。
  但XP中常强调重构,而很少提到模式。对此经常有一种看法是:模式鼓励过分设计,重构保持简单、轻量级。模式导致的过分设计是因为设计人员不恰当地使用模式。实际上发现问题时,应该使用可以解决问题的模式的最简单的实现,才不至于使解决方案复杂化。GOF在《设计模式》一书中提出“设计模式为重构提供了目标”。在XP中可以通过重构来得到模式,达到去除重复代码,保持简单,提高软件复用的目的。为了在XP中正确恰当地使用模式,应该避免在一开始使用模式,而是在设计演进中重构得到模式,要从简单开始,考虑模式但将它们放在次要地位,小规模重构,只在真正需要模式的时候才把重构转移为模式。又由于在早期设计中使用模式可以防止以后的重构,所以,如果在早期设计确实需要引入模式,那么该按照模式原始的样子来实现它。这样,在后面的变更中,模式才易于被替换或升级。
  在XP中也可以使用适合的构架模式、设计模式等。或者在早期设计需要时使用模式,或者在后来的迭代中,重构引入模式。模式的引入需要为某些部分的设计增添灵活性来满足需求。
  
  2,3 RUP与XP中模式应用的比较
  在RUP和XP中都可以应用于模式,但它们在模式的应用上不完全相同。
  首先,从模式使用的阶段看:RUP围绕构架这个中心,阶段和工作流都相对更为明确。RUP中应用模式进行分析、设计和编码等在相应的核心工作流中进行。而XP不同,XP的分析、设计阶段不明显,模式在适宜的时候被引入,因此模式的应用阶段性不强。其次,从模式使用的时间看,RUP非常适宜于开发复杂、技术难度大、需求多变、高风险的项目,因此在RUP中,模式的应用往往比较早。而XP并不鼓励太早的使用模式,主张推迟模式的引入,以免因过早的使用模式引起过分设计而失去简单化。第三,从模式使用的人员看,RUP中人员角色分工相对明确,因而在不同的流程活动中的模式的使用由相应的人员决定,比如,由构架设计师在构架分析活动中确定分析机制定义构架模式。在XP中,要求人员同时懂得多种技术,使用模式的角色分工不明确。因为XP的代码共享,当某个成员发现代码混乱、太多重复的时候,就可利用重构和模式让系统保持简单。在重构当中引入模式,这就使得模式的使用人员不确定。
  模式和不同的软件过程结合在一起,会产生不同的效果。RUP包括了软件开发的各个方面,适用于大型软件项目的开发。XP属于轻量级的过程,主要关注于代码和技术,适用于小型项目的开发。大多数大型的软件系统都是由几个子系统(A、B、C等)组成,子系统又可能由几个模块组成,在实际的开发中,我们可以结合RUP和XP,在起始和细化阶段采用RUP结合模式方法完成需求分析和构架设计,在构造和移交阶段采用XP结合模式的方法来实现部分子系统或模块。
  
  3 结束语
  
  模式为软件设计与开发提供了巨大的帮助。根据软件的开发环境,选取合适的软件开发过程,灵活应用模式,可以高效率地开发出一个高质量的软件产品。
其他文献
摘要:泛在学习代表了一种新的学习服务理念,使学习无处不在。泛在学习的学习理论从外在环境刺激向内在潜能的激发转变,注重学习者的个性发展和学习共同体的作用。文章介绍了目前普遍关注的泛在学习的内涵,支撑泛在学习的技术和理念,以及自由探索的形式;分析研究了泛在学习未来的发展前景。  关键词:泛在学习;自由探索;Web2.0技术;情境认知;非正式学习
期刊
摘要:介绍了I2C/SMBus总线基本情况和软件操作细节。对当前广泛运用于刀片服务器上的PSoC微控制器进行了剖析。给出了I2C/SMBus总线在PSoC的PWM、RPM、VPD的控制以及LED灯实现的代码。  关键词:I2C/SMBus总线;PSoC微控制器;PWM模式;RPM模式;ICH7南桥    注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
期刊
摘要:分析了颜色的混合叠加原理,讨论了在Photoshop中通过通道技术来实现混色原理在RGB、CMYK,LAB图形模式下的应用。  关键词:原色;混色;通道;明度    0、引 言     美术离不开颜色的调制,电视机、计算机等电子产品也离不开颜色处理,颜色是图像处理的一个重要部分。所谓的三原色理论,就是指使用三种基本的颜色红、绿,蓝(这三种基本的颜色不能被其他几种颜色混合出来)可以混合成其他所
期刊
摘要:设计了B/S模式下的武汉城市圈地理信息系统。以C#.NET为基本开发环境,结合MapGIS-IMS初步开发出武汉城市圈地理信息系统,实现了城市圈空间信息浏览、空间信息查询和交通网络分析等基本功能,提供了城市圈城市地理专题服务平台。  关键词:MapGIS-IMS;地理信息系统;城市圈;网络分析    0、引 言     武汉城市圈是指以武汉为圆心,周边100公里范围内的鄂州、黄石、黄冈、孝感
期刊
摘要:决策支持系统涉及动态生成图表的问题,而在B/S模式下,如何动态生成图表并打印一直是个难点。OWC组件在B/S下能很好地实现动态生成图表和报表打印等功能。文章着重讨论了OWC组件在基于B/S的决策支持系统中的应用,通过分析实例代码详细介绍了利用该组件的OWC.chart对象在服务器端生成各种复杂的动态图表的方法与过程。  关键词:OWC(Office Web Components);ChCha
期刊
摘要:表单是实现用户交互式访问Web网页的界面,向表单添加JavaScript,可以增加表单的动态交互性、验证用户输入的数据等。文章介绍了利用JavaScript语言来验证表单数据的一种通用方案,并通过一个示例描述了这种通用方案的实际应用。  关键词:JavaScript;客户端;验证;表单;方案    注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
期刊
摘要:为了提高J2EE多层架构中持久化层的多实体数据检索效率和批量数据操作的能力,提出了基于Hibernate和IBatis框架的混合持久化技术。  关键词:Hibemate;IBatis;混合;持久化    注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
期刊
摘要:在高校一卡通系统中,各子业务系统的数据库、操作平台等的异构性,使得各系统之间数据共享和交互协作成为目前高校一卡通迫切需要解决的问题。为了解决此问题,将Multi-Agent引入异构数据库集成系统中,利用XML对Agent之间的通信语言KQML进行封装,设计了一个完善的高校一卡通系统异构数据库集成方案。  关键词:一卡通;Multi-Agent;XML;KQML    注:本文中所涉及到的图表
期刊
摘要:近年来随着计算机技术广泛应用于3D游戏、三维重建等领域,如何通过适当的shader模型去更加真实地表现现实世界的各种光影效果成了研究的热点。现在比较流行的4种shader模型为:①固定着色模型;②平面着色模型;③Gouraud着色模型;④phong着色模型。文章对这些模型进行了介绍,强调了各种模型的适用场合并对比了4种模型的优劣,最后探讨了着色模型的发展方向。  关键词:着色模型;光照计算;
期刊
摘要:Ad Hoc网络的安全性是当前网络安全问题的研究热点,建立合理的信任管理模型是Ad Hoc网络安全的首要问题。文章分析了Ad Hoc网络的特点和它所面临的安全挑战,引入信任管理的概念,给出了一种新颖的基于主观信任的Ad Hoe网络信任管理模型。为建立安全的Ad Hoc网络提供了新的解决方法。  关键词:Ad HOC;信任;信任管理;模型
期刊