面向对象设计与构造2022 (北京航空航天大学 - 计算机学院)

  • Re:OO 第三单元总结

    该博客遵循了之前两次博客的架构,但作者应注意本次博客的要求有变化,比如要求论述在自测中如何基于JML规格来设计测试数据。 三次作业的架构分析比较细致和深入。
    知北游手记  2022-06-12 14:43
  • Re:OO_Lab2总结博客

    注意讨论规格的复杂度是没有意义的,规格知识从逻辑正确性角度来定义约束,不带有任何实现复杂度的考虑,也不加限制。另外,认为“规格没有给出具体的实现方案”,这个观点也不合理。 本博客的标题看起来有点怪怪的,希望能够清楚标明是OO第三单元的总结博客。 架构设计部分应给出UML类图,并围绕图模型的构建和维护
    知北游手记  2022-06-12 14:38
  • Re:OO第三单元总结

    本次博客的第一个要求是“分析在本单元自测过程中如何利用JML规格来准备测试数据”,看起来好像这部分阐述的比较笼统。博客内容在结构上比较清晰,但是JML规格部分,有一个表示错误:assignable people[*].messages
    知北游手记  2022-06-12 14:20
  • Re:BUAA_OO_Unit3总结

    @neumy 抱歉,已修改作业内容。
    走马行川  2022-06-11 11:39
  • Re: OO Unit-2 Summary

    太强了
    mjyuan  2022-06-10 23:43
  • Re:BUAA-OO-Unit3 总结

    哇真是一个超绝赞的博客!还有各种对代码和算法的快慢的分析挺极客的! 爆栈的问题我记得去年@Chenrt 佬跟我说过,如果并查集没有实现启发式合并可能被卡爆栈,但是我去年并没有成功把有问题的同学卡RE,看来lambda表达式是最后一根稻草。另外去年我也对removeIf和lambda表达式做了性能分析
    春日野草  2022-06-10 23:17
  • Re:BUAA-OO-第三单元总结

    不错的博客,思考很深入
    春日野草  2022-06-10 19:54
  • Re:BUAA_OO_Unit3总结

    不错,对复杂度的分析很全面,下学期算法应该会学得很好
    春日野草  2022-06-10 19:45
  • Re:BUAA OO-Course 2022 Unit3 Summary

    ezh的错
    东海東皇  2022-06-10 12:47
  • Re:BUAA OO-Course 2022 Unit3 Summary

    @tadshi 谢谢学长!
    NormalLLer  2022-06-10 12:42
  • Re:BUAA_OO_2022_Unit_3_Summary

    架构分析、测试的思路都真的很清晰;虽然有点小问题,但JML的撰写也挺规范; 至于有关“JML给谁看”这一问题,我个人觉得作为一门形式语言,JML的阅读对象自然是机器。与编程语言等形式语言类似,JML的最终受众仍然应该是编译器或者解释器;不过部分程序员仍然要具备阅读与撰写这种形式语言的能力。 实际上这
    tadshi  2022-06-10 11:36
  • Re:OO第三单元总结

    优化部分没什么大问题; 测试部分的数据生成实际上不太充分(稀疏图、稠密图;小组、大组等等,随机数据几乎无法覆盖这些);这也是为什么本单元课程组比较推荐JML+JUnit的方式。虽然对拍仍然是重要的一环; JML的基础逻辑没什么大问题,但要注意修改范围的控制。
    tadshi  2022-06-10 11:30
  • Re:oo第三单元总结

    实际上整个第三单元都与测试这一点息息相关;这是因为在第三单元中,程序的行为是被几乎严格规定的。虽然不做要求,但本次作业期望同学们能够通过JML的描写来进行黑盒测试;有兴趣的话可以了解一下。 实际上本单元想了不少方法来尽可能的不在算法上来为难大家;虽然算法在本次作业中确实是作为难点而被引入。 JML中
    tadshi  2022-06-10 11:25
  • Re:OO第三单元反思

    比较可惜的是这次OO作业只能使用到其基本功能;JUnit5+覆盖率插件+blabla的组合拳在软工等大型项目开发中实际上还是很有用的; 实际上本次作业的本意并不是想要考验算法,但鉴于难以找到一种有效的方式考核同学们撰写JML,且单独的阅读JML难度相对较小,因此将算法作为难度引入; 最后,虽然这部分
    tadshi  2022-06-10 11:18
  • Re:OO Unit3 Summary

    测试的分析很到位,基本上是非常标准的根据文档所构造的黑盒测试。实际上如何利用JML自动生成测试代码也是当前研究的方向之一; JML部分有部分笔误以及逻辑问题,不过整体问题不大; 以及在测试这方面,到了软工之后就可以体验测试的《乐趣》了;JML在实际应用仍然存在难以阅读(不如Javadoc,更适合机器
    tadshi  2022-06-10 11:11
  • Re:BUAA OO-Course 2022 Unit3 Summary

    在lambda里抛出异常,小心函数式编程警察出警( 正经的函数式编程大概是会像Rust那样用返回值来判断处理是否出现错误,在需要结束时直接return;不过在java里要这么做大概要重写forEach函数。毕竟java是面向对象…… 优化和代码结构的分析还是比较到位的;但在测试这一方面,JUnit在
    tadshi  2022-06-10 11:02
  • Re:BUAA-OO-Unit3-单元总结

    生成数据时考虑到每一种可能的情况,即可保证数据的覆盖率 曾经我也是这么想的,直到我的第十次强测挂掉…… 实际上的数据生成远没有想象中的这么简单;测试还是一门水很深的学问。 文档自动生成JML、JML自动生成测试实际上都是当前的研究方向。虽然进展缓慢,但是前景很诱人; 以及手写JML的时候其实就会发现
    tadshi  2022-06-10 10:48
  • Re:OO_Unit2_Summary

    互测没有发现bug是结果,建议从你如何设计的测试数据角度来阐述分析,找一找原因。 还是要针对三次作业来展开总结分析其设计。调度策略部分的论述有点过于简单了,建议展开分析。UML图要有相应的文字说明,便于阅读。
    知北游手记  2022-06-09 09:49
  • Re:OO-第二单元作业总结

    未投入时间进行互测的原因是什么呢? 学习首先具有过程性,完整参与整个过程就会有全面的理解,进而会在你的内心留下很多体会,哪怕是你现在可能还不能完全理解,但总是会在将来的适当时候突然产生共鸣的。 建议还是针对三次作业分别来进行阐述分析,并对所给出的UML图进行文字介绍。注意,缺少顺序图。
    知北游手记  2022-06-09 09:29
  • Re:面向对象设计与构造第二单元博客作业

    通过本单元的训练认识到测试的重要性,以及多线程给测试带来了困难,也是重要的收获。手工搓测试数据,或者是随机生成,其实都要有个章法,建议在这方面要多做一些深度的总结分析。 注意博客中的UML图都需要有正文的文字进行解释说明。毕竟放上来的东西是让读者来理解,从而能够达到分享的目标。
    知北游手记  2022-06-09 09:21