OO结课了,狂喜

  • 哈哈哈哈哈
  • 哈哈哈
  • 哈哈

第十三次作业

  • UML类图

  • 简要分析:
    • 本次作业是对UML类图进行解析,给到的接口里面已经有了很多类了,但是自带的类肯定是没有反应这些类的结构的.所以就自己写了MyClass和MyInterface和MyOperation类.
    • MyClass类内部包括了属性和方法,以及父类,以及实现的接口,以及关联对端,以及各种查询方法
    • MyInterfaces类内部包括了属性和方法,以及实现的接口,以及关联对端,以及各种查询方法
    • MyOperation类内部包括了参数和返回值,以及各种查询方法
    • MyUmlInteraction则负责管理所有的类和接口,以及输入的解析
    • 整体来说这样搞得搞得架构是富有层次性的,实现起来也不难,很多题目要求的查询方法都可以用递归的思想来实现
    • 强测: 被卡了一个t的点,是因为图遍历的时候没有做好标记,算是对算法的复杂度的理解有深刻了.

第十四次作业

  • UML类图

  • 简要分析:

    • 本次作业是对状态图和顺序图进行解析,整体难度不大,基本遍历就能实现.
    • 基于上次作业,由新增加了MyInteraction,MyStateMachine,Mystate类
    • MyInteraction存有所有的顺序图相关的信息
    • MyStateMachine存有状态图的相关信息.
    • MyState存有其可达的状态,可看作状态图中的一个节点.

第十五次作业

  • 不放类图了,和上次的一样
  • 本次作业新增了对UML类图的检验,上次作业除了存储信息上的一些容器选的不合理以外,其他方面都是可以直接使用往MyClass类中新增方法来实现检验规则的.

四个单元的总结

第一单元

第一单元是对表达式的解析,前两次作业是可以用一个公式就可以完成表达式,因子的抽象的,但是第三次作业加了括号以后,就比较难办了,于是看了课件上通过对不同运算的抽象来实现,于是进行了重构.课件上的方法果然好使,代码少了很多,重构起来也很轻松.这个架构对于性能的优化也是有很好的支持,只需要优化每种运算的结构即可.但是wf的检测还是出了大问题.

第二单元

第二单元是电梯多线程,没有了傻瓜电梯,一上来还是有点难搞的.吸取了上一单元的教训,第一次作业便开始好好的设计架构,改了好几个版本,才最后选了一个我觉得设计比较合理的东西交上去了.第二三次作业就稍微轻松一些了,加东西也都比较容易,但是还是出现了线程安全错误.这个单元以后对多线程的安全有了深刻的认识.

第三单元

第三单元是根据已有的助教的JML去实现代码,这一单元的代码体验还是比较容易的,但是第一次还是爆炸了.这单元讲的是契约式编程,但是要自己去写JML,还真是不知道怎么去下手.

第四单元

第四单元是对UML的解析,从架构的层次入手,来读系统进行设计,能够在写代码前就对考虑到其系统的可复用性,可拓展性等且UML独立于语言,在现在用到的也比较多.只可惜我的水平只能够画画图玩一玩了.

对测试的理解与实践的演进

在本学期的学习,除了oo课程的学习以外,也增强了自己做测试的能力.

  • 第一单元采用的测试方法是随机生成数据与python的求导结果进行对比
  • 第二单元采用的测试方法是随机生成数据并对结果的合理性进行检验
  • 第三四单元采用的测试是随机生成数据并与同学对拍

但是强测还是出现了一些问题.互测也发现了不少bug

其次在第三单元了解到了单元测试,虽然在实际中没有用到,但是在架构合理的情况下,单元测试也是保证正确性的很好的方法.

课程收获

  • 对于代码的审美发生了改变.从以前的一坨,到现在能够抽象出类来进行管理,好的设计写出来的代码都是简明的.
  • 除此之外便是提升的敲代码的能力,我一天居然能写一千行代码.
  • 还有就是测试的能力了,以前写过的代码都是直接上评测机,现在不行了,要自己测试了

课程建议

  • 实验课可以不可以不对你写的代码进行纠错[吐血].
  • 没了没了,希望oo助教身体健康,少掉点头发.

线上学习oo

  • 理论课视频看着很容易走神,很难跟的上老师的步伐.虽然可以暂停,但是懒得按下暂停键.
  • 研讨课的话能够学到一些别的同学比较厉害的技术和经验,听到大佬的分享,对我来说很有帮助.
  • 线上做实验惊心动魄,一脸懵*

