大型基础软件往往需要长周期开发,多版本迭代以及多成员协同,良好的软件设计思想及先进的工程方法能够有效保证代码在不断迭代过程中保持架构稳定、功能正确、代码整洁。软件设计包括软件架构设计及基础模块设计,软件架构设计决定了软件系统的稳定性、可扩展性和可维护性等软件整体属性,而基础模块设计保证了代码的可读性、高效性和正确性。大型软件常见的架构有:分层架构、事件驱动架构、微服务架构等,常用的软件设计原则有:面向对象、模块化、可重用、SOLID等原则。了解常见的设计原则以及设计模式有助于大家高质量设计并实现科学计算软件。
在软件实现过程中,除了设计方法,工程工具同样重要。常用的工具包括:IDE工具、代码检查工具、代码测试框架等,完善的工程工具能够帮助研发人员高效编码、充分自测以及内存问题及性能问题的准确定位等,保证算法的正确落地以及软件的高性能运行。
本次报告主要介绍软件开发过程中的需求设计流程、常用的设计原则及设计模式、常用的内存问题定位与性能调试工具,以及开发者测试的流程与方法,期望帮助科学计算研究人员快速验证算法的正确性以及编写独立的算法库、计算平台等软件。