第五次做业:数组
度量图:安全
类图:多线程
分析:此次做业的主要问题是对电梯请求如何分配给三部电梯,让他们可以同时工做且不出现问题。这其中涉及到了关于线程安全,数据同步的问题。学习
但因为这是多线程的第一次做业,本身之前对多线程没有一点概念,作这次做业以前查阅了不少资料,但仍是有不少地方并无真正弄明白。这在这次做业中体现的很明显。从度量图看,个人程序圈复杂度太大,说明程序代码质量低且不易维护,其次块嵌套深度太高,以及参数过多,这都是直接能够看出来的问题,而后个人类图也很杂乱无章,没有设计好。整体来讲,本身没有把握好时间,搞清楚多线程花了好久,设计程序时间不足,致使这彻底就是一个赶时间的程序。测试
本身的bug:此次因为没设计好,功能性测试几乎都错了,只过了几个简单的例子。线程
测试任务:可能他也没有好好设计吧,只要输入回车,程序就crash,他是由于输出时用了很奇怪的方式,我帮他改了下,结果和我差很少,功能性测试几乎不对。设计
第六次做业:对象
度量图:blog
类图:同步
分析:
此次做业是设计一个文件监控系统,首先对监控做业进行处理,忽略掉非法监控,将合法监控提取出来。至于对文件如何监控,个人办法是为所监控的对象创建快照,将其属性保存下来,而后再等一个扫描周期(个人是50ms)将新的快照与旧的进行对比,发现其改变的属性,就能够看是否相应的触发器,执行相应的任务。
但我这样作好像有问题,就是在path-changed的时候,它不响应,我单步运行发现其新的快照集和旧的变得同样了,也就是50ms这个周期没有捕捉到这个变化,因此我把时间改成60ms就能够了。总的来讲,此次比上次好,至少弄清楚了多线程的基本思想,也学会了正确进行加锁同步。
本身的bug:path-changed监控出错,应该是周期的问题。
测试任务的bug:他的程序不能实现文件安全类功能不完整,不少功能没有实现,测试起来较为困难,他在多线程安全处理也不行,有的变化不予响应,且summary与detail会重复记录。
第七次做业:
度量图:
类图:
分析:此次是设计一个出租车调度系统,个人实现思想是,先完成地图导入及出租车初始化的工做。出租车初始化主要就是开一百个线程,让出租车随机运行。而后获取乘客请求进行处理,这部分就按照指导书的要求,挑选符合要求的出租车,进行派单,记录其运行信息。
此次做业相比前两次完成的要好,多是本身对多线程有了更进一步的理解,也是一点点在进步吧。
本身的bug:因为粗心,没有仔细检查,有个地方数组越界,crash了。
测试任务的bug:他的程序没有把路径记录完,只记录了一部分请求记录,并且对同质请求处理不当。
总结:总的来讲,本身从不会多线程到慢慢入门,一点点在进步,仍是蛮开心的,不只是做业,周五的OO上机我也学到了不少。反正对待一个学习任务,慢慢去学,不放弃,总会弄清楚的。