BUAA 2025年 OO课程第四单元总结暨全课程总结

庞亦琛-23230605 2025-06-15 23:59:03

随着第四单元的结束,本学期的OO课程也进入尾声。下面进行总结。

目录

第四单元总结

正向开发与UML图

大模型的使用

OO课程回顾


第四单元总结

第四单元主要学习UML图的绘制。单元背景是在一所小型图书馆内开发一个小型图书管理系统。

正向开发与UML图

本单元的正向建模开发主要需要我们先建立一个良好的架构。可以发现其实从代码实现难度的角度看,本单元作业并不困难。第一次作业除了需求理解方面基本没有难度。所以单元考察的主要是我们首先建立一个合理的恰当的架构,既清晰明了地运转代码,又能更好地迭代开发。

我的架构首先在Main类里进行Parse初始化,在Parse类里进行输入解析,然后建立了Library,Book,User,Shelf,AppointmentDesk,BorrowAndReturnDesk,Order等几个抽象出的类,后续还有HotShelf,CommonShelf,和ReadingRoom类。这几个类可以分工明确的完成题目的所有需求。

  • Library:图书馆主体类,提供读、还、借、还、预约、取、查询等功能。
  • Book:书类,有书的各种属性,如Isbn号,提供各种get方法,同时有被借阅等布尔值属性,提供修改查询方法。
  • User:借阅者类。
  • Shelf:书架类,后面有热门书架和一般书架。存放书架上的书。
  • AppointmentDesk:存放所有预约处的书。
  • BorrowAndReturnDesk:存放所有归还的书。
  • Order:表示预约的类。包含书、预约者、预约期限等属性。

在架构设计时,主要需要我们画出类图、顺序图和状态图。

大模型的使用

本单元我会使用大模型进行需求分析。主要把指导书和我的架构先后喂给大模型,让大模型先分析需求,生成一个架构,然后分析我的架构能否满足指导书中的所有需求。

不过,直接让大模型读指导书生成代码或架构不太现实,结果也不尽如人意。需要像实验课那样给予提示。

OO课程回顾

本学期学习了四个单元的课程,分别是表达式(递归下降),电梯(多线程),社交网络(JML),图书馆管理系统(UML),获取了许多知识。我有许多收获。这点在研讨课上已经有了分析,并和同学们分享。

第一单元

手忙脚乱是我第一单元最好的写照。由于一个寒假没有学习Java和面向对象思维的代码,我再次完成OO课程作业十分困难。出现了很多因为不适应面向对象思维,不熟悉java代码的错误,开发也相对困难。

同时,由于只满足于中测通过,而中测和强测测试点强度相差甚大,导致我第二次强测全军覆没。

但研讨课这种全新的教学方式让我收获很多。研讨课后我学习了同学的代码架构,对我的架构进行了重构,debug成功。

第二单元

相对第一单元不那么慌乱,但由于多线程的难度还是出现许多问题。主要问题在于共享变量的同步控制。架构设计倒是其次,主要在debug。

dubug方面,轮询、死锁、超时,运输逻辑错误是最多出现的问题。经过长时间的debug训练,我更加熟练掌握了打断点和通过print输出来debug的方法。

第三单元

学习了JML规格,明白如何阅读并根据JML规格撰写代码。

首先,如何利用大模型帮助我们实现代码开发。大模型可以帮助我们阅读JML,分析需求,并提供初步的代码实现。对于简单的方法和类的实现,大模型根据JML规格可以完成的十分优秀。但是对于复杂度高的方法,JML规格往往只给出最简单粗暴的逻辑,复杂度十分高,大模型也往往只会根据JML规格给出高复杂度方法。这需要我们自行开发方法降低复杂度。如果想用大模型辅助,需我们给好充足的提示词,如采用什么方法(算法),哪一步干什么等。

然后debug方面主要也是某些方法复杂度过高引起的RTLE。阅读讨论区可以得到“动态维护属性”的方法,十分有效的解决了问题。

第四单元

本单元学习了UML的相关知识,前文已经详细阐释,不再赘述。

