OO第四单元作业总结

陈一飞-22373462 学生 2024-06-11 21:12:22

第四单元总结

前言

不知道怎样熬过来的这一个学期,每一次写代码、修bug都举步维艰,每次都压点提交的焦急情态历历在目。非常羡慕其他人能够高效地完成任务。对我来说,我只需要及格就行了,但是大佬们考虑的就比较多了。好歹走完了OO的历程,现在再回头看来,真的有种轻舟已过万重山的成就感。但是前面道阻且长,还要继续努力,不能懈怠。

总结本单元所实践的正向建模与开发

简单来说,正向建模与开发是根据需求来设计产品,使产品能够实现预期的功能。
在本单元的作业中,我们需要根据题目的要求来实现图书管理系统借阅、预约、续借、整理等一系列功能。在设计过程中,我首先分析题目需求,看需要实现哪些功能,然后设计出类来显现相应的功能,得到最初架构。当然,在具体实现的过程中为了实现类的耦合还得修改很多细节的地方。最后再根据代码修改完善UML类图。

架构设计

本单元最终类图如下:

img

Library是核心,用来调用各个类的方法,图书馆各个部门负责管理各个位置的书籍,实现增、删、查的基本功能。Student用于对学生进行管理和行为约束。因为书籍的相关属性官方包已经给出,不用再考虑相关设计,减少了工作量。
相比来说,这一单元难度没有那么大,还是比较轻松的。感觉有缺陷的地方是各个类使用的容器,遍历起来不是很方便。

架构设计思维的演进

  • 第一单元主要是层次化设计,递归下降解析表达式。在课程刚开始面对这一单元的作业我一时有点无从下手,不知道怎样去实现,内聚程度太低,有时一个类都能完成好些功能。在后来的作业中也是大规模地重构。
  • 第二单元是多线程设计。在前两次作业中经常会出现死锁,本质还是线程不安全。有时也会出现轮询,没有合理运用锁。这一单元学会了保护共享资源,掌握了同步互斥的方法。
  • 第三单元是规格化设计。主要是读懂规格,先明白要做什么,然后合理利用算法,完成规格与实现分离,提高代码可读性。
  • 第四单元是正向建模。根据需求进行开发设计。

    测试思维的演进

    一开始也就自己随便捏几个数据随便测测就完了,后来使用一些极端数据来尝试一下压力测试,同时会保留上一次的强测数据,如果没发生大的改变就使用。主要还是使用大佬们搭建的评测机(感谢大佬的评测机让我找到了不知道多少的bug)。

    课程收获

  • 理解开发中的基本思想并能初步运用。
  • 对多线程有了初步的了解和使用,学会如何实现同步与互斥。
  • 学会了生产者消费者等设计模式,pre课上学过的内容得到了巩固。
  • 学会了JML语法以及如何绘制UML类图、时序图和状态图,学会了正向设计的思想。
  • 了解各种测试方法,并能设计一些测试数据。
...全文
51 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

301

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