摘要: 即使是最优的验证,程序也不可能达到⼗全⼗美,这⾥列出了⼀般情况下程序的 剩 余 缺 陷 率 residual defect rates(软 件发⾏时存在的bug⽐率) ,这⾥的单位是每 kloc (每⼀千⾏代码):1 - 10 defects/kloc: 常⻅的⼯业级软件。 0.1 - 1 defe 阅读全文
posted @ 2018-06-16 21:10 haochen1029 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 接口 Java中的 interface (接⼝)是⼀种表⽰抽象数据类型的好⽅法。接⼝中是⼀连串的⽅法标识,但是没有⽅法体 (定义)。如果想要写⼀个类来实现接⼝,我们必须给类加上 implements 关键字,并且在类内部提供接⼝中⽅ 法的定义。所以接⼝+实现类也是Java中定义抽象数据类型的⼀种⽅法 阅读全文
posted @ 2018-06-16 21:05 haochen1029 阅读(803) 评论(0) 推荐(0) 编辑
摘要: 这⾥列出了⼏个能够表达ADT思想的词: 抽象: 忽略底层的细节⽽在⾼层思考 模块化:将系统分为⼀个模块,每个模块可以单独的进⾏设计、实现、测试、推倒,并且在剩下的开发中进 ⾏复⽤。 封装:在模块的外部建⽴起⼀道“围墙”,使它只对⾃⼰内部的⾏为负责,并且系统别处的bug不会影响到它内 部的正确性。 信 阅读全文
posted @ 2018-06-16 20:07 haochen1029 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 快照图(Snapshot diagrams)能代表程序运⾏时的各种状态——它的栈(即⽅法和局部变量)和它的堆(即现在存在的对象)。 ⼀个对象⽤⼀个圆圈表⽰。对象内部会有很多区域(field),这些区域⼜指向它们对应的值。同时这些区域也是有 它们的类型的,例如 int x 。 可更改的值 vs. 可被重 阅读全文
posted @ 2018-06-16 16:56 haochen1029 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 编程语⾔通常能提供以下三种⾃动检查的⽅法: l 静态检查: bug在程序运⾏前发现 l 动态检查: bug在程序运⾏中发现 l ⽆检查: 编程语⾔本⾝不帮助你发现错误,你必须通过特定的条件(例如输出的结果)检查代码的正确性。 静态检查好于动态检查好于不检查。 ⿊客派的编程⻛格的缺点: 在已经编写⼤量 阅读全文
posted @ 2018-06-16 16:34 haochen1029 阅读(198) 评论(0) 推荐(0) 编辑