BUAA_OO第四单元总结

正向建模与开发


在本单元中,我学习了UML这一建模工具。UML(统一建模语言)是一种标准化的建模语言,用于软件工程的系统设计和文档编制。正向建模与开发是指从UML模型开始,逐步开发出实际的软件系统。UML具备相当多种类的图,通过先设计UML图再进行开发,能够避免架构的重大调整,提前察觉当前设计存在的问题。

通过状态图,可以清晰地捕捉和表达系统需求,确保我们在开发的时候充分理解需求。
类图有助于系统的详细设计,提供了系统结构的清晰视图,有助于设计模式的应用。
通过顺序图,可以提前设计每个类的生命周期,进一步验证整体设计是否有问题。
在完成UML建模后,便可以进行开发了。通过实现UML图中设计好的各种关系,开发时能够规避大量的设计问题。

在实际操作过程中,只需要先建立起一个大概的架构图就可以开始着手代码编写了,因为很多局部的细节只有在实现了一定基础的程序功能后才能找到最优的解决方式。

架构设计

类图

程序启动点在Library,核心处理功能集成在RequestProcess中,与BookShelf、AppointmentOffice、BorrowAndReturnOffice等类保持通讯。

UserTable、User负责管理用户信息,包括且不限于用户所持有的图书、用户获得图书的时间等。

架构设计思维的演进

第一单元

第一单元的主题是表达式展开与化简,通过这一单元引入“递归下降”的思想,并让我们初步接触具有一定规模的面向对象程序的设计。

这一单元的作业内容主要是对于表达式的解析以及对Factor接口的实现,将复杂的Expr、Term和Factor解析处理得到一个个最小单元Mono,最后对这些单元进行统一处理。

在第一单元的学习过程中,递归下降算法的掌握无疑是最具挑战性的部分。一旦理解了递归下降算法的精髓,便能自如地构建出表达式、因子、幂函数等类的框架,并且清晰地勾勒出它们之间的相互关系。这样的架构不仅逻辑清晰,而且具有很强的扩展性,为未来可能的需求变更和功能扩展提供了便利。通过这一单元的学习掌握了语法分析方法,同时也在OOpre的基础上加深了对于面向对象编程思想的理解。


第二单元

第二单元引入了多线程编程。本单元在架构设计方面不仅要可扩展性,还要设计好整个一连串的生产者消费者模式形成的流水线结构,实现多线程的功能。这种编程方式要求我们在功能和数据之间实现分离,同时也要求我们密切关注线程间的同步和互斥关系,以避免潜在的并发问题。尽管这一单元的难度有了显著提升,但它也极大地锻炼了我们的逻辑思维能力,并使我们掌握了多线程——这一强大且实用的编程工具。


第三单元

架构课程组已经给出,我们只需要进行代码填空,架构设计也就无从谈起了。
 

第四单元

正如前文所言,利用了uml建模工具进行设计,uml建模工具具有很强的直观性,很大程度上方便了架构的设计。且第四单元基于图书管理系统进行设计,课程组要求我们掌握正向建模与设计的思想,能够使用UML图辅助我们进行程序设计。在这个单元中,我体会到了预先设计好一个架构的重要性,其本身就具有很强的可设计性,且设计难度不高,很好的锻炼了我的正向建模与开发的能力。


测试思维的演进

构造简单的数据:我会针对题目中要求的各种情况,构造一些简单的数据进行测试。这种方法的目的是检查代码的行为是否符合预期,以确保代码的基本功能正确无误。

边界和极端情况测试:我会深入思考一些可能出现的边界情况和极端情况,然后构造一些极端的数据进行测试。这种方法的目的是对代码进行边界测试和压力测试,以确保代码在各种极端情况下都能正常工作。

使用 DPO 评测机:在此也要想搭建评测机的大佬们表示衷心的感谢。

总而言之,从第一单元到第四单元,我们训练了基本的面向对象的设计思想,初步尝试了多线程,并且理解了模型化对开发的帮助。最后,我们终于有了从设计架构到实践开发的一系列基本的开发,虽然不敢说能够熟练完成,但至少也是一次尝试。除此之外,OO课程独特的设计,一次次的弱侧,强测,互测,将成为我本科生涯中难以遗忘的经历。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值