oo第四单元总结及总课程回顾
一、第四单元架构设计
1.第一次作业
第一次作业要求实现的只有对类图的分析。为了直观地搭建出一个类图,我新建了Manager类来处理UmlElement以及搭建树。但由于未能做好时间管理,因此第一次作业未能通过中测。
2.第二次作业
在听过一些同学分享的第一次作业的思路与架构的讨论课后,我直接进行了重构,全部采用Hashmap以及Hashset的方式存储数据。设计架构为每一个类单独实现一个作业要求需要实现的接口,各自完成自己所需要的数据处理以及方法实现,最后再由MyUmlGeneralInteraction类对前几个类进行组合

3.第三次作业
第三次作业与第二次作业的架构一致,仅按照要求扩充了新的类MyUmlStandardPreCheck
二、总结四个单元中架构设计及OO方法理解的演进
第一单元由于刚刚接触oo的思想,前两次作业都是按照面向过程的方式去写的。直到第三次作业出现了求导的迭代,才被迫使用面向对象的方法,对表达式因子、项等分别构造类。求导方法如果用接口来进行管理会更好,但是当时对于接口的理解不够深,最后也没感使用。
第二单元总体来说做的不错。主题思路是采取有限状态机的模型,对电梯进行模拟。缺陷有两点,一是未能细分电梯的功能导致电梯类十分繁杂,尤其是在后两次作业的扩展中越来越困难;二是没有优化调度算法
第三单元做的比较无脑,就只是按照指导书上的以及接口的jml描述进行的编程,没有考虑架构的设计。
三、总结在四个单元中测试理解与实践的演进
在本学期的学习中,在测试这一方面我始终做的不好。第一单元的测试仅仅停留在手测,自己构造数据,人脑直接检验。有很多同学都自己搭建了评测机,但由于种种因素我最后还是没能搭建出来。第二单元是多线程,多线程的测试变得更加困难,我最终也只是停留在了自己构造数据。第三单元我尝试进行了单元测试的方法,但是单元测试实际上还是需要自己构造一些足够具有代表性的边界数据出来。第四单元提供了构造数据的接口,因此也没有在测试上画大功夫。
四、课程收获
最大的课程收获还是对于面向对象的理解。如何采用面向对象的思维,如何构造合理的架构。第一单元在实验中学习了工厂模式,第一次了解到了接口的一种用法。第二单元主题是多线程,如何利用锁来保证线程安全不发生死锁,以及生产者消费者模式,结合os课程的讲解,给了我很大的启发。第三单元重点理解jml语言,我了解了如何用规范化的语言来描述一个架构。第四单元是对uml类图、状态图和流程图的学习,用图的方式来描述和理解一个面向对象程序。
其次就是完成作业以及实验过程中的收获了。第一是测试是十分重要的,在第三单元中如果我能进行更加全面有效的测试,就不会导致一个小错误强测挂掉的悲惨经历;第二是与同学之间的交流是十分重要的,在本学期的学习过程中,许多同学的见解都对我有很大启发。
五、给课程的建议
1.希望理论课能更加循序渐进,在最开始上课的时候总有不知所云的感觉,许多概念性的东西一概而过,对我课程的学习有一定的影响
2.每一单元之间的联系不是十分明显,学着这一单元的忘着上一单元的(感觉这也是所有课的通病)
3.希望能提供更加简单易学的测试教学
六、线上学习oo课程的体会
线上学习对我来说也是一大挑战。在线上询问他人或是进行提问都不是我所擅长的,有很多问题都是敢想不敢提。且受打字速度的影响,大多数时候线上交流很浪费时间,没有在线下交流的自在。不过线上的理论课学习还是很有优势的,有没听清的或是没能及时消化的内容都可以反复观看学习。
oo第四单元总结及总课程回顾的更多相关文章
- oo第四单元作业总结暨课程总结
oo第四单元作业总结暨课程总结 一.本单元作业架构设计 本单元需要构建一个UML解析器,通过对输入的UML类图/顺序图/状态图的相关信息进行解析以供查询,其中课程组已提供输入整体架构及输入解析部分,仅 ...
- OO第四单元作业总结以及课程总结
第四单元总结--UML 第四单元作业架构分析 第一次作业其实是本单元三次作业中最难的一次.由于第一次是第一次作业,要考虑到搭建框架和设计架构,这次作业的思维性很强.在了解了各个类型元素(Element ...
- OO第四单元作业总结及课程总结
一.本单元作业架构设计 1.第一次作业 本单元首次接触到UML以及相关概念,在面对第一次作业时首先花了很大功夫去阅读官方接口中各种UmlElement的代码,才理解了输入的模型元素中各属性的含义.总的 ...
- 【OO学习】OO第四单元作业总结及OO课程总结
[OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类 ...
- OO第四单元总结及课程总结
OO第四单元总结及课程总结 一.前言 紧张刺激的OO“昆仑课程”接近尾声,经过一个学期的学习,我的收获和感触颇多,借此博客作业的机会,对自己OO这门课程做一个总结.本博客主要有以下五个方面,一是第UM ...
- OO第四单元——基于UML的UML解析器总结&OO课程总结
OO第四单元--基于UML的UML解析器总结&OO课程总结 前言:一学期愉快(痛苦)的OO课程学习结束了,OO几个单元作业都各有特色,实验也各有特色,仔细回味起来,不再是单纯的敲代码(但自己还 ...
- OO第四单元总结与课程总结
OO第四单元总结与课程总结 第四单元作业架构设计 总体分析:本单元作业的需求集中于对UML类图进行查询.对于查询操作来说自然的想法是提前预见到需要查询的内容,在一开始就采用适当的数据结构将必要的信息进 ...
- OO第四单元与全课程总结
OO第四单元与全课程总结 一.作业代码架构设计 1.第一次作业 作业类图如下: 具体架构设计: 第一次作业的全部查询工作都是和类图有关,需要解决的主要问题就是如何解析原有UML类图数据的结构,并形成自 ...
- OO第四单元
OO第四单元总结 第四单元架构设计 第一次作业 uml类图 这次作业我采取的基本思路就是根据指令来建造一个简易的类图,用于查询,其中umlclass中包含了umlAttraibute,umlOpera ...
随机推荐
- nvidia-smi command not found Ubuntu 16.04
issue: nvidia-smi command not found Ubuntu 16.04 https://askubuntu.com/questions/902636/nvidia-s ...
- 09_MySQL数据库的索引机制
CREATE TABLE t_message( id INT UNSIGNED PRIMARY KEY, content VARCHAR(200) NOT NULL, type ENUM(" ...
- 遇见ZooKeeper:初识
0. 什么是ZooKeeper ZooKeeper 是一个开源的分布式,它的设计目标是将那些复杂且容易出错的分布式协同服务封装起来,抽象出一个高效可靠的原语集,并以一系列简单的接口提供个用户使用. Z ...
- WPF MVVM实例三
在没给大家讲解wpf mwm示例之前先给大家简单说下MVVM理论知识: WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时 ...
- 关于电脑硬盘的二三事(SATA接口)
@ 目录 前言 接口分类 SATA3接口 机械硬盘 机械硬盘的特点和主要参数 西部数据机械盘分类 绿·蓝·黑盘 红盘 紫盘 金盘 希捷机械盘分类 酷狼 酷鱼 酷鹰 银河 SATA3接口的固态硬盘 固态 ...
- 这是你没见过的不一样的redis
转: 这是你没见过的不一样的redis 提到Redis,大家一定会想到的几个点是什么呢? 高并发,KV存储,内存数据库,丰富的数据结构,单线程(6版本之前) 那么,接下来,上面提到的这些,都会一一给大 ...
- iOS之CoreBluetooth
思路 手机与设备间的通讯方式CoreBluetooth是比较常见且通用的.在iOS开发中需明晰以下几点 蓝牙4.0最多可联机7个设备,iPhone6以上都是蓝牙4.0 两台iPhone并不直接通过蓝牙 ...
- pytorch(10)transform模块(进阶)
图像变换 Pad 对图片边缘进行填充 transforms.Pad(padding,fill=0,padding_mode='constant') padding:设置填充大小,(a,b,c,d)左上 ...
- 200-Java语言基础-Java编程入门-006 | Java数组定义及使用(引用数据类型)
一.数组概述和定义格式说明 为什么要有数组(容器): 为了存储同种数据类型的多个值 数组概念: 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引 ...
- 擅用ABAP错误捕捉,避免系统Dump
有时候我们在写程序时,会因为计算公式不符合算术表达式,计算公式的字段值不是纯数值等等问题造成程序dump,这个时候我们在无法避免字段赋值错误的情况下,又不想程序dump可以采取catch异常的方法进行 ...