oo第四单元总结

一、两次作业的架构设计

本单元的两次作业是对UML模型文件解析,主要是对类图、顺序图和状态图层次等状态的查询以及对UML模型间关系、图之间的关系和一致性的检查等。

第一次作业的主要是完成对UML图的各种属性查询。我的思路是对于类的关系进行建立一个类,然后对于新增添的类图通过一个更新的类来更新当前状态,以及增加了一个计算的类,对于类图和查询操作通过哈希来存储,主要难点是如何构建类图以及如何加快查询各个需求的速度。

第二次作业的主要是对UML图中状态图,顺序图和对类图的检查,大部分都沿用了第一次的代码,主要增加了专门解释类图当前状态的类来便于检查操作。

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

1、第一单元

基本没有架构,每次都是按照要求重新写一遍代码,代码比较冗长甚至会超过500行,基本上是属于面向过程的写代码,在第一单元的作业中随着表达式与运算的复杂化,就必须开始对表达式设置一个专门的类,此外 对表达式运算的解析还涉及到递归处理,此单元作业主要是加深了对递归的理解与应用。

2、第二单元

第二单元主要是电梯多线程的调用,主要是由一部电梯到多部电梯的调度过程,在前面两次作业一步电梯的时候就只是涉及到一个调度器类和一个电梯类,不用关心对电梯任务的分配问题,主要是对电梯调度算法的优化,第三次作业的多电梯作业导致了重构,增加了主调度器类以及调度任务的分配,对于多线程的死锁问题和wait()以及notify()的应用加深了理解。

3、第三单元

本单元主要是根据jml的解释与需求来写代码,主要是对图的构建以及运算提出各方面的要求,如通过权值的变化来求最短路径问题,以及求最短路径的算法设计等。由于cpu时间的限制,也必须优化图的大小,以及如何处理图的构建与大部分查询指令的分离来缩短cpu时间。这一单元主要学习到JML能使得代码的每一部分功能变得十分清晰。

4、第四单元

第四单元也主要是将uml模型的信息通过图存储起来,然后按照所要求的功能进行设计和优化,主要学习到了对uml语言的理解与认识。

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

第一、二单元主要是自己构造数据,第一单元主要是表达式空格以及表达式的爆栈问题。第二单元主要是线程的死锁以及多电梯调度出现的不安全问题以及对电梯调度算法的优化以及一些极端条件的构造。 第三单元虽然要求Junit自动测试,但还是以自己构造查询以及对图的构建命令为主。主要是对图的大小以及查询计算等命令数目的上限以及时间进行观察和总结,第四单元主要是自己画mdj文件的一些边界情况来测试代码的正确性,在这个测试过程中感受到了代码的运行时间以及代码正确性都是十分重要的。

四、总结对课程的收获

会写了一些java代码,对于一些功能需求会开始学着去设计一些架构,对面向对象有了一定的了解,体会到面向对象对复杂功能需求解决的好处。对JML,UML语言有了一定认识与理解,对代码风格开始重视并变得开始有一点规范,体验到了代码风格的重要性。此外对自己代码的测试也十分重要,不然容易出现各种奇怪的问题,本课程也增加了对数据结构算法的要求,对数据结构以及一些简单的算法有了一些理解以及应用,总体来说收获还是很大的。

五、对课程的建议

1、对于理论课,希望能更符合作业的要求去讲解知识点,少一些拓展性内容,更好的发挥理论课的作用。

2、对于课上实验,希望在时间安排上合理一些,觉得上午刚讲完,下午就课上实验写代码的体验不太好,缺少一定的缓冲时间对课上内容进行理解。

3、希望多增加同学之间交流讨论作业以及课程的机会。

 

转载于:https://www.cnblogs.com/jackdeng1/p/11076387.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值