面向对象的分析过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象的分析过程
摘要
分析了面向对象技术应用于仿真领域的种种优点,亦即我们选择采用面向对
象的方法进行改造的原因。一些面向对象方法存在的不足。
关键词:仿真,面向对象,岸边集装箱起重机,训练器
面向对象的开发方法是以对象作为最基本的元素,它是分析问题、解决问题的核心。
面向对象=对象(Object)
+分类(classification)
+继承(inheritance)
+通过消息的通信(communication with messages)
从下图中我们可以看出,面向对象的开发方法明显不同。
面向对象的仿真为仿真人员提供了开发模块化可重用的仿真模型的工具,它把系统看成由相互作用的对象所组成,而对象则往往表示现实系统中的真实实体。从而提高了仿真模型的可理解性、可扩充性和模块性,并且便于实现仿真与计算机图形和人工智能的结合。采用面向对象的方法,原因如下:
1.可理解性
面向对象仿真对设计者、实现者,以及最终用户来说都改进了仿真的可理解性。因为仿真系统中的对象往往直接表示现实系统中的真实实体,这些实体在面向对象的仿真系统中可以用外观上类似于人们熟悉的实际系统的对象的图形或图像来表示,用户可以通过图形界面与仿真模型进行交互,利用图形或图像来直接建立仿真模型,这对于熟悉实际系统的用户来说是很容易理解的。
2.可重用性和可扩充性
在面向对象的仿真中,可以建立起一个模型库用以保存以前建立的模型,模型库中的模型可以作为建立新模型的可重用构件,通过面向对象技术内在的继承机制可以容易地和系统地修改现有的对象(类)以创建新的对象。并且可以加入现有的类库中。类库提供了仿真建模所需要的一般设施。通过修改现有的类,可以建立各种应用中所需要的特殊对象。
3.模块性
面向对象的仿真是模块化,特殊的过程来寻找相应的信息,不会影响其它的对象。
4.图形用户界面
对象作为模块,对象的所有信息都保存在该对象中,在面向对象的仿真系统中往往表示实际系统中的真实实体,因而在系统中可以用相似的图形或图像来表示,因此更便于建立非常直观的图形用户界面,用户可以直接在屏幕上建立系统的图形概念,直观地构造仿真模型。
5.仿真与人工智能的结合
在面向对象的仿真中,对象封装了它们的功能,而功能可以包含智能。因而利用人工智能和专家系统的方法可以在功能中嵌入智能,使对象也能具有决策和学习能力。仿真与人工智能的结合可以增强仿真的能力。在基于知识的仿真系统和专家仿真系统方面,许多学者己进行了广泛的研究,表明了人工智能和专家系统在辅助仿真建模、仿真结果的解释和仿真模型灵敏度分析等方面的重要作用。
6.并行仿真
由于对象封装了所有的信息,因而每个对象都能分配给自己的处理程序执行它的功能。这样,对象在某种程序上可以相对独立的运行。正是由于对象之间的这种相对独立性,产生了并行仿真执行的可能性。仿真的并行执行可以极大的降低仿真时间,允许仿真更多的对象,能够实现更详细的仿真。
3. 2面向对象的方法选择
3. 2. 1方法比较
八十年代末以来,随着面向对象技术成为研究的热点出现了几十种支持软件开发的面向对象方法。下面介绍几种经典的分析和设计方法:
1 .OMT/Rumbaugh
OMT(Object Modeling Technique)方法最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾扩展应用于关系数据库设计。J. Runmbaugh在1991年正式把OMT应用于面向对象的分析和设计。这个方法是在实体关系模型上扩展了类、继承和行为而得到的。
OMT覆盖了分析、设计和实现三个阶段。OMT包括了一组定义的很好的并且相互关联的概念,他们是类(class)、对象(ob ject)、一般化(generalization)、继承(inheritance)、链(link)、链属性(link attribute)、聚合(aggregation)、操作(operation)、事件(event)、场景(scene)、属性(attribute)、子系统(subsystem)、模块(module)等。
OMT方法包含四个步骤:分析、系统设计、对象设计和实现。OMT定义有三种模型,这些模型贯穿于每个步骤,在每个步骤中被不断的净化和扩充。这三种模型是: 对象模型,用类和关系来刻画系统的静态结构。
动态模型,用事件和对象刻画系统的动态特性。
功能模型,按照对象的操作来描述如何从输入给出输出结果。
OMT是一种比较成熟的方法,用几种不同的观念来适应不同的建模场合。但应用所有的OMT技术来建立一个一致的模型是非常困难的,而且各阶段三个模型之间的关系也不是十分清晰。为建立一个一致的模型,OMT的许多概念和语义还需要形式的定义。
2. OOD/Booch
OOD(Object Oriented Design)方法是Grady Booch从1983开始研究,1991年后走向成熟的一种方法。Booch方法在面向对象的设计中主要强调多次重复和开发者的创造性。方法本身是一组启发性的过程式建议。方法并不依从硬性的条件限制,OOD的一般过程如下:
1)在一定抽象层次上标识类与对象。
2)标识类与对象的语义。
3)标识类与对象之间的关系。
4)实现类与对象。
这个过程是递归的。设计过程从发现类和对象,形成问题域的字典开始,直到不再发现新的抽象与机制,或者说,所有发现的类和对象己经可以由现有的复用类和对象实现
为止。
OOD为开发者提供了丰富的图形表示。从不同的侧面观察模型都可以获得模型在某一方面特性的丰富视图。OOD方法并不是一个开发过程,只是在开发面向对象系统时应遵循的一些技术和原则。OOD方法是从外部开始,逐步求精每个类直到系统被实现。它的缺点在于不能有效的找出每个对象和类的操作。
3. RDD/Wirfs一Brock
RDD(Responsibility-Driven Design)方法是Wirfs-Brock在1990年提出的。这是一个按照类、责任以及合作关系对应用进行建模的方法。RDD方法分为探索阶段和精化阶段。ftDD的设计规范主要包括:类层次图、合作图、类规范、子系统规范、合同规范。RDD是一种用非形式的技术和指导原则开发合适的设计方案的设计技术。寻找类及其特性的策略主要依赖设计者的个人技巧。RDD用交互填写CRC卡的方法完成设计,这对大型系统设计不太适用。RDD也引入了一些新的概念和技术,例如合同、子系统等,使得开发过程可以并发完成。
RDD采用传统的方法确定对象类,有一定的局限性。另外,均匀的把行为分配给类也是十分困难的。
4. GOAD/Coad一Yoordon
OOAD(Object-Oriented Analysis and Design)方法是由Peter Coad和Ed Yourdon在1991年提出的。这是一种逐步进阶的面向对象建模方法。OOA使用了基本的结构化原则,并把他们同面向对象的观点结合起来。OOA方法主要包括下面五个步骤:确定类与对象、标识结构、定义主题、定义属性、定义服务。其结果是结构化的图文挡。
模型自顶向下包括五个层次:
主题层(只有主题);
类与对象层(上层中加入类与对象):
结构层(上层中加入结构);
属性层(上层中加入属性);
服务层(上层中加入服务);
OOA没有特别的支持来刻画对象的动态特性。
OOA完成系统分析。OOD负责系统设计。OOD包括四个步骤:
1)设计问题域(细化分析结果);
2)设计人机交互部分(设计用户界面);
3)设计任务管理部分(确定系统资源的分配):
4)设计数据管理部分(确定持久对象的存储)。
OOA把系统横向划分为五个层次,OOD把系统纵向划分为四个部分,从而形成一个清晰的系统模型。
5.OOSE/Jacobson
OOSE(Object-Oriented Software Engineering)是Jacobson在1992年提出的一种用例驱动的面向对象开发方法。
每个用例都是使用系统的一条途径。用例的一个执行过程可以看作是用例的实例。系统开发是一个复杂的任务。通过在不同层次逐步构造模型可以控制这种复杂性。
OOSE开发过程中有五种模型,这些模型是自然过渡和紧密祸合的。包括:需求模型、分析模型、设计模型、实现模型、测试模型。DOSE是一种实用的面向对象的系统开发方法。
其中,Booch, Coad/Yourdon, OMT,和Jacobson的方法在面向对象软件开发界得到了广泛的认可。特别值得一提的是统一的建模语言UML (Unified Modeling Language),该方法结合了Booch, OMT,和Jacobson方法的优点,统一了符号体系,并从其它的方法和