CAD软件架构
这个题目比较大,我也不打算长篇大论。鄙人才疏学浅,但有幸观摩了一些CAD软件的源代码,对架构设计有些零零碎碎的想法,呵呵,发泄一下,同事没人对这个感兴趣。
CAD软件有很长时间的历史了,因为需求来自工业界,和商业软件一样,有着漫长的发展史。但由于这些种软件和普通大众有一定的距离,所以很多地方不为人所知。广义上来说,3dMax,
Maya,这些软件也可以说是CAD软件,当然我的这个定义比较宽泛。这些产品都有一些共同的特点,技术上的,商业应用上的:
- 交互性强。设计软件,从最开始的光笔,绘图板,到现代的三维扫描,动作捕捉设备,这些都是不断加入到这种软件的接口中的。因此软件的架构中,第一要素就是要考虑提高交互设计的效率。
- 适应性强。这里面内容很丰富。首先软件要有很强的可配置性,GUI,快捷操作,甚至操作系统平台,都有可能根据需要进行定制。比如Maya,有windows,Linux版本,界面使用QT开发,而有些软件只有windows版本,那么可以使用MFC了。这个对架构设计的要求是很高的。这些灵活性时必须在架构设计定型之前就要考虑到的。其次,软件要提供用户定制开发的接口。由于设计软件,尤其是跨越很多行业的设计软件,必然要面多众多特殊的需求,有些甚至是矛盾的。用户开发接口就很重要了,也就是二次开发接口。比如AutoCAD提供的ObjectARX.好的二次开发接口可以充分扩展软件的功能,使得软件的市场份额逐步扩大,形成生态圈,这个是软件在商业上成功的基石。这个可以看AutoCAD这个产品的发展历史。
- 可维护性。这个有两方面,一是开发,通常CAD软件的生命周期都比较长,尤其是比较大型的产品(当然商业上失败的不算~_^,不过失败的原因,很重要的一条就是这个)。为了适应随着技术进步和用户需求的发展不断变化的市场需求(这个比较搞,没办法,CAD软件的用户有些是很“变态的”,他们明白很多,甚至比开发人员还要理解软件),
软件的架构必须能够体够足够的支撑。如果架构做不到,那么意味着在商业上可能失掉重要的机会,ProE,就是个重新架构的产品,老东家没办法,只好另起炉灶了。第二方面就是用户支持,这个同样非常重要。CAD软件有个特点,就是用户忠诚度很高,因为这是他们生存的工具。我在公司的论坛上面就看到,在美国有一家两代人都靠公司的产品谋生,如果产品出现为题,说不定那些家伙会提着枪到公司去的。呵呵。这里有个调查,能够说明这个问题:We
then asked respondents to tell us what are the most important issues
that they look for in a new reseller / vendor – and service and
support came through as the most important element, with price
getting slightly less mentions。 From:
http://www.caddigest.com/subjects/research/select/022704_cadspaghetti_vendor.htm - 现代化的研发。这里面所说的,就是最近比较时髦的那些概念了,什么敏捷啦,SaaS.
CAD也同样遇到这些概念的冲击,开发团队如果很庞大,那么管理问题就越来越重要。根据我的有限的经验,UG的开发团队管理是很出名的。CAD可以说是个智力密集型的产品。很多产品里面的技术,比公开的技术要先进非常多。这个是很奇怪的事情。同时CAD软件的专业性也决定了开发的复杂,要面对不同的行业,不同的需求,不同的国家,等等这些。比如国际化,如果你的软件要翻译成10国语言,那么你的架构设计就要小心了。
本文标题:CAD软件架构
文章作者:feelapi
发布时间:2009-05-19
最后更新:2021-10-17
原始链接:https://feelapi.com/CAD%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84.html
版权声明:本文由feelapi创作和发表,遵循CC 4.0 BY-SA版权协议, 转载请附上原文出处链接及本声明。