OO第四单元总结

OO第四单元总结

第四单元建模与开发

题目要求

本单元要求实现一个小型的图书馆系统,在最后一次作业要求实现逾期处罚、校级借阅和校内外预约。

构建关系

熟读指导书,明确每个部分的具体负责事项,并设置根据其职能设计合适的属性和方法。此外还得明确每个部门之间如何协作,这一部分主要是为了确定联合关系,在确定关系之后确定顶层设计,也就是大概的类之间的关系是怎么样的,弄清楚这些之后,就可以通过uml图画出图书管理系统的类图。然后根据一本书的状态以及状态转移的函数确定一本书的状态转移图和时序图。

程序实现

在全面完成uml的设计之后,可以利用staruml的类图直接生成程序,在生成的程序中进行代码的书写,在书写的过程中难免会发现自己设计上的缺陷,这是时候需要进行回归测试,测试自己的修改过的测试是否正确,同时修改uml图。

架构设计、最终代码和UML模型设计之间的映射关系

  • 类图

  • 状态图

在这里插入图片描述

  • 时序图

在这里插入图片描述

  • 代码实现
Runner  输出类,实现对测试数据的输入,并根据指定的指令使用相应的类方法实现,有点类似于控制器。
OperationTable   控制台,存储所有的资源,包括学生,书本和各个部分的数据,所有的操作都在这里实现。
AutomaticRobot  自助处
BorrowManager   借还管理员
RepairSector	修理员

在三次作业中,没有任意一次是设计好架构后就一直按照这个架构来实现,在实现和设计中一直是伴随着更改,这也说明了本人设计并不是很好,没有设计出一个好的架构。但感觉设计出一个好的架构真的很困难,特别是自己经验不足,导致很多情况无法完全考虑到,那么就只能实现的过程中做一些折中,导致最初的设计无法实现。

架构设计思维的演进

从oopre开始,自己写的作业也有20次多次了,现在会看以前的代码,感觉自己还是有不少进步的,最开始的时候,完全不理解面向对象的思想(其实oopre也没完全灌输这样的思想),导致自己最开始的时候能一个类完成就一个类完成,没有一点面向对象的感觉,完全还是大一阶段面向过程的思想,但是经过这么多次的锤炼之后,发现自己开始慢慢感觉到了面向对象的思想,开始根据需求合理规划职能,设计合理的类来实现不同的功能,从而实现面向对象的思想。

在规划方面,自己也不再一看到指导书就开始做,而是会静下心来,

思考需求和潜在需求,尽可能在设计阶段就明确所有的需求(当然不太可能),并且不再有不利于迭代的操作,在设计中更突出兼容和迭代。

测试思维的演进

最开始的测试思维就是通过了弱侧和中测就完事大吉,在oopre中还好,毕竟弱测中测都比较强,但是在本学期中感觉完全行不通了,弱侧和中测真的蒟蒻,所有不充分测试就提交的话会进不了互测的(本人就两次没进),所以充分的测试十分重要。

我认为比较节省时间和精力的就是随机生成数据的方法,这个不需要我们自己捏数据,全靠数据量大来覆盖所有的测试数据,当然这样显然不是很好的方法,我认为要充分测试的话,必须使用排列组合的方法来实现全方面的测试,最是最有效而且是最科学的方法。(btw这样真的很耗费时间www)。

但认为可以附加边界数据的权重,从而使得bug更容易出现,课上老师就说过,我们往往把百分之二十的精力用在一般情况,而百分之八十用在了特殊情况和边界数据。

课程收获

上老师就说过,我们往往把百分之二十的精力用在一般情况,而百分之八十用在了特殊情况和边界数据。

课程收获

本学期的oo课程十分丰富,学到的东西也很多,教学方式多种多样,课程组公测-互测-bug修复相结合的作业训练方式,研讨课、实验课的设置,对于我面向对象设计与构造水平的提升起到了关键作用。经过了一学期的磨炼,我对面向对象编程思想的理解进一步加深,层次化思维与写码水平都有了长足的进步。但其实我也感觉,oo的课程还是有点繁重,我比较希望能有较多的像实验课那样给我们一份代码给我们分析与学习,毕竟很多时候,大家对一些算法和架构都很不了解,如果靠自己想出来的话真的很困难,在网上0也不一定可以找到好的资源。不过总的来说,这学期还是学到了不少东西,也很感谢老师和助教的付出,在这门课上深刻感受到了老师和助教们的热情。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值