zoukankan      html  css  js  c++  java
  • OO_UNIT4_SUMMARY

    三次作业的架构设计

    第一次作业

    第一次作业相比之下比较简单,在开始根据元素的类型创建若干Map,在后面遍历的时候使用stream,没有创建其他类。

    bug

    一些方法需要进行递归操作,在递归的时候应该直接使用获得的id,而不是再次根据name查找后遍历,这样会在递归的时候某些父类发现重名而报错。

    测试的时候发现了这个问题,但是遗漏了两个同样会出现这个问题的方法,结果强测中又出现了上面的问题。

    第二次作业

    保存了之前的设计。对于新增的stateMachine和Interaction创建了MyStateMachine、MyInteraction、MyRegion,用来存储这两部分相关的Element。这部分新增加的方法也比较简单。

    另外为了减少行数,添加了一个类MyClasses,直接将一部分方法放到这个类里面。

    强测没有问题。

    第三次作业

    在第二次作业的基础上新增一个类,用于存类和接口以及它们的attribute和operation、继承的父类/接口、实现的接口。

    这次作业对指导书的理解问题比较大,导致最后一天还在修改。强测没有问题。

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

    每单元的作业架构在之前的博客中都有详细分析。

    第一单元是一个初步接触,开始学会使用对象来简化操作。

    第二单元的多线程问题,借用了第一次作业之前的生产者消费者模式,主要依靠synchronized完成。在后来的操作中也没有尝试使用别的方法,所以多线程方面自己理解可能还是不够。

    第三单元读jml相对轻松,主要在于理解意图后选择容器、改变算法等等进行优化以防超时。

    第四单元理解官方代码花费一定时间。

    在四个单元的递进过程中,自己需要编写的代码变少,也能在写代码之余读官方代码,体会更加复杂的写法,既是学到了更多java代码的技巧,也学到了很多新的思路。

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

    第一单元直接使用python测试,与正确结果对比。

    第二单元手写java评测机。但是总会出一些玄学问题。

    第三单元肉眼debug。因为只要理解清楚jml的要求,错误就只会出现在算法方面。

    第四单元依然靠python对拍,在生成数据方面有所注意,不能过于随机。

    总体来说,实现自动化测试的时候都采用了随机生成测试数据的方法。除了在第一单元第二次作业中由于测试时间不够长,有一个比较巧合的bug没有被发现,还有第四单元第一次作业修改后没有再次检查以外,其他作业都可以通过测试发现问题。

    课程收获

    首先就是面向对象的思维。从第一次作业的一main到底,到后面一言不合就创建对象。自认为在这方面还是学到了一些东西,不过进行到后面有些懒,于是在第四单元行数超500的时候直接传参创建了一个一样的类出来分担行数。不过学到现在,感受到了面向对象的方便、简洁之处,收获很大。

    在第二单元第一次接触到了多线程,这是一个相对比较新的东西,涨知识。在debug的过程中把过程也弄得清楚了。

    关于自动测试。在此之前自己还没有尝试过使用测试程序来找bug,在oo中进行了尝试,效果还是很好的,只不过写测试代码也会花费很多时间。

    改进建议

    第一,实验课的要求、代码和结果感觉都过于模糊。有的时候大家因为弄清楚要求就会花费很多时间。另外,看不到实验课结果的反馈,这样似乎并不会有什么效果。

    第二,在第四单元(特别是第三次作业)的指导书中,存在很多没有讲清楚的地方,导致助教还需要花费时间单独解答,我自己在做的时候对于很多有歧义的地方问了很多同学,最后确定的答案。而就在作业截止前半小时,还在跟别人讨论确定是否会存在某种情况,应该如何处理。觉得如果在指导书中讲清楚一些问题,助教也会省事很多。

    第三,为什么oo课程网站没有滚动条啊看起来好麻烦啊往下翻真的很暴躁啊

    线上学习oo课程的体会

    由于作业还是自己做,线上学习可能与线下没有太大区别。

    在家里由于家长的督促没办法经常熬夜肝,可能是最大的区别了((

  • 相关阅读:
    Chapter6 Commodity Forwards
    Chapter5 Prepaid Forwards
    个人作业5——软工个人总结
    软工网络15个人作业3
    软工网络15——结对编程
    软工网络15个人阅读作业2
    软工网络15个人阅读作业1 201521123080曾飞远
    Java课程设计 猜数游戏个人博客
    201521123080《Java程序设计》第14周学习总结
    201521123080《Java程序设计》第13周学习总结
  • 原文地址:https://www.cnblogs.com/h789/p/13162955.html
Copyright © 2011-2022 走看看