技术开发 频道

基于组件的开放式CAD系统模型

【IT168 技术文章】

    当今计算机辅助设计(CAD)软件的规模与复杂性,使得其体系结构成为CAD软件开发及应用能否成功的决定因素.CAD系统模块的划分、模块间的联系方法、CAD系统的组成部件等正成为CAD领域中倍受关注的问题。

    CAD系统模型取决于其建模目标.进入90年代以后,CAD技术和应用需求都发生了很大的变化.在技术上,“并行工程”要求某一领域的方法能够和其他专业技术在同一环境中有机结合;在需求上,随着CAD应用领域的扩大和专业深度的纵深发展,人们更倾向于选择有针对性的专业应用软件,传统的大而全的CAD系统逐渐被支持二次开发的CAD支撑系统所取代.在CAD系统再次开发成为必然的今天,CAD系统的开放性成为各开发层次用户的主要关注点。

    针对CAD系统的开放性,曾先后出现了许多类系统模型,代表了CAD技术与产业发展的不同阶段.面向对象软件工程(Object-Oriented Software Engineering)技术的兴起,使CAD系统模型的发展达到一个新的阶段.此后,组件技术的逐渐成熟又为CAD系统的建模引入了新的思想。

    本文系统地分析了以数据为中心、以执行为中心和面向对象的CAD系统模型的构成及其优缺点.在此基础上,运用基于组件的软件工程技术,提出了一种结构层次清晰,各模块接口规范,联系简洁,易于扩充的两级总线模型,并详细地分析了该模型中各组成部件的功能和联系方法,最后给出模型的应用实例和结论。

    1 几类CAD系统模型

    1.1 CAD系统模型的设计目标

    当前,CAD系统模型的设计目标是提高实际应用的CAD系统的开放性和集成性,同时,作为一种典型的交互系统,效率也是一个重要目标。

    CAD系统的开放性包括数据的开放性、功能的开放性及系统的可扩充性.是否具备良好的开放性基本取决于系统模型.CAD系统的集成性是指通过一致的信息描述手段和处理机制将各功能子系统统一到同一个集成环境.集成性的好坏也基本取决于系统模型.CAD系统的效率通常包括系统运行的效率和应用开发的效率.运行效率是系统运行时的时空复杂度,而应用开发的效率指开发的难易程度和执行效率.效率大部分取决于系统模型,也与系统的具体实现有关。

    开放的系统模型使得子功能部件的集成易于实现,同时也必然提高应用开发的效率;集成和高效反过来又有利于更好地达到开放的目的.这三者相辅相成,其中又以开放性作为集成和效率的基础,只有开放才有集成,只有开放才有效率。

    1.2 以数据为中心的系统模型

    以数据为中心的系统模型如图1所示.这类模型将数据库放在系统的核心层次共享,各功能部件采用统一的数据描述,各子系统的开发过程完全独立;子系统间有统一的数据交换接口;整体的可扩充性好(可任意增加符合数据交换标准的应用程序).同时,这种模型整体结构松散,集成性不够良好;只能做到数据复用,不能做到功能复用,造成大量的代码冗余;由于应用相关数据的存在,难于定义符合所有应用需求的数据接口标准,因此会出现数据语义失真.从开放性的角度来讲,这类系统只具有数据开放性,不具有功能开放性,但其可扩充性很好。

    1.3 以执行为中心的系统模型

    以执行为中心的系统模型如图2所示.这类模型着眼于将不同的应用系统通过统一的执行中心来实现关于数据模型和用户界面的共享和一致.它将共有的计算和执行功能从应用程序中分离出来,放在执行中心,避免了代码冗余;用户与系统的交互与应用程序相分离,便于实现统一风格的用户界面;和数据库的任何数据交换都要通过执行中心进行,有利于数据的严格管理,保证了数据的一致性.这类模型解决了以数据为中心的系统模型的代码冗余及界面风格不统一等问题,但仍存在一些缺陷:执行中心的功能设计复杂,很难确切定义符合所有应用要求的功能集合,而且实现起来也相当困难;执行中心同时与用户界面和所有应用程序保持通讯,又管理着CAD数据库,负担过重,极易形成瓶颈.这类模型既具有数据的开放性,又具有功能的开放性,可扩充性也好,整体上优于以数据为中心的系统模型。

    1.4 面向对象的系统模型

    随着面向对象技术的成熟,出现了更为简炼的面向对象的系统模型,如图3所示.该模型与前两类模型的设计思想有较大差别.在该模型中,CAD内核对象中封装的是能为用户界面对象和所有应用对象共享的数据及相应的操作;用户界面对象中封装的是用户界面数据及相应的操作;应用对象中封装的是应用数据及相应的操作.所有这些对象通过相互间的通讯协调来完成指定的功能.从系统构成的角度来说,该模型的结构是无中心的,系统由各对象实体构成,各对象实体具有平等的地位,这与以数据为中心和以执行为中心的模型不同.面向对象的系统模型的主要优点在于,数据和功能的合理封装降低了由于数据和功能的集中管理所带来的通讯上的开销和操作上的复杂性.另外,系统的无中心结构也使系统的构成变得更加灵活.从整体上看,面向对象的系统模型无论其开放性还是其有效性都要优于前两类模型。

0
相关文章