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了.这三次作业,从多线程电梯开始,然后文件监控,然后到出租 ...
随机推荐
- API手册(2017)
本页存放内容: API手册. 少量教程 [旧的工具页面] (是一些旧的页面.不放在外面了,这里做个索引) http://www.cnblogs.com/qq21270/p/3538677.html 常 ...
- bits change world
No code is the best way to write secure and reliable applications. Write nothing; deploy nowhere.
- win10基础上安装linux系统,添加双系统启动项
1. 本机安装Centos7mini(注意点:进入安装界面先修改下面的内容,修改为U盘名称) 2. 配置文件/boot/grub2/grub.cfg,完成双系统启动设置. 3. 配置ip地址 nmcl ...
- jquery调用iframe里面的方法
$(window.parent.document).contents().find("#iframename")[0].contentWindow.iframefunction() ...
- Android中四大组件总结
android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个 ...
- jmeter+ant+jekins的持续集成自动化搭建-基于虚拟机的linux系统
准备软件: 1.ant压缩包,2.jmeter压缩包,3.jenkins的war包压缩包,4.tomcat压缩包,5.build.xml文件,6.jmeter生成的***.jmx格式文件. 基本原理: ...
- Mysql分表:Merge
merge是Mysql最简单的一种分表,Mysql自带的一个分表功能,Merge表并不保存数据,Merge表和分表是对应映射关系.demo: 创建分表:CREATE TABLE `user1` ( ` ...
- (英文版)VScode一键生成.vue模板
1. 安装vscode,官网地址 2.安装一个插件,识别vue文件 插件库中搜索Vetur,下图中的第一个,点击安装(Install) 3.新建代码片段 点击Code(代码)-Preferences( ...
- git 之连接tfs的git服务器
tfs中的git的管理,注意区分是主页地址,还是代码地址,代码地址中会有 _git http://ip:8080/tfs/p/elasticsearch6.2.0 http://ip:8080/t ...
- 第一周pta作业1总结
查找整数 本题要求从输入的N个整数中查找给定的X.如果找到,输出X的位置(从0开始数):如果没有找到,输出"Not Found". 输入格式: 输入在第一行中给出两个正整数N(≤2 ...