针对cad项目的需求不确定性和技术复杂性,黄院长找到了又一个陈东风的老熟人——王力军教授。
此前王教授承接的格力新型扁线电机风扇已经在年后顺利移交给了格力工厂,按照李文山的要求派出了他的学生前去鹏城进行技术指导。王教授对陈东风又搞出这么大的动静一点都没有吃惊,很愉快的接受了这项任务。
经过几天深入的沟通,王教授已经基本明白了陈东风的通用型cad软件想要做出来的效果——参数化。
陈东风飞要求很简单通用型的cad软件必须要立足于满足大部分人的需求,在这之上才是专业性需求。所以王教授的工作不仅仅是要从自身的需求出发,还要兼顾初学者。
“现在计算机的价格,一般厂子恐怕还是无力承担其昂贵的价格吧?而且简单的设计画画草图就可以了,搞个计算机制图,恐怕意义不大。当然通用型的想法很棒,但是可能理想化了。”王力军说。
“王教授,我敢和你打个赌10年后每个工厂都有计算机,20年后每个大学生都会使用计算机,30年后每人一台计算机。计算机以后会越来越便宜,功能会越来越强大。而我们的cad目前是聚焦于机械领域,但是在几何图形引擎的帮助下可以发展出很多的版本,例如建筑,自动化等一切设计领域,并且还可以进行各种模拟仿真实验...”陈东风再次展现神棍的一面,开始滔滔不绝的进行展望,把在场的人都侃的晕晕乎乎。
王教授听完后,也不在迟疑,立即开始组织进行关于cad功能需求的问卷调查。
需求让技术变复杂,需求本身很复杂,对应的技术也会很复杂。要响应需求的变化,也会让技术变得复杂,对于明确的需求,相对来说技术实现是容易的,
但是,随着需求的不断变化,新的需求可能会破坏原有的代码架构,导致系统越来越臃肿复杂,维护也更加困难。所以王教授的前期需求分析对整个cad项目会起到至关重要的作用。
陈东风搞定了王教授帮忙进行下一步的需求分析后,然而并没有对他现在的工作有任何的用处。
几何图形引擎的人员虽然到位了,但是人员会让技术变复杂,软件开发不是一个人,而是一个team,团队内部成员水平不一样,擅长的技术方向也不一样,所以有效协作是很大的考验。况且杨光带来的新人有的连c++都没有听说过,一切都要从头开始。
于此同时cad软件想要需要用到的技术本身也是复杂的,软件项目中选择编程语言、框架、技术组件、数据库等技术或工具,都是很复杂的,如果不能进行深入学习是很难进行掌握的。
如果出现一点点的纰漏,那么要让软件稳定运行就是难于上青天了。
这些技术的复杂性,会导致软件开发变得复杂,开发成本很高,五位核心项目成员第一天开会的讨论就是要解决这个问题。
“几何图形引擎是一个复杂的需求,现在进行三块的划分还是太笼统了,必须进行细分,不然这么多的人也参与不进来。”陈东风开门见山的说。
?对于复杂的需求,架构设计通过对系统抽象分解,把复杂系统拆分,最终拆分成一个个小的功能,单个功能的开发难度,则是清晰的、简单的。其次,拆分功能可以帮助组织人员一起高效协作。对复杂系统的抽象拆分后,开发人员可以独自完成功能模块,最后通过约定好的接口协议集成。这样最终各个开发小组规模不大,既有效协作,又能各自保证战斗力。
???陈东风想法一下子说出了在场人员的心理,前面几次开发软件的规模远远比不上现在的cad项目,大家心理都没有底,而陈东风的方法让他们豁然开朗。
“如果按照你说的组织人员和技术把系统和团队拆分,安排好拆分后的排列关系,让拆分后的部分能通过约定好的协议相互通信,共同实现最终的结果。那么该怎么用合适的编程语言和协议,把框架、技术组件、数据库等技术或者工具有效组织起来,一起实现需求目标呢?”杨光问出了关键问题。
陈东风也是有备而来,他是项目的发起人,对整个项目最为清晰,他不经勾勒好了几何图形引擎的框架,甚至还勾勒出了cad软件的框架。
“开发图形引擎的目的就是对底层二维、三维图形系统库的全部使用细节进行了抽象,并提供了基于现实世界对象的接口,那么在开发cad软件时候使用少量代码就能构建一个完整的三维图形,这是我们的目的。”陈东风先简单回顾了下图形引擎的目的。
接下来陈东风为大家展示了他设计的可扩展分层程序框架——拥有高效率和高度可配置的资源管理器,采用高效的网格资料格式储存模型数据,并且具有清晰、整洁的设计以及全面的文档支持。
当然其中很多都是想法,能不能实现还要再说。不过他的可扩展分层框架还是很有特点的。该框架把一个根节点作为是所有几何图形的入口点,用于配置系统内的其它对象,必须最先创建和最后释放。渲染系统设置图形的渲染属性并执行渲染操作。图形管理器负责组织几何图形,生成并管理几何图形的各个参数。
图形组织原理是将图形划分成抽象的多个空间,这些空间还可以划分成多个子空间,每个空间由一个图形节点来管理。
将大量图形节点按照空间的划分层次组织成树