Design by Contract原则与实践

当前位置:首页 > 计算机网络 > 软件工程/开发项目管理 > Design by Contract原则与实践

出版社:人民邮电出版社
出版日期:2003-10
ISBN:9787115115706
作者:米切尔(Mitchell Richard)
页数:252页

内容概要

Richard Mitchell是InferData公司的高级顾问,专门从事面向对象分析和设计。他曾经担任英国Brighton大学计算机系教授,长期从事面向对象技术的研究和教学。  
Jim Mckim 是Rensselaer理工研究所工程与科学院教授兼院长,从事面向对象软件开发的教学和咨询已经有10年多时间。
两位作者都曾经在Journal of Object-Oriented Programming和IEEE Comprting发表过很多关于:“契约式设计”和相关话题的文章。

书籍目录

第1章 契约式设计初探  1.1 概述  1.2 顾客管理器范例  1.3 一些问题  1.4 CUSTOMER_MANAGER的契约  1.5 临时总结  1.6 运行时检测  1.7 可靠的文档  1.8 小结  1.9 一言以蔽之  1.10 下一步工作 第2章 契约式设计的基本原则  2.1 关于本章  2.2 栈  2.3 区分命令和查询  2.4 命名规范  2.5 区分基本查询和派生查询  2.6 说明命令对基本查询的影响  2.7 用不变式确定恒定特性  2.8 类及其契约  2.9 基本查询是栈的一个概念模型  2.10 六大原则  2.11 下一步工作第3章 运用六大原则  3.1 关于本章  3.2 字典  3.3 特性分离与分类  3.4 后验条件  3.5 先验条件  3.6 不变式  3.7 关于字典的完整的契约级概括  3.8 小结  3.9 练习 第4章 契约的构造支持类-- 不可变列表  4.1 关于本章  4.2 支持线性结构  4.3 契约只涉及表达式  4.4 不可变列表  4.5 不可变列表的契约   4.5.1 基本查询   4.5.2 创建命令   4.5.3 派生查询count   4.5.4 派生查询preceded_by   4.5.5 派生查询item   4.5.6 派生查询is_equal   4.5.7 派生查询sublist  4.6 小结  4.7 练习 第5章 六大原则在QUEUE设计中的运用  5.1 关于本章  5.2 队列  5.3 remove特性的契约  5.4 将count作为一个派生特性  5.5 initialize特性的契约  5.6 head特性的契约  5.7 put特性的契约 5.8 更多派生查询  5.9 小结  5.10 练习 第6章 契约式设计与继承  6.1 关于本章  6.2 超类和子类  6.3 重新定义契约   6.3.1 eiffel语法   6.3.2 小结  6.4 不变式和继承  6.5 以被确保的后验条件定义超类  6.6 两种继承  6.7 小结  6.8 练习 第7章 框定规则  7.1 关于本章  7.2 变化规格和框定规则  7.3 使用不可变列表为put撰写框定规则  7.4 使用"forall"为put撰写框定规则  7.5 框定规则的类别  7.6 练习  7.7 关于预处理器的补充说明 第8章 契约式设计的收益  8.1 关于本章  8.2 几种优点  8.3 更优秀的设计  8.4 提高可靠性  8.5 更出色的文档  8.6 简化调试  8.7 支持复用  8.8 契约式设计与防御性编程   8.8.1 防止程序接受错误的输入   8.8.2 给程序穿上"防弹衣"   8.8.3 防御性编程  8.9 契约的一些开销和限制 第9章 观察者(observer) 框架中的契约  9.1 关于本章  9.2 观察者框架  9.3 不可变集合  9.4 观察者的系缚和解缚  9.5 通知(一个观察者)  9.6 通知(多个观察者)  9.7 性能问题  9.8 框定规则  9.9 保密  9.10 练习 第10章 满足先验条件  10.1 关于本章  10.2 例子  10.3 满足并测试先验条件  10.4 测试与检验  10.5 一个简单的计数器类  10.6 从用户角度看示例程序  10.7 程序的内部结构  10.8 程序的执行情况  10.9 一个次要的细节  10.10 小结  10.11 练习 第11章 Java范例 11.1 关于本章  11.2 为什么选择Java  11.3 队列   11.3.1 基本查询size()   11.3.2 基本查询get()   11.3.3 基本查询head()   11.3.4 派生查询isEmpty()   11.3.5 派生查询shallow Copy()   11.3.6 构造方法Queue   11.3.7 命令put   11.3.8 命令remove   11.3.9 小结  11.4 字典   11.4.1 名字   11.4.2 不变式   11.4.3 基本查询   11.4.4 一个派生查询   11.4.5 命令   11.4.6 构造方法   11.4.7 一组实现类  11.5 没有iContract的Java  11.6 测试先验条件  11.7 练习 第12章 契约式分析  12.1 关于本章  12.2 一个用例  12.3 分析模型中的契约  12.4 withdrawCash用例的契约  12.5 从分析到设计  12.6 问题域和系统模型  12.7 对象限制语言  12.8 小结  参考资料契约式设计的理解及其在C/C++语言中的运用什么是契约——EIFFEL的观点契约思想的一个反面案例索引

作者简介

《Design by Contract原则与实践》是国内第一本系统阐述“契约式设计”思想和方法的译作,深刻理解和充分发挥契约在面向对象软件设计中的作用。《Design by Contract原则与实践》通过Eiffel、Java实例透彻分析DbC思想方法。引入DbC六大原则和六大准则,指导你的应用实践。精辟分析DbC在C/C++语言中的应用。

图书封面


 Design by Contract原则与实践下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     一本好书,但这种思想未没广泛应用,出版时间是2003年,但过了这么久主流的一些面象对象语言都还未把这种思想在语言层面来实现,确实是比较遗憾。已经读过了一遍,但只是粗略的翻阅了一遍,里面很多东西还不是很明白,练习也都没有去看,准备再读一遍,下一个Eiffel编绎器来实践一遍。书后孟岩的几篇文章也很精彩。

精彩短评 (总计5条)

  •     感觉Design by contract更是一本关于如何设计和使用模块的书籍。
  •     DbC的理念介绍得很好,契约设计的思想非常有价值。孟岩在后面附上解释Eiffel里面契约思想的那篇文章也写得挺好,值得一读。
  •     不错的书,孟岩翻译的很好,可能是文化差异吧,还是感觉原汁原味的会比较好看。
  •     于boss有关的为数不多的中文书啊。。。 只有两章有点用 其它都是数据结构对比了。。。
  •     并不是翻译的水平差,而是这样的书本身没有价值。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024