|
||||
科研程序和商业软件 吴振亚 博士 英国CHAM国际工程软件公司研究开发部总经理吴振亚 |
|
我是从事计算流体力学(CFD)商业软件工作的,去年9月有机会回国交流经验 ,在访问期间国内的工程软件技术人员常常提出这样的问题:“我们的程序功能很强,可 以协助一些工业部门解决工程实际问题,但是没有人买我们的程序,你们是怎样卖程序的 ?”下面,我想对这样的问题谈谈我的经验和看法。 我认为国内的工程技术人员所说的程序是指他们自己开发和使用的科研程序。一般这 些程序只是作为一个科研或工程项目的工具或副产品。在开发程序的自始至终并没有一个 生产商业产品的主导意识,自然这种自用工具或副产品是很难找到买主的。换句话说,科 研程序尚不是可销售的商业产品。那么其中的差别何在呢? 商业软件在一定程度上与其它商品类似。例如,一位顾客要买一台电视机他一定要求 :①电视机工作可靠,能满足所要求的性能;②很容易学会如何使用电视机;③万一电视 机出了毛病能得到修理。同样如果一位用户愿意花钱买你的程序,他至少希望满足起码的 要求:①程序可靠并能解决他的实际问题;②他自己能方便地掌握和使用程序;③有问题 时他能及时得到帮助和解决。就CFD软件来说,这就要求: 一、软件应有大量的算例 这种算例一方面用以验证程序的可靠性;另一方面也提供了应用的例子让使用者模仿 。算例可分为两类。一类是基本算例,这些算例往往可以从数学上得到分析解,用程序的 计算结果与分析解比较容易使人信服。第二类算例是来自工业界提供的应用实例,往往有 实验数据,用计算的结果与实验数据比较往往使工业界用户更感兴趣。由于第二类算例一 般较复杂,计算量大,难度大,投资通常较高。 程序所带有的算例可以各种形式提供。一种通常的形式是构成算例库(Librar y)。用户可根据算例库的目录单提取所希望的任何一个算例,重复运行,得到预期的结 果。另外,算例可以演示的形式提供,用户自己可对演示的输入数据在一定范围内进行更 改来得到预期的结果,以增强用户对程序的信心和兴趣。 目前,大型的CFD商业软件,如PHOENICS程序带有上千个算例,覆盖了广 泛的工程领域的应用问题。这种算例库在程序发展的质量检验中起着重要的作用。 二、软件应有灵活方便的输入系统以适应不同的使用目的 对于科研程序来说,程序的使用工程师往往就是程序的开发工程师本人,使用者对程 序很了解。然而作为一个商业软件,使用对象往往是工程中某一领域的工程师,对CFD 有所了解,但并非专家。这样对商业软件的输入系统,就提出了较高的要求:输入系统必 须灵活方便、通俗易懂,尽可能采用通常的工程语言而不是CFD专用术语。目前,商业 软件常用的输入系统是Menu形式,从文字Menu到图像Menu。随着计算机图像 能力的发展,现在已经以图像Menu形式为主流。Menu在应用上又以通用Menu 和专用Menu的形式提供。后者是为某一特定的工程领域设计的,例如对计算机硬件冷 却问题、房屋建筑设计等,都可发展专用Menu输入系统。 在CFD软件输入系统中,另一关键组成部分是计算网格的构造和生存系统。由于实 际工程问题中几何形状复杂,网格生存难度大,一些公司专门生产软件来解决网格的构造 和生存。大型的CFD软件除了自己本身的网格生存系统外,也应设计有接口接入其它商 业网格生存软件,以满足用户的需要。 三、软件应有足够的信息和文件系统以帮助使用者操作程序 这包括详细的使用说明书、软件中的OnLine help系统、程序的应用算 例报告、程序中的专用模型、技术报告和使用说明、版本改进和更新报告。通常科研程序 的信息文件系统很弱,尤其是ONLine help系统几乎不存在;其原因正如前 面所述,使用工程师对程序内部相当熟悉,并没有考虑到信息系统的必要性。而对于商业 软件来说没有这样的信息和文件系统,软件几乎没有实用价值。 四、软件应有完备的错误防止和检测系统 一个好的商业软件的错误防止和检测系统在整个程序中占的比例相当大。在对程序的 使用中,常常由于使用者对程序了解不够,错误地使用程序或输入不合适的数据,引起运 行失败。一个商业程序在这种情况下,应给出足够清晰的信息,指导使用者改正错误,而 不应有任何无信息的失败而终止运行,以致使用者不知所措。万一这种事故发生,检测系 统应提供足够的信息,以迅速诊断原因。检测系统对于维护和支撑程序工作更为重要。在 商业经营中,维护和支撑程序的工程师往往不是开发程序的工程师,因此这是商业软件中 一个不可缺少的组成部分。 五、软件应有方便的模块接口以允许使用者加入自己的模型 尽管商业软件在设计发展中考虑到各种应用领域对模型和算法的需要,但不可能包罗 万象,使用者常常需要加入自己的模型或试用自己的算法;尤其对于做研究性项目的程序 使用者,方便的模块接口显得格外有吸引力。配备模块接口的一个原因是由于一般的商业 软件公司是不销售源程序的。其原因主要有两点:其一是为了保护公司的商业利益,对一 些程序中的关键技术保密;另则是为了便于程序的维护和支撑。这点是容易理解的。因为 如果使用者为了试用自己的模型或算法,而直接改动源程序的核心部分,这样很容易出错 ,致使程序运行不正常;当要求软件公司的用户支撑服务台帮助时,用户支撑服务台将无 法判断是原来程序中的问题还是用户改动不当而引起的问题。 大型商业软件如PHOENICS,几乎允许使用者在外部方便地替换程序中的任何 部分。该程序也接有大量的外部模型,以指导使用者如何作这样的接口和替换。 六、软件应有快速的结果处理和图像显示系统 计算结果的处理和图像显示往往也是科研程序的薄弱环节。其主要原因大约是由于专 业程序的开发工程师并不是软件专业人员,对于计算机图像显示不熟悉。一般的科研程序 只满足于较原始的方式,以数值、表格中简单的图线来分析和显示计算结果。商业软件配 备的图像显示系统不仅大大提高了分析和显示结果的能力,也同时对市场起了极大的广告 效果,以有助于销售。随着计算机软件图像功能的增强,市场上已涌现大量的商业图像处 理软件。CFD软件本身的图像显示系统外,也备有对一些商业图像软件的接口,以满足 不同用户的要求。其实科研程序也可借鉴商业软件的策略,采用市场上现有的图像处理软 件,这样可能更经济。 七、商业软件的销售必须有完善的售后支撑服务 支撑服务主要包括下列一些服务项目: 1.用户培训 用户培训分两种:对初始使用者的培训和对有经验的用户提供专题培训和实习。通常 工程专业软件的学习周期较长,即使有完整的使用说明书和帮助操作的在线信息系统,初 始用户仍需要短期的培训课程,以便很快地能掌握程序的使用。而专题培训往往带有咨询 的性质,通常有经验的用户带着要解决的问题来参加培训,有时在培训中可直接将问题获 得解决。用户培训周期可视销售的情况安排,可从每月安排一次到半年安排一次,其费用 一般都包括在使用权价格中。 2.用户支撑服务台 用户支撑服务台是商业软件公司必不可少的部门,也是公司与用户联系的一个重要窗 口。服务台一方面准确及时地回答用户的问题,修正程序的错误;同时也向公司的研究和 发展部门反映用户的要求和意见,以改进和发展程序。支撑服务台通过电话热线、Fax 、E-mail、邮件及磁带磁盘来建立用户和服务台的联系。服务台还开展不定期的用 户访问,了解用户使用经验和要求。这在科研单位体制上很难承受这样的服务,也就难以 支持程序的销售。 一些较大的软件公司,支撑服务台还组织国际用户会议和不定期的地区性专题会议, 提供机会让用户直接交换经验、信息和想法,也给公司发展程序提供了有价值的反馈。 3.咨询与专用项目服务 咨询部门在公司内部贡献于程序的试运行,对外起到一种支撑服务的作用。对于高难 度的实际问题,咨询部门为用户建立物理模型供用户进一步研究。咨询服务也为研究和发 展程序提供了工业应用的信息,指导发展新的物理模型。咨询服务同样可以为公司赢利。 有些软件公司在初期正是利用咨询服务的赢利来投资于程序的商业化,最终达到销售程序 的目的。这一方面工作是科研程序可直接做到的。 除了上面举例说明的科研程序和商业软件的差别外,商业软件还要考虑运行的经济性 、对各种计算机系统的兼容性、软件版本的更新等等问题。 总之,可以看出,科研程序离商业软件尚有相当距离,其商业化需要资金和技术力量 的投资;同时要求有商业化的经营管理体制和组织结构,当然最终软件的销售要直接取决 于市场和销售部门的出色工作,这里就不一一细述了。 (计算机世界报 1994年 第7期) |
周报全文频道联系方式:010-68130909 |
||||||
| 【关于我们】 【广告服务】 【周报发行】 【投稿指南】 【投稿声明】 【联系方式】 【法律声明】 【媒体手册】 【编读往来】 |
||||||
| Copyright© ccw.com.cn,All rights reserved | ||||||
| 中国计算机世界出版服务公司版权所有 | ||||||