2021面向对象第四单元及课程总结
1.总结本单元作业的架构设计
(一)第一次作业
之前每次作业总结博客都会用UML类图描述程序,这次作业要自己来实现一个UML类图的功能,因为是第一次作业,所以只要实现对类图的元素信息提取,功能也比较简单,因为这次作业我开始的比较晚,所以没有好好构造程序结构,主要功能都在一个类里,也没有设计什么数据结构来储存信息,大部分功能都是对UML类图元素进行遍历,导致程序出现了很多的bug,由于循环太多debug也十分困难。
(二)第二次作业
这次作业吸取上一次作业的教训,在实现功能时构造了相应的数据类来节省查找的时间,对类图我构造了MyClass,MyOpreation,MyAttribute,MyInterface等对应的类,顺序图构造了MyInteraction类,状态图构造了MyStateMechine, MyTransiton,MyEvent等类,在读取Umlelements的时候就将相应的信息存进去,这样执行相应指令时就可以直接调用定义的这些类就可以了。
(三)第三次作业
这次作业要求在读完UML元素执行指令之前先对UML类图的正确性进行检查,共给出了8个可能的错误,这几个错误中我觉得比较难实现的是第三个错误和第二个错误,如果将类和接口当作图中的结点,那这两个错误一个要求图中不能有环,另一个则要求图中任一结点到另一个结点不能存在两条不同的路径,这两个错误是对UML的整体的考察,其余的错误大多是对某一个元素的属性的要求。不过本单元的测试比较简单每一个测试点只测试一个错误,这样bug比较好修复。
2.总结自己在四个单元中架构设计及OO方法理解的演进
第一单元
第一次编写功能完善的程序,许多地方都考虑不到,很多功能都在一个类里实现,同时也没有考虑程序的拓展性。
第二单元
第一次编写多线程程序,一开始对多线程的理解不够深入,程序错误百出,总是超时,在第一单元的基础上学会了给每次设计的程序留下可扩展性,考虑下一次需要实现的功能。
第三单元
实现难度比较低,但需要考虑到程序的效率,不仅在功能的设计上采用的算法复杂度要低,程序本身也不能使用耗时较长的库函数,可能一些库函数一两次使用没什么,但在上千的使用条件下可能时间就会比较长。
第四单元
对UML的设计,需要比较了解UML的元素构造和关系,采用对应的设计结构来简化功能的实现。
3.总结自己在四个单元中测试理解与实践的演进
第一个单元
在自己动手构造测试样例的时候能够对题目所给的要求有更深入的理解。
第二单元
由于设计多线程导致构造测试样例也比较困难,我没有过多在这一单元进行测试。
第三单元和第四单元
都是实现给定的功能,由于功能的具体要求已经给出,错误主要在功能的实现上,所以这两个单元我花在功能的设计上的时间比较多。
4.总结自己的课程收获
首先就是OO这门课对我的影响真的很大(各个方面)这也是我第一次独立设计并实现功能比较完善的程序,不管是每单元每次作业的迭代设计,还是公测互测对程序的二次修改不仅提升了我编写程序的能力还培养了我在设计程序时的一些好习惯。OO这门课与一些所谓的水课不同,每一周都要求你花费大量的时间去学习和设计,这一点已经快要治好了我的拖延症(手动狗头)。
5.立足于自己的体会给课程提三个具体改进建议
第一点:个人感觉课上与课下实验的关联性不够大,作为一门没有理论课期末考试的课程,我觉得可以再提升一点课上与课下的关系,比如设计一些与课上相关的小题目。
第二点:每次实验前的预先准备没感觉每次实验的内容与每单元的小测试的内容关联度不够,有几次课上实验做起来比较吃力。
第三点:pre项目中感觉可以设置一些理论的题目,单纯的编程题感觉有些枯燥。

浙公网安备 33010602011771号