BUAA_OO_UNIT4 总结

潘靖琳-79066014 2024-06-13 16:31:11

单元总结

HW13:模拟一所小型图书馆,完成图书馆的相关业务,如借阅、还书、预约以及取书和查询书籍。

HW14:新增续借、图书漂流以及图书借阅期限限制。

HW15:新增用户信用积分以及积分限制。

一、正向建模与开发

在本次单元中,我们实践了正向建模与开发的方法,即先为系统建模,再到详细设计与实现,最终构建出一个完整的系统。

概述

  • 从抽象的概念和模型开始,逐步过渡到具体的实现。
  • 通过详细的设计和模型来指导开发过程,确保结构和功能符合预期。
  • 使用UML创建系统的类图、状态图和顺序图,详细描述了系统的结构和行为。
  • 按照设计好的图进行代码开发、确保实现与图设计的一致。

特点

  • 在通过设计模型时,可以在早期发现并解决潜在的架构问题,减少了后续重构的风险。
  • 能够明确系统的结构和功能。
  • 代码实现过程中,需要不断对模型和代码进行检查,以确保一致性。

UML

UML (Unified Modeling Language,统一建模语言)是系统建模的标准化语言,提供了图形化表示法,用于描述软件系统的各个方面。在本次单元中,实现了类图、状态图和顺序图。

  1. 类图
  • 静态结构图,用于描述系统中的类及其内部结构和相互关系。
  • 提供了清晰的系统结构视图,有助于识别系统中关键组件和模块。
  • 本次单元实现的类图:

img

  1. 状态图
  • 用于描述系统或对象的生命周期状态以及状态之间的转换。
  • 帮助理解和设计状态的动态行为。
  • 本次单元实现的状态图:

img

  1. 顺序图
  • 用于描述对象之间按时间顺序发生的交互。
  • 展示了对象之间的消息传递顺序。
  • 本次单元实现的顺序图:

img

二、架构设计

如上类图所示,本次单元架构设计主要将所有的图书馆功能集中到了LibraryProcess中实现,并通过Book、Student、ProcessRequest、OrderRecord、BorrowInfo来分别存储不同的信息。由于按照了正向建模与开发的思路来完成设计,本次单元没有进行重构。

BUG问题

  • HW13 - 预约书籍的请求逾期后处理不当,因此出现了bug。
  • HW14 - 判断两个object是否相同时用了==,修改为.equals即可。
  • HW15 - 没有出现bug。

三、课程收获

在完成第四个单元后,回想起来,自己的编程能力增进了不少。通过hack机制,可以发现自己是否真的理解作业需求,在发现其他同学的bug时,也能思考自己的代码是否存在bug。通过研讨课,与其他同学讨论和沟通架构设计、遇到的问题以及解决的方法,真的让我受益匪浅。感谢课程组的所有老师和助教,辛苦啦!

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

301

社区成员

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

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