摘要: 一、测试和正确性论证比较 测试优点:方便快捷,只需要手动构造想到的各种可能的输入样例,然后根据代码的实际运行状况和结果来debug就OK了,比较简单,而且往往可以通过“愚蠢”地构造尽可能多的样例来覆盖大部分可能的出现错误的地方。在代码逻辑比较复杂时,不必费神去考虑构造出来的某些表面上不同的样例可能最 阅读全文
posted @ 2018-06-25 18:20 inevitable 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一、规格化设计调研 在《程序开发原理:抽象、规格与面向对象设计》一书中,提到了两种重要的程序语言的抽象方法:参数化抽象(abstraction by parameterization)和规格化抽象(abstraction by specification)。其中,关于规格化抽象,有如下的描述: 规格 阅读全文
posted @ 2018-05-28 20:24 inevitable 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 一、多线程电梯 1. 结构分析 (1)度量 程序的Cyclomatic Complexity过高,原因在于我在电梯类里实现ChangeState方法时,没有简化逻辑,就把各种能想到的情况都列出来了,一一进行响应,导致各种分支过多,以后可以尽量合并一些差不多的情况。 参数数目过多,主要原因还是在于延续 阅读全文
posted @ 2018-05-01 22:37 inevitable 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 一、多项式加减 1.程序结构 可以看到,程序的Cyclomatic Complexity过高,主要是因为我一些方法内部的分支过多,应该尽量使逻辑更简单,通过适当的分析减少判断的分支数目。 类的设计完全依照讲义上的建议,还是比较清楚明白的。computepoly作为主类完成计算,其中要用到checki 阅读全文
posted @ 2018-04-03 23:44 inevitable 阅读(127) 评论(0) 推荐(0) 编辑