2024 OOUnit4总结
一.正向建模与开发
本单元主要学习的是uml类图,旨在教导大家先通过uml图来构造基本的思路再完成对应的具体代码。一方面,UML类图提供了一种可视化的方式来描述系统的结构。通过类、属性和方法的定义以及它们之间的关系,这使得我可以更清晰地理解系统的组成部分和彼此之间的联系,从而进行更好的结构化设计;另一方面,使用UML类图进行正向建模,使得我能够更好地组织和管理代码。通过清晰地定义类的职责和功能,以及类之间的关系,可以使代码更易于理解、修改和扩展,也有利于我在后续的迭代中不断升级自己的架构。
二.架构设计与UML设计
1.代码的架构设计
对于本单元的作业,我主要是通过根据需求,在图书馆中建立了借阅处(BorrowingDesk),存放书籍的书架(BookShelf),预留书籍的预约处(Reservation),以及管理学生的类(Student),并根据后续作业的需求新增了用于存放漂流书籍的漂流角(Corner)等。其中在图书馆中有着存放所有学生的HashMap数组(通过学号可寻找到对应的学生)。
2.代码设计和UML模型设计之间的追踪关系
- 设计一致性:UML模型设计提供了对系统结构和行为的可视化描述,有助于在设计阶段更好地理解系统需求、功能和结构。这些设计思想可以直接转化为代码设计,从而保持设计一致性,避免设计与实现之间的偏差。
- 指导实现:UML模型设计可以为代码设计提供指导。例如,类图可以直接映射到代码中的类和其成员,时序图可以帮助指导代码中的交互顺序,状态图可以指导状态机的设计等等。因此,UML模型设计为代码设计提供了直接的指导和启发。
三.架构设计思维的演进
第一单元的主题是对于多项式的识别与对应的运算。这个单元的作业我自己主要是根据第一次实验中课程组给出的基础代码进行了一定程度的个性化改装而完成的,我个人认为本单元学到的最重要的知识就是递归下降及其应用,这一思想直接解决了多项式-项-因子(可能也是新的多项式)的问题,从而使得我完成了最为重要的第一次作业的基本架构实现及其后续的新增功能。
第二单元的主题是多线程的应用。这个单元应该是我接触到的四个单元中最抽象的一个了。由于我的能力有限(光是能够保证电梯能够正确运行对我来说就已经是很不容易了),所以我基本没有像很多大神一样采取影子电梯等高水平的操作,而是采取了相对普通的分配方式,只能说我的水平还是不太够了,但多线程的思想对于我日后的代码构造一定有着很重要的意义。
第三单元的主题是jml语言。这个单元似乎在讲述一门很新的语言(新到我刚开始一脸懵的那种)。其实我最开始并不能理解为什么课程组要刻意将本来可以三言两语就讲明白的需求描述的如此复杂,但通过后续老师的讲课及助教编写的辅导资料,我深刻地理解了jml语言本身的重要意义。而对于本次作业的代码,由于本单元的主题是将jml语言翻译成Java代码,所以在起初实现功能上并没有什么问题,但是后来随着测试样例数据规模的提升,我起初的简单构造显得逐渐吃力(即运行时间超过十秒),所以我在其他同学的帮助下对我的代码引入了并查集、维护等新的思路,最终也是相对平稳地完成了任务。
第四单元的主题是uml类图。这个单元要求我们先通过类图来初步设计自己的架构,主要考验的是实现类图与实际代码的一致性。
四.测试思维的演进
由于课程难度比较大(其实是我个人太菜了),我参加互测的次数并不多(主要还是集中在了第三单元)。而在第三单元的几次互测中,我主要是根据自己犯过的问题来设计对应的测试样例(比如删除关系时对于Tag的恰当处理、如果对方也是像我一样出于性能考虑采用的是维护数据,那我就通过一些细微的变化来编写对应的样例什么的),虽然我被刀了十几个样例点的样子很狼狈,但我每次成功时都有一种诡计得逞了快感(
五.课程收获
通过一个学期的学习(其实算上先导课是一年了),我学到了递归下降,多线程的设计、jml语言、uml类图等多方面的知识,对于Java语言和面向对象的编程思维有了进一步的理解。
相关推荐
软件评测师
软件评测师
fengmian123
fengmian123
QYR-18900-2026-2032全球与中国智能旋转导向钻井系统市场现状及未来发展趋势 Sample-shijunzhong.docx
QYR-18900-2026-2032全球与中国智能旋转导向钻井系统市场现状及未来发展趋势 Sample-shijunzhong.docx
XERJ 是一款受到社区信赖的本地 AI 搜索引擎
XERJ 是一款受到社区信赖的本地 AI 搜索引擎,能自动为任意文件夹建立索引,让编程智能体直接检索所需代码,省去逐个读取文件消耗的 token。它的主要用途是参考现有实现来写代码(reference coding):接到任务后,智能体下载与任务相关的开源仓库,建立索引,再查阅这些项目的解决方法。 在一项对照研究中,这种做法让智能体的输出 token 用量降至原来的约 1/2.7,同时保持 16/16 的任务完成率(案例研究)。用户在日常开发中报告的用量约为原来的 1/5(使用反馈)。有了可检索的参考实现,较小、较便宜的模型也可能胜过只凭记忆工作的昂贵模型,减少反复修改的次数。把下面这段提示词交给智能体即可开始
DocRes.Vulkan.WinForms.VS2022-Source-r1.1-20261016-102846-206.zip
DocRes.Vulkan.WinForms.VS2022-Source-r1.1-20261016-102846-206.zip 博客地址:https://blog.csdn.net/lw112190/article/details/168119884


