欢迎来到天天文库
浏览记录
ID:22153207
大小:2.00 MB
页数:117页
时间:2018-10-27
《occ体系结构和基本概念》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第1章OCC体系结构和基本概念OCC是用面向对象方法设计的一个CAD基础平台(软件)。为了能从整体上把握OCC的组织情况,也为了方便后续章节的讨论,本章将介绍OCC体系结构和几个基本概念。1.1OCC体系结构1.1.1面向对象方法和面向对象的软件工程在介绍OCC体系结构之前,先介绍面向对象方法的概念和什么叫面向对象的软件工程。在面向对象的方法出现以前,程序员都采用面向过程的程序设计方法,其中典型的是结构化程序设计。这种设计的思路是:自顶向下、逐步求精。其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构。各模块间的关系尽可能简单,在功能
2、上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象以及自顶向下、分而治之的方法,从而有效的将一个复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护[2]。这种设计方法的致命缺点是:程序的可重用性差。因为它把数据和处理数据的过程分离为相互独立的实体,当数据结构改变时,所有相关的处理过程都要进行相应的修改。而面向对象的方法将数据及对数据的操作放在一起,作为一个相互依存、不可分离的整体——对象。对同类型对象抽象出其共性,形成类。类中的大多数数据
3、,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信[2]。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障,实现了“高内聚”“低耦合”。另外,继承与多态性可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容[2]。1.1.1OCC的体系结构整个OCC就是用面向
4、对象方法设计出来的一个对象库。之所以用面向对象方法而不是面向过程方法,是因为用面向对象方法有三个好处。第一,由面向对象方法抽象的系统结构能映射到数据库结构中,很容易实现程序与数据结构的封装。第二,面向对象方法从所处理的数据入手,以数据为中心来描述系统,数据相对于功能而言,具有更强的稳定性,这样设计出的系统模型往往能较好地映射问题域模型[3]。第三,对象、类、继承性、多态性的引入使用,令面向对象的设计方法能更好地生产可重用的软件构件和解决软件的复杂性问题。不过,面向对象的设计方法要求开发人员必须花很大精力去分析对象是什么,每个对象应该承担什么责任,所
5、有这些对象怎样很好地合作以完成预定的目标。这样做换来的好处是:提高了目标系统的可重用性,减少了生命周期后续阶段的工作量和可能犯的错误,提高了软件的可维护性[3]。用面向对象方法和软件工程思想分析,整个OCC由五个模块组成,分别是基础类模块、建模数据模块、建模算法模块、可视化模块、数据交换模块和应用程序模块。其中,建模数据模块主要提供二维和三维几何模型的数据结构,也称数据结构模块。一个模块主要由一个或几个工具箱构成。当然它也可以包含一些执行体和资源体等。就结构上看,一个工具箱就是一个共享库(如.so或.dll类型的文件)。每个工具箱由一个或几个包组成
6、。而每个包则由许多类组成,例如,一个几何包包含点类、线类和圆类等。在同一个包中,不能含有相同名字的两个类。使用类的时候,类名要以包名作前缀,如Geom_Circle。图2.1简要说明了包的内容。图2.1包的内容1.1基本概念1.1.1类和泛化1、类OCC是一个面向对象的软件,与所有面向对象的软件一样,其最基本的软件成分是类。一个类就是一种数据类型的实现。类有自己的行为(由它的函数提供的服务)和结构(类的数据结构——用来存储其数据)。OCC中所有类按其实现方式可以分三种:普通类、推迟类和通用类。普通类含有实例方法,可以被直接实例化。而推迟类则不能被实
7、例化。推迟类的作用在于使一层类共同拥有一种给定的行为,而这些行为的发生取决于普通类(推迟类的派生类)的实现。通过推迟类的创建,可以保证所有派生自同一推迟类的普通类拥有相同的继承行为。在C++中,与推迟类等同的是抽象类。至于通用类,它提供了一套处理其他数据类型的功能行为。通用类的实例化需要为它的参数指定类型。通用类的作用与C++中模板类的作用一样。2、泛化这里所谓的泛化,主要是通过通用类的实现来获得的。通用类分两步实现。首先,对一个通用类进行声明以建立模型。在CDL(CASCADE定义语言)中,通用类被声明为对不确定类型数据项的操作。这里的数据项就是
8、通用类中的形参。对通用类的形参进行限制,就可以使形参类型成为普通类的子类。要注意的是:声明一个通用类并没有创建一个新的类类
此文档下载收益归作者所有