当前位置:首页 > 工业技术
Design by Contract原则与实践
Design by Contract原则与实践

Design by Contract原则与实践PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:(美)Richard Mitchell,(美)Jim Mckim著;孟岩译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2003
  • ISBN:7115115702
  • 页数:252 页
图书介绍:本书通过Eiffel和Java实例,阐述了“契约式设计(Design by Contract)”的思想原则和应用方法,帮助读者掌握如何在面向对象软件设计过程中应用契约。
《Design by Contract原则与实践》目录
标签:原则 实践

目录 1

第1章契约式设计初探 1

1.1概述 1

1.2顾客管理器范例 2

1.3一些问题 5

1.4 CUSTOMER—MANAGER的契约 6

1.5 临时总结 9

1.6运行时检测 11

1.7可靠的文档 13

1.8 小结 15

1.9一言以蔽之 15

1.10练习 15

第2章契约式设计的基本原则 17

2.1 关于本章 17

2.2栈 18

2.3区分命令和查询 19

2.4命名规范 22

2.5区分基本查询和派生查询 23

2.6说明命令对基本查询的影响 26

2.7用不变式确定恒定特性 34

2.8类及其契约 36

2.9基本查询是栈的一个概念模型 38

2.10六大原则 42

2.11 练习 43

第3章运用六大原则 47

3.1 关于本章 47

3.2字典 47

3.3特性分离与分类 48

3.4后验条件 50

3.5先验条件 56

3.6不变式 62

3.7关于字典的完整的契约级概括 63

3.8 小结 65

3.9练习 66

第4章契约的构造支持类——不可变列表 69

4.1 关于本章 69

4.2支持线性结构 69

4.3契约只涉及表达式 70

4.4不可变列表 71

4.5不可变列表的契约 72

4.5.1基本查询 72

4.5.2创建命令 74

4.5.3派生查询count 74

4.5.4派生查询preceded_by 74

4.5.5派生查询item 75

4.5.6派生查询is_equal 77

4.5.7派生查询sublist 79

4.7练习 81

4.6小结 81

第5章六大原则在QUEUE设计中的运用 83

5.1 关于本章 83

5.2队列 83

5.3 remove特性的契约 84

5.4将count作为一个派生特性 88

5.5 initialize特性的契约 91

5.6 head特性的契约 93

5.8更多派生查询 94

5.7put特性的契约 94

5.9小结 95

5.10练习 96

第6章契约式设计与继承 99

6.1关于本章 99

6.2超类和子类 99

6.3重新定义契约 100

6.3.1 Eiffel 语法 104

6.3.2小结 107

6.4不变式和继承 108

6.5以被确保的后验条件定义超类 109

6.6两种继承 116

6.7小结 117

6.8练习 117

第7章框定规则 119

7.1关于本章 119

7.2变化规格和框定规则 119

7.3使用不可变列表为put撰写框定规则 121

7.4使用“forall”为put撰写框定规则 128

7.5框定规则的类别 130

7.7关于预处理器的补充说明 132

7.6练习 132

第8章契约式设计的收益 137

8.1关于本章 137

8.2几种优点 137

8.3更优秀的设计 138

8.4提高可靠性 140

8.5更出色的文档 140

8.7支持复用 142

8.6简化调试 142

8.8契约式设计与防御性编程 143

8.8.1防止程序接受错误的输入 143

8.8.2给程序穿上“防弹衣” 144

8.8.3防御性编程 145

8.9契约的一些开销和限制 146

第9章观察者框架中的契约 149

9.1关于本章 149

9.2观察者框架 150

9.3不可变集合 152

9.4观察者的系缚和解缚 155

9.5通知(一个观察者) 156

9.6通知(多个观察者) 158

9.7性能问题 160

9.8框定规则 161

9.9保密 164

9.10练习 166

10.1关于本章 169

第10章满足先验条件 169

10.2例子 170

10.3满足并测试先验条件 170

10.4测试与检验 172

10.5一个简单的计数器类 173

10.6从用户角度看示例程序 174

10.7程序的内部结构 176

10.8程序的执行情况 178

10.9一个次要的细节 184

10.10小结 186

10.11练习 187

第11章Java范例 189

11.1关于本章 189

11.2为什么选择Java 190

11.3队列 190

11.3.1基本查询size() 192

11.3.2基本查询get() 193

11.3.3基本查询head() 193

11.3.5派生查询shallow Copy() 194

11.3.4派生查询isEmpty() 194

11.3.6构造方法Queue 195

11.3.7命令put 196

11.3.8命令remove 196

11.3.9小结 198

11.4字典 198

11.4.1名字 199

11.4.2不变式 200

11.4.3基本查询 200

11.4.5命令 201

11.4.4一个派生查询 201

11.4.6构造方法 202

11.4.7一组实现类 203

11.5没有iContract的Java 203

11.6测试先验条件 207

11.7练习 212

第12章契约式分析 215

12.1关于本章 215

12.2一个用例 215

12.4 withdrawCash用例的契约 217

12.3分析模型中的契约 217

12.5从分析到设计 220

12.6问题域和系统模型 221

12.7对象限制语言 224

12.8小结 225

参考资料 227

契约式设计的理解及其在C/C++语言中的运用 231

什么是契约——Eiffel的观点 236

契约思想的一个反面案例 242

索引 245

相关图书
作者其它书籍
返回顶部