BUAA OO 第四单元总结

正向建模与开发

正向建模是指在软件系统开发的早期阶段,基于需求和设计文档等资料,使用建模工具进行系统的设计和建模,根据需求、设计和代码之间的关系来构建模型和图形化展示系统结构和行为。
在本单元中,我们需要现根据题目的要求和设计文档,使用建模工具StarUML来进行UML的设计和绘制,然后根据所画的UML进行代码的编程,并在编程完成后完善所画的UML。同时对对代码按照所画的UML进行功能的检验,保证能够满足UML设计过程中希望能完成的功能。

架构设计

在这里插入图片描述
这是本单元最后一次作业的架构设计,其中BookShop类负责进行操作,Booking类负责储存预约处的书和预约者,Borrowre类负责储存借还台的书,并记录漂流处的书的积分,Bookshelf负责存储书架的书,Bookdrift负责存储图书漂流的书,User类负责存储用户的所有信息。在有请求时,BookShop类将会调用对应的方法,并通过调用其他类的方法改变书的位置和进行输出。

最终的代码设计和UML模型设计之间的追踪关系

我最终的代码设计与UML模型设计之间的追踪关系通过对比,可以发现首先我最初的UML中类的方法并没有写上参数,只写了名字;同时返回值也有很多不同,最终我把一些方法的返回值写成了int而不是最初的boolean;一些属性的类型我也从设计的HashMap改成了最终的HashSet;同时,在最终的代码设计中我还增加了一些属性来进行数据的冗余存储,来方便编程的实现。
尽管最终的代码设计和UML模型设计之间存在着不小的差异,我仍然认为它们的追踪关系还算不错,在总体上长得相似,都能够满足题目的需求,而且我在UML设计时的功能都被实现了,且最终的代码需要的功能也都被设计好了。

架构设计思维的演进

在第一单元的架构设计中,因为对面型对象思维的不熟悉,我的架构设计很烂,基本是想到哪里就写什么,架构设计上既没有分层也没有进行抽象与封装,设计到最后甚至出现了不改变架构就几乎没法解决的bug。
在第二单元的架构设计中我吸取第一次作业在架构上失败的教训,在架构的设计上进行了一天的思索,但是因为对架构设计并不熟悉,写出了一些毫无作用和十分麻烦的类,通过对一些模式的学习,架构在整体上和开放性上有了巨大的进步,能够十分顺利的处理第二单元的问题,但是在最后的双轿电梯上发现在迭代上的弱势。
在第三单元的架构设计中因为是实现JML,对架构设计的需求较少,但是让我能够深刻的感受一个代码中的主体架构的样子,也改善了我的架构设计的思维方式。
在第四单元,我第一次接触到了要先设计架构后写代码的情况,在这种情况下,我对于架构的设计更加直观,通过这单元的训练,我能够对于架构的预先设计有了更明确的认识。

测试思维的演进

在第一单元中,我的测试都只是在一些简单的数据的组合,这些数据覆盖不全且很难作为压力测试。
在第二单元中,我通过对他人构造数据的学习,更有意识的构造特殊的数据进行对代码的压力测试,但是数据仍然不够全面。
在第三单元中,我不仅进行了压力测试,我还在通过对junit的编写中,开始学会了对代码进行全覆盖的测试,能够测出代码的近乎所有正确性上的问题。
在第四单元中,因为实现的功能简单,对压力的需求很低,所以我只从正确性上进行了主要测试,来解决代码上的问题。

课程收获

在通过这学期的面向对象编程的学习中,我对于面向对象思维有了更多的认识。在学习的过程中,我的编程能力获得了巨大的提升,对于架构设计的重要性有了更多的认识,我的debug能力和对代码的测试能力也提升巨大,能不依靠测评的返回结果就能解决代码的bug。我的代码风格也得到了很大的优化。同时,我的抗压能力和编写代码的速度也有很大提升,能够应对困难的课程作业,了解并实现了多线程,对于不同算法有了更好的取舍。非常感谢这门课程,让我获得了很充实的大学生活。

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值