zoukankan      html  css  js  c++  java
  • 2019_BUAAOO_第四单元总结

    一、作业架构设计

    两次作业都采用了相似的架构,因此放在一起来说明。

    • 将UmlClass,UmlInterface,UmlState等封装成对应的MyUmlxxx类,类中除了储存对应的Id,name,parentId等信息外,还会储存查询要用到的所有信息
    • 为所有MyUmlxxx类建立对应的Container类,Container中储存所有MyUmlxxx对象,对与建立每个对象之间的关系的操作都要经过Container来实现,这样可以方便管理
    • 对于不同的Uml图,建立对应的类,类中放有相应的Container

    第二次作业有效性检查实现:

    UML002:在MyUmlClass类中直接存有所有的UmlAttribute和UmlAssociationEnd的name,因此直接用来比较即可。

    UML008:对于UmlClass而言,直接向上找父类,若是找到的所有类中含有同样的id,则认为此类循环继承。对于UmlInterface的情况也是类似,但是由于UmlInterface允许多继承,因此所有UmlInterface的父类都要查询一次。

    UML009:查找每个类的所有实现接口,然后看是否有重复。

    两次作业的类图展示:

     

     二、总结自己在四个单元中架构设计及OO方法理解的演进  

    第一单元:第一单元的代码基本都是按照面向过程的思想来设计的,虽然有考虑面向对象设计的想法,可是写着写着最后又变成面向过程了,这一单元主要是对面向对象的初步接触与尝试。

    第二单元:本单元开始设计多线程,开始了解一些面向对象的设计模式,比如生产者——消费者模式,这个单元的代码开始变得面向对象了,只是一些问题仍然没有在事先设计时考虑周到,导致代码中许多类的功能过于复杂和集中。

    第三单元:根据JML语言来实现相应功能。通过前两个单元的训练,再加上JML语言规范,尽量地避免了前两次作业中的不足,基本完成了本单元的要求。

    第四单元:通过将所有UmlElement进行封装来实现。本单元的架构是比较成功的一次架构,各个类的功能都不集中,在第二次作业添加功能时非常方便,代码的复用性和可拓展性也较为良好。

    三、总结自己在四个单元中测试理解与实践的演进

    第一单元:测试是直接通过看代码理解别人的思路,然后根据思路找出问题。

    第二单元:本单元由于是多线程,通过直接看代码很难理解,因此只能通过多线程调试来测试。

    第三单元:主要是通过JUnit生成测试代码进行测试。

    第四单元:第四单元主要是分模块测试,类图、顺序图、时序图分开测试,分别找出问题所在。

    四、总结自己的课程收获

    1、学会使用面向对象思维解决问题

    2、多线程的实现

    3、根据JML语言实现代码

    4、理解UML模型

    5、JUnit测试

    6、一些设计模式

    五、立足于自己的体会给课程提三个具体改进建议

    1、希望理论课和实践课间隔时间更长一点,不要上午理论课下午实践课,这样很难有时间去吸收消化理论知识,经常都是在实践课上现学现用。

    2、希望指导书的要求能够更加明确。比如最后一次作业的指导书,有很多地方的说明都很模糊,甚至有些矛盾,最后还是要通过讨论区来解决。

    3、希望能将课上实验的题目开放。

  • 相关阅读:
    Java String截取判断文件类型
    HttpServletRequest request 转 Json
    httprunner3.x详细教程七(三种方式实现参数化数据驱动)
    httprunner3.x详细教程六(httprunner的setup和teardown及hook)
    httprunner3.x详细教程五(debugtalk.py介绍)
    httprunner3.x详细教程四(.env文件介绍)
    httprunner3.x详细教程三(httprunner中testcase的构造)
    httprunner3.x详细教程二(har文件录制及har文件转换)
    httprunner3.x详细教程一(框架结构介绍及搭建)
    mybatis.xml和mapper.xml文件的基本配置
  • 原文地址:https://www.cnblogs.com/since-AUG/p/11079353.html
Copyright © 2011-2022 走看看