OO第一次博客
分析程序结构
使用了eclipse里面的Metrics和AmaterasUML插件生成量化图和类图
第一次作业:
度量:

类图:

第一次作业没有充分理解面向对象的思想,只有一个java文件,里面有两个类,但只放在一个文件里面;一个是多项式的类,另一个多项式计算的类;
第二次作业:
度量:

类图:

这一次作业一共用了5个java文件,其中包括请求,请求队列,电梯,楼层和调度器5个类,总代码量见度量图;这个与第一次相比难度就不在一个等级上啦;在这次我终于学会了怎么使用正则表达式了,发现正则表达式真是太**好用啦,我第一次为什么没有用呢!!!A Little Stupid!
第三次作业:
度量:

类图:

第三次作业我吸取前面两次作业犯得错误,这次终于没有发生任何错误!(滑稽.jpg)这次一共有7个java文件,在第二次作业的基础上运用了继承和接口,类的总数是6个,总代码数见度量图。
分析自己程序的bug
公测被发现的bug
第一次作业在公测中出的bug主要的原因是在第一次作业我还没有搞懂正式表达式,因此我是通过自己考虑多种情况进行判断输入不符合规范的错误,这样既费时又费力而且还没有考虑到所有的情况,所以第一次的公测错误都错在未使用正则表达式上。
第二次作业在公测中出现的bug属于自己一个人理所当然以为不会出现bug但还是出现了。在第二次作业的公测中我被测出了四个bug,这四个bug我只能说真的有点蠢,首先整个程序的逻辑性没有问题,错就错在一些细节上了,首先的两个bug是在10楼不能向上和1楼不能向下的错误,我只顾着输出ERROR而忘记将他们从请求队列里去除掉了,在课下测试时也没有做到覆盖性的测试。后面的两个bug是unint的问题,我通过parseInt这个java自带的库来进行判断如果那一代码发生了crash就输出ERROR,然而parseInt是有符号的,所以不符合指导书的声明,所以出现了bug。
第三次作业在公测中没有出现bug。
程序设计结构与bug出现和分类树之间的联系
程序的设计应该考虑到分类树中的所有情况,分类树是程序设计的指引,bug是分类树的体现,一但程序设计上与分类树出现了出入,那么肯定会出现bug。而bug出现的位置与程序设计的结构密切相关,bug出现的位置大多数在程序设计逻辑混乱的地方,所以为了减少bug,应该好好了解分类树,使自己的程序设计尽量清晰。
发现别人bug采用的策略
数据检查
首先加大样例的规格,进行一波数据检查,有的时候程序在大数据的时候就会产生一些平时简单样例不会产生的bug。但是这些不会完全检查出所有的bug,所以这只是刚刚拿到程序时进行的压力测试。
分支数检测
通过分支数的提供的思路,进行仔细的分布检验,检验被测试程序是否支持每一个分支,进行细致分部检查。这样适合局部的检查,只检查具体分支的bug。
心得体会
在这三次作业中关于程序的设计和debug上我取得了一些心得体会。
首先,在第一次作业,我第一次使用了java这么语言和面向对象这一思想,给我留下了深刻的印象,体验到了什么叫java从入门到精通再到放弃。同时体会到了面向过程思想与面向对象思想的不同。同时我还学会了正则表达式的简便和其功能的强大。
在第二次作业,我逐渐熟悉了面向对象的思想,使用java也更加顺手了。而同时还懂得了理解指导书的重要意义,在编写程序时一定要充分的理解指导书的意思,这样程序的编写才不会发生一些不必要的麻烦,同时在自己debug是一定要覆盖所有的分支数,不要理所当然的以为自己的程序没有bug。
在第三次作业,我进一步的意思到指导书的重要性,一定要反复阅读指导书,不然你可能读不懂。而在debug时要尽量集中多人的智慧,这样才能完全覆盖所有的bug。
总的来说,在编写程序时一定要做到 A Little Smart!

浙公网安备 33010602011771号