BUAA OO U4

23060101-尹馨平 2024-06-16 00:19:53

本单元作业以一个图书馆管理系统为背景,通过制定借书,还书,预约等不同的规则,锻炼我们对程序架构的设计和抽象能力,以及UML建模能力。

首先我在第一次作业之前画了时序图,在时序图中设定了bs类,br类,ao类,学生类以及书类,对整个流程进行建模。然后再按照流程梳理类与方法,最后完成第一次作业。但是我并没有先画类图,而是再完成之后照着程序画的。

第二次作业的时候我先画了类图,但是在写程序的时候发现并不能按照我既定好的类与方法继续编写,所以很尴尬,只能一边写程序一边改类图。状态图也是在整个程序完成之后再研究trigger怎么用,然后照着程序画的。

第三次作业我重构了第一次作业时画的时序图,但可惜的是依然先进行的程序编写,然后按照程序逆向画图。

总的来说UML图对于程序设计初期来说很有用,在捋清思路之后才能更清晰的知道自己每一步要干什么,要怎么干。从整体流程开始,分步骤,写方法,然后一点点的在架构中填充细节。这个单元的程序设计思路相比起其他单元来说,因为有了前期UML的工作辅助,设计思路相对变得清晰了很多,效率也变得高了很多。

在本单元作业中,我的架构设计经历了从模糊到清晰,再到逐步优化的过程。起初,由于直接跳入编码阶段,导致类图和状态图的绘制滞后于代码实现,这反映出设计与实现之间存在一定的脱节。在实际编码过程中,我发现预设的UML模型并不能完全贴合实际需求,不得不边写代码边修改类图,这种迭代式的方法虽然灵活,但也暴露了前期设计不足的问题。最终,代码设计与UML模型之间呈现出一种动态调整的追踪关系,即代码实现驱动模型调整,而调整后的模型又反过来指导代码的优化,形成了双向反馈机制。这一过程强调了持续设计的重要性,即设计与编码不是线性的单向过程,而是需要不断根据实际情况进行调整的循环迭代。

第一个单元的作业我基本上没有真的做出来,是在同学的帮助下才磕磕绊绊交上。第二单元的作业是我第一次自己设计,但最后也经历了一次重构。第三次的作业我倒是没什么特别深刻的印象,基本上是按照jml给的去翻译就勉强写出来了,只有这第四次作业才让我真正感受到了什么叫程序设计,根据需求整理流程,根据流程实施细节。

经过一学期对“面向对象程序设计与构造”课程的深入学习,我不仅掌握了一门强大的编程范式,更重要的是,我的编程思维和问题解决能力得到了质的飞跃。通过实践,我掌握了使用UML(统一建模语言)进行系统分析和设计的能力。从绘制类图、时序图到状态图,这些可视化工具极大地帮助我提前规划软件架构,理清对象间的关系和交互流程,从而在编码前就对系统有一个全面而深入的理解。本课程还让我接触并实践了一系列经典的设计模式,如单例模式、工厂模式、观察者模式等。这些模式为我解决常见设计问题提供了现成的解决方案,提高了代码的可读性和可维护性。通过大量的编程练习和项目开发,我的编程技能得到了显著提升。我学会了如何高效地使用IDE进行开发,如何调试程序,定位并修复错误。

我深刻认识到,面向对象设计促使我从“过程”导向转向“对象”导向,学会从现实世界实体的角度去思考问题,这种思维方式的转变对我解决问题的方式产生了深远的影响。

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

301

社区成员

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

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