上海交大教授何援军:论工业软件发展的若干问题( 四 )


软件作为一个产品,某种程度上也是一种商品 。商品多由使用者说了算,犹如一件衣服,穿者多关心的是这件衣服对他是否合适?而少关注这件衣服是机器(自动)做的,还是人工做的 。
6 应用定制
一般的CAD软件是一个通用系统,主要提供交互作图和交互设计的基本功能,在不同领域应用过程中需要根据这些功能在不同的领域进行个性化的应用工作,以及专业化的应用功能开发,叫做工程应用定制,应用定制可以实现应用的交互操作,大大提高软件的实用化程度 。早期在上的“二次开发”就是一种应用化开发和工程化开发,是应用定制的一种初步形式 。常用的方法有两种:①利用通用系统提供的应用接口函数;②利用通用系统提供的图形外部交换文件 。
1988年,上海船舶工艺研究所就研制成功了一个比较完整的交互式CAD系统——DPS(后来发展成白玉兰CAD,),它的广告词是:
实用有效、方便灵活,独具一格易使用!
交互系统、用户功能,合二为一两分钟!
初级“应用定制”功能的实现说明当时的设计理念已经很超前了,考虑到了软件的“开放性”,以及与应用程序的集成问题 。
7 核心问题
现在,要有自己的核心基础已经得到国人的普遍认同 。一些组织和企业已经在规划和启动工业软件“基础组件”的研发 。例如CAD的造型引擎、求解引擎、几何引擎、图形渲染引擎、网格划分引擎、数字模型及引擎、图数据库及引擎、模型轻量化引擎、CAD模型转换引擎等 。还可以列出一些“核心”组件 。
那么,这些“核心”组件的共性是什么?“核心”组件的“核心”又是什么?
清晰这个问题,先要揭示工业软件操作的对象是什么?从根上解决这些核心组件的基础——理论基础和计算基础 。解决工业软件的根本问题——终极研发基础 。
这就要回答下列两个问题:
1)工业软件是干什么的?即他们的共性是什么?
2)工业软件的操作对象是什么?
计算机算法的本质,就是将一组数据转换成另一组数据 。这些数据往往构成一个个“模型”,这样的模型叫做“数字模型”,一个软件都会围绕很多很多这样的数字模型展开 。
工业软件都是以一些数字模型为对象展开的,例如CAD软件,它的主要处理对象是“形”——“形体”和“形状”,这些模型的载体是几何模型,几何模型再承载工程内容与工程属性,形成工程零件,用于设计和制造 。因此,工业软件实质上都是围绕几何模型的构造、操作、运算、变换、显示等展开的 。直接操作对象是点-线-环-面-体,以及曲线与曲面等几何元素,对这些几何元的几何参数和几何关系进行计算和处理 。这些计算主要是基于形的计算,即几何计算和图形计算 。包括几何参数计算(相交计算、属性计算等)和几何关系计算(关系判断(on/in/out)、(拓扑)关系重构等) 。
在CAD系统中,几何计算是造型引擎、几何引擎、渲染引擎、求解引擎、以及草图绘制、网格划分、工程图生成等的计算基础 。
几何、图形、图像已成为重要的计算源、计算对象与计算结果,被作为解的一种表现形式去追求,这些计算是基于几何的计算 。而计算机的计算是数字的计算,而且是基于二进制数字的计算 。两者的计算对象、计算方法造成的维度差距、误差表示与处理的差距,乃至思维与处理流程间的差距,造成了对算法框架设计、算法方法设计以及算法稳定性的根本性冲击 。
最基础的数学是几何与代数,几何管形分析、代数管数计算 。现在的问题是,一维有序的代数计算在处理二、三维非有序的几何问题 。一些明显的矛盾,例如维度差距、思维差距、稳定性问题就产生了,这就是所谓工业软件“难”的症结所在 。因此,目前我国工业软件发展的首要任务是要解决这些问题 。