OO第四单元总结暨期末总结

OO第四单元总结暨期末总结

一、作业架构设计

前言

第四章介绍了UML建模语言,相对应的作业是UML类图、顺序图、状态图的解析器。第二次作业是对第一次作业的新功能拓展,并且第二次作业中我没有改动第一次的代码。

1.1 第一次UML架构设计

OO第四单元总结暨期末总结_第1张图片

这一次解决的是UML类图的元素解析问题。

1.2 第二次UML架构设计

OO第四单元总结暨期末总结_第2张图片

这一次添加了模型有效性检查、顺序图查询和状态图查询这几类功能。

1.3 实验分析

完成这次实验需要我们对UML建模语言足够熟悉,在开始实验之前我们需要自己在StarUML里画几个图来深入理解。StarUML的元素的层次划分也有助于我们完成这一单元的作业。

难点分析

  • 阅读官方包的源代码。我们最好通读读所有UMLElement的代码

  • UMLElement数量过多。

  • 指令繁杂。但是大部分指令都是查询指令,建立完三种图后进行相关处理,就都是查询的步骤了。

架构分析

  • UMLElement进行分类,给出层次

  • OO第四单元总结暨期末总结_第3张图片
  • 对所有UMLElement都拓展一遍

  • OO第四单元总结暨期末总结_第4张图片

  • 包装查询指令,MyUMLGeneralInteraction类中只是包装后的方法。

  • OO第四单元总结暨期末总结_第5张图片
  • 对本身的操作就放在该UMLElement的类里。

  • 共享类图、顺序图和状态图

  •  

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

刚开学时的编程完全是面向过程编程,包括第一单元的前两次作业,架构都十分混乱,不能提取明确的对象和相关行为出来。

在学了继承和接口之后,我开始不自主地使用一些设计模式,后来使用Junit单元化测试。

在这些过程中都是自己慢慢探索的,比如继承关系,初次见到时是很不理解的,包括实验课上也写不出继承的代码来。对继承的深入理解需要我们从多次代码的演练中得到。同时要写出真正oop的代码来,我们也需要熟悉这个编程语言。对java的陌生、不了解java的强大功能也让我们在学期初体会不到oop的魅力。

在经过前两单元的训练后,我们对oop有了些理解,此时课程组采用使用官方包的形式完成作业,此时我们也可以读到真正优秀的面向对象的代码。

此外,单元化层进式作业也让我感受到了oop的优点:可维护、可拓展、架构清晰、可读性强……

三、对测试的理解与实践的演进

测试是保证程序正确性的有效手段。

最初的测试是手造测试集,构造几个我自己觉得容易错的数据来测试自己的程序。

后来使用python来写测评机、对拍器。在测试这方面需要同学们的帮助,多个程序对拍更能看出问题所在。

此外还有Junit单元测试。Junit就偏向模块化测试,测试某个功能是否符合我们预期。

四、课程收获

1.最显著的就是java编程能力,让我能在一天内写完UML第二次作业,将近2000行代码。

2.面向对象的思维。以后写的代码也需要测试,需要拓展和维护,多运用面向对象的思维,会让代码更符合以上标准。

3.信息检索能力。java编程是自学的,相关特性及各种容器需要我们自己去学。

五、建议

1.互测可能在第一单元用处大。但是此后,面对一个屋子7、8个人的代码我不可能通读,我希望读的是优秀同学的优秀代码,而不是随机分到的代码,并且分数高不代表架构优秀。所以建议后三个单元取消互测。

2.实验课意义不大。老师说希望实战使用一下课上的内容。一对于同学们来说理解速度有差异,可能有人需要经过多份代码的尝试和同学们的知道才会真正掌握相关知识;二实验内容累赘,本身实验时长就短,做不到什么有收获的实验。所以要不然就取消,要不然就精进一下实验课内容,不要刚讲的马上就实验,而是考察前几次课的内容。

3.单元之间关联不大,设置一些关联就更好。

转载于:https://www.cnblogs.com/deathpool/p/11077983.html

你可能感兴趣的:(OO第四单元总结暨期末总结)