在Java中使用契约式设计.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Java中使用契约式设计

第23 卷第ll 期 计算机应用与软件 VoI. 23 ,No. ll 2006 年ll 月 Computer AppIications and Software Nov. 2006 在Java 中使用契约式设计 孙 巨 (苏州大学 江苏 苏州2l502l ) 摘 要 契约式设计DBC 是面向对象程序设计的一项技术,其目的在于提高软件的质量、可靠性与可复用性。Java 语言本身还 不直接支持契约式设计,但借助一些外部辅助工具可以使该项技术获得应用。对此,给出了两种实现方法:一种是使用预编译器;另 一种是使用面向方面的程序设计技术。 关键词 契约式设计DBC Java JMSAssert 预编译器 面向方面的程序设计AOP USING DESIGN BY CONTRACT IN JAVA SOFT ARE DEVELOPMENT Sun Ju (Soochow Uniuersity ,Suzhou Jiangsu 215021 ,China ) Abstract Design by Contract (DBC )is a technigue in object-oriented software design whose goaI is to ensure software guaIity ,reIiabiIity , and reusabiIity. Java programming Ianguage does not directIy support design by contract as yet. However ,we can make use of some externaI as- sistant tooIs to impIement DBC for Java. Here ,this paper proposes two methods. One way is to use preprocessors ;the other is to use Aspect-O- riented Programming. Keywords Design by contract Java JMSAssert preprocessor Aspect-oriented programming 任,没有哪一方可以只享有权利而不承担义务。因此,契约式设 0 引 言 计通过尽可能地准确规定出组件之间的通信,以及通信过程中 的相互责任和对结果的预期来建立一种强制机制,以最大可能 在用Java 语言开发企业软件时,我们经常需要与外部组件 地实现程序的Bug-free 。换言之,就是明确定义出类或方法的 打交道,不管是同以往的应用程序、外部系统还是和第三方的库 客户方(即调用方)与类或方法的提供方(即定义方)这两者之 通信,在使用了非自身所能控制的组件时,也就有了非所预期结 间的约束条件,并将它们由原先是隐含在说明文档里的一种形 果存在的风险。软件设计大师Bertrand Meyer 在其EiffeI 编程 式转变成明确的代码表示出来并加以检查。 语言中展示了契约式设计方法,通过明确设计与定义组件调用 契约式设计源自于断言的思想。所谓断言,实际上就是一 间的契约,来降低这种风险的存在。这一技术对于其它面向对 个关于软件系统状态的布尔表达式。在系统运行时,通过对程 象的程序设计语言来讲,也极具有指导价值。虽然,它们不能像 序执行过程中的某个特定点计算断言值,来确定程序中是否有 Ei

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档