OO前三次作业总结

代码度量分析


 第一次作业

第二次作业

 

第三次作业

 

 

类图


 

 

自我分析


第一次作业:

  第一次作业中我并没有使用正则表达式作为输入的标准,因此对于输入错误情况的处理方式非常复杂,而且通常不能想到所有的错误情况,并且由此产生了很多的bug。第一次作业的问题不止于此。在完成第一次作业的过程中,我并没有完全理解面向对象编程的思想,因此代码的结构显得非常凌乱没有章法。

第二次作业:

  第二次作业的代码是目前为止我自认为比较满意的。整体上逻辑相对清晰,结构也相对工整。相比上一次作业的代码,本次的代码在类这一层次上相对更加分离,一定程度上能够各司其职。但问题是我并没有完全按照作业指导书上建议的结构去写,这为第三次作业的继承和接口埋下了不小的隐患。

第三次作业:

  因为上次作业中的结构问题导致本次作业中继承类写的尤为复杂,基本上是将整个父类进行了重写。此外由于我对接口这一概念并没有理解,所以写的很简陋。第三次作业的难度相对前两次有很大的提升,尤其是对于捎带功能逻辑上的理解。我们历经了一个周末在深入思考了可能情况才敢下手去写,而且写出来的程序依旧有着非常多的bug。得益于室友写的生成样例的小程序,我们仔细对比了寝室每个人的运行结果,找到了很多逻辑上和代码上的错误。在这个过程中,能力上的限制使得我只能对代码进行修修补补,最后的成品代码非常混乱,存在很多利用不到的属性和代码块。正是在这次作业中,我感受到了程序流程图的重要性。在思路一片混乱的时候,只有用流程图去梳理一下,才有可能写出正确的逻辑。

 

Bug分析


  在第一次作业和第二次作业中我被找到了bug。

  第一次作业的bug正如上文所说是由于处理输入的方式有问题,错误情况考虑不足。

  第二次作业的bug是由于我readme文件写的不够详细,被测试同学找到了异常情况。

  第三次作业并没有被测出来bug。

  总的来说,上述bug与代码设计结构关联不大,更多的是对于情况的考虑和说明的完备性。

 

测试策略


 

  首先在第一次作业的互测过程中,我测试了能想到的所有可能的错误情况,但在发现对方程序都能处理后我抱着学习的心态转而去读他的代码。对方确实是用的正则表达式这一方式去处理的输入,而且在结构上写的明显比我的代码好很多。从头读到尾也并没有发现在哪里有错误。

  可能是由于第一次作业写的质量偏低,第二次互测我拿到的代码质量明显不如上一次。公测中就已经测试出了许多功能上的bug。在我给他测试的过程中,使用了许多边界错误情况和大量输入的情况,测试出了更多的bug。同样的我也去看了这位同学的代码,以避免上报重复bug这样的错误。说实话,他的代码我根本看不下去,到处都有重复的代码,就处理输入就写了几乎一模一样的两个方法。除此以外别的代码逻辑也很混乱。

  第三次作业,我是将测试任务下载下来后在本地运行测试的,测试过程中并没有发现bug。测试策略和第二次基本类似。

 

心得体会


 

  通过这三次作业的训练,我充分了解到了面向对象式编程相比面向过程式编程的优越性,同时我的编程能力也有了一个较大的提升。最大的收获,是第三次作业中我为了梳理思路画出来的程序流程图。这使我意识到了流程图的巨大作用。另外关于程序结构方面,使各个类相对分离是一个相对优越的设计方式,减少了类之间的依赖,使得以后能够更方便的修改代码。另一点是写代码要为以后维护和添加功能做好基础,不能再犯我在第二次作业中犯下的错误,为了提高写代码的效率而降低了可扩展性是极为不值得的。

 

 

posted @ 2018-04-02 15:47  NULL_233  阅读(120)  评论(1编辑  收藏  举报