OO结课了,狂喜的更多相关文章

  1. OO Unit4总结 & 结课总结

    OO Unit4总结 & 结课总结 OO课Unit4 UML解析应用技术回顾 BUAA.1823.邓新宇 2020/6/19 总结本单元三次作业的架构设计 本单元的架构设计主要是两方面. 一方 ...

  2. linux学习第十九天 (Linux就该这么学) 结课了

    今天最后一天课程了,结课了,还有点舍不得那,在些也祝 李老师 事业蒸蒸日上,超来超好, 今天内容是部署了 LNMP 部署动态网站环境(linux  +nginx+mysql+php) 安装文件挺别多, ...

  3. 南方IT学校期末PCB结课项目考试(实操)说明书

    南方IT学校期末结课项目考试(实操)说明书(一) 课程:<印制电路板设计技术>(二) 项目:笔记本电脑电源适配器的印制电路板设计(三) 背景说明:如今笔记本已经进入千家万户,作为给电脑充电 ...

  4. oo作业第四单元总结暨结课总结

    目录 一.第四单元作业架构设计 1.第一次UML作业架构设计 2.第二次UML作业架构设计 二.架构设计和OO方法理解演进 三.测试理解与实践的演进 四.课程收获总结 五.三个具体改进建议 一.第四单 ...

  5. 这是C语言结课前(期末考试之前)写给牛晓霞的一封信!

    致尊敬的牛晓霞老师: 这是黄领衫的感想,也是想告诉你的话! 在老师说要给班里写得好的人发黄领衫的时候,我当时的想法是我很有可能拿到这份奖品的,怎么说呢,算是一种自信吧,或是对自己的态度的认可.虽然我能 ...

  6. 大一C语言结课设计之《学生信息管理系统》

    第一次写这么长的程序,代码仅供參考,有问题请留言. /* ** 学生信息管理系统 ** IDE:Dev-Cpp 4.9.9.2 ** 2014-6-15 */ #include <stdio.h ...

  7. c# 结课小结

    C#总结知识点 模块一:知识点梳理 输入输出表达式---数据类型---变量与常量 ----运算符---语句-----数组与集合---函数--结构体: 模块二:输入与输出 输入:  console.re ...

  8. C#结课报告

    Revision History Date Issue Description Author 18/May/2015 v1.0 Initial creation 邓彪翼 模拟图书馆的查询系统 1.ob ...

  9. 大一C语言结课设计之《简单计算器》

    /*===============================================*\ ** 设计目的:简单计算器,计算形如10*(20.2-30.6)+5.0/2的表达式值 ** 简 ...

随机推荐

  1. 谷歌地球服务器"失联"的替代方案

    2020年11月下旬,谷歌地球开始无法连接.作为谷歌地球的替代方案,推荐使用国产软件"图新地球LSV".网址 http://www.tuxingis.com 下载"图新地 ...

  2. Excel和CSV格式文件的不同之处

    来源:https://blog.csdn.net/weixin_39198406/article/details/78705016 1.个人理解:为何选择使用csv来存储接口测试用例相关字段数据,而不 ...

  3. fork后子进程与父进程的关系

    共享代码空间,各自独立数据空间,子进程初始化数据是父进程的复制. 资料参考: https://blog.csdn.net/u013851082/article/details/76902046

  4. 一周精彩内容分享(第 3 期):开工大吉的 B 面

    这里记录过去一周,我看到的值得分享的东西. 一方面是整理记录一下自己一周的学习,另一方面也是期待自己有更多的输出,有更多的价值. 周刊开源(Github:wmyskxz/weekly),欢迎提交 is ...

  5. Scrapy 项目:QuotesBot

    QuotesBot This is a Scrapy project to scrape quotes from famous people from http://quotes.toscrape.c ...

  6. Elasticsearch---DSL搜索实践

    Domain Specific Language 特定领域语言,基于JSON格式的数据查询,查询更灵活,有利于复杂查询 一.普通url路径参数搜索 数据准备 1.建立名字为 shop 的索引 2.手动 ...

  7. linux系统的认识

    当使用其他工具连接linux系统时的常用命令. 连接:ssh 用户名@ip 进入根目录:cd /            (一般都是先进入根目录然后才能进入其他文件夹) 进入其他文件夹:cd /home ...

  8. yum install valgrind.x86_64

    Reference: https://cloudlinux.zendesk.com/hc/en-us/articles/115004075294-Fix-rpmdb-Thread-died-in-Be ...

  9. CSS的定位布局(position)

    定位 static(默认值) 没有开启定位 relative 相对定位的性质 包含块(containing block)概念 没有开启定位时包含块就是当前元素最近的祖先块元素 开启绝对定位后的元素包含 ...

  10. 01.从0实现一个JVM语言之架构总览

    00.一个JVM语言的诞生过程 文章集合以及项目展望 源码github地址 这一篇将是架构总览, 将自顶向下地叙述自制编译器的要素; 文章目录 01.从0实现一个JVM语言之架构总览 架构总览目前完成 ...