BUAA OO第四单元总结:UML解析

BUAA OO第四单元总结:UML解析

一、第四单元架构设计

1.第13次作业

BUAA OO第四单元总结:UML解析

  • 本次作业完成的主要内容为完成对UML类图的解析,为了对类图中的各种信息进行更好的解析,在最核心的类MyUmlInteraction之外,还设置了MyUMLClass,MyUMLOperation等新类来带不同的信息进行保存和处理,处理过程主要是第一步先对所读入的数据进行预处理,转换成新类后(或者不转换)存储在对应的数据结构中,第二步对相应的数据按一定的顺序遍历存储,从而完成类图信息的解析和存放。
  • 层次结构可看为MyUmlInteraction为核心类,完成数据解析。MyUMLClass为次级核心类,存储每个class丰富的各种信息,其他新增类都是从属类,完成对应要求的功能。
2.第14次作业

BUAA OO第四单元总结:UML解析

  • 本次作业增加了对于UML顺序图和UML状态图的解析和查询,基本的解析顺序和第13次作业相同。
  • 层次结构可看为MyUmlGeneralInteraction为核心类,完成所有的数据解析。MyUMLClassMyUMLInteractionMyUmlStateMachine三个类分别解析对应的UML图,其他类分别从属于他们之下。
3.第15次作业

BUAA OO第四单元总结:UML解析

  • 本次作业增加了正确性检查。架构没有太大变化,增加了对应判断正误的方法。

二、架构设计及oo方法理解的演进

  • 第一单元的作业要求完成一个求导的程序,这时的自己对于oo的理解尚浅,每一次作业的完成都是步履维艰,也经历了无比痛苦的重构过程,不过很好的一点在于完成三次作业后,对于oo的理解开始逐渐上道,不再是之前完全迷惑的状态了,也对面向对象的设计开始有了深入的思考。
  • 第二单元的作业要求完成满足多线程的电梯,对于多线程概念基础的理解和完善尤为重要,而在这个部分完成之后,后几次的作业都是水到渠成,虽然还是会面临debug的困难,但是相对来说已经比较轻松了,这一部分作业也让我认识到一个良好的架构具有非常重要的作用,可以很大程度上减少迭代开发的任务量。
  • 第三单元作业学习JML规格设计,感觉相对来说难度低了很多,主要就是阅读规格,确认规格要完成的内容,然后进行及时的测试(这个太重要了,没完成测试的我强测被吊起来打)。
  • 第四单元作业完成UML图的解析,基于前三个单元的学习后,这个部分解析的工作相对来说就不是太难了,也能较好地通过oo的思想完成问题的解决。

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

  • 第一单元主要是测试主要是手动构造符合测试要求的案例,对于部分极端情况和复杂嵌套进行模拟,测试程序的正确性,但是不会写评测机的结果就是debug效果不是很优秀。
  • 第二单元的测试更加难以进行,转而选择对于可能出现的死锁或者特殊低效情况,测试代码的运行情况。
  • 第三单元提示可以进行Junit的单元测试,但是由于该部分的学习时间不够,导致未进行较为充分的测试,强测惨不忍睹。
  • 第四单元来到UML,可以利用UML图中构造各种特殊样例,在通过课程包的转化,完成测试样例的构造。

四、课程收获

  • 较大程度上提高了自己对于一定工程量的代码的撰写和测试能力。
  • 一定程度上掌握了一门新的编程语言——java。
  • 对于面向对象的思想和层次化开发有了一定的理解和思考。
  • 对于部分设计模式进行了相应的学习。
  • 充分认识到测试的重要性和必要性,学习了部分代码测试的方法。
  • 对于UML图有了新的理解和认识。
  • 了解到JML规格的使用方法和场景。
  • 掌握了基本的多线程编程方式和手段。
  • 提高了代码的风格,在平常写代码时会更注意相应的规范。

五、具体改进建议

  1. 由于在oo课程中,测试起到了较为重要的作用,但是课程组也没有提供较为官方的测试指导,故希望能在次年的课程教学中增加测试相关方面的教学。
  2. 希望从pre到第一单元的过渡更加自然一些,这个阶段学习和写码的过程比较简单,也没找到比较好的架构可以参考。
  3. 希望对于测试提交的反馈信息更加丰富,便于进行相应的debug。
上一篇:SpringBoot目录文件结构总结(5)


下一篇:SpringBoot:SpringBoot项目的配置文件放在Jar包外加载