301
社区成员
发帖
与我相关
我的任务
分享oo终于结束咯~
首先,何为正向建模呢?
正向建模,是指根据已知的因素来预测结果的过程 ,其主要步骤包括:
1.确定建模目标:首先要明确你的建模目标是什么,需要预测的是什么变量,以及这个预测如何帮助解决问题。
2.数据收集与清洗:收集与建模目标相关的数据,并进行数据清洗工作,包括处理缺失值、异常值和重复值等。
3.特征选择与工程:选择合适的特征,可以使用数据可视化和统计测试等方法进行特征选择,同时进行特征工程以提取更有信息量的特征。
4.建立模型:选择适当的建模算法,如线性回归、决策树、随机森林等,并根据数据特点和问题需求进行模型训练。
5.模型评估:使用交叉验证等方法评估模型的性能,检查模型是否过拟合或欠拟合,并对模型进行调优。
6.模型部署:在模型经过评估和调优后,可以将其部署到生产环境中,用于实际预测和决策。
7.监控和维护:持续监控模型的性能,并根据新数据进行重新训练或调整模型,以确保模型的准确性和可靠性。
在本次作业中,实践正向建模如下:
1.确定建模目标,本单元要求我们完成一个由不同场景组成的可和用户交互完成预测并给出结果的图书馆模型。
2.数据清洗与收集,观察用户样例数据输入输出,理解具体用户对象和图书馆各部门行为。
3.特征选择与工程,由数据结果总结模型各部分对象特征行为,通过数据规范化各个模型动作。
4.建立模型,以特征工程为基础,实现模型,可采用自上而下的分发模式或自下而上合成模式,初步实现。
5.6.7. 测试,改bug。
相比于前三次作业有着实验代码的提醒,本次作业真正要求我们从零开始架构。好在本次作业需求并不复杂,架构起来相对简单,主要架构如下:
对象设计:
如UML类图所示:

行为设计:
命令识别分支 :

-
交互动作分支 :

第一次作业:---> 小白打开了新世界大门 <---
对一个没学过OOpre的小白,即使在经过了四个单元的毒打以后,让我最头痛的回忆还是第一次作业,这次作业主要在于理解类与类,对象与对象之间的关系,架构方面学会了自下而上的设计。
第二次作业: --->神奇的多线程<---
第二次作业学习到了多线程的工作方式,线程的生成,结束以及不同的线程之间如何完成交互,最主要是理解了如何架构能实现线程之间的基于信号量的同步互斥。
第三次作业: --->纯翻译是不行的<---
第三次作业主要是基于课程组已经给好的JML进行翻译,按理来说不涉及架构问题,但性能的要求迫使我们不得不从算法入手,从图论出发好好对自己的实现方式进行设计。
第四次作业: --->代码的蓝图<---
第四次作业以后,虽然还是不能在一开始就完全相好的自己的架构设计并为其画出各种类图,顺序图,状态图,但起码明白了:相比于直接写代码,在代码之前为自己画个图是十分有帮助的,就像建房子需要蓝图一样,我们写代码也需要提前设计一份“蓝图”的图来保证自己的架构方向始终为正。
oo真是一门好课。
时间方面 :
oo毫无疑问是这学期占了我最多学习时长的一门课程,单元第一次作业不能不做,单元第二次作业稍微做做,单元第三次作业舍不得不做,时间长到哪怕在做学校的学习时长调研问卷的时候我都可以理直气壮的选择“一周48小时以上”。
难度方面 :
恰到好处吧,你说它简单吧,每周都要被“折磨”那么三两天(中测,强测,互测),哪有人会说它简单?你说它难吧,偏偏像我这样从0开始的java小白选手也是能全程陪跑下来,真是被课程组各位拿捏的死死的了,我上早八(bushi)。
收获方面 :
收获颇丰呐,完成了四个单元16次作业以后,课程组特意组织了一次不计分(阿里嘎多)知识点测试,发现即使自己在没复习的情况下那些选择填空也能写个七七八八,我想以后面对浩大的且难到让我无从下手的java项目,我总不会失了尝试的勇气。
