oo第一次总结

第一次做业正则表达式

1.度量分析编程

 

 第一次做业的metrics图分析出现了标红的McCabe Cyclomatic ComplexityNested Block DepthMcCabe Cyclomatic Complexity表示圈复杂度,而Nested Block Depth表示嵌套深度。标红的McCabe Cyclomatic Complexity代表类之间的职能分配不均匀。由于是第一次写做业,从始至终都只建了一个类,致使了一个类承担了全部的职能,圈复杂度出现了超标现象。标红的Nested Block Depth则表示嵌套现象严重。因为暴力的一次次匹配,不停的用if-else语句和while/for循环语句,致使嵌套不少。学习

2.类图测试

 

第一次做业,由于刚刚学习JAVA,对类和对象的概念不熟悉,基本按照过程化的思惟去写,因此只写了一个类。在这个类里,进行了全部的操做,致使这个类很是的冗杂。spa

3.关于BUG设计

第一次做业,要求用面对对象的思惟去看待问题,思考问题,解决问题。可是因为长期的面向过程编程,致使在写本次做业的过程当中,很不习惯。第一次做业是多项式的加减法,整体的设计难度不大,可是其中牵涉不少的细节问题。在公测和互测各出现了两个BUG。公测中的两个BUG分别是由于正则表达式过于冗长,致使爆栈和前导零输入太多报错。公测的这两个问题,反应了思考还不够严谨,没有想到会爆栈。互测中的两个BUG则是由于在Read里没有说明嵌套输入会报错,即便实际操做中会看成一个输入错误输出和没有定义输入为{}时,输出什么。互测中的两个问题,反应了没有仔细研究各类输入输出的分类。3d

而做为测试者,拿到的程序公测全过。因此想到了输入和输出的问题,分别找到了两个问题,一个是只输入{不报错,以及在输入的末尾多一个“,”不报错。综合来看,第一次做业的输入输出是一个难点,很容易少考虑状况。对象

第二次做业blog

1.度量分析队列

 

 从第二次做业的metrics图能够看出,出现了与第一次做业一样的问题,圈复杂度超标和嵌套现象严重。由于所写的调度的类中,承担的职能太多以及输入和调度频繁的循环判断。

2.类图

 

 

 从类图能够看出,调用关系有点复杂不明确,由于写的时候没有考虑清楚各个类的方法,在写的过程当中,强行放入了一些方法,致使最后对类的考虑不明确清晰。在之后写做业的过程当中,会仔细明确的划分类。

3.关于BUG

相比于第一次做业的主要是输入格式的错误,此次的问题则主要是没有考虑到数据溢出的问题,致使公测中与数据溢出相关的两个测试均出错了。而互测则没有被发现BUG。

做为测试者,在拿到的程序中,发现了一个与输入有关的问题,在正确的输入后添加字符,不会报错。

第三次做业

1.度量分析

 

 从第三次做业的metrics图能够看出,出现了与前两次做业一样的问题,圈复杂度超标和嵌套现象严重。一样是由于所写的调度的类中,承担的职能太多以及输入和调度频繁的循环判断。而且由于第三次做业是在第二次做业的基础上加入了捎带操做,致使问题更加严重,程序更加臃肿。这三次的做业,都反应了程序封装和代码简洁的重要性。

2.类图

 

从类图能够看出,第三次做业类的调用关系比第二次做业更清晰明确。可是思路依然有些不清晰,对每一个类的职能的考虑须要更详细。

3.关于BUG

对比傻瓜电梯,捎带问题显得难度上升了不少。所以若是对捎带问题看的不全面深刻,很容易出现BUG。正是由于如此,此次公测中出现了2BUG,互测中出现了4BUG。公测中的两个BUG,分别是副请求时间==主请求开关门完毕时间不捎带和e.sta==DOWN的部分应该在主请求处理完后,选队列位置最前的成为主请求。而互测中则主要是e.sta==STILLe.sta==UP问题。此次做业出现了不少问题,反映了对问题分析不够深刻,致使程序设计不统一完备。

而做为测试者,这次拿到一个全过的代码,因此从一条条BUG树类样例去测试,但都没有找到这份做业的错误。

心得体会

  1. 到目前,写了三次做业,对面向过程编程和面向对象编程的区别的感觉仍然不够深刻。体会到了它们之间的差别,但还不够。
  2. 这三次做业写完后,都出现了不少的BUG,致使投入大量的时间去处理解决。缘由是设计思路不清晰有遗漏。因此之后须要把整个程序的思路想明白想清楚,对每一个类的职能作明确的划分。
  3. 关于时间的分配和使用上,作的很差。每次都是拖到周一开始作,致使时间很紧,不得不熬夜。因此之后应该尽早开始写做业。
  4. 这三次做业尤为是第三次做业,反应了对细节问题考虑的重要性。在思考过程当中考虑了最广泛的状况,却遗漏了一些特殊状况。之后,在写代码的过程当中,应该考虑这部分代码可能出现的各类状况,予以分析和解决。
相关文章
相关标签/搜索