几种典型的面向对象开发方法_第1页
几种典型的面向对象开发方法_第2页
几种典型的面向对象开发方法_第3页
几种典型的面向对象开发方法_第4页
几种典型的面向对象开发方法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、几种典型的面向对象开发方法摘要自80年代后期以来,相继出现了多种面向对象开发方法,文章主要介绍了其中六种典型的面向对象开发方法,并对它们进行了比较。UML的出现意味着开发方法统一化、标准化的新发展,标志着软件自动化的进程又迈进了一步。关键字面向对象开发方法典型比较一、引言随着计算机科学的发展和应用领域的不断扩大,对计算机技术的要求越来越高。特别是当计算机硬件有了飞速发展之后,各种应用领域对软件提出了更高的要求。结构化程序设计语言和结构化分析与设计已无法满足用户需求的变化。发展软件质量,缩短软件开发周期,发展软件可靠性、可扩充性和可重用性迫使软件界人士不断研究新方法、新技术,探索新途径。面向对象

2、的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。面向对象程序设计方法起源于六十年代末期的语言SIMULA67,到了七十年代末期,软件行业正受到软件危机的困扰,结构化的开发方法不能够很好地解

3、决软件危机。面向对象语言Smalltalk的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象也和开发方法开始结合,出现了面向对象的开发方法。自80年代后期以来,相继出现了多种面向对象开发方法,现将其中几种典型的方法作一个简介和比较。二、六种典型的面向对象开发方法1、OMT/RumbaughOMT1(Object Modeling Technique方法最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾扩展应用于关系数据库设计。Jim Rumbaugh在1991年正式把OMT应用于面向对象的分析和设计。这个方法是在实体关系模型上扩展了类、继承和行为而得到的。OMT

4、覆盖了分析、设计和实现三个阶段,它包括一组相互关联的概念:类(class、对象(object、一般化(generalization、继承(inheritance、链(link、链属性(link attribute、聚合(aggregation、操作(operation、事件(event、场景(scene、属性(attribute、子系统(subsystem、模块(module等。OMT方法包含分析、系统设计、对象设计和实现四个步骤,它定义了三种模型,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充。这三种模型是:·对象模型:用类和关系来刻画系统的静态结构;·动态模型:

5、用事件和对象状态来刻画系统的动态特性;·功能模型:按照对象的操作来描述如何从输入给出输出结果。分析的目的是建立可理解的现实世界模型。系统设计确定高层次的开发策略。对象设计的目的是确定对象的细节,包括定义对象的界面、算法和操作。实现对象则在良好的面向对象编程风格的编码原则指导下进行。2、OOD/BoochOOD3(Object Oriented Design方法是Grady Booch从1983年开始研究,1991年后走向成熟的一种方法。OOD主要包括下述概念:类(class、对象(object、使用(uses、实例化(instantiates、继承(inherits、元类(meta

6、class、类范畴(class category、消息(message、域(field、操作(operation、机制(mechanism、模块(module、子系统(subsystem、过程(process等。其中,使用及实例化是类间的静态关系,而动态对象之间仅有消息传递的连接。元类是类的类。类范畴是一组类,它们在一定抽象意义上是类同的。物理的一组类用模块来表达。机制是完成一个需求任务的一组类构成的结构。Booch方法在面向对象的设计中主要强调多次重复和开发者的创造性。方法本身是一组启发性的过程式建议。OOD的一般过程如下:(1在一定抽象层次上标识类与对象;(2标识类与对象的语义;(3标识类

7、与对象之间的关系(如继承、实例化、使用等;(4实现类与对象。3、RDD/Wirfs-BrockRDD2(Responsibility-Driven Design方法是Wirfs-Brock在1990年提出的。这是一个按照类、责任以及合作关系对应用进行建模的方法。首先定义系统的类与对象,然后确定系统的责任并划分给类,最后确定对象类之间的合作来完成类的责任。这些设计将进一步按照类层次、子系统和协议来完善。RDD方法主要包含以下概念:类(class、继承(inheritance、责任(responsibility、合作(collaboration、合同(contract、子系统(subsystem。

8、对每个类都有不同的责任或角色以及动作。合作是为完成责任而需要与之通信的对象集合。责任进一步精化并被分组为合同。合同又进一步按操作精化为协议。子系统是为简化设计而引入的,是一组类和低级子系统,也包含由子系统中的类及子系统支持的合同。RDD分为探索阶段和精化阶段:(1探索阶段:确定类、每个类的责任以及类间的合作;(2精化阶段:精化类继承层次、确定子系统、确定协议。RDD按照类层次图、合作图、类规范、子系统规范、合同规范等设计规范来完成实现。4、OOAD/Coad-YourdonOOAD3(Object-Oriented Analysis and Design方法是由Peter Coad和Edwar

9、d Yourdon 在1991年提出的。这是一种逐步进阶的面向对象建模方法。在OOA中,分析模型用来描述系统的功能,主要包括以下概念:类(class、对象(object、属性(attribute、服务(service、消息(message、主题(subject、一般/特殊结构(Gen-Spec-Structure、全局/部份结构(Whole-Part-Structure、实例连接(instance connection和消息连接(message connection等。其中,主题是指一组特定的类与对象。OOA使用了基本的结构化原则,并把它们同面向对象的观点结合起来。OOA完成系统分析,包括以下

10、五个步骤:确定类与对象、标识结构、定义主题、定义属性和定义服务。OOA本质上是一种面向对象的方法,适用于小型系统的开发。OOD负责系统设计,包括以下四个步骤:(1设计问题域(细化分析结果;(2设计人机交互部分(设计用户界面;(3设计任务管理部分(确定系统资源的分配;(4设计数据管理部分(确定持久对象的存储。5、OOSE/JacobsonOOSE3(Object-Oriented Software Engineering是Ivar Jacobson在1992年提出的一种使用事例驱动的面向对象开发方法。OOSE主要包括下列概念:类(class、对象(object、继承(inherits、相识(ac

11、quaintance、通信(communication、激励(stimuli、操作(operation、属性(attribute、参与者(actor、使用事例(use case、子系统(subsystem、服务包(service package、块(block、对象模块(object module。相识表示静态的关联关系,包括聚合关系。激励是通信传送的消息。参与者是与系统交互的事物,它表示所有与系统有信息交换的系统之外的事务,因此不关心它的细节。参与者与用户不同,参与者是用户所充当的角色。参与者的一个实例对系统做一组不同的操作。当用户使用系统时,会执行一个行为相关的事物系列,这个系列是在与系统

12、的会话中完成的,这个特殊的系列称为使用事例,每个使用事例都是使用系统的一条途径。使用事例的一个执行过程可以看作是使用事例的实例。当用户发出一个激励之后,使用事例的实例开始执行,并按照使用事例开始事物。事务包括许多动作,事务在收到用户结束激励后被终止。在这个意义上,使用事例可以被看作是对象类,而使用事例的实例可以被看作是对象。OOSE开发过程中有以下五种模型,这些模型是自然过渡和紧密耦合的:·需求模型包括由领域对象模型和界面描述支持的参与者和使用事例。对象模型是系统的概念化的、容易理解的描述。界面描述刻画了系统界面的细节。需求模型从用户的观点上完整地刻画了系统的功能需求,因此按这个模型

13、与最终用户交流比较容易。·分析模型是在需求模型的基础上建立的。主要目的是要建立在系统生命期中可维护、有逻辑性、健壮的结构。模型中有三种对象。界面对象刻画系统界面。实体对象刻画系统要长期管理的信息和信息上的行为。实体对象生存在一个特别的使用事例中。第三种是按特定的使用事例作面向事务的建模的对象。这三种对象使得需求的改变总是局限于其中一种。·设计模型进一步精化分析模型并考虑了当前的实现环境。块描述了实现的意图。分析模型通常要根据实现作相应的变化。但分析模型中基本结构要尽可能保留。在设计模型中,块进一步用使用事例模型来阐述界面和块间的通信。·实现模型主要包括实现块的代码

14、。OOSE并不要求用面向对象语言来完成实现。·测试模型包括不同程度的保证。这种保证从低层的单元测试延伸到高层的系统测试。6、VMT/IBMVMT1(Visual Modeling Technique方法是IBM公司于1996年公布的。VMT方法结合了OMT、OOSE、RDD等方法的优点,并且结合了可视化编程和原型技术。VMT方法选择OMT方法作为整个方法的框架,并且在表示上也采用了OMT方法的表示。VMT方法用RDD方法中的CRC(Class-Responsibility-Collaboration卡片来定义各个对象的责任(操作以及对象间的合作(关系。此外,VMT方法引入了OOSE方

15、法中的使用事例概念,用以描述用户与系统之间的相互作用,确定系统为用户提供的服务,从而得到准确的需求模型。VMT方法的开发过程分为三个阶段:分析、设计和实现。分析阶段的主要任务是建立分析模型。设计阶段包括系统设计、对象设计和永久性对象设计。实现阶段就是用某一种环境来实现系统。7、六种方法的比较·OMT方法覆盖了应用开发的全过程,是一种比较成熟的方法,用几种不同的观念来适应不同的建模场合,它在许多重要观念上受到关系数据库设计的影响,适合于数据密集型的信息系统的开发,是一种比较完善和有效的分析与设计方法。·Booch方法并不是一个开发过程,只是在开发面向对象系统时应遵循的一些技术

16、和原则。Booch方法是从外部开始,逐步求精每个类直到系统被实现。因此,它是一种分治法,支持循环开发,它的缺点在于不能有效地找出每个对象和类的操作。·RDD是一种用非形式的技术和指导原则开发合适的设计方案的设计技术。它用交互填写CRC卡片的方法完成设计,对大型系统设计不太适用。RDD采用传统的方法确定对象类,有一定的局限性。另外,均匀地把行为分配给类也十分困难。·在OOAD方法中,OOA把系统横向划分为五个层次,OOD把系统纵向划分为四个部分,从而形成一个清晰的系统模型。OOAD适用于小型系统的开发。·OOSE能够较好地描述系统的需求,是一种实用的面向对象的系统开发方法,适合于商务处理方面的应用开发。·VMT基于现有面向对象方法中的成熟技术,采用这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论