100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > OO第四单元博客作业

OO第四单元博客作业

时间:2019-04-01 03:17:59

相关推荐

OO第四单元博客作业

一、UML作业架构设计

1、第一次作业

其中 Main 是入口类,MyUmlinteraction实现了接口,UmlInteractionBase为MyUmlinteraction实现提供了底层功能,MyClass和MyMethod是一些UML元素的包装。下面是具体实现。

2、第二次作业

自己对三类不同的UML图分别进行了建模。另外自己将接口实现和核心功能提供分开处理。最后运用组合设计模式来实现总的功能。

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

1、第一单元

自己第一单元并没有使用什么框架,主要是使用了接口作为各种函数的类型而可以统一处理,这样节省了许多无聊代码。

2、第二单元

自己的设计基于 blockqueue 框架。且三次作业都是同一个设计策略。

核心数据结构是一个阻塞队列,用于保存请求队列,其他模块主要是与该队列交互。

请求生成器:用于获得请求,并将请求加入请求队列。

请求调度器:用于将请求派给不同的电梯。

电梯:用于处理被分配的请求。

在第二次作业时,只是修改了电梯对于执行请求的策略,增加了捎带功能。

在第三次作业时,只是复制了两部电梯,其行为模式完全相同,但是请求调度器给其分配的请求种类有差别。另外,乘客在下电梯时,若其没到最终目的地,则由电梯修改其出发地后将请求加入队列。请求调度器无法区分由电梯加入的请求和请求生成器加入的请求。

3、第三单元

自己使用了分层接口来分解功能,并分层实行,使得可以把一个复杂的功能分解为从低层到高层的功能来逐步实现,易于实现和维护。

4、第四单元

自己将三种UML图分别建模,然后在一个总UML模型类中组合这些不同的UML图。

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

1、第一单元

自己没有采用系统性的测试策略来覆盖所有代码执行路径,只是随机想了几个数据点。在代码简单时这种策略似乎还可以,但是在代码稍微复杂一些时,我为此吃了苦头:自己互测时被?的好狠啊,结果只要一行代码就全部搞定了。如果自己做了覆盖性测试,就不会这样了。就是这个单元,让我明白了测试的重要性,让我明白了测试是代码编写的不可分割的重要一部分。

2、第二单元

这个单元我用了单元测试,可是对于多线程测试,确实发现其测试非常棘手。并且对于互测中发现的bug自己无法复现。这让我明白,如何做好测试也是非常需要思考的。如何看出bug样例的模式,并用最简单的样例复现错误,这是非常功夫的。

3、第三单元

第三单元我用了单元测试,并且使用了一定的测试策略,这次的效果还是可以。但是这个单元其实是JML的形式验证,但是自己感觉这个并不能很好发现bug。往往写出正确的规格需要对问题的很好理解,而bug的原因有很多是对问题的理解程度不够,因此我感觉JML规格除了让机器帮忙检查代码一致性问题外,在自己手中并不能发挥很大的作用。

4、第四单元

由于是在考期,自己没时间进行覆盖性测试,第一次还好,第二次就果然凉凉!看来自己必须把测试看作是编码的一部分,或许可以考虑先写测试。

四、课程收获

这学期的OO自己感觉学到了不少东西。首先自己学会了java语言的基本操作。并且自己学会了OO的思想,学会了多线程编程,还了解了JML和UML。回想自己奉献给OO的多少个周末,多少个凌晨,现在回想起来,感觉还是颇值。

五、具体改进建议

1、实验作业的定位不够清晰。这学期早上学习新内容,下午做实验,但是自己做完实验后是懵逼的,感觉时间很紧。个人觉得如果实验的目的不是考核,而是帮助理解所学内容的话,应该允许实验内容没有做完的可以课后继续做,且给出答案,这样利于进步。

2、JML单元感觉有些不够完善。自己是体验了不少内容,可是只是限于体验而已。

3、研讨课交流环节互相可以改为小组交流或者代码评审。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。