BUAAOO第四单元总结
OO第四单元总结
正向建模与开发
基本思想与主要特点
正向建模与开发的基本思想是从系统或应用程序的需求出发,通过一系列的步骤和技术,逐步创建系统的各个组件和功能,并最终实现整个系统。在这个过程中,开发者根据需求规约和设计文档,按照一定的设计模式和开发规范,逐步编写代码、构建模块、设计界面等。
简单说,正向有以下几个主要特点:
- 需求导向
- 逐步迭代
- 模块化设计
- 遵循标准规范
- 集成测试与验证
下面将分别介绍本次作业与以上特点的联系
联系
需求导向:任务中明确了图书馆系统的需求,包括不同类型的管理员的职责和交互方式,图书管理处的职责,自助机器的功能等。这些需求可以作为正向建模开发的基础,开发者可以根据需求明确系统的功能和特性。
逐步迭代:本单元的功能实现由最简单的借还与预约,逐步迭代到多学校,复杂借还关系,进行了迭代开发。
模块化设计:任务中明确了不同的角色和组件,如借还管理员、整理管理员、预定管理员、图书管理处和自助机器等。开发者可以将系统划分为不同的模块和组件,每个模块负责特定的功能,并通过模块化的设计和开发提高系统的可维护性、可扩展性和代码的重用性。 值得一提的是,本单元要求完成状态图等,也帮助了模块化设计的思想落地实现。
遵循标准和规范:本单元对图书馆运作的流程有详细的标准规范,开发过程中需要遵守规范
集成测试:通过流程图状态图,理清结束流程,进行模块化设计,有助于在开发完成后,根据流程中的特殊细节或是流程整体进行集成测试与验证,保证各个部件单独运行正确以及整体功能的正确性。
在开发过程中,利用 UML 图进行系统架构的设计和抽象,以及进行模块化设计和代码实现。同时,根据需求规约和设计文档,逐步构建和开发图书馆模拟系统的各个组件和功能,实现系统的需求。以上的开发过程可以被看做正向建模开发的很好体现。
架构设计

