引言
前文我们讨论了仿真二次开发的分类以及进行二次开发需要具备的一些条件,本文我们继续讨论仿真二次开发的流程。
二次开发的流程
二次开发和一般的程序开发流程比较类似,稍有不同的是二次开发需要针对具体的仿真问题去学习其背后的数学物理原理,其具体流程如下。
1、需求分析
与用户或项目组讨论,明确具体需求,主要包括:模型、工况、载荷、边界条件、分析类型、结果评价、仿真对标、效率提升等。需求分析的重点是将用户对产品的需求翻译为技术需求,为后期的技术攻关和方案制定打下基础。
2、技术攻关
评估需求的实现难度和可行性,针对其中的核心技术难点进行技术攻关,主要涉及仿真原理、仿真技术以及软件实现等方面。
仿真原理:主要涉及仿真的理论原理,如反应谱分析主要涉及反应谱的理论基础、力学模型、模态叠加法、结果评价等数学和动力学原理;
仿真技术:主要涉及仿真软件原理以及实现过程,如基于Ansys的随机振动分析,主要涉及Ansys软件进行随机振动的假设、分析过程以及APDL命令流实现;
软件实现:主要涉及开发过程中的一些数据结构定义、算法等。
3、方案制定
确保技术可实现的基础上制定完整的开发方案,主要包括:仿真流程对应的开发流程、流程之间衔接的接口定义、数据结构定义、资源匹配以及进度计划等。
开发流程:前处理建模、求解和后处理等过程;
接口定义:同一个软件内部不同模块之间的输入输出关系,以及不同软件之间的数据传输接口等;
数据结构定义:结构之间传输的数据内容、数据结构以及数据文件格式等;
资源匹配:项目开发需要的人力资源、硬件配置、仿真软件版本以及对应的开发语言版本等;
进度计划:项目开发的周期进度安排,关键节点评审时间节点以及考虑突发情况的时间冗余安排等。
4、开发实现
根据技术方案和进度计划,针对每一个模块进行详细的开发和测试,确保模块功能正确,最后将所有模块进行集成测试,确保功能正确且满足用户需求。
模块开发:根据每个模块的输出输出接口以及模块要实现的具体功能进行详细的程序开发和测试,并解决其中的bug问题;
集成测试:将项目所有模块进行联调联试,对于bug问题进行问题定位,再由相应的开发团队进行改进和优化。
5、验证优化
对完整的软件系统进行测试验证,修复测试中发现的bug和问题;对于功能正确但效率较低的问题也应该一并进行优化,程序优化过程中重点关注:增加变量复用以节约内存、减少不必要的循环和判断以提高效率。最后评估软件功能是否满足用户的需求。
6、文档编写
编写详细的技术文档,包括代码注释、使用说明等;编写用户手册,帮助用户理解和使用新增功能。
7、部署维护
将新开发的的仿真软件或系统部署到用户指定的环境中;同时还应结合技术文档对用户开展技术培训,让用户尽快的掌握新功能;根据用户反馈和新需求进行维护和功能更新,但要注意需求蔓延的问题。
8、评估反馈
收集用户反馈,评估项目效果;基于评估结果和用户反馈,进行项目总结并持续改进。
以上步骤可能会根据具体项目的需求进行调整,但通常会包含这些基本内容。二次开发不仅要求开发人员具备仿真工具的使用能力,还需要具有良好的软件工程实践经验。
二次开发案例
我们已经讨论了二次开发的概念、功能、分类、具备的条件和开发流程等内容,关于二次开发的一些案例,我们在以前的文章中有所讨论,本文在此不再赘述。
最后
根据笔者多年的仿真和二次开发经验来看,要学习二次开发首先要对编程序感兴趣,再结合软件帮助文档,以一些提高分析效率的脚本开发为基础,学习整个开发流程,然后再由浅入深的研究用户界面开发以及用户程序开发。至此我们对仿真二次开发做了一些简单的讨论,作者水平有限,观点仅供参考。
529