Design by Contract原则与实践

出版时间:2003-10  出版社:人民邮电出版社  作者:米切尔(Mitchell Richard)  页数:252  字数:324000  译者:孟岩  
Tag标签:无  

内容概要

本书通过Eiffel和Java实例,阐述了"契约式设计(Design by Contract)"的思想原则和应用方法,帮助读者掌握如何在面向对象软件设计过程中应用契约。    全书分为12章。通过实例探讨了DbC的基本概念,引入了DbC的六大原则和六大准则,展示了六大原则的应用,分析了DbC和继承的关系,介绍了框定规则、DbC的好处和限制、观察者框架中的契约和先验条件检验;最后给出了一个Java范例,并探讨了契约在分析模型中的应用。附录部分是译者专门为C/C++程序员撰写的,提供用C/C++进行契约式设计的指导和建议。    本书适合面向对象软件工程师和面向对象语言程序员阅读。

作者简介

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的观点契约思想的一个反面案例索引

图书封面

图书标签Tags

评论、评分、阅读与下载


    Design by Contract原则与实践 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7