项目是某光研部门预开发一套具有独立知识产权的光学设计软件,我是负责人,项目成员包括三名光学博士,八名本科生和一名研究生。
项目介绍:
项目启动后,需求文档已生成,根据文档确定了开发的主要功能,分成三个小组开发,光学组、软件组和算法组,软件组的任务是从0开发一套光学设计软件(类似于CAD),算法组的任务是将matlab程序中的执行算法用c++语言重写,光学组的任务是提供光学技术支持,同时控制软件功能的质量,目前已开发出初代产品
我的开发思路:
首先根据现有的光学设计软件,CodeV和Zemax,进行功能分解,找出其中独立性较强的模块优先开发
然后要学习Qt开发技术,我在B站上找了一套学习Qt的视频,然后我和软件组的四名本科生一起学习,每人学不同的章节,每周交流一次,将所学分享给其他同学,提高学习效率,值得一提的是,前端开发的过程中使用到了一种拖拽式的控件处理技术,类似于Vue框架中添加Element控件,不同的是这里不需要黏贴源码,只需要拖入指定区域,然后修改属性,系统自动封装代码块。信号的传输使用的是信号与槽的传输机制,类似于Vue中的router
算法组的任务是将光学组编译的matlab算法用c++重写,但我们并未接触过matlab,所以先根据matlab算法画出算法执行流程图,之后再根据流程图进行c++开发,开发的过程中有一个问题,matlab算法中有很多函数是直接调用内部的,但我们没有其源码,所以花了很多时间重写内部函数
算法优化是第二块任务,我设计了模拟退火和禁忌搜索结合的混合算法,对结果进行全局优化