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 ...
随机推荐
- mysql主从备份说明(win系统)
1. 环境描述: 主机:192.168.2.201 从机:192.168.2.111 Mysql版本:5.7 2. 主机my.ini配置: log-bin=C:\mysqlback expire-lo ...
- 「TcaplusDB知识库」概念(表、键、记录、索引)
TcaplusDB作为一款NoSQL数据库,语法与传统的SQL关系库有所差异.本文将详细介绍TcaplusDB表.记录.索引这三个数据库中常用术语在TcaplusDB中的概念与意义. 术语\概念 ...
- JS驼峰与下划线互转
1.下划线转驼峰 function underlineToHump(s){ var a = s.split("_"); var result = a[0]; for(var i=1 ...
- Spirng 循环依赖报错:Requested bean is currently in creation: Is there an unresolvable circular reference?
1:前言 最近在项目中遇到了一次循环依赖报错的问题,虽然解决的很快,但是有些不明白的地方,特此记录. 在此我把 bean 的结构和 注入方式单独拎出来进行演示 1.1:报错提示 1.2:错误日志 Ex ...
- linux之docker 安装 mysql
首先进入docker : 命令:systemctl start docker 查詢一下docker的状态: 命令:docker images 现在开始安装mysql了,第一步拉取镜像 命令:doc ...
- python2与python3共存时的pip问题
在树莓派上同时安装有python2和python3,初始的pip是9.01版本,用pip install django只能安装到1.11版本,但是我需要2.0的django. 于是升级pip: pyt ...
- Java(JDK/Tomcat/Maven)运行环境配置及工具(idea/eclipse)安装
Java (计算机编程语言) Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. Java语 ...
- 剑指 Offer 15. 二进制中1的个数
剑指 Offer 15. 二进制中1的个数 Offer 15 题目描述: 方法一:使用1逐位相与的方式来判断每位是否为1 /** * 方法一:使用1逐位与的方法 */ public class Off ...
- HDOJ-6641(欧几里得+异或运算)
TDL HDOJ-6641 关于题意,就是要找出符合f的第m大的数,而且后面还要满足异或等式. 通过观察题目,可以发现n太大了,所以不能直接枚举.当然因为m比较小,所以可以转换思路k^n,这个数最大不 ...
- RichTextBox FlowDocument类型操作
最近研究微信项目,套着web版微信协议做了一个客户端,整体WPF项目MVVM架构及基本代码参考于:http://www.cnblogs.com/ZXdeveloper/archive/2016/1 ...