程序笔记   发布时间:2022-07-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了OO-第四单元及课程总结大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

架构设计

本单元要求写一个UML图的解析器,比较复杂的将uML图解析成每个UMLElement元素已经由官方包实现,我们只要对解析好的元素进行组织和编辑即可。

类图如下:

OO-第四单元及课程总结

第二次作业加了新的模型种类,第三次作业加入了错误UML的判断。基本架构不变。

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

  • 第一单元:第一单元为表达式求导。由于是第一次接触面向对象课程加之java使用地不熟练,第一单元完成得相当勉强。第一次作业简单的用+/-号对表达式进行切割并分别计算,不具有迭代性,因此第二次作业需要对整个程序进行重写,时间略紧。不过由于第二次作业使用了相对完备的算法,第三次的工作量少了很多。本单元是我第一次接触面向对象的思想,上来就给了我一个下马威,让我认识到第一次作业就要构建起可以迭代的大致框架。

  • 第二单元:第二单元是电梯调度。充分吸取了第一单元的教训,第一次作业就逼着自己写ALS策略,使得后两次作业轻松了许多,只需要在第一次架构的基础上加多部电梯、对电梯分类即可。本单元重点使用了多线程和锁,如何处理线程的冲突和如何避免死锁也是单元的难点。在作业过程中对多部电梯的运行策略做了很多思,如摆渡式、贪心式,不过由于时间关系很多方法没有来得及去尝试。

  • 第三单元:第三单元是JML规格实现。主要是阅读JML规格然后实现。因为不需要自己去设计算法和框架,只要按着规格填填函数就行,所以本单元较为轻松。不过本单元对性能的要求很高,只是单纯按着规格去翻译强测性能会很差,需要采用并查集、dijkstra等高效的实现方法。

  • 第四单元:第四单元是设计一个UML图的解析器。比较复杂的将uML图解析成每个UMLElement元素已经由官方包实现,我们只要对解析好的元素进行组织和编辑即可。说比较简单,但很遗憾始终没有通过课下测试。

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

  • 第一单元:因为对自己算法的特性和缺陷都了解得比较清楚,所以直接构造了针对样例来进行测试

  • 第二单元:主要用大量随机数据进行对拍。正确性方面比较好,主要检测了死锁情况有无发生。在互测阶段被极端数据卡也在意料之中。

  • 第三单元:本单元然简单,但非常容易犯一些细小的错误。着重关注了测试的不同方法,如对拍、JUnit、OpenJML等。

  • 第四单元:以多人对拍为主。

课程收获

经过一学期的学习,主要的收获有以下几点:

  1. 对java的使用更加熟练

  2. 初步认识了面向对象的思想

  3. Think twice and code once。程序需要具有可迭代性,这样才能减轻之后的工作量

  4. 学习了多线程相关知识

  5. 学习了JML相关知识

  6. 学习了UML相关知识

  7. 掌握了多种程序的测试方法

三个具体改进建议

  1. 课程难度梯度较不合理 相比二三四单元,第一单元难度过大,并且第一单元从第一次作业到第二次作业有非常巨大的难度提升。这导致同学们时间非常紧张,而且对面向对象学习充满了恐惧。并且第一单元的内容可以做适当修改,同学们普遍话费了大量时间用于解析字符串,这是数据结构课的内容,与面向对象思想的关系并不大。同学们在对java尚不熟悉的状况下既要兼顾面向对象思想的学习,还要熟练用数据结构的知识显然有些不合适。建议第一单元的内容轻算法、重框架。

  2. 课下测试时间不太合理 周三晚才开放课题略晚,可以适当提前到周三中午。周日晚10点关闭略早,可以延后到第二天上午(给大家一个通宵创造奇迹的机会)。并且课下测试的间隔略长,很多时候为了一个小bug需要等待15分钟,甚至压线无法提交。可以适当缩短到5分钟。

  3. bug修复机制不太合理 5行的限制实在太短了。有的时候一个bug小,但可能改动的地方非常多。并且bug修复无法获取强测分数有些打消同学修复bug的积极性,可以适当按比例进行补分。

  4. 实验课即时给出评测结果 每次实验课都是迷迷糊糊上机,迷迷糊糊提交,迷迷糊糊下机。因为没有结果,自己只能大致捉摸着写一个提交。甚至课下也没有给出评测结果,整个实验课就像单纯走个流程。

大佬总结

以上是大佬教程为你收集整理的OO-第四单元及课程总结全部内容,希望文章能够帮你解决OO-第四单元及课程总结所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。