一、第四单元架构设计

1.第一次作业

  第一次作业要求实现的只有对类图的分析。为了直观地搭建出一个类图,我新建了Manager类来处理UmlElement以及搭建树。但由于未能做好时间管理,因此第一次作业未能通过中测。

2.第二次作业

  在听过一些同学分享的第一次作业的思路与架构的讨论课后,我直接进行了重构,全部采用Hashmap以及Hashset的方式存储数据。设计架构为每一个类单独实现一个作业要求需要实现的接口,各自完成自己所需要的数据处理以及方法实现,最后再由MyUmlGeneralInteraction类对前几个类进行组合

3.第三次作业

  第三次作业与第二次作业的架构一致,仅按照要求扩充了新的类MyUmlStandardPreCheck

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

  第一单元由于刚刚接触oo的思想,前两次作业都是按照面向过程的方式去写的。直到第三次作业出现了求导的迭代,才被迫使用面向对象的方法,对表达式因子、项等分别构造类。求导方法如果用接口来进行管理会更好,但是当时对于接口的理解不够深,最后也没感使用。

  第二单元总体来说做的不错。主题思路是采取有限状态机的模型,对电梯进行模拟。缺陷有两点,一是未能细分电梯的功能导致电梯类十分繁杂,尤其是在后两次作业的扩展中越来越困难;二是没有优化调度算法

  第三单元做的比较无脑,就只是按照指导书上的以及接口的jml描述进行的编程,没有考虑架构的设计。

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

  在本学期的学习中,在测试这一方面我始终做的不好。第一单元的测试仅仅停留在手测,自己构造数据,人脑直接检验。有很多同学都自己搭建了评测机,但由于种种因素我最后还是没能搭建出来。第二单元是多线程,多线程的测试变得更加困难,我最终也只是停留在了自己构造数据。第三单元我尝试进行了单元测试的方法,但是单元测试实际上还是需要自己构造一些足够具有代表性的边界数据出来。第四单元提供了构造数据的接口,因此也没有在测试上画大功夫。

四、课程收获

  最大的课程收获还是对于面向对象的理解。如何采用面向对象的思维,如何构造合理的架构。第一单元在实验中学习了工厂模式,第一次了解到了接口的一种用法。第二单元主题是多线程,如何利用锁来保证线程安全不发生死锁,以及生产者消费者模式,结合os课程的讲解,给了我很大的启发。第三单元重点理解jml语言,我了解了如何用规范化的语言来描述一个架构。第四单元是对uml类图、状态图和流程图的学习,用图的方式来描述和理解一个面向对象程序。

  其次就是完成作业以及实验过程中的收获了。第一是测试是十分重要的,在第三单元中如果我能进行更加全面有效的测试,就不会导致一个小错误强测挂掉的悲惨经历;第二是与同学之间的交流是十分重要的,在本学期的学习过程中,许多同学的见解都对我有很大启发。

五、给课程的建议

  1.希望理论课能更加循序渐进,在最开始上课的时候总有不知所云的感觉,许多概念性的东西一概而过,对我课程的学习有一定的影响

  2.每一单元之间的联系不是十分明显,学着这一单元的忘着上一单元的(感觉这也是所有课的通病)

  3.希望能提供更加简单易学的测试教学

六、线上学习oo课程的体会

  线上学习对我来说也是一大挑战。在线上询问他人或是进行提问都不是我所擅长的,有很多问题都是敢想不敢提。且受打字速度的影响,大多数时候线上交流很浪费时间,没有在线下交流的自在。不过线上的理论课学习还是很有优势的,有没听清的或是没能及时消化的内容都可以反复观看学习。

