OO第四单元总结
Published on 2021-06-23 10:33 in 分类: 2021Spring-BUAA-OO with dutrmp19

OO第四单元总结

Table of Contents generated with DocToc

任务:

  1. 总结本单元作业的架构设计
  2. 总结自己在四个单元中架构设计及OO方法理解的演进
  3. 总结自己在四个单元中测试理解与实践的演进
  4. 总结自己的课程收获
  5. 立足于自己的体会给课程提三个具体改进建议

架构设计

总结本单元作业的架构设计

首先评价以下自己的架构设计——非常丑,有一个类快700行。

再丑的架构也是自己写出来的。

第一次作业不懂事,不知道后面还有顺序图和状态图的部分,架构如下:

MyUmlInteraction
|- MyClass
|- MyOperation
|- MyInterface

后来将类图、状态图和顺序图剥离出来,架构如下:

MyUmlInteraction
|- ClassInteraction
| |- MyClass
| |- MyOperation
| |- MyInterface
|
|- SequenceInteraction
| |- MySequence
|
|- StateInteraction
|- MyStateMachine

从小往大的说,MyOperationMyInterface封装了UmlOperationUmlInterface,然后MyClass就表示一个“类”,ClassInteraction保存了所有的类及其关系。

MySequence是一整个顺序图的抽象,MyStateMachine是一整个状态图的抽象。

SequenceInteractionStateInteraction分别保存了所有的顺序图和状态图。

XXXInteraction内实现了各个检查和查询的接口。

架构设计及OO方法理解

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

学到了第四单元,了解了一些设计上的规则后,我才知道,自己曾经写出过那么拉废不堪的代码和架构。

现在来看OO,我觉得,就是抽象出了“类”和“关系”两大实体,作业和上机,就是在帮助我们掌握抽象出“类”以及维护好关系上。

第一单元,表达式与求导,我较早地使用了OO的思想,将各个factor封装成相应的类,从第一次作业到第二次作业没有推倒重来,但是架构上,写出了关系上相互依赖的两个类,维护非常困难。

第二单元,多线程模拟电梯,除了几天速成多线程外,重点学习了线程之间的交互。也就是说,维护好线程之间的关系,既要高效,也要避免死锁。

第三单元,看到了各式各样的JML,我体会到了设计架构时,那种自然语言表达上的艰辛,以及将JML翻译成人话时痛苦。

第四单元,UML的解析。依旧是被课程组下发的官方包震惊到的一次,官方包里琳琅满目的类,有条不紊的设计,让我大开眼界。借用李安导演一句话,“我虽然看不懂,但是大受震撼“。类、异常、解析器,还有很多看不懂的东西,我觉得这就是一个项目应该有的架构,一家人整整齐齐。

测试理解与实践

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

我在上OO课前,对测试的理解就是,用正常数据、边缘数据和异常数据去测试自己的项目,对输出进行检查。

学习了OO后,我才知道,自己的看法还是太单薄了。

如果测试的行为有等级,我想可以分成三层,

第一层,手动构造样例。比如第一单元写完以后,手动输入一些表达式;

第二层,对拍。实现了机械化的输入,提高了效率;

第三层,使用JUnit,将测试模块化。

在实践上,第一单元和第二单元我都只做到了第一层,到了第三单元和第四单元,在同学的帮助下,使用对拍机。很可惜,我只做到了手动构造样例和对拍,并没有涉足JUnit使用。

课程收获

总结自己的课程收获

  1. 收获了OO的知识,做好架构,组织整个工程结构的能力;
  2. 收获了测试的方法,对拍机给我留下了深刻的印象;
  3. 收获了友谊。

改进建议

立足于自己的体会给课程提三个具体改进建议

实话实说,我上课就没怎么听过,每周的OO课,要么在看OS,要么在做离散作业。

我记得听过一节JML,后来发现课上老师默认我会JML语法,以及课的内容对我完成homework没有大的帮助,我就听地更少了。

说到具体的建议,我有一个,有一次上机,我在最后5分钟左右提交了一次,我没做完,只是想保存下进度,然后,做完了,发现再也交不上了。。。。

要是在倒数5分钟提交的时候,系统弹出一个对话框,警告我这是最后一次提交的机会,那该多好。

第二个建议,本次博客要求“三个建议”太多了,少一点。

总结

OO这门课,让我见识到了北航课程组实力的强劲,比同校的其他课、其他学校的同样的课,都要强不少。

指导书、官方包、测评机、互测环节,很强。

如果您有任何关于文章的建议,欢迎评论或在 GitHub 提 PR

作者:dutrmp19
本文为作者原创,转载请在 文章开头 注明出处:https://www.cnblogs.com/dutrmp19/p/14921657.html
遵循 CC 4.0 BY-SA 版权协议


posted @   dutrmp19  阅读(59)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示