oo第八次作业
oo第八次作业
第五次作业分析:
1.度量图:

2.类图:

第五次作业由于是第一次接触多线程,所以导致自己的经验不足,因此最终也没有完成作业,到最后任然不能实现三部电梯的有效调度,所以导致了这次作业的无效
第六次作业:
1.度量图:

2.类图:

第六次作业,是完成对文件的监控操作。进过了上一次作业的失败,在这一周终于成功的完成了第七次的作业,但是存在很多的问题,尤其是对于目录的考虑不周到,而且自己写的测试线程由于时间太紧也没有完成。导致出现了很多的bug,错了两个公测,并且被找了6个bug,大多是因为目录的考虑问题导致,但是总算是对于安全的多线程操作有了一些的理解,不在像刚开始那样的一头雾水了,虽然写起来还是很费劲,并且最终的结果并不是十分的完美。基本上能完成对于每一个输入的请求,生成一个对应的监控线程,并且实时的监控目录的范围,对于文件的改动有相应的反应。
在找别人bug的时候,主要是采用大量程序,一次跑很多的线程来检验其安全性及设计逻辑的完整性,尤其是检测目录的操作及对于改变后实时的更新监控范围这两个方面是我测试的主要的重点,另外对于测试线程也有一些的测量。
第七次作业:
1.度量图:

2.类图:

第七次的作业,是实现对100辆出租车的调度问题, 这次作业与之前的多线程电梯有一些共通之处,但工程量与分析难度还是下降了不少。由于是100个出租车100个线程,所以出租车类是必须得要是数据不能共享的,另外每一条符合的指令也弄成一个线程,所以对于线程的安全问题的考虑是完成这次问题的关键,本次的作业由于没有被对方测,所以没有bug但是,通过我对别人程序的测试,发现了自己对于同质指令的处理任然有问题,而且对于同一时间的多个命令接受的时候任然有一些的小问题,可能会出现程序的崩溃,但是没找出问题的原因。
在测试别人的时候,主要还是看对方的程序能不能完成简单的数据测试因为出租车时刻都在动,所以找出那些不明显的错误例如同一个框中选出最合适的车,必须得要时刻的顶住界面去看看的眼睛十分的难受。线程安全相关问题的测试有些困难,我的策略是通过大量的输入用例去炸,如果出现了不符合逻辑的输出或者程序crash了,就说明对方在线程设计上存在问题。
心得体会:
这三次作业的总体感受就是难度的直线上升尤其是多线程电梯的那一次,由于和上一次的程序虽然说是有关联,但是需要改变的思维实在是太多,导致了自己第一时间没有适应下来,因此导致了无效。但是后面的两次通过和舍友同学的交流使自己对于多线程有了一些想法所以才能够写出来,但是虽然是完成了多线程,对于安全的多线程缺还是差一些意思,始终没有办法很清楚的想明白哪些应该是上锁的数据哪些不应该上锁,另外自己确实应该早早地拿出更多的时间来思考这些作业,努力让自己的程序更加的完善,用更多的时间去完成自己课下的测试,减少自己程序的bug。总的来说经过了这三次作业的洗礼,自己算是对于线程有了一个大概的理解希望自己以后能完善理解,努力去完善自己程序,尽量不要交自己不满意的程序吧。
oo第八次作业的更多相关文章
- oo第八次作业--5,6,7次作业总结
一.多线程的设计 这三次作业的主要内容就是使用多线程并且解决多线程中出现的问题.而对于多线程我也有了自己的理解.首先明确的一点是单个CPU在同一时间只能处理一件事.那么,不管是多进程还是多线程,我们的 ...
- OO第一次博客作业
OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...
- oo 第一次博客作业
oo 第一次博客作业 早在大一就听说了oo的各种传奇故事,大二下学期终于也开始了我的oo之旅. 基于度量来分析自己的程序结构 第一次作业 类图分析 耦合度分析 可以看出在第一次作业中,我的耦合度非常高 ...
- JAVA第八次作业
JAVA第八次作业 (一)学习总结 1.用思维导图对本周的学习内容进行总结 参考资料: XMind. 2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery ...
- 2017-2018-2 1723《程序设计与数据结构》第八周作业 & 实验二 & 第一周结对编程 总结
作业地址 第八周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1847 (作业界面已评分,可随时查看,如果对自己的评分有意 ...
- 2018-2019-1 20189221 《Linux内核原理与分析》第八周作业
2018-2019-1 20189221 <Linux内核原理与分析>第八周作业 实验七 编译链接过程 gcc –e –o hello.cpp hello.c / gcc -x cpp-o ...
- 面向对象OO第15次作业总结
面向对象OO第15次作业总结 1.论述测试与正确性论证的效果差异,比较其优缺点测试通过大量测试数据来覆盖测试代码,比较直观,优点在于知道测的是啥,特别直观,缺点在于很难覆盖所有情况.正确性论证从逻辑关 ...
- 面向对象OO第9-11次作业总结
面向对象OO第9-11次作业总结 1.关于规格化设计的调研程序规格说明:对程序所应满足的要求,以可验证的方式作出完全.精确陈述的文件.“规格说明”一词与其他工业产品的“规格说明书”有相似的含义.不过, ...
- 面向对象OO第5-7次作业总结
面向对象OO第5-7次作业总结 学习OO七周了,深切的感受到了这门课程的不友好.前三次作业能够算是勉强地通过了,但是从第五次作业开始就完全GG了.这三次作业,从多线程电梯开始,然后文件监控,然后到出租 ...
随机推荐
- springboot学习随笔(三):Controller参数映射
接上章内容,我们看看浏览器参数如何映射到我们的Controller层 我们新建UserController和User实 User.java package com.example.main; impo ...
- NFS存储服务
NFS存储服务笔记======================================================================NFS共享存储是什么: 英文名-Netwo ...
- Java 8 日期时间 API
转自:https://www.runoob.com/java/java8-datetime-api.html Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与 ...
- HBASE分布式集群搭建(ubuntu 16.04)
1.hbase是依赖Hadoop运行的,因此先确保自己已搭建好Hadoop集群环境 没安装的可以参考这里:https://www.cnblogs.com/chaofan-/p/9740408.html ...
- 推荐几个IDEA插件,Java开发者撸码利器(转载)
推荐几个IDEA插件,Java开发者撸码利器. 这里只是推荐一下好用的插件,具体的使用方法不一一详细介绍. JRebel for IntelliJ 一款热部署插件,只要不是修改了项目的配置文件,用 ...
- python 写入数据
import sys reload(sys) sys.setdefaultencoding('utf8') import xlrd import xlwt book = xlrd.open_workb ...
- 初学c# -- 记录QQ键盘
扫描进程,如果QQ启动了,开始记录键盘,别的程序都不记录.记录到e:\log.txt里面,当然也可以修改为截屏+记录发送到邮箱或客户端 进程 Process[] p = Process.GetProc ...
- vue响应式原理
vue的响应式,数据模型仅仅是普通的Javascript对象.当你修改它们时,视图会进行更新 那么如何追踪变化: 当把普通的js对象传给vue实例的data选项,Vue将遍历此对象的所有属性,并使用O ...
- laravel view not found
在windows开发的laravel项目,部署到Linux服务器找不到视图,代码格式可能是这样的 return view('news\list'); 原因是在Linux下不能识别反斜杠路径,解决办法是 ...
- python中sort命令介绍以及list结构中统计各元素出现的个数的方法