三种面向对象方法

发布 2019-06-24 06:24:35 阅读 6064

三个著名的面向对象开发方法。

摘要。主要介绍了3种典型的面向对象开发方法,并对它们进行了比较。面向对象的方法。

是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。

关键字:面向对象;开发方法;omt;booch;jacobson;

1.引言。面向对象的方法是一种分析方法、设计方法和思维方法。

面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:

对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。

面向对象程序设计方法起源于六十年代末期的simnia语言.smalltalk语言的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象与开发方法开始结合,出现。

了面向对象的开发方法. 自80年代后期以来,相继出现了多种面向对象开发方法,现将其中几种典型的方法作一比较分析。

2.三种典型的面向对象开发方法。

2.1 omt/rumbaugh

omt(object modeling technique)方法提出于1987年,曾扩展应用于关系数据库设计.1991年jim rumbaugh正式把omt应用于面向对象的分析和设计.这种方法是在。

实体关系模型上扩展了类、继承和行为而得到的.omt覆盖了分析、设计和实现3个阶段,包括一组相互关联的类(class )、对象(object)、一般化(generalization)、继承(inheritance)、链(link)、链属性(link attribute)、聚合(aggregation)、操作(operation)、事件(event)、场景(scene)、属性(attribute)、子系统(subsystem)、模块(module)等概念.

omt方法把分析时收集的信息构造在3种模型中,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充.对象模型用er图描述问题域中的列象及其相互关系,用类和关系来刻画系统的静态结构,包括系统中的对象、对象之间的关系、类的属性和操作等特征.动态模型用事件和对象状态来刻画系统的动态特性,包括系统对象的事件序列、状态和操作.功能模型按照对象的操作来描述如何从输入给出输出的结果,描述动态模型的动作所定义对象操作的意义。

omt方法包含分析、系统设计、对象设计和实现4个步骤,它定义了3种模型,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充。这3种模型是:对象模型,用类和关系来刻画系统的静态结构;动态膜型,用事件和对象状态来刻画系统的动态特性;功能模型,按照对象的操作来描述如何从输人给出输出结果。

分析的目的是建立可理解的现实世界模型。系统设计确定高层次的开发策略。对象设计的目的是确定对象的细节,包括定义对象的界面、算法和操作。

实现对象则在良好的面向对象编程风格的编码原则指导下进行。

开发的四个阶段如下:

1) 分析。基于问题和用户需求的描述,建立现实世界的模型。分析阶段的产物有:

问题描述。

对象模型=对象图+数据词典。

动态模型=状态图+全局事件流图。

功能模型=数据流图+约束。

2) 系统设计。结合问题域的知识和目标系统的系统结构(求解域),将目标系统分解为子系统。

3) 对象设计。基于分析模型和求解域中的体系结构等添加的实现细节,完成系统设计。主要产物包括:

细化的对象模型。

细化的动态模型。

细化的功能模型。

4) 实现。将设计转换为特定的编程语言或硬件,同时保持可追踪性、灵活性和可扩展性。

omt方法的一般过程包括分析建立可理解的现实世界模型、系统设计(确定高层次的开发策略和划分子系统)、对象设计(确定对象细节并引入新的中间结果)和实现对象4个步骤.omt强调对“现实” 的模型化.这里的“现实”是指所面对的实际应用问题,即分析模型是对实际问题的抽象.分析模型中对象之间的关系反映了实际问题中对象之间的关系.

2.2 ood/booch

ood(object oriented design)方法是grady booch从1983年开始研究,1991年后走向。

成熟的一种方法。

ood主要包括下述概念:类(class)、对象(object)、使用(uses)、实例化(instantiates)、继承(inherits)、元类(meta class)、类范畴(class category)、消息(message)、域(field)、操作(operation)、机制(mechanism)、模块(module)、子系统(subsystem)、过程(process)等。其中,使用及实例化是类间的静态关系,而动态对象之间仅有消息传递的连接。

元类是类的类。类范畴是一组类,它们在一定抽象意义上是类同的。物理的一组类用模块来表达。

机制是完成一个需求任务的一组类构成的结构。

booch方法在面向对象的设计中主要强调多次重复和开发者的创造性。方法本身是一组启发性的过程式建议。ood的一般过程:

在一定抽象层次上标识类与对象;标识类与对象的语义;标识类与对象之间的关系(如继承、实例化、使用等);实现类与对象。

