面向对象的建模技术

上传人:ni****g 文档编号:511678565 上传时间:2022-11-21 格式:DOCX 页数:8 大小:246.56KB
返回 下载 相关 举报
面向对象的建模技术_第1页
第1页 / 共8页
面向对象的建模技术_第2页
第2页 / 共8页
面向对象的建模技术_第3页
第3页 / 共8页
面向对象的建模技术_第4页
第4页 / 共8页
面向对象的建模技术_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《面向对象的建模技术》由会员分享,可在线阅读,更多相关《面向对象的建模技术(8页珍藏版)》请在金锄头文库上搜索。

1、面向对象的建模技术(OMT)以前,我们在用 Fortran、C 语言进行编程时实际上使用了一种叫做面向过程的程序设 计方法,也就是所说的结构化方法。这种方法强调对系统功能进行抽象,系统功能的实现是 通过对若干个模块的调用来完成的。历史已经证明这种方法在降低软件开发成本、提高软件 生产率方面是一次失败的尝试。为什么呢?客观世界是一个对象的世界,人类对客观事物的 认识又是一个由特殊到一般、一般到特殊的过程。而面向过程所能提供给我们的解决问题的 方法却是“后一步的设计要满足前一步的要求”。这种强调系统功能、一环套一环的设计方 法使我们设计出来的软件模块仅仅是满足了特定的需求,并且在软件系统后期维护过

2、程中它 仅能给程序员提供很小的活动空间。回首往事,除了仅有的几个数学函数外又有多少个所谓 的模块可以真正地重用!又有多少位软件工程师在为自己所做的“遗憾工程”感到惋惜!这 些主要是由于计算机求解的问题空间与解题的方法空间不一致,两种空间的映射量太大!当 然产生上述问题的最根本的原因还应是冯.偌伊曼的计算机体系结构。面向对象的方法正是 在上述背景下产生的。面向对象的方法认为:客观世界的问题都是由客观世界的实体及其相互之间的联系构 成的。我们把客观世界的实体称为问题对象,那么对象都有自己的运动状态及运动规律,不 同对象之间的相互作用和相互通信就构成了完整的客观世界。使用面向对象的方法人们可以 逐步

3、去解决问题,而在问题逐步深入过程中不必去重新修改前面已完成的设计工作。由于采 用了数据抽象和封装技术,面向对象的程序设计降低了各模块间的关联程度,这就相对减少 了程序员之间的相互影响。这项技术是在设计初期只由有很少的程序员介入的情况下,通过 在对象系统中建立一个高层次的通讯环境来实现的,它使得今后更改引起的成本大大降低。 使用面向对象的方法详细定义用户的数据类型,将它们封装在一起又可实现较高的代码利用 率。当今,计算机产业正朝着分布式处理、并行处理、网络化和软件生产工程化发展,而 面向对象的方法是作为实施这些目标的关键技术之一。面向对象的方法中有一些重要的概念,它们是对象、封装、继承和多态等。

4、 对象 就是 人们所感兴趣的任何事物,它可以是有形的实体、某种作用及性能等。对象都有其运动状态 和运动规律,因此对象具有很强的表达能力和描述功能。对象中包含数据和对数据操作的代 码,它实现了数据和操作的结合。具有相同结构、操作并遵守相同约束规则的对象的集合就 是类。 封装是一种组织软件的方法,它的基本思想是把客观世界中联系紧密的元素及相关 操作组织在一起,构造具有独立含义的软件实现,使其相互关系隐藏在内部,而对外仅仅表 现为与其它封装体间的接口关系。封装的目的就是信息隐匿。在面向对象的方法中,是通过 对象/类来实现封装的。继承用于描述类之间的共同性质,它减少了相似类的重复说明。继 承使得程序员

5、对共同的操作及属性只说明一次,并且在具体的情况下可以扩展细化这些属性 及操作。多态性指相同的语言结构可以代表不同类型的实体或者对不同类型的实体进行操 作。对于大多数面向对象的编程语言,在类的继承关系中有一种独特的多态现象,即如果类 P 是类 S 的父类,则子类 S 的一个对象 s 可以用在父类 P 的一个对象 p 所使用的任何地方。面向对象的方法有很多种,这里所介绍的面向对象的建模技术是指 James Rumbaugh 等人所著的“Object-Oriented Modeling and Design”中谈到的OMT的方法。OMT是一种 通过模型来思考问题的方法,这些模型都是围绕着真实世界的概

