301
社区成员
发帖
与我相关
我的任务
分享第四单元的主要任务是学习正向建模与开发,在这一单元的作业中,我们利用UML进行建模,先后绘制了类图、状态图、顺序图,然后将这些模型用代码实现。
正向建模是一种用于描述和分析系统或过程的建模方法,即从需求出发,设计系统的各个模块及其相互关系,从而生成系统模型的过程。
本单元的作业完成过程大概分为几个步骤:首先进行需求分析,将作业需要实现的功能进行总结归纳;然后进行结构设计,通过UML将结构进行图形化表达;最后进行代码实现,并在实现的过程中对结构图进行反思和修正。

本单元题目背景是一个小型的图书管理系统,支持借书、续借、预定、还书、捐献等请求。
于是很自然的 Library 和 User成为了两个核心的交互类。
在实现过程中,显然可以发现借还,预约,存放,漂流等行为都涉及到书本的地点,于是抽象出一个Place接口。那么BrOffice,ApointmentOffice,BookShelf,DriftCorner只需要实现该接口即可处理书本的各种行为。即使后续再出现书本的其他行为,也可以实现新的类,具有很好的扩展性。
第一单元:
本单元的类更大程度上是“数据的集合”,即相关特征聚合的产物。表达式、因子、多项式等显然是不同层次的架构,要求我们用递归下降的思维,为不同层次的表达式构建处理方法。
第二单元:多线程的交织
本单元引入了多线程的编程方式,使我认识到类也可以服务于某一特定的功能(如线程类),从而实现功能和数据相分离。本单元的架构重点在于理清线程同步之间的互斥关系。
第三单元:JML规格化描述
本单元主要聚焦在如何正确地理解和书写jml语言。课程组给定了大致的结构与方法的规格,只需要按照要求实现即可。当然,“规格与实现相分离”,在保证实现正确的基础上,要尽可能地优化性能,谨防TLE。本单元的架构主打严谨,严谨,还是严谨。
第四单元:UML正向建模与实践
本单元学习正向建模与开发,利用UML进行建模,先后绘制了类图、状态图、顺序图,然后将这些模型用代码实现。系统架构设计为程序实现提供了一个高层次的蓝图,将系统分解为若干模块,每个模块负责特定功能,有利于明确各模块的职责和边界,减少模块间的耦合。
在整个的OO课程中,我尝试并使用了多样的测试方法。
测试的目的是尽可能提高程序的可能正确率。在我们作业中,我们应该对充分要求自己程序的正确性,性能达到最好。但在以后的编程中,我们要兼顾测试的效率和成本。
通过2024OO课程的学习,我在面向对象的设计与开发方面有了全面的提升。具体收获如下: