注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語(yǔ)言/工具Design by Contract原則與實(shí)踐

Design by Contract原則與實(shí)踐

Design by Contract原則與實(shí)踐

定 價(jià):¥33.00

作 者: [美]Richard Mitchell,[美]Jim Mckim著;孟巖譯
出版社: 人民郵電出版社
叢編項(xiàng): IT Trend系列叢書(shū)
標(biāo) 簽: 軟件開(kāi)發(fā)

ISBN: 9787115115706 出版時(shí)間: 2003-01-01 包裝: 膠版紙
開(kāi)本: 23cm 頁(yè)數(shù): 280 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

本書(shū)凝聚作者多年的實(shí)踐和教學(xué)經(jīng)驗(yàn),通過(guò)Eiffel和Java的實(shí)例闡述了DBC的主要原則,并教讀者如何實(shí)踐這些原則,撰寫(xiě)優(yōu)質(zhì)高效的契約。譯者孟巖還特別撰寫(xiě)了《契約式設(shè)計(jì)的理解及其在C/C++中的應(yīng)用》作為本書(shū)的附錄,討論了DBC在C/C++語(yǔ)言中的應(yīng)用。什么是DbC?DesignbyContract(DBC,契約式設(shè)計(jì))是面向?qū)ο筌浖髱烞ertrandMeyer對(duì)軟件構(gòu)造方法的一個(gè)重大貢獻(xiàn),無(wú)論是在形式化的數(shù)學(xué)證明中,還是在實(shí)踐運(yùn)用中,都被證明是大幅改善軟件工程質(zhì)量的有效手段。該方法在Eiffel編程語(yǔ)言中獲得直接支持,并且可以通過(guò)輔助工具在Java語(yǔ)言中運(yùn)用。國(guó)內(nèi)第一本系統(tǒng)闡述“契約式設(shè)計(jì)”思想和方法的譯作深刻理解和充分發(fā)揮契約在面向?qū)ο筌浖O(shè)計(jì)中的作用本書(shū)特色:通過(guò)Eiffel、Java實(shí)例透徹分析DbC思想方法。引入DbC六大原則和六大準(zhǔn)則,指導(dǎo)你的應(yīng)用實(shí)踐。精辟分析DbC在C/C++語(yǔ)言中的應(yīng)用。本書(shū)通過(guò)Eiffel和Java實(shí)例,闡述了“契約式設(shè)計(jì)(DesignbyContract)”的思想原則和應(yīng)用方法,幫助讀者掌握如何在面向?qū)ο筌浖O(shè)計(jì)過(guò)程中應(yīng)用契約。全書(shū)分為12章。通過(guò)實(shí)例探討了DbC的基本概念,引入了DbC的六大原則和六大準(zhǔn)則,展示了六大原則的應(yīng)用,分析了DbC和繼承的關(guān)系,介紹了框定規(guī)則、DbC的好處和限制、觀察者框架中的契約和先驗(yàn)條件檢驗(yàn);最后給出了一個(gè)Java范例,并探討了契約在分析模型中的應(yīng)用。附錄部分是譯者專(zhuān)門(mén)為C/C++程序員撰寫(xiě)的,提供用C/C++進(jìn)行契約式設(shè)計(jì)的指導(dǎo)和建議。本書(shū)適合面向?qū)ο筌浖こ處熀兔嫦驅(qū)ο笳Z(yǔ)言程序員閱讀。第一章試讀第8章精彩節(jié)選

作者簡(jiǎn)介

  Richard Mitchell是InferData公司的高級(jí)顧問(wèn),專(zhuān)門(mén)從事面向?qū)ο蠓治龊驮O(shè)計(jì)。他曾經(jīng)擔(dān)任英國(guó)Brighton大學(xué)計(jì)算機(jī)系教授,長(zhǎng)期從事面向?qū)ο蠹夹g(shù)的研究和教學(xué)。Jim Mckim 是Rensselaer理工研究所工程與科學(xué)院教授兼院長(zhǎng),從事面向?qū)ο筌浖_(kāi)發(fā)的教學(xué)和咨詢(xún)已經(jīng)有10年多時(shí)間。兩位作者都曾經(jīng)在Journal of Object-Oriented Programming和IEEE Comprting發(fā)表過(guò)很多關(guān)于:“契約式設(shè)計(jì)”和相關(guān)話題的文章。

圖書(shū)目錄

第1章  契約式設(shè)計(jì)初案
  1.1  概述
  1.2  顧客管理器范例
  1.3  一些問(wèn)題
  1.4  CUSTOMER_MANAGER的契約
  1.5  臨時(shí)總結(jié)
  1.6  運(yùn)行時(shí)檢測(cè)
  1.7  可靠的文檔
  1.8  小結(jié)
  1.9  一言以蔽之
  1.10  練習(xí)
第2章  契約式設(shè)計(jì)的基本原則
  2.1  關(guān)于本章
  2.2  棧
  2.3  區(qū)分命令和查詢(xún)
  2.4  命名規(guī)范
  2.5  區(qū)分基本查詢(xún)和派生查詢(xún)
  2.6  說(shuō)明命令對(duì)基本查詢(xún)的影響
  2.7  用不變式確定恒定特性
  2.8  類(lèi)及其契約
  2.9  基本查詢(xún)是棧的一個(gè)概念模型
  2.10  六大原則
  2.11  練習(xí)
第3章  運(yùn)用六大原則
  3.1  關(guān)于本章
  3.2  字典
  3.3  特性分離與分類(lèi)
  3.4  后驗(yàn)條件
  3.5  先驗(yàn)條件
  3.6  不變式
  3.7  關(guān)于字典的完整的契約級(jí)概括
  3.8  小結(jié)
  3.9  練習(xí)
第4章  契約的構(gòu)造支持類(lèi)——不可變列表
  4.1  關(guān)于本章
  4.2  支持線性結(jié)構(gòu)
  4.3  契約只涉及表達(dá)式
  4.4  不可變列表
  4.5  不可變列表的契約
  4.6  小結(jié)
  4.7  練習(xí)
第5章  六大原則在QUEUE設(shè)計(jì)中的運(yùn)用
  5.1  關(guān)于本章
  5.2  隊(duì)列
  5.3  remove特性的契約
  5.4  將count作為一個(gè)派生特性
  5.5  initialize特性的契約
  5.6  head特性的契約
  5.7  put特性的契約
  5.8  更多派生查詢(xún)
  5.9  小結(jié)
  5.10  練習(xí)
第6章  契約式設(shè)計(jì)與繼承
  6.1  關(guān)于本章
  6.2  超類(lèi)和子類(lèi)
  6.3  重新定義契約
  6.4  不變式和繼承
  6.5  以被確保的后驗(yàn)條件定義超類(lèi)
  6.6  兩種繼承
  6.7  小結(jié)
  6.8  練習(xí)
第7章  框定規(guī)則
  7.1  關(guān)于本章
  7.2  變化規(guī)格和框定規(guī)則
  7.3  使用不可變列表為put撰寫(xiě)框定規(guī)則
  7.4  使用“forall”為put撰寫(xiě)框定規(guī)則
  7.5  框定規(guī)則的類(lèi)別
  7.6  練習(xí)
  7.7  關(guān)于預(yù)處理器的補(bǔ)充說(shuō)明
第8章  契約式設(shè)計(jì)的收益
  8.1  關(guān)于本章
  8.2  幾種優(yōu)點(diǎn)
  8.3  更優(yōu)秀的設(shè)計(jì)
  8.4  提高可靠性
  8.5  更出色的文檔
  8.6  簡(jiǎn)化調(diào)試
  8.7  支持復(fù)用
  8.8  契約式設(shè)計(jì)與防御性編程
  8.9  契約的一些開(kāi)銷(xiāo)和限制
第9章  觀察者框架中的契約
  9.1  關(guān)于本章
  9.2  觀察者框架
  9.3  不可變集合
  9.4  觀察者的系縛和解縛
  9.5  通知(一個(gè)觀察者)
  9.6  通知(多個(gè)觀察者)
  9.7  性能問(wèn)題
  9.8  框定規(guī)則
  9.9  保密
  9.10  練習(xí)
第10章  觀察者框架中的契約
  10.1  關(guān)于本章
  10.2  例子
  10.3  滿足并測(cè)試稱(chēng)驗(yàn)條件
  10.4  測(cè)試與檢驗(yàn)
  10.5  一個(gè)簡(jiǎn)單的計(jì)數(shù)器類(lèi)
  10.6  從用戶(hù)角度看示例程序
  10.7  程序的內(nèi)部結(jié)構(gòu)
  10.8  程序的招待情況
  10.9  一個(gè)次要的細(xì)節(jié)
  10.10  小結(jié)
  10.11  練習(xí)
第11章  Java范例
  11.1  關(guān)于本章
  11.2  為什么選擇Java
  11.3  隊(duì)列
  11.4  字典
  11.5  沒(méi)有iContract的Java
  11.6  測(cè)試先驗(yàn)條件
  11.7  練習(xí)
第12章  契約式分析
  12.1  關(guān)于本章
  12.2  一個(gè)用例
  12.3  分析模型中的契約
  12.4  withdrawCash用例的契約
  12.5  從分析到設(shè)計(jì)
  12.6  問(wèn)題域和系統(tǒng)模型
  12.7  對(duì)象限制語(yǔ)言
  12.8  小結(jié)
參考資料
契約式設(shè)計(jì)的理解及其在C/C++語(yǔ)言中的運(yùn)用
什么是契約——Eiffel的觀點(diǎn)
契約思想的一個(gè)反面案例
索引

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)