由于我是在第二周才选的课,导致第一次作业没有来的及写

第二次作业

       大约快一年没有用eclipse来写java了,感觉有点生疏,导致包括正则呀输入呀还有抛出异常之类的还需要重新温故一下。

第二次作业是实现一个傻瓜电梯,由于其功能简单,所以在逻辑设计上并不是很难,主要是要解决一些语法上的错误。之前

只使用过github,而这次是我第一次使用gitlab提交作业,这也给我带来了很大的困扰,其次看清指导书也很主要,这会防止

你在一些细节上出错。

类图:

 

复杂度分析:

 

      从图中可以看出McCabe Cyclomatic Complexity和Nested Block Depth被标记成红色,我特意去网上查找了一些相关资料。

      McCabe Cyclomatic Complexity代表的是圈复杂度,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为独立

线性路径条数,即合理的预防错误所需测试的最少路径条数。圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经

验,程序的可能错误和高的圈复杂度有着很大关系。而在这标红的原因主要是在调度器类main()实现的功能太多,应该针对不

同的功能来建立不同的方法,这样不仅看起来更加直观,也容易对其进行测试。

BUG分析:

     由于没能很好的阅读说明书,导致在一些细节要求上出现了错误,也没有对代码进行异常处理,导致数据过大而出现异常,

这些都需要我在将来代码编写的过程中应该注意的。

 

第三次作业

   第三次作业主要是在第二次作业的要求上进行捎带处理,能够实现顺路请求,这次作业看起来要比第二次的代码量小,但实

际实现起来却发现要比第二次作业难上很多,最关键的就是逻辑上的困难,在编写代码前最好能够有个大致的思路,这样在编

写时才不至于手忙脚乱,而由于电梯实际运行中有很多情况,都需要自己能够列出,并考虑是否需要捎带,所以在逻辑设计就

十分关键。

类图:

复杂度分析: 

        从图中可以看出McCabe Cyclomatic Complexity和Nested Block Dept依然过高,我在这次代码编写过程中有意将调度类中实

现的功能移到其他方法中,但是效果仍然不明显,还有就是在进行同质判断以及捎带判断过程中if语句用的太多,导致Nested Block

Dep的值也很高。

BUG分析:

      主要是逻辑上的BUG,在某些情况下会将不应该捎带的电梯请求进行捎带,从而产生错误。

心得:

      通过这段时间的oo学习,我感受最深的是oo不仅仅在教我们写代码的能力,更关键的是教我们一种思维,用面向对象的思维方

式来编写代码,这一点我做的并不好,尤其是在第三次作业中,由于这次作业的难度有点超出了我的预期,导致时间不是很充分,

很多想到都没来的及实现,而在匆忙的码代码过程中就不自觉使用原来习惯的编程方式,这是很不好的,会在接下来的作业中努力

改正。

       

posted on 2018-04-04 11:23  cttcss  阅读(137)  评论(0编辑  收藏  举报