oo第四单元总结及总课程回顾的更多相关文章

  1. oo第四单元作业总结暨课程总结

    oo第四单元作业总结暨课程总结 一.本单元作业架构设计 本单元需要构建一个UML解析器,通过对输入的UML类图/顺序图/状态图的相关信息进行解析以供查询,其中课程组已提供输入整体架构及输入解析部分,仅 ...

  2. OO第四单元作业总结以及课程总结

    第四单元总结--UML 第四单元作业架构分析 第一次作业其实是本单元三次作业中最难的一次.由于第一次是第一次作业,要考虑到搭建框架和设计架构,这次作业的思维性很强.在了解了各个类型元素(Element ...

  3. OO第四单元作业总结及课程总结

    一.本单元作业架构设计 1.第一次作业 本单元首次接触到UML以及相关概念,在面对第一次作业时首先花了很大功夫去阅读官方接口中各种UmlElement的代码,才理解了输入的模型元素中各属性的含义.总的 ...

  4. 【OO学习】OO第四单元作业总结及OO课程总结

    [OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类 ...

  5. OO第四单元总结及课程总结

    OO第四单元总结及课程总结 一.前言 紧张刺激的OO“昆仑课程”接近尾声,经过一个学期的学习,我的收获和感触颇多,借此博客作业的机会,对自己OO这门课程做一个总结.本博客主要有以下五个方面,一是第UM ...

  6. OO第四单元——基于UML的UML解析器总结&OO课程总结

    OO第四单元--基于UML的UML解析器总结&OO课程总结 前言:一学期愉快(痛苦)的OO课程学习结束了,OO几个单元作业都各有特色,实验也各有特色,仔细回味起来,不再是单纯的敲代码(但自己还 ...

  7. OO第四单元总结与课程总结

    OO第四单元总结与课程总结 第四单元作业架构设计 总体分析:本单元作业的需求集中于对UML类图进行查询.对于查询操作来说自然的想法是提前预见到需要查询的内容,在一开始就采用适当的数据结构将必要的信息进 ...

  8. OO第四单元与全课程总结

    OO第四单元与全课程总结 一.作业代码架构设计 1.第一次作业 作业类图如下: 具体架构设计: 第一次作业的全部查询工作都是和类图有关,需要解决的主要问题就是如何解析原有UML类图数据的结构,并形成自 ...

  9. OO第四单元

    OO第四单元总结 第四单元架构设计 第一次作业 uml类图 这次作业我采取的基本思路就是根据指令来建造一个简易的类图,用于查询,其中umlclass中包含了umlAttraibute,umlOpera ...

随机推荐

  1. Objec.assign & bug

    Objec.assign & bug shallow copy https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Referenc ...

  2. 全球首发—鸿蒙开源平台OpenGL

    目录: 前言 背景 鸿蒙OpenGL-ISRC的结构 OpenGL-ISRC和鸿蒙SDK OpenGL的区别 OpenGL-ISRC的使用 前言 基于安卓平台的OpenGL(androidxref.c ...

  3. 三种远程部署war包检测

    简介 远程部署漏洞属于服务器.中间件配置问题,攻击者可通过远程部署漏洞获取系统权限,远程部署漏洞经常出现在Tomcat.Jboss.Weblogic等web容器之上. 0x01 ### tomcat部 ...

  4. 上天的源码要不要——GitHub 热点速览 v.21.08

    作者:HelloGitHub-小鱼干 前几天,"机智号" 所用的飞行软件框架 F´ 被 NASA 开源了,想看 F´ 这个嵌入式的代码不妨考虑下 Sourcetrail 这个神器, ...

  5. 微信小程序:block标签

    代码中存在block标签,但是渲染的时候会移除掉. 例子: 如果将view改为block: 当你要渲染某些数据时,如果不想额外的加一层外边的标签,此时可以使用block标签来进行占位.

  6. Java-for循环打印九九乘法表

    Java打印九九乘法表 public class forDemo04 { public static void main(String[] args) { //练习3:打印九九乘法表 /* 1*1=1 ...

  7. C#的常见集合接口提供的功能

    C#的常见集合接口提供的功能 这里的功能都是泛型版本的常见功能,列出来,也许后面用得上吧,没有放非泛型版本,因为觉得用得不多,也就没有整理 IEnumerable<T> ICollecti ...

  8. C++树——遍历二叉树

    在讲遍历之前,我们要先创建一个树: #include <iostream> using namespace std; typedef struct node; typedef node * ...

  9. 关于,java-webservice接口,根据服务端,自动生成客户端调用时,响应时间慢

    我这边遇到的问题,是在和对方进行webservice接口交互的时候,用工具,调用对方的webservice接口,对方响应很快.但是用java生成的客户端调用就会很慢才得到响应.大概有5分钟左右. 这里 ...

  10. 数据库索引知识到MySQL InnoDB

    前言 本文聊聊数据库中的索引,涉及索引基础数据结构,分类.以及使用索引的缺点. 索引就像一本书的目录,商场里面各个楼层指示图,让我们不需要自己无目的的找,而是能够很快的找到自己想要的. 1. 索引的基 ...