ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

BUAA OO 第四单元

2022-06-25 20:34:38  阅读:151  来源: 互联网

标签:OO 架构 强测 代码 BUAA 测试 单元


OO第四单元总结

本单元架构

关于本单元本人的架构并不是特别理想,原因是本单元第一次作业时使用了大量的hashmap嵌套,导致代码冗余严重。

整体思想就是利用hashmap存储各个信息,尽量进行o(1)的查找。

其中,对于getStateIsCriticalPoint()函数,本人通过建立并查集判断联通的方式进行查找,因此复杂度大于o(1)。

 

在四个单元中架构设计思维及OO方法理解的演进

  在四个单元中,我的架构设计思维于面向对象方法理解逐步提升:

  第一单元时,我刚刚接触面向对象的概念,在设计架构时总是会不自觉地一main到底。同时在设计架构时总是会有冗余,代码风格不好。但是在应用分块思想处理表达式后,我的架构能力有了提升。

  第二单元开始接触电梯线程,一开始对于线程的概念我是非常不适应的,总是觉得其与正常的编程思维相悖。后来发现线程思想是十分重要的。在架构前拿起笔去写去画,将每一个类需要的资源想明白,自然迎刃而解。

  第三单元接触了JML,本单元我认为真正对我有帮助的是算法部分。因为为了满足强测需要,需要采用很多优化算法,例如堆优化的迪杰斯特拉算法等。本单元我也意识到了架构过程也要考虑程序的复杂度,做到设计简洁,算法简洁有效。

  第四单元学习了类图、顺序图、状态图。我认为本单元很好的让我提高了自己的基本功。就是利用怎样的架构可以最节省思维、最有效地解决问题。

自己在四个单元中测试理解与实践的演进

在大一学C语言时,基本都是测试完样例就交,然后面向评测机编程。

而这学期的OO,中弱测的一些较难过的点都不公开数据,而强测更是只有一次机会,这时本地测试就尤为重要了。而且几次强测结果出现的我没有预想到的BUG也让我更加重视对代码的自我测试。

这学期的互测,除了第一单元代码量较小,可以阅读代码寻找BUG外,其他单元的作业我基本都是构造易错数据来对屋内其他人的代码进行测试。另外在研讨课上,我也学到了不用python写对拍器,也可以用JAVA写出自动生成数据以及自动测试的方法。

总结自己的课程收获

 首先我学会了java,以前都是用C语言编程,现在多学会了一门编程语言。

 其次我理解了面向对象的含义,这其中包含代码的封装,合并以及分模块的思想,对我今后的学习有很大的帮助。

 我也学会了如何自己做代码测试,例如写对拍器,自动生成数据等。

 同时在研讨课上,跟同学们进行交流,上台展示也让我认识了很多大佬,也学会了如何高效地讨论问题。

课程提三个具体的改进建议

1、个人认为的单元难度变化有些大,例如第一单元到第二单元难度明显增大,二到三又明显降低,虽然可能考虑到了期中、期末的影响,但个人认为可以适当换下单元的顺序,例如四、一、二、三。先学了四可以对类图等Uml有更深刻的理解,做其他单元也会从不同角度去思考,写博客也会方便;三放到最后考虑到烤漆,个人觉得难度合适。

2、我们这学期有JML单元和UML单元,我觉得也可以给JUNIT或者其他代码测试的工具也开一个单元。

3、稍微提升一下中测点的难度。

标签:OO,架构,强测,代码,BUAA,测试,单元
来源: https://www.cnblogs.com/3kkk/p/16412332.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有