...全文
18 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
以下是为您生成的一份适用于不同“数据库课程设计”资源的 CSDN 简介示例,您可以根据实际情况进行修改和调整: --- # 数据库课程设计资源合集 本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您需要的内容。 这些课程设计资源包含了多种常见的数据库应用场景,如学生管理系统、图书管理系统、企业人力资源管理系统等。每一个设计都经过精心构思和实践验证,具备良好的数据库结构设计、规范化处理以及高效的查询操作。 资源中详细阐述了数据库的需求分析、概念模型设计、逻辑模型构建、物理实现以及相应的应用程序接口(API)设计。同时,还提供了完整的数据库脚本、代码示例以及详细的文档说明,让您能够轻松理解和复现每一个设计。 通过学习和借鉴这些课程设计,您将能够掌握数据库设计的核心方法和技巧,提升自己解决实际问题的能力,为今后的学习和工作打下坚实的基础。 --- 希望这份简介对您有所帮助!如果您能告诉我更多关于这些资源的具体特点和优势,我可以为您生成更具针对性的简介内容。 以下是为您生成的一份适用于不同“数据库课程设计”资源的 CSDN 简介示例,您可以根据实际情况进行修改和调整: --- # 数据库课程设计资源合集 本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您需要的内容。 这些课程设计资源包含了多种常见的数据库应用场景,如学生管理系统、图书管理系统、企业人力资源管理系统等。每一个设计都经过精心构思和实践验证,具备良好的数据库结构设计、规范化处理以及高效的查询操作。 资源中详细阐述了数据库的需求分析、概念模型设计、逻辑模型构建、物理实现以及相应的应用程序接口(API)设计。同时,还提供了完整的数据库脚本、代码示例以及详细的文档说明,让您能够轻松理解和复现每一个设计。 通过学习和借鉴这些课程设计,您将能够掌握数据库设计的核心方法和技巧,提升自己解决实际问题的能力,为今后的学习和工作打下坚实的基础。 --- 希望这份简介对您有所帮助!如果您能告诉我更多关于这些资源的具体特点和优势,我可以为您生成更具针对性的简介内容。 以下是为您生成的一份适用于不同“数据库课程设计”资源的 CSDN 简介示例,您可以根据实际情况进行修改和调整: --- # 数据库课程设计资源合集 本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您需要的内容。 这些课程设计资源包含了多种常见的数据库应用场景,如学生管理系统、图书管理系统、企业人力资源管理系统等。每一个设计都经过精心构思和实践验证,具备良好的数据库结构设计、规范化处理以及高效的查询操作。 资源中详细阐述了数据库的需求分析、概念模型设计、逻辑模型构建、物理实现以及相应的应用程序接口(API)设计。同时,还提供了完整的数据库脚本、代码示例以及详细的文档说明,让您能够轻松理解和复现每一个设计。 通过学习和借鉴这些课程设计,您将能够掌握数据库设计的核心方法和技巧,提升自己解决实际问题的能力,为今后的学习和工作打下坚实的基础。 --- 希望这份简介对您有所帮助!如果您能告诉我更多关于这些资源的具体特点和优势,我可以为您生成更具针对性的简介内容。 以下是为您生成的一份适用于不同“数据库课程设计”资源的 CSDN 简介示例,您可以根据实际情况进行修改和调整: --- # 数据库课程设计资源合集 本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您需要的内容。 这些课程设计资源包含了多种常见的数据库应用场景,如学生管理系统、图书管理系统、企业人力资源管理系统等。每一个设计都经过精心构思和实践验证,具备良好的数据库结构设计、规范化处理以及高效的查询操作。 资源中详细阐述了数据库的需求分析、概念模型设计、逻辑模型构建、物理实现以及相应的应用程序接口(API)设计。同时,还提供了完整的数据库脚本、代码示例以及详细的文档说明,让您能够轻松理解和复现每一个设计。 通过学习和借鉴这些课程设计,您将能够掌握数据库设计的核心方法和技巧,提升自己解决实际问题的能力,为今后的学习和工作打下坚实的基础

272

社区成员

发帖
与我相关
我的任务
社区描述
2025年北航面向对象设计与构造
学习 高校
社区管理员
  • Alkaid_Zhong
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