booch方法的过程包括以下步骤:

1)在给定的抽象层次上识别类和对象。

2)识别这些对象和类的语义。

3)识别这些类和对象之间的关系。

4)实现类和对象。

这四种活动不仅仅是一个简单的步骤序列,而是对系统的逻辑和物理视图不断细化的迭代和渐增的开发过程。

类和对象的识别包括找出问题空间中关键的抽象和产生动态行为的重要机制。开发人员可以通过研究问题域的术语发现关键的抽象。语义的识别主要是建立前一阶段识别出的类和对象的含义。

开发人员确定类的行为和类及对象之间的互相作用。该阶段利用状态转移图描述对象的状态的模型,利用时态图和对象图描述行为模型。

在关系识别阶段描述静态和动态关系模型。这些关系包括使用,实例化,继承,关联和聚集等。类和对象之间的可见性也在此时确定。

在类和对象的实现阶段要考虑如何用选定的编程语言实现,如何将类和对象组织成模块。在面向对象的设计方法中,booch强调基于类和对象的系统逻辑视图与基于模块和进程的系统物理视图之间的区别。还区别了系统的静态和动态模型。

然而,他的方法偏向于系统的静态描述,对动态描述支持较少。

booch方法的力量在于其丰富的符号体系,包括:

类图(类结构:静态视图)

对象图(对象结构:静态视图)

状态转移图(类结构:动态视图)

时态图(对象结构:动态视图)

模块图(模块体系结构)

进程图(进程体系结构)

用于类和对象建模的符号体系使用注释和不同的图符表达详细的信息。booch建议在设计的初期可以用符号体系的一个子集,随后不断添加细节。对每一个符号体系还有一个文本的形式,由每一个主要结构的描述模版组成。

符号体系由大量的图符定义,但是,其语法和语义并没有被严格地定义。

2.3oose/jacobson

oose (object—oriented software engineering)是ivar jacobson在1992年提出的一。

种使用事例驱动的面向对象开发方法。

oose主要包括下列概念:类(class)、对象(object)、继承(inherits)、相识(acquaintance)、通信(communication)、激励(stimuli)、操作(operation)、属性(attribute)、参与者(actor)、使用事例(use case)、子系统(subsystem)、服务包(service package)、块(block)、对象模块(object module)。相识表示静态的关联关系,包括聚合关系。

激励是通信传送的消息。参与者是与系统交互的事物,它表示所有与系统有信息交换的系统之外的事务,因此不关心它的细节。参与者与用户不同,参与者是用户所充当的角色。

参与者的一个实例对系统做一组不同的操作。当用户使用系统时,会执行一个行为相关的事物系列,这个系列是在与系统的会话中完成的,这个特殊的系列称为使用事例,每个使用事例都是使用系统的一条途径。使用事例的一个执行过程可以看作是使用事例的实例。

当用户发出一个激励之后,使用事例的实例开始执行,并按照使用事例开始事物。事务包括许多动作,事务在收到用户结束激励后被终止。在这个意义上,使用事例可以被看作是对象类,而使用事例的实例可以被看作是对象。

在该方法中的一个关键概念就是用例。用例是指行为相关的事务序列,该序列将由用户在与系统对话中执行。因此,每一个用例就是一个使用系统的方式,当用户给定一个输入,就执行一个用例的实例并引发执行属于该用例的一个事务。

oose开发过程中有以下5种模型,这些模型是自然过渡和紧密耦合的:

需求模型包括由领域对象模型和界面描述支持的参与者和使用事例。对象模型是系统的概念化的、容易理解的描述。界面描述刻画了系统界面的细节。

需求模型从用户的观点上完整地刻画了系统的功能需求,因此按这个模型与最终用户交流比较容易。.

分析模型是在需求模型的基础上建立的。主要目的是要建立在系统生命期中可维护、有逻辑性、健壮的结构。模型中有3种对象。

界面对象刻画系统界面。实体对象刻画系统要长期管理的信息和信息上的行为。实体对象生存在一个特别的使用事例中。

第三种是按特定的使用事例作面向事务的建模的对象。这3种对象使得需求的改变总是局限于其中一种。

