其他分享
首页 > 其他分享> > OO Unit4 Summary

OO Unit4 Summary

作者:互联网

OO Unit4 Summary

目录

一、第四单元作业架构

第四单元需要实现UML解析器,即实现UserApi接口即可。程序会传入一个UmlElement数组,为了方便实现一系列方法,考虑通过预解析,建立层级结构,其依据参照starUml中的结构即可。

ClassUML

模拟类图时我采用了如图的结构,除了如图的组成和继承关系外,MyClassOrInterface储存关联关系,MyClass储存继承和实现关系,MyInterface储存继承和实现关系。关联关系通过UmlAssociationEnd和MyClassOrInterface的HashMap实现,继承关系和实现关系用MyClass和MyInterface的List实现。

SequenceUML

模拟顺序图时我采用了如图的结构,除此之外,MyCollaboration还储存了属于它的attributeId。

StateUML

模拟状态图时我采用了如图的结构,主体采用的是MyState和MyTransition的图。没有做成简单的树形结构的原因是图更适合作为状态图定义一系列查询的数据结构。除此之外MyTransition储存了UmlEvent和UmlOpaqueBehavior。

GeneralizationGraph

这是一个简单的以MyClassOrInterface为结点以继承关系为边的图结构,目的是处理重复继承和循环继承的判断。对于重复继承的判断,可以采以广度优先遍历为主体;对于循环继承的判断,可以采用以深度优先遍历为主体。

二、架构设计思维及OO方法理解演进

回顾时长整个学期的面向对象课程的学习,每个单元都有其重点。

通过四个单元的训练,我对架构设计思维和面向对象方法在编程上也有了粗浅的理解。

就现在知识所言,我认为所谓架构设计,其实就是层次化结构设计。对于一个复杂问题,需要逐层去分析并设计。以第一单元练习为例,分为表达式层级、项层级和因子层级。表达式层级的交互需要考虑加减法,项层级的交互需要考虑乘除法。当去实现表达式层级的加减法时,不需要考虑项层级的乘除法实现细节。这很像上学期的计算机组成原理的CPU设计,同样是逐层分析设计。

对于面向对象的思想,我想用一个比喻来形容。将整个项目比作一个工厂,每个员工(类)掌握一定的技能,负责它的任务(改变类自身状态)以及与必要的其他员工进行交流(类之间交互)。我们是这个工厂的负责人,需要合理安排每个员工的工作(类内聚性及耦合性设计)以及确保工作流程的顺利进行(项目正确性)。面向对象侧重于以对象为单位描述事件,创作每个人物来填充整体布局。对比面向过程式编程,它代表了一种不同的认识世界的角度。"横看成岭侧成峰",二者没有对错之分,在特定的场合具备其独特的优势。

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

通过oo课程的训练,我对测试的概念加深了许多。简要来说,测试分为黑盒测试和白盒测试。具体落实到我的作业中,白盒测试主要集中在coding过程中对单个类进行测试,黑盒测试是在coding完成后构造数据或用评测机进行测试。

夹带一点想说的私货,我在测试方面最大的进步是逐渐学会了开发评测机。

四、课程收获

OO课程教给了我很多,学完这门课,我切实感到了自身的成长。

首先是知识层面,我接触了许多日前从未涉猎的东西,包括OO式的开发,多线程,JML以及UML图,每个单元我都学到了实打实的知识;再者是能力层面,包括设计构思、阅读JML、工具使用、测试、代码规范等等,雷达图各项指标都得到了提升;最后是情感层面,经过一个学期的训练,面对中型的项目我更有信心且得心应手。同时在写作业时设计架构的投入感也使我印象深刻。

最让我有感触的是,当我在面对第四单元的任务时,我已不再像第一单元一般窘迫不堪,而是已经能从容完成一个令我满意的设计架构。开学时种的OO树,今已亭亭如盖。

五、改进建议

  1. 第一单元的经历至今历历在目,我的想法是部分知识(如递归下降法)可以提前到pre课程中,通过5次task的逐步引导完成一个具备解析表达式功能的简单程序,为第一单元的作业铺好台阶。

  2. 目前研讨课课堂大都是介绍作业的架构,有时会出现一个单元作业多次介绍架构的情况,不免有些重复。个人认为研讨课可以适当降低对作业架构介绍的比重(一个单元介绍一次即可),增加对课外知识的补充(比如第一单元或第四单元引入设计模式介绍、第二单元JVM底层实现、第三单元容器底层实现等)。

  3. 提出一个关于作业打分想法,在作业打分时不仅关注性能,更关注作业的架构设计的优势。综合评判一份作业,不仅仅关注第一单元的表达式长度、第二单元的电梯运行时间,更要关注这份代码写的是不是"漂亮"。 

标签:OO,架构设计,层级,作业,Summary,测试,单元,Unit4
来源: https://www.cnblogs.com/sleepEarlyGuy/p/16412822.html