2019北航oo课程第四单元作业总结..#_#..

一. 架构设计

1.第一次作业

 

  除了main函数,和要求的MyUmlInteraction之外,自己还另建了三个类:Myclass(用于存类和相关操作),Myinter(用于存接口和相关操作),Myop(operation的类)。

  在MyUmlInteraction中处理elements数组的数据,见到不同类型就做不同的操作,一共分三次遍历。第一次把所有的类和接口用myclass和myinter存下来,第二次便利把相关的operation和attribute存到相应的类和接口中,第三次遍历把类与类或接口与接口的继承关系,类和接口的所有相关的关联关系存起来,便完成了对elemens数组的操作。接下来按照需求一步步在各各类中做数据处理。

  优点是先把所有数据有规律地存起来,在做数据的处理,因此在以后的作业即使对数据的要求有所不同也比较方便修改。缺点就是用于存类和接口的数组实在MyUmlInteraction里用hashmap存起来的,所以关系到父类之类的需要访问其他类的操作,用到递归之类的操作的时候会在MyUmlInteraction中写一些相关的操作才可以达到目的。

 

2.第二次作业

  在第一次的作业上直接做了修改,多加了两个类,一个为mymatch用来存取状态图的类,还有一个为Myitt,用来存顺序图的类。分别用这两个类来完成顺序图的图和状态图的类。

  这次作业修改的不是很大,这是优点。但是有一个致命的缺点,是我完成了之后才发现的,而且干感觉也无法修改。学校要求的codestyle中一个文件最多不超过500行。但是由于我像第一次作业那样给把类和各种存起来的类通过数组存在了处理elements的类中,于是在这个类里面我写了900(包括处理element,对数据的部分处理,和需要完成的最后的函数),代码风格直接减了50分。由于时间的原因,再加上不好修改,最后只能忍着痛作为最后的结果。我应当每种类型的数据再单独建一个处理器的类,把答案直接return到最后的函数中。

 

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

1.第一次作业

  完全不了解什么是面向对象,三次都是用面向过程的方法完成的任务,由于没有良好的拆分意识,代码风格也一塌糊涂,也因暑期没有做足预习工作,对语言也很不熟练,对性能也没有追求,只有正确率。

2.第二次作业

  在第一个电梯作业的时候也还没用用到面向对象的精髓,用面向过程写得了很糟糕的分数。但是在后两次,也许是因为多线程的需要,渐渐的有了面向对象的意识,第二次很好的完成了任务,第三次也十分轻松,由于熟练了面向对象,修改起来十分方便,完成了任务。

3.第三次作业

  第三次作业整体很惨。虽然认识到了面向对象的精髓,但是对sml不是很了解,导致作业做得十分困难。前两次取得了一般般的得分,第三次又遇到了对算法不是很熟练的缺点,在对图做处理的时候又出现了问题直接炸掉。第三次整体上困难是因为知识点和对算法的缺陷。

 4.第四次作业

  作为oo的最后一次作业,我还是十分的困难。主要是要完成这次作业要对uml十分十分熟练。第三次作业我个人感觉并没有前两次的乐趣,也没有完成后的成就感,感觉就是疯狂的为了自己的一些uml不熟练的地方疯狂debug。

 

三.测试理解与实践的演进

  对于数据的测试,相对于以往确实有比较显著的进步。由于分中测和强测,因此自己准备数据测试显得格外重要,但总是依然会有自己没有想到的点。通过几次作业我渐渐意识到,测试数据要在设计建模的时候就要思考好测试数据的种类等。最后最好还是多和同学交流,因为交流后发现总是会有自己思考不到的点。

 

四.课程收获

  这个oo课重在实践,因此我相信同学们都有丰富的直接的收获。不仅是对面向对象的理解,还有对解决问题的思考方式,设计代码的方式与习惯,对测试数据的准备等。通过java语言再次感受到了计算机语言的力量,感受到了这是一个无边的天,总是会有值得学习的地方使你更强。

 

五.三条建议

1.后两次作业虽然有助于同学学习sml和uml,但是内容比较枯燥,也比较勉强,感觉没有前两次作业的乐趣和完成任务之后的满足感与成就感。

2.强侧如果很惨的情况没有挽回的余地。我认为可以适当地为努力修改强侧爆炸的代码的同学适当加回一些分,因为个人认为中测与强侧相差得还是很大的,一个错全炸的情况也有,这也会大大打击同学是同学失去之后学习的兴致与决心。

3.在bug修复环节,如果时间到了自己看不到bug修复后的助教给定的结果。希望能看到bug修复关闭后最后的结果。

posted @ 2019-06-24 19:12  yupobo  阅读(197)  评论(0编辑  收藏  举报