第四单元总结
一、第四单元作业架构分析:
三次作业的架构比较相似,在这里只列出第三次作业的部分构架图

图中的类是我自己构建的
第二次作业在第一次作业的基础上增加了对时序图和状态图的解析,我的解决办法仍然是对图的元素进行分类存储,之后再根据图的层次结构进行封装,完成相应请求功能。
第三次作业是在前两次的基础上,增加了一些原则检查对应的方法。
二、四个单元总结:
本学期的课程有四个单元的学习,在第一个单元的作业中,我学会了面向对象变成的基本方法,让自己的编程思维逐渐实现了从面向过程编程转为面向对象编程,在这一单元中自己的每一次作业都进行了重构,但自己的代码结构逐渐实现了面向对象的编程思路。第二单元的多线程,在这一单元中,三次作业的代码几乎没有重构,较第一单元比较好的考虑到了代码的拓展性,而在这一单元给我带来的最大挑战是如何进行临界数据的保护和避免死锁,如何能够在合适的时刻结束线程,经过前两次作业的练习和尝试,我在第三次作业中较好的解决了这些问题。第三单元中,第一次作业中单纯按照JML规格的描述完成了作业,而在第二次作业中,我对代码进行了一次重构,不仅根据JML的规格进行实现,并考虑整体的性能采用了一些高级的容器和算法以及中间变量。第三次作业就是在第二次作业的基础上进行了拓展。第四单元的作业是对UML图的解析,三次作业都采用了相似的架构设计。经过四个单元的作业,我的测试能力也得到了一定的提升,如何设置好测试数据,对不同的功能模块进行针对性测试,在第三单元还学会了使用JMLunit进行测试。
三、课程收获:
经过一个学期的学习,我深刻体会并掌握了面向对象的设计思想,学习了多线程、JML、UML等知识。自己的编程能力也得到了很大的提升。首先我认识到了构架设计和性能的重要性,在之前的编程中,自己在动手之前并没有一个整体架构的思想而是直接动手,一些写代码一边来思考,也没有良好的代码风格。经过了这学期的学期,在写代码之前我会规划好自己实现的架构,在保证完成功能的基础上,还要考虑到代码实现的性能问题。并且设计好架构可以避免很多自己在动手时没有考虑到的错误,debug也很方便。而在代码设计的时候,我还学会了什么样的架构是一个好的架构。在解决问题的时候,学会了进行抽象,分层次地去解决问题。这学期课程的设计,很大程度上还锻炼了我测试的能力。
四、改进建议:
1、第四单元第一次作业中,对于源代码可以多一些讲解,让同学们能更快的理会思路。
2、个人认为第一单元的难度有点大,可以在pre里设置一些相关的题目进行过渡。
3、希望实验课能够给一些反馈,比如公布正确答案示例等等。
五、线上学习的体会:
个人感觉就oo课程来说,线上学习和线下学习的区别并不是很大,腾讯课堂的录播比较方便,对于一些模糊难以理解的地方可以反复听老师的讲解,线上向老师和助教提问也都得到了很快的反馈,个人感觉比较麻烦的地方就是在使用软件或者一些环境的设置上遇到自己难以解决的问题时,同学们之间难以相互帮助,但从另一个方面这也锻炼了自己解决问题的能力。

浙公网安备 33010602011771号