本单元最后一次作业的架构图如上。
上述架构主要实现了图书馆类,用户类,校际借书通道类,图书与书架类。并将大多数管理员的功能直接实现到了图书馆类,这样做的最主要原因坦白说应该是烤漆时间较少的妥协。
架构设计思维演进与收获
初始阶段
在没学习本课程直到刚开始学习时,我的架构设计思维相对较为简单和线性。我主要关注问题的功能需求,并试图将其转化为代码。在这个阶段,我可能会倾向于编写大而全的类,将所有的功能都放在一个类中处理。这样的设计可能会导致代码的可维护性差,扩展困难,并且缺乏灵活性。
第一单元
通过学习面向对象设计的概念和原则,我逐渐开始运用面向对象思维来进行架构设计。我开始关注类之间的关系和交互,将系统划分为多个独立的对象,并封装它们的属性和方法。这使得我的设计更加模块化和可扩展。我学会了使用继承和多态等特性,以实现代码的重用和灵活性。
第二单元
第二单元开始,我开始注重多线程的设计与性能以及线程安全的问题,我学到了生产者消费者模型,学会了锁与死锁等等。但是说实话这一单元比较遗憾的是因为第二次作业经历了一整周的生病,导致最终实现效果并不好。
第三单元
本单元主要学会了根据规格设计开发代码,并针对每个模块进行功能性测试,我意识到设计模式是解决常见软件设计问题的重要工具。
第四单元
第四单元最大的收获便是对UML图的认识,以及对于模块化更深的理解,尤其是先有架构,后实现代码的开发模式,因为之前我往往不会完整的设计好架构,而是对架构有了大概的想法便开始写代码。
实践和迭代
通过参与实际项目和不断的实践,我逐渐提升了架构设计思维。我学会了在项目中权衡不同的设计选择,根据需求和约束条件做出合理的决策。我也开始学会通过迭代和反馈循环来不断改进设计,从而优化系统的性能和质量。
测试思维演进与简单心得
测试思维的演进应该主要是从整体测试到单元测试,从黑盒测试,到黑盒白盒相结合的转变。并且我认为测试方法设计的合理与否,全面与否很大程度会决定你测试效果的上限,如果没有好的全面的测试方案,即使测试时间长,测试数据大,也很难全面的找到bug。
第三单元我接触到了基于jml规格的测试,这很大程度上是一种牺牲了效率换来极高测试效果的测试。如果jml代码设计的合理,没有漏洞,实现功能也严格按照jml,这样在理论上就会杜绝绝大多数的bug。但是另一方面,这样效率也很低。
最后,我还认识到,好的架构设计,认真完成的代码,可以减少很多bug的出现,减少了测试所需的时间和精力。
心得收获
首先,面向对象编程(OOP)提供了一种强大的编程范式,它将数据和操作封装在对象中,通过对象之间的交互来完成任务。这种方式使代码更具可读性、可维护性和可扩展性。在课程中,我们学习了如何创建类、定义属性和方法,并理解了继承、多态和封装等概念。这使得我们能够更好地组织和管理代码,提高了开发效率。
其次,课程中重点强调了设计模式的重要性。设计模式是解决常见软件设计问题的经验总结,它们提供了一种通用的解决方案,可以帮助我们编写高质量、可重用的代码。我们学习了一些常用的设计模式,例如单例模式、工厂模式和观察者模式等。通过应用这些设计模式,我们可以遵循最佳实践,提高代码的可靠性和可维护性。
第三,课程还重点关注了设计原则。设计原则是指导我们进行软件设计的基本原则和规范。我们学习了一些重要的设计原则。这些原则帮助我们编写具有高内聚性和低耦合性的代码,提高了系统的灵活性和可维护性。
此外,课程中还注重了实践和项目实践。通过完成一系列编程作业和团队项目,我们能够将所学的理论知识应用到实际中。这有助于巩固我们对面向对象设计和构造的理解,并培养了我们的团队合作和问题解决能力。
我相信这门课程所教授的知识和技能将对我未来的软件开发工作产生深远的影响。我期待将来能够运用所学,设计和构建出更加优雅和高效的软件系统。
相关推荐
Avago元件库、封装库-电路方案
Avago的原件库,有用的拿去!
test_github_action:github动作测试
直流模块 针对数据有效性检查的封装库。 为进行互测时输入数据合法性的检查。 该版本删除pysystem依赖,暂不支持用户切换 安装 准备工作 在正式开始安装之前,首先需要一些准备: 完整的python环境(推荐使用python 3.5+ ) 【推荐】完整的pip3环境(推荐使用pip 19.0或更高版本) pysystem包,gitlab地址: ://gitlab.buaaoo.top/oo_course_2019/pysystem 安装dcmodule 接下来安装dcmodule包 git clone -b release git@gitlab.buaaoo.top:oo_course_2019/dcmodule.git cd dcmodule sudo pip3 install . 注意:这步操作需要sudo权限 类似的,卸载dcmodule sudo pip3 uninsta
超扭滑模与快速终端滑模的永磁同步电机无感控制:理论、离散化实现与仿真研究(Simulink仿真实现)
内容概要:本文聚焦于超扭滑模控制(STSMC)与快速终端滑模控制(FTSMC)在永磁同步电机(PMSM)无位置传感器控制中的应用,系统地开展了理论分析、离散化实现与Simulink仿真实验研究。重点探讨了这两种高阶滑模控制策略在零低速工况下的控制性能,通过设计基于磁链观测器的无感估计算法,实现了对电机转子位置与速度的精确估计,有效规避了传统机械传感器带来的成本增加与可靠性下降问题。文中详尽阐述了控制算法的数学建模与推导过程,并针对数字控制系统的特点进行了严谨的离散化处理,最终在Simulink环境中搭建了完整的电机控制仿真模型,通过对比实验全面评估了不同控制策略在动态响应速度、抗外部干扰能力和稳态控制精度等方面的综合性能。; 适合人群:具备自动控制理论、电机驱动原理等专业知识,并熟悉MATLAB/Simulink仿真环境操作的电气工程、自动化等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入研究超扭滑模与快速终端滑模等高阶滑模控制理论在高性能电机驱动系统中的具体应用与实现方法;②掌握永磁同步电机在零低速段无位置传感器控制的核心算法,特别是基于磁链观测的转子状态估算技术;③学习如何将连续域的先进控制理论转化为适用于实际数字控制器的离散化算法,并完成从理论到仿真的完整闭环验证。; 阅读建议:此文理论深度与实践操作紧密结合,读者应重点关注控制算法的设计思想、离散化实现的关键步骤以及Simulink仿真模型的构建细节,建议在阅读过程中动手复现仿真模型,通过调整控制器参数来深入理解各模块的功能作用及系统整体的动静态性能表现。
政府如何精准掌握园区企业创新能力,以制定更有效的科技政策?.docx
政府如何精准掌握园区企业创新能力,以制定更有效的科技政策?
旋转高频信号注入法在PMSM零低速无位置控制中的仿真研究(Matlab代码实现)
内容概要:本文围绕旋转高频信号注入法在永磁同步电机(PMSM)零低速无位置传感器控制中的应用展开深入的仿真研究,基于Matlab/Simulink平台构建完整的控制系统模型,系统阐述了高频信号注入法的理论基础、转子位置观测机制及整体控制策略设计。重点探讨了在零低速运行工况下,通过注入旋转高频电压信号并结合先进的信号处理技术(如带通滤波、坐标变换、锁相环等)有效提取转子位置信息的技术路径,成功克服了传统反电动势法在极低速时信号微弱、无法准确观测的固有缺陷。研究详细分析了高频响应信号的调制解调过程、位置估算环路的动态特性,并考察了电机参数漂移、外部干扰等因素对系统鲁棒性与估计精度的影响,通过大量仿真实验验证了该方法在提升位置观测准确性、增强系统抗干扰能力方面的显著优势。; 适合人群:具备电机控制、电力电子及自动控制理论基础,熟悉Matlab/Simulink仿真环境,从事PMSM驱动系统开发或无位置传感器控制算法研究的研发人员,特别适合电气工程、自动化等相关专业的研究生及具有1-5年工作经验的工程师。; 使用场景及目标:①深入掌握旋转高频信号注入法在PMSM无感控制中的实现原理、关键技术环节与工程实现难点;②学习并实践基于Matlab/Simulink的先进电机控制算法仿真建模、信号处理与性能分析方法;③为解决实际工程中电机在零速启动、低速精确控制等场景下的位置传感器依赖问题,提供有效的技术方案参考与系统的仿真验证手段。; 阅读建议:此资源以Matlab代码实现为核心载体,建议读者在学习过程中紧密结合提供的文档说明与仿真模型,逐模块剖析高频信号发生器、注入策略、响应信号解调、位置估算器等关键环节的设计原理,通过修改系统参数、设置不同工况进行仿真实验,深入理解算法内部机理与系统动态响应特性之间的关联。


