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

  • OO_第三单元总结

    如何利用JML规格来准备测试数据 在第二次作业互测中有位同学因为忽略了一些前置条件和后置条件,结果抛出空指针和除零异常了,因此可以发现JML规格是很严谨的,所以可以多琢磨JML规格去准备测试数据。 比如 /*@ ensures \result == (people.length == 0? 0: @
    日常写bug的路人甲   2022-06-06 15:16   0   5
  • 第三单元总结性博客

    本单元架构分析 第九次作业 本次作业主要完成了一个社交网络的基本框架,主要包含以下三个部分: Person 组成了社交网络中的“节点”,本身具有一定的属性,并且与其它的 Person 之间有熟人关系,形成了社交网络中的“边”。 Group 是一个 Person 群组,主要用于统计群组中的 Perso
    Avaleph   2022-06-06 15:03   0   14
  • BUAA_OO_第三单元总结

    自测过程中如何利用JML规格来准备测试数据的分析 本单元完全是依靠同学的测试数据进行测试的,自己没有准备测试数据。我猜测应该主要是根据JML规格的requires部分和signal的布尔表达式部分进行测试数据的生成。 本单元的架构设计,图模型构建和维护策略分析 架构设计 本单元的架构设计,官方包基本
    20373467dyt   2022-06-06 14:59   0   6
  • OO_Lab2总结博客

    OO_Lab2 一、单元内容 本单元内容为规格化设计,即通过参考已经完成的JML描述实现一个社交网络相关功能。 本单元整体来说难度不大,但是却是我最惨的一次作业,所以本博客可能会主要谈一谈测试中的一些策略吧。 二、自测策略 1、白盒测试 即从JML出发针对各种情况构造测试数据,可以选用课程组推荐的J
    15101051   2022-06-06 14:55   2   16
  • OO第三单元总结

    OO第三单元总结 测试方法 专项测试 针对复杂度较高的特定方法,基于互测与公测限制进行数据构造 queryBlockSum: /*@ ensures \result == @ (\sum int i; 0 <= i && i < people.length && @ (\forall int j;
    继续宠爱   2022-06-06 14:47   0   18
  • BUAA_2022面向对象_第三单元总结

    BUAA_2022面向对象_第三单元总结 O、写在前面 正如助教所说,本单元的设计与执行,难度不大,这得益于JML的功劳;但是,对细心的要求尤其的高。如何理解、高效和全面的实现JML,是本单元的关键。在该单元中,我们完成了一个简单聊天系统的实现,与其说实现,不如说是补全。关键架构,是将各个消息收发者
    tsyhahaha   2022-06-06 14:39   0   13
  • OOUnit3

    OOUNIT3 (1) 分析在本单元自测过程中如何利用JML规格来准备测试数据 利用JML规格构造JUnit测试类,编写测试数据时根据JML规格构造边界数据。 (2) 梳理本单元的架构设计,分析自己的图模型构建和维护策略 第三单元第一次作业 本单元作业架构主要为实现作业所需的类和类中方法,因此除了添
      2022-06-06 14:38   0   2
  • OO_第三单元总结

    #OO_第三单元总结 ##一、测试 对于性能测试构造了菊花图,完全图等数据测试程序性能 对于正确性。随机生成数据,和同学对拍 二、架构设计 ###图模型构建和维护策略 对于qbs和qci指令我使用的并查集维护,并进行路径压缩,复杂度为 O(nα(n)) 对于qlc指令,我用的Kruskal算法计算最
    ordered_bread   2022-06-06 14:36   1   9
  • OO第三单元总结

    OO第三单元总结 图模型架构 基础元素 顶点的维护:使用hashmap<Integer, Person>,以id为key实现O(1)查询 边的维护:使用HashMap<Edge, Integer>,其中Edge是边,知道两个顶点时可以实现O(1)查询 并查集维护:首先在内部维护一个变量按加入顺序给p
    shliba   2022-06-06 14:34   0   7
  • 第三单元总结

    第三单元总结 一、测试数据构造 1、随机数据测试 使用程序随机生成数据。在一组数据的头部先添加一些诸如ap、am、ag等添加基本元素的指令,之后再按照设定的比例随机生成各个指令。生成好数据之后我选择的是和多个人的程序对拍来验证正确性。自动化评测能够找到比较明显的bug,并通过调高时间复杂度高的指令的
    jht0725   2022-06-06 14:33   0   4