oo第八次作业

第五次作业分析:

1.度量图:

2.类图:

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

第六次作业:

1.度量图:

2.类图:

第六次作业,是完成对文件的监控操作。进过了上一次作业的失败,在这一周终于成功的完成了第七次的作业,但是存在很多的问题,尤其是对于目录的考虑不周到,而且自己写的测试线程由于时间太紧也没有完成。导致出现了很多的bug,错了两个公测,并且被找了6个bug,大多是因为目录的考虑问题导致,但是总算是对于安全的多线程操作有了一些的理解,不在像刚开始那样的一头雾水了,虽然写起来还是很费劲,并且最终的结果并不是十分的完美。基本上能完成对于每一个输入的请求,生成一个对应的监控线程,并且实时的监控目录的范围,对于文件的改动有相应的反应。

在找别人bug的时候,主要是采用大量程序,一次跑很多的线程来检验其安全性及设计逻辑的完整性,尤其是检测目录的操作及对于改变后实时的更新监控范围这两个方面是我测试的主要的重点,另外对于测试线程也有一些的测量。

第七次作业:

1.度量图:

2.类图:

第七次的作业,是实现对100辆出租车的调度问题,  这次作业与之前的多线程电梯有一些共通之处,但工程量与分析难度还是下降了不少。由于是100个出租车100个线程,所以出租车类是必须得要是数据不能共享的,另外每一条符合的指令也弄成一个线程,所以对于线程的安全问题的考虑是完成这次问题的关键,本次的作业由于没有被对方测,所以没有bug但是,通过我对别人程序的测试,发现了自己对于同质指令的处理任然有问题,而且对于同一时间的多个命令接受的时候任然有一些的小问题,可能会出现程序的崩溃,但是没找出问题的原因。

在测试别人的时候,主要还是看对方的程序能不能完成简单的数据测试因为出租车时刻都在动,所以找出那些不明显的错误例如同一个框中选出最合适的车,必须得要时刻的顶住界面去看看的眼睛十分的难受。线程安全相关问题的测试有些困难,我的策略是通过大量的输入用例去炸,如果出现了不符合逻辑的输出或者程序crash了,就说明对方在线程设计上存在问题。

心得体会:

  这三次作业的总体感受就是难度的直线上升尤其是多线程电梯的那一次,由于和上一次的程序虽然说是有关联,但是需要改变的思维实在是太多,导致了自己第一时间没有适应下来,因此导致了无效。但是后面的两次通过和舍友同学的交流使自己对于多线程有了一些想法所以才能够写出来,但是虽然是完成了多线程,对于安全的多线程缺还是差一些意思,始终没有办法很清楚的想明白哪些应该是上锁的数据哪些不应该上锁,另外自己确实应该早早地拿出更多的时间来思考这些作业,努力让自己的程序更加的完善,用更多的时间去完成自己课下的测试,减少自己程序的bug。总的来说经过了这三次作业的洗礼,自己算是对于线程有了一个大概的理解希望自己以后能完善理解,努力去完善自己程序,尽量不要交自己不满意的程序吧。

oo第八次作业的更多相关文章

  1. oo第八次作业--5,6,7次作业总结

    一.多线程的设计 这三次作业的主要内容就是使用多线程并且解决多线程中出现的问题.而对于多线程我也有了自己的理解.首先明确的一点是单个CPU在同一时间只能处理一件事.那么,不管是多进程还是多线程,我们的 ...

  2. OO第一次博客作业

    OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...

  3. oo 第一次博客作业

    oo 第一次博客作业 早在大一就听说了oo的各种传奇故事,大二下学期终于也开始了我的oo之旅. 基于度量来分析自己的程序结构 第一次作业 类图分析 耦合度分析 可以看出在第一次作业中,我的耦合度非常高 ...

  4. JAVA第八次作业

    JAVA第八次作业 (一)学习总结 1.用思维导图对本周的学习内容进行总结 参考资料: XMind. 2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery ...

  5. 2017-2018-2 1723《程序设计与数据结构》第八周作业 & 实验二 & 第一周结对编程 总结

    作业地址 第八周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1847 (作业界面已评分,可随时查看,如果对自己的评分有意 ...

  6. 2018-2019-1 20189221 《Linux内核原理与分析》第八周作业

    2018-2019-1 20189221 <Linux内核原理与分析>第八周作业 实验七 编译链接过程 gcc –e –o hello.cpp hello.c / gcc -x cpp-o ...

  7. 面向对象OO第15次作业总结

    面向对象OO第15次作业总结 1.论述测试与正确性论证的效果差异,比较其优缺点测试通过大量测试数据来覆盖测试代码,比较直观,优点在于知道测的是啥,特别直观,缺点在于很难覆盖所有情况.正确性论证从逻辑关 ...

  8. 面向对象OO第9-11次作业总结

    面向对象OO第9-11次作业总结 1.关于规格化设计的调研程序规格说明:对程序所应满足的要求,以可验证的方式作出完全.精确陈述的文件.“规格说明”一词与其他工业产品的“规格说明书”有相似的含义.不过, ...

  9. 面向对象OO第5-7次作业总结

    面向对象OO第5-7次作业总结 学习OO七周了,深切的感受到了这门课程的不友好.前三次作业能够算是勉强地通过了,但是从第五次作业开始就完全GG了.这三次作业,从多线程电梯开始,然后文件监控,然后到出租 ...

随机推荐

  1. QTP - 描述性编程

    描述性编程: 1.QTP的描述性编程能够摆脱测试对象库的限制,编写出更为复杂.适应能力更强的测试脚本. 2.即不需要在仓库晨定义,也能访问和操作实际对象. 3.用描述性编程编写的测试脚本在运行时,QT ...

  2. Gitlab使用Webhook实现Push代码后的jenkins自动构建

    本文出自https://www.cnblogs.com/kevingrace/p/6479813.html 怕以后找不到,所以先写到自己博客中 Gitlab利用Webhook实现Push代码后的jen ...

  3. leetcode1033

    class Solution: def numMovesStones(self, a: int, b: int, c: int) -> 'List[int]': l = list() l.app ...

  4. SpringBoot 配置Redis

    application.properties 文件内容 #Redis数据库索引(默认为0) spring.redis.database=0 #Redis服务器地址 spring.redis.host= ...

  5. Silverlight中验证码生成

    public class ValidationCode { Random r = new Random(DateTime.Now.Millisecond); /// <summary> / ...

  6. DEPLOY YOUR WEBSITE TO GITHUB PAGES

    DEPLOY YOUR WEBSITE TO GITHUB PAGES Review Fantastic! You now have your site published on the public ...

  7. 项目集成swagger【转载】

    地址链接:https://blog.csdn.net/lx1309244704/article/details/81808788 swagger是一款高效易用的嵌入式文档插件,同时支持在线测试接口,快 ...

  8. mybatis-plus报org.apache.ibatis.binding.BindingException分析【转载】

    这个问题整整纠结了我四个多小时,心好累啊...不废话... 背景:Spring整合Mybatis 报错:org.apache.ibatis.binding.BindingException: Inva ...

  9. 浅谈Unicode编码

    目录 1.概述 2.ASCII编码 3.历史问题 4.Unicode 4-1.Unicode 编码方案 4-2.关于bom 5.UTF-8 6.UTF-16 1.概述 对于ASCII编码,相信同学们都 ...

  10. Python中函数和方法的区别

    方法是一种特殊的函数属于某个类的的函数叫方法不属于某个类的函数叫函数 转自csdn https://blog.csdn.net/weixin_40380298/article/details/7825 ...