第二次OO总结
第二次总结包含三个作业,多线程电梯,ifttt和出租车系统
一、多线程电梯
这次多线程的作业我写得并不好,程序的可执行性实在太低了,测试码一多起来就会出错,到最后也没有de完bug。分析原因我认为是自己在熟读指导书之前就开始coding,虽然像是提早进行任务,但实际上却顾此失彼,困难接踵而至,写完了之后发现有太多的问题没有考虑到。回想初尝电梯和二次电梯的时候,我虽然不是很快的写完作业,但基本上写完之后程序就是对的。工欲善其事必先利其器,很遗憾这次的作业本末倒置了,太遗憾了。
先上类图,类图写的比较平庸平均,不好也不坏吧。
然后是时序图,时序图是各个类之间合作关系的时序表现。
二、iftty
这一次的文件操作的作业可以说是非常的有趣了,作业量远超过实际要用的时间。尽管以为自己已经做好了准备提前开始,可实际上还是松懈对待并且高估了自己的实力。说句实话,我觉得课程组这种要求简直是无理取闹,这一次的作业根本就不该只给一个星期。这不是一个简单的发牢骚,作业的难度应该是中等偏上才合理,可这一次的作业前不着村后不着店,孤立只的给了一周,这是因为课程组认为一周是足够的,可从同学乃至助教的反馈看来,这次的作业一周并不太够,这导致有的人互测疯了一样扣分,完全没有达到学习该有的意义。
三、出租车系统
出租车应该算我三次作业中写得较好的一个了,并且在这次的作业中我认识到了假时间这种操作,一开始见到简直觉得对方是在作弊,后来跟助教询问之后发现这种行为居然是可行的。。。好吧,这也让我学习了一种方法,毕竟这次作业被挑的两个bug全是因为长时间运行之后误差会达到0.1s,导致程序结果有问题。
调试中发现gui这个包会导致程序变慢,但它带来的便利性是不可估量的。
作业总结
一、bug分析
这次作业的bug中我基本没被挑出有意义的bug,但ifttt里面确实给我好好的上了一课。重点分析一下我给别人找bug的思路吧。首先是多线程电梯,当时用了同学共享的测试代码来测试,一个比较大的数据基本能检测出功能的完备性,如果有bug再分条找。ifttt主要就是看recover附带的操作会让trigger出错与否。在出租车系统中,指导书的篇幅和内容是很长的,这导致很多同学的代码并没有包含一些功能,比如说gui界面中出租车的变色(当然,这个不重要,也不是bug)。对maps文件的基本功能,无法过滤制表符,读入"3"以上的数字不会报错,地图自动将其变成"0"等等问题。这些问题实际上需要通过阅读代码得知,另外也因为自己写的时候就考虑过这些,所以设置测试数据的时候也会有一点点设陷阱的感觉。
二、总结
总结的话,对这三次作业的表现还是不太满意的,希望自己能够再接再厉吧!