【BUAA OO Unit4】第四单元总结与课程总结

胡睿希22230603 学生 2024-06-12 14:08:01

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

本单元中我们所尝试的正向建模是通过UML进行设计,通过类图、状态图、顺序图去表达自己的设计结构与理念。

而在第一次作业的时候,我并没有直接先进行UML的类图设计,而是选择新进行草稿设计,在完成草稿后进行写代码,完成代码后再进行标准的类图设计。这样一来既达到正向建模的目的,又能够保证类图的正确性

本单元作业的架构设计,并对比分析最终的代码设计和UML模型之间的追踪关系

本单元主要需要实现一个图书管理系统,类的构建十分重要,例如是否构建了图书类(若构建了Book类,则在迭代的时候具有较大的优势)

本单元是我为数不多的,没有重开且整体的架构没有高度耦合

整体架构如下

img

img

img

其中每一本书都对应一个Book类的实例,在流转过程中,该书的实例在不同的地点进行移动,因此可以直接在实例中记录相应的信息

整体来说,图书馆管理着借阅台,预约处,图书角以及普通书架这四个部分,而借阅台、预约处、图书角都是依赖于书架这个类去实现对内部的图书管理

但是在迭代的过程中,需要反复修改代码和类图之间的对应关系,甚至很多时候会忘了修改类图导致中测卡掉很多的次数

在四个单元中架构设计思维的演进

第一个单元是表达式解析,第二单元是多线程电梯,第三单元是JML社交网络,第四单元是UML图书馆管理系统,四个单元都需要对于框架进行设计,但在第一单元与第二单元中,设计仍不太成熟,是先大致思考后,就直接开始写代码,一边写代码,一边完善我的思路,导致我前两个单元的第一次作业框架非常糟糕,或者说可迭代性非常差,因此这两个单元的第二次作业,我都重开了(痛苦的回忆)。但在后续的两个单元中,JML给出了框架设计,UML我自己实现了正向建模设计,在事先实现了架构设计之后,我的迭代便没有出现重开的情况了。

经过四次作业,我明白了架构设计的重要性,其中非常重要的一点就是可拓展性,可拓展性可以说是工程健康的前提。

总结自己在四个单元中测试思维的演进

在本学期中,我总共写了两次测评机,第一次是第一单元的第一次作业,初步入门自动测评;第二次是第三单元的最后一次作业。让我印象深刻的一点是,无论是自动测评还是手动构造数据,数据的质量才是最重要的。我第三单元最后一次作业所写的数据生成器非常的弱,即使数据规模很大,但大部分都是抛出异常,在实际应用中能检测的范围非常有限(不过确实检测出了别人的一个小bug)。

在没有构建测评机的时候,我都采取了手动生成数据和借用同学写的测评机相结合的方式,虽然这种情况确实存在着遗漏,但也没有更好的办法了(只能寄希望于自己写代码的时候脑子比较清醒,没有干什么乱七八糟的笔误)

课程收获

杀不死我的只会让我……至少心理承受能力……

言归正传,感谢OO,大幅度的提高了我的代码能力以及抗压能力。一整个学期16次作业真的很快,感觉大部分时间都在写OO上,时间转瞬而逝,而我的设计能力、代码能力以及自我调节能力都有了极大的提高。感谢OO课程组的辛苦付出,感谢我自己一路下来的坚持

...全文
79 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

301

社区成员

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

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