6、念建立的。 OMT 方法提供了 一组面向对象的概念及图形符号,然后利用这些概念及符号来分析需求、设计系统、实现, 它适应于整个软件的开发过程。 OMT 方法是一种思考问题的方法,而不仅仅是一种编程技术。由于面向对象的地震物理模拟软件平台是采用 OMT 方法设计的,所以这里对 OMT 方法 做一个比较详细的介绍。首先介绍OMT的一些建模概念和图形符号。2.1 建模的概念模型是为了对事物进行更好的理解而对事物本身所做的抽象。由于模型忽略了一些事 物的非本质属性,所以它比原来的事物更容易操纵。OMT 的方法是从三个相关但体现系统不同方面的角度去对一个系统进行建模,得到的 三种模型分别是对象模型、动态

7、模型和功能模型。每一种模型描述系统的一个方面。对象模型代表了系统静态的结构。动态模型代表了系统随时间变化的、行为的、控制的方面。功能模型代表了系统的功能的方面。这三种模型不是完全独立的,每一种模型都包含对其它模型的引用。系统也不是各独 立部分的组合。这三种模型是随着开发过程不断演变的(从问题域中的模型逐步演变为计算机域的模 型程序实现)。在系统分析阶段,问题域的模型被创建,这时不用考虑实现;在系统设计 阶段,解决方法的一些结构要加到模型中去;在实现阶段,问题域和解决方法的结构要实施 为代码。模型有两方面的意义,一是用来理解问题域、理解系统,二是作为解题的方法。我 们先来看看对象模型。2.1.1

8、 对象模型对象模型描述了系统的静态结构,它提供了系统中的对象、对象之间的关系、标识每 一对象类的属性及行为等。在三种模型中,对象模型是最重要的。在此将对象模型的一些概 念陈述如下:对象是一种概念、一种抽象,是问题域中有着明确意义的事物。类描述了一组具有相同属性、行为、共同语法特征以及和其它对象有着相同联系的 对象。属性是对象拥有的数据值。行为是一种功能,作用于对象。联系是两个对象之间物理的或概念上的联系。 关联是两个类(问题域)之间的联系。聚合一聚合是一种特殊的关联,它代表了部分一整体的关系。A聚合了 B,可以表示为 A“has a”B。继承继承是共享类的相似点但同时保留差别的一种强有力的抽象

9、手段。一个子类可 以继承它的父类。A继承B,可以表示为A “is a”B。对象模型的内容要与求解的问题相关。图 2.1.1 为对象模型的图形符号记法。2.1.2 动态模型对于一个系统,我们首先了解它的静态结构,了解单一时刻的各对象的结构及它们之 间的关系;然后我们才是检查对象及其相互关系随时间发生的变化。一个系统的关于时间和 变化的方面就是动态模型。在此,将动态模型的一些概念陈述如下: 状态状态是对对象属性值和对象联系的一种抽象。状态决定了对象对外部事件激励 所做成的反应。一个状态一般伴随一个持续的活动,状态对应一个时间段。事件一个独立的从一个对象到另一个对象的激励叫事件。事件对应一个时间点、

10、一 个动作。对象接收到一个事件,其下一个状态依赖于当前的状态及其接收到的事件。 Class : Inheritance : Multiplicity of Associations :图 2.1.1 Association :状态图状态图是一个由事件和状态所组成的网络。它是一个图,其节点为状态,有向弧为标有事件名的转变。动态模型就是一个彼此共享事件、交互作用的状态图的集合。仅为那些具有动态行为的对象类构造动态模型。图2.1.2 为动态模型的图形符号记法。 Event causes Transition between Event with Attribute : States : Initia

