OO第一单元作业总结
(1)基于度量来分析自己的程序结构
在前两次的作业中,我写的程序都还没从面向过程的思维转变过来,到第三次作业,我将代码分为多个类,使用了接口,看起来才稍微像个面向对象的程序。
从上面的数据来看,我设计的类之间的耦合还是比较少的。但是我并没有使用继承,而是使用了一个求导接口,实现归一化处理。
从这张类关系图来看,由于程序的类的数量较少,所以类关系并不复杂。Poly包含n个Term,Term又包含n个factor,factor有3种,
分别为power,triangle和nest,nest为嵌套因子,里面又包含poly。
这些类都实现了求导接口,从而实现了递归求导,但这样存在类之间相互包含的关系,可能比较容易出错。
(2)分析自己程序的bug
我在第三次强测中出了1个bug,这个bug是输入处理没做好导致的。前两次我都是用的大正则,而第三次我是一项一项用正则表达式匹配的,
但是没有考虑全WF的情况,导致BUG.。
(3)分析自己发现别人程序bug所采用的策略
前两次我用了大家比较可能出错的WF测试样例找到了不少bug。但第三次只能通过读代码的方式找bug,这种方法虽然有效,但是太费时间,所以也没找到几个bug。