Unit4 Library(The ~~Best~~ Unit)

黄融亮-21373488 学生 2023-06-20 19:27:06

总结本单元所实践的正向建模与开发

本单元正向建模过程较为曲折,在hw13时经历了两版uml后我发现细节无法处理于是都重构了。在绘制第三版时,先将分离于题面、评论区、微信群的需求统合起来,没说明的情况就自己脑补出来,这是第一步(耗时最长的一步)。
第二步是,划分出大致的类和每个类的职责,并将执行职责的行为方法,相关成员字段设计好,高重合的部分就抽象出interface(我原以为本单元图测评强制要求出现interface),最后把这个框架画到classuml上。
第三步照着这个架构实现代码,这时候会遇到一些细节问题导致框架的修改,但是基本都是添加,如果出现大面积删除或者修改,那就是第二步做的比较烂
第四步是修正classuml, 使其能通过图评测

总结本单元作业的架构设计

hw13和hw14、hw15架构基本相同,不过hw13是将记录分散于各个管理员手中,从hw14起新建数据库类对借阅信息进行管理,并达到类似管理员之间记录联网的效果。

以下直接立足hw15进行架构说明

数据:

  • 书籍: 物理意义上的书籍,只记录书的名字和所属图书馆
  • 记录: 记录借阅信息,包括书本、学生、时间、状态
    架构从模拟实际出发,书本自身不具备丢失和损坏状态,现实中丢失和损坏也并不会给出,只有在归还时才能发现,这里做一个改变,将借出书籍状态计入记录,损坏对应修改状态,丢失直接删记录

设施:

  • 图书管理系统: 管理时钟,并且判定开馆,闭馆以及整理日的到来,拥有一个图书馆表和全系统允许跨校区借阅图书的信息表
  • 图书馆: 协调管理员,拥有一个书架和一个数据库,负责指令解析执行以及支持管理员之间的交流
  • 数据库: 为每个图书馆所私有,赋值 查、删、增 借阅和预订信息
  • 书架: 管理书籍,判定书籍如今有无,有过没有

员工:

职责都在题中,很容易确认,此外每个员工(除了整理管理员外)都有一个阻塞书队列,等待整理日时进行回收借出或者上架

下附三张uml图

hw13:

img

hw14:

img

hw15:
与hw14几乎一致,因为题目要求强制改了两个方法名

对比分析最终的代码设计和UML模型设计之间的追踪关系

类名最后都是手敲的,并将代码中有的都画在图上了,uml和我的代码是相互指导的,所以一致性应该是很高的(为了通过测试必须用代码指导类图)

总结自己在四个单元中架构设计思维的演进

架构设计思维从之前的 封装经验 趋向 功能划分、分工细小、数据与行为分离等方向,突出的就是一个建模思想的增强。
除了Unit3中架构设计不是自己做的,几乎每一单元我都会在第二次作业进行小重构,主要是猜测第三次迭代方向(除了Unit4捉摸不透,Unit1、Unit2都猜得八九不离十),将自己目前的设计思路进行整理和划分,将耦合度降下来,并使得架构更清晰,更便于第三次迭代(没有任何一个单元在第三次重构了一丁点,也是达到了一些预期)

总结自己在四个单元中测试思维的演进

最开始是无规则的数据对拍,后来逐步学习测试方法,学会了:

  1. 将上次强测拷下来跑做回归测试
  2. 增加不规则输入和超越课程组数据规模的数据测试
  3. 在Unit2尝试生成攻击特定点数据
  4. 单元测试,Unit3在错了第一次作业的OKtest(原因是ValueSet写成KeySet)后,知道对一些不确信的版块进行单元测试

总结自己的课程收获

  1. 进一步积累了编码经验
  2. 学会了一些架构的方法(重点)
  3. 学会忍受用户无理取闹的需求
  4. 学到了一些面向对象的思维方法
  5. 坚持了一些个人追求(课程要求本质还是做一个玩具,看看Unit1的数据要求就知道了,一些同学的代码根本无法支持日常小数据的使用)