11、l and Final States : Action on a Transition : Guarded Transition :.Sending an event to another object:.Splitting of control :.Synchronization of control :图 2.1.22.1.3 功能模型功能模型描述了一个系统内的计算、功能(确定了计算的结果,不考虑如何计算)。功能模型确定发生了什么,动态模型确定什么时候发生,对象模型决定了对谁发生。功能模型包含了众多的数据流图,用以表明数据的流动、从外部输入、通过操作、内部 的数据存储以及数据的输出。功能模

12、型只能指示可能的功能计算路径,它不能确定哪一条路 径实际发生。功能模型没有显示系统的控制信息和对象结构信息。在此,将功能模型的一些概念陈述如下:处理过程:处理转变数据值,低层次的处理就是一个纯粹的函数。数据流:数据流连接一个对象或处理的输出到另一个对象或处理的输入。它代表一个 计算的中间数据值。在数据流上的数据是不改变的。行动者:行动者是一个通过产生或消费数据而驱动数据流的活动对象。行动者与数据 流图的输入和输出相连。数据仓库:数据仓库是数据流图中为了以后的应用而存储数据的对象。 控制流:一个裁决映象了一个或多个处理的执行,这是动态模型的控制方面的问题。 将裁决信息包含在功能模型中,这样可以显

13、示出数据的依赖性。在数据流图中的控制流专门 负责这方面的问题。控制流是一个布尔函数值,它影响了哪一个处理被执行。数据流图:数据流图显示了一个系统计算各值间的函数关系,包括输入值、输出值和内部的数据存储。功能模型包含了众多的有明确操作意义和约束条件的数据流图 DFD。图 2.1.3 为功能模型的图形符号记法。2.1.4 对象模型、动态模型和功能模型之间的关系对于功能模型:对象模型显示了处理的结构、数据仓库和功能模型中的数据流;动态 模型显示了处理执行的顺序。对于对象模型:功能模型显示了类的操作和每一操作的参数,它也显示了各类之间的 关系;动态模型显示了每一对象的状态以及接收事件、状态改变所执行的

14、操作。对于动态模型:功能模型定义了在动态模型中没有定义的原子动作和活动;对象模型 显示了什么改变了状态、什么经历了操作。每一种模型都集中描述系统的一个特定的方面,而对其它的方面没有解释。虽然对于 不同类型的系统三种模型的重要程度是不同的,但对于全面理解一个问题,三种模型都是必 要的。2.2 设计方法学软件工程一个通过使用预定义的技术和符号约定、组织生产软件的过程。这个过程一 般被表述为一系列的阶段,这些阶段组成一个完整的软件的生命周期,它包括从问题声明开 始,到分析、设计、实现、测试,还有维护与升级。OMT 方法作为一种软件工程的方法,它支持整个软件的生命周期。但对于测试与维护, OMT 的方

15、法同其它软件工程方法区别不大,这里暂不介绍。OMT 方法包括以下几个阶段: 分析分析阶段最开始的工作是问题声明。问题声明描述了要解决的问题,提供了推 荐系统的总体概念。然后是与用户及真实世界的背景知识交流。分析阶段的成果是得到了捕 获系统三个方面的形式模型。系统设计该阶段确定系统的总体结构。 对象设计该阶段将分析的模型细化,然后产生一个实际的设计。在对象设计阶段, 有一个从应用域概念到计算机域概念的转变。下面就简要介绍一下各阶段的工作方法。2.2.1 分析分析是 OMT 方法的第一个阶段,它涉及设计一个精确的、可理解的、准确的、形式的、 概念的、关于真实世界的模型,它澄清了需求,为系统的设计和实现提供了框架。1. 写或得到一份原始的问题声明。2. 建立对象模型* 确认对象类* 准备一个数据字典,包括对类、属性和关联的描述。* 增加类之间的关联。* 为对象和联系增加属性。* 用继承组织和简化对象类。* 检测路径,迭代上述过程。* 将类分组形成模块。=对象模型=对象模型图+数据字典。3. 建立动态模型*确认系统中典型的需要交互的情况(广义和狭义的交互方式)。 *识别对象间的事件。* 为每一个交互的情况准备事件足迹图。* 准备系统的全局事件流图。* 根据每一对象的事件足迹图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号