设计模型进一步精化分析模型并考虑了当前的实现环境。块描述了实现的意图,分析模型通常要根据实现作相应的变化,但分析模型中基本结构要尽可能保留。在设计模型中,块进一步用使用事例模型来阐述界面和块间的通信。

实现模型主要包括实现块的**。oose并不要求用面向对象语言来完成实现。

测试模型包括不同程度的保证。这种保证从低层的单元测试延伸到高层的系统测试。

3.三种方法的比较。

omt方法覆盖了应用开发的全过程,是一种比较成熟的方法,用几种不同的观。

念来适应不同的建模场合,它在许多重要观念上受到关系数据库设计的影响,适合于数据密集型的信息系统的开发,是一种比较完善和有效的分析与设计方法。

booch方法并不是一个开发过程,只是在开发面向对象系统时应遵循的一些技术和原则。booch方法是从外部开始,逐步求精每个类直到系统被实现。因此,它是一种分治法,支持循环开发,它的缺点在于不能有效地找出每个对象和类的操作。

无需工具隐藏分区的三种方法

一 组策略 中的障眼法。在 开始 运行 中填入 打开组策略。在窗口左侧的 本地计算机策略 中依次选中 用户配置 管理模板 windows组件 windows资源管理器 再到右侧窗口中找到 隐藏 我的电脑 中的这些指定的驱动器 策略。此时对应的设置状态是 未被配置 双击它,弹出 隐藏 我的电脑 中的这...

行测图形推理技巧之三种方法

折纸盒与拆纸盒问题,是公 真题中常见考点。折纸盒,泛指题干为平面展开图,四个选项均为立体图形,提问方式一般为 将题干图形折叠后,得到的图形是?拆纸盒,泛指题干为立体图形,四个选项均为平面展开图,提问方式一般为 将题干图形展开后应为?针对这一类问题,根据选项情况可采用区分相邻面及相对面 时针法 标点法...

分手后想挽回女友的三种方法

每个人都不愿自己的爱情流逝,分手后还是恋恋不忘你的那个她吗?人总会在失去以后才懂珍惜,才明白自己想要的是什么。但是分手后再想回到以前是不可能的,因为问题没解决,你没用正确的方法去维持的感情是不会长久的,反反复复的矛盾只会让你的感情走向终结。你要做的就是改变自己,重新吸引对方,用二次吸引这个核心技巧去...

高血压三种类型

肾虚型 高压140,低压90 主要表现为低压不高,压差大血粘稠型 高压150,低压110 主要表现为,低压高,压差小。混合型 高压160,低压120 主要表现为,高压也高,低压也高,压差小。对三种类型高血压的调理方案 肾虚型 得了高血压的人,医生多半都是建议休息几天就ok了,为什么休息一下血压就降下...

学习效率低的三种情况及解决方法

很多同学,上课一听就会,但做题确实一做就错 更有很多同学,会做的题总因为粗心而出错 还有些同学,学习心态不端正。以上三种情况,就是导致学习效率低下的最主要原因。现象一 一听就会,一做就错,总是在看到答案后恍然大悟。很多学生在看到题目时觉得面熟,能肯定自己以前做过原题或类似的题目,但就是想不起来该怎么...

起英文名字的三种方法

第一种方法是 起一个与中文名字 谐音 的英文名字。比如李梅,可以起may li,梅 与may正好谐音。下面是四个例子,您可以参考。许多 英汉词典 的附录部分,都有英文名字的列表,您可以根据您的名字的汉语发音,找一个大致 谐音 的英文名字。不过这种方法有很大的局限性,大多数中文名字都没有谐音的英文名字...

求二次函数解析式的三种方法

求二次函数解析式的三种基本方法。二次函数的解析式有三种基本形式 1 一般式 y ax2 bx c a 0 2 顶点式 y a x h 2 k a 0 其中点 h,k 为顶点,对称轴为x h.3 交点式 y a x x1 x x2 a 0 其中x1,x2是抛物线与x轴的交点的横坐标。求二次函数的解析式...

面对三种辞职者的最佳说辞

作为老板,面对员工辞职时所表现出的态度反映了你的领导哲学。说这话的是56岁的marilynmoatskennedy,一位资深职业战略咨询专家。他还把提出辞职的人分成三种状况,如果你是老板,面对这三种状况,你会怎样反应呢?1.你正考虑让你的某位 明星 员工升职,他却向你提出辞职,你怎么办?a.让他知道...