...全文
376 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 【创新7.1声卡KX驱动+连线图】是一款专门为创新公司所制造的7.1音频声卡量身定制的驱动方案,其核心宗旨在于为用户带来超越官方原生驱动程序的卓越音质感受。KX驱动属于一种由爱好者群体自主开发的非官方驱动软件,该驱动在Creative公司原版驱动程序的基础上进行了深度改良与功能扩充,旨在提供更为多样化的声音调节参数以及更为出色的运行表现。 我们现在来详细认识一下7.1声道系统。7.1声道代表的是一种沉浸式音频技术规范,该规范包含七个全频域音箱单元(具体包括前置左声道、前置右声道、中央声道、环绕左声道、环绕右声道、后置左声道以及后置右声道)搭配一个低频震动单元,其设计目的是为用户构建更加立体且逼真的听觉场景,尤其适合应用于电子游戏、电影观影以及音乐欣赏等场景。 KX驱动的独到之处在于其赋予了用户更为广阔的个性化定制权限,使用者能够依据自身的听音偏好对音频参数进行细致调节,例如均衡器参数、混响效果、压缩比设定、噪声抑制门限等,从而使得最终的音效呈现出更为精致且个性化的特质。不仅如此,KX驱动还兼容VST插件机制,该机制是虚拟乐器与音频效果处理软件的通用标准,用户通过安装各式各样的VST插件,能够进一步增强声卡的实用功能,例如模拟多种乐器音色或达成复杂的声音效果制作。 在获取并部署KX驱动程序之后,对"连线图"的正确导入工作具有决定性意义。连线图又被称为音频路由配置图或信号流向示意图,它是一份用于指导用户如何正确配置并连接各个音频输出通道的视觉化手册。对于非专业背景的使用者而言,准确设定这些音频通道可能会面临一定程度的困难,因此连线图的提供极大地简化了这一过程。依照连线图进行配置操...
内容概要:本文介绍了基于粒子群优化算法(PSO)优化长短期记忆网络(LSTM)的电力负荷预测方法,并通过Python代码实现。该方法结合PSO强大的全局搜索能力,对LSTM模型的关键超参数进行智能寻优,有效提升了模型在处理非线性、强时序性电力负荷数据时的预测精度与泛化性能。文中系统阐述了从数据预处理、模型构建、PSO优化流程到预测结果分析的完整技术链条,重点展示了如何通过优化算法克服传统LSTM参数依赖经验设定的局限性,为复杂时间序列预测提供了高效解决方案。; 适合人群:具备一定Python编程能力和机器学习基础知识,从事电力系统分析、能源管理、负荷预测等相关领域的研究人员、工程师以及高校研究生。; 使用场景及目标:①应用于电力系统的短期与中期负荷预测,提升电网调度的准确性与经济性;②作为智能优化算法与深度学习融合的典型范例,用于科研项目开发与教学实践;③目标在于通过超参数自动优化,显著降低预测模型的均方根误差(RMSE)和平均绝对百分比误差(MAPE),增强模型的鲁棒性与实用性。; 阅读建议:建议读者结合所提供的完整Python代码,深入理解PSO优化LSTM的具体实现过程,重点关注适应度函数的设计、参数编码方式及优化迭代机制,并鼓励在自有数据集上进行复现实验与调参优化,以深刻掌握模型性能提升的技术路径。
内容概要:本文系统研究了输入扩张技术对归一化最小均方(NLMS)算法在稳态条件下过剩均方误差(EMSE)的影响,并提供了完整的Matlab代码实现。通过严谨的理论推导与详实的仿真实验,深入探讨了输入信号经线性扩张处理后对NLMS算法收敛性能和稳态误差的优化作用。研究不仅阐明了不同扩张方式与参数配置对EMSE的具体改善效果,还定量分析了其对算法收敛速度与稳定性的影响,旨在为自适应滤波系统的性能优化与工程设计提供坚实的理论依据和有效的技术手段。; 适合人群:具备信号处理、自适应滤波等专业知识的研究生、科研人员及工程技术人员,要求熟练掌握Matlab编程语言,并拥有基本的算法仿真实现经验。; 使用场景及目标:①深入探究NLMS算法在不同输入信号条件下的稳态性能表现规律;②通过Matlab仿真平台,验证输入扩张技术在降低EMSE方面的有效性与实用性;③为自适应滤波器的设计选型、参数整定与性能优化提供直接的技术支持和可靠的实验参考。; 阅读建议:建议读者紧密结合所提供的Matlab代码,深入理解算法的实现细节,重点关注输入扩张模块的设计原理与EMSE的计算流程。同时,鼓励通过调整仿真参数(如扩张因子、步长、输入信号类型等),观察其对算法性能的动态影响,从而加深对理论分析结果的理解,并提升解决实际工程问题的能力。

441

社区成员

发帖
与我相关
我的任务
社区描述
2023年北京航空航天大学《面向对象设计与构造》课程博客
java 高校 北京·海淀区
社区管理员
  • 被Taylor淹没的一条鱼
  • 0逝者如斯夫0
  • Mr.Lin30
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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