作者:mobiledu2502881283 | 来源:互联网 | 2024-12-04 20:50
北航OO单元1总结报告
目录
- 1. 架构设计概览
- 2. 程序结构评估
- 3. Bug调试与测试
- 4. 学习心得
1. 架构设计概览
1.1 任务简介
本次任务的核心目标是开发一个能够解析并简化数学表达式的程序。该表达式由多个层次组成,包括表达式、项、因子等,因子进一步细分为幂因子、数字因子、三角因子、求和因子和自定义函数因子等。简化要求包括去除求和因子和自定义函数,以及展开所有不必要的括号。
1.2 设计理念
为实现上述目标,项目被划分为两大部分:表达式解析和表达式简化。解析部分采用递归下降法,将输入字符串转化为多层次的表达式结构。简化部分则通过一系列步骤实现,包括函数替换、降幂、展开、合并同类项等,每个步骤均由独立的类负责,确保了代码的模块化和可维护性。
1.3 设计评价
该设计方案的优点在于高度的模块化和低耦合性,这不仅有助于定位和修复错误,也使得代码更加简洁易读。然而,设计中仍存在改进空间,如部分方法的重复实现可以通过定义接口来优化,以更好地体现面向对象编程的原则。
2. 程序结构评估
2.1 UML类图解析
通过UML类图,可以直观地理解项目的整体设计思路。类图展示了如何通过递归下降法将输入解析为多层次的表达式结构,以及如何通过五个步骤逐步简化表达式。此外,类图还展示了Equal类的设计,用于比较表达式的不同层次,从而避免了在核心类中重写equals方法可能引入的错误。
2.2 方法复杂度分析
根据方法复杂度的度量结果,尽管整体复杂度处于合理范围,但某些方法的复杂度过高,这主要是由于代码过于面向过程和过度使用分支语句所致。然而,通过将每个处理步骤封装到独立的类中,整体的耦合性和复杂度得到了有效控制。
3. Bug调试与测试
3.1 常见Bug类型
在开发过程中遇到的主要Bug包括递归解析时返回错误对象、处理大整数时的计算错误、括号匹配问题以及输出格式不正确等。这些问题大多发生在代码分支较多或逻辑复杂的区域,表明代码复杂度与Bug出现频率之间存在一定的正相关性。
3.2 调试策略
有效的调试策略包括对每次迭代的新功能进行针对性测试,确保新增功能的正确性;测试边界条件,如大整数和极限值;利用自动化测试工具帮助发现和定位问题,提高测试效率。
4. 学习心得
通过此次项目,深刻体会到良好架构设计的重要性,它不仅提高了代码的可维护性和扩展性,也大大减少了后续开发的难度。同时,尝试运用面向对象的思想,虽然仍有不足,但已显著提升了代码的质量。此外,团队合作在软件开发中的作用不可忽视,与同学们的交流和互助极大地促进了项目的进展和个人技能的提升。