OO Unit4(总结)

杨柳- 学生 2024-06-17 19:37:38

面向对象程序设计第四单元(总结篇)

正向建模与开发

正向建模与开发是按照一定的逻辑,明确有序的进行建模和开发,在本单元作业的完成过程中,开发一个图书馆借阅系统,先按照需求大致画出UML类图,大致设计出几个类的模块,考虑如何添加元素,再在完成过程中添加使用到的方法。

架构设计以及代码和UML模型之间关系

本单元的类图如下:

img

在设计方面,首先是Main负责接收请求,Library类则是其他部门的集合体,其他部门有:BookShelf,BorrowAndReturnOffice,AppointmentOffice,BookDriftCorner,相关请求在Library类对相应的部门进行操作,然后就是Student类,每出现一个Student的id都会在图书馆记录并创建一个Student,记录其内容,最后是Book类,由于部分部门不用考虑到还书的时间等具体信息,只用到LibraryBookid,所有Book类只与部分类聚合。

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

第一单元:

在第一单元完成的多项式化简,根据实验代码的提示,采用递归下降的方法,基本上的架构分为分析,化简,输出三个部分,这一单元的测试也围绕这三部分,简单的从功能上测试是否正确。这一单元的学习让人破防,架构上的简单让我为如何实现复杂的需求感到困恼,这一单元的课堂上,也学习到为了增强代码的可拓展性,可以将功能不同的类单独提出,这样新功能的添加不过在旧的架构上添加新的类,逻辑方面不需要太多改动。

第二单元:

而在第二单元的电梯作业中,架构设计方面,大致采用多线程的生产者-消费者架构设计,在多线程的作业中,更多的是线程暂停和启用的实现,在架构方面没有很多困难的地方,启用线程,完成相关任务,最后中断线程。这一单元的测试上,不单单只在功能上观察是否成功,因为多线程的特殊性,更需要观察线程是否成功暂停,是否成功开启,是否成功结束,给人的感觉是在逻辑上需要一步步走对,是更细的测试。

第三单元:

第三单元的作业架构就是按照课程组的代码进行完成,个人只是在实现上选择更优的方式,架构并没有变化,在测试方面也是按照Junit进行测试。

第四单元:

最后一个单元的架构与之前不同,采用正向建模与开发,在第一次作业苦思冥想如何建好类,采用什么样的容器可以更方便的实现,但其实在后几次作业中容器每次都发生了更改,但是架构并没有太大变化。测试方面就与第一单元差不多,在功能上测试是否正确。

四个单元中测试思维的演进

这四个单元的测试中,个人没有搭建评测机,所以在强测时得分惨淡,在思维方面,慢慢的更关注每一部分功能的实现,一部分一部分的检查,最后才能正确。

课程收获

这次课程给我留下的影响恐怕难以忘怀了,尤其是前两个单元在教室一个人茫然无措,不知如何下笔,面向对象的课程,不仅仅是让我们完成作业,提高了个人的代码编写能力和水平,也有课上了解更多了代码及设计知识,还有研讨课优秀同学的分享,和优秀的人讨论,让人自惭形愧,也让人收获颇丰。最后呢,这门课程也让我接触到很多吧,不单单像以前的小任务编程,接触到复杂需求的迭代任务,脆弱的心灵也被磨炼强大了。

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

302

社区成员

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

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