基于AOP的契约式开发方法研究及其语言与工具支持

被引量 : 0次 | 上传用户:snowwonsnow
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序的正确性是软件开发中的核心问题,也是软件质量的基础,为了能够解决该问题,开发出无错的软件,人们提出了许多方法。形式化方法是其中的一种,它试图用严格的数学理论来规范和指导程序设计,从而保证软件的正确性。但是,形式化方法有着严格的数学理论,对开发者的要求比较高,因而,在实践中的应用并不是非常普遍。契约式开发方法(Design By Contract,DBC)[1]是一种借鉴了形式化方法优点而又易于实践的开发方法学,它引入了形式化方法中的不变式、前置谓词和后置谓词等概念,来精确刻画程序模块的语义。契约式方法提供了方便的定义规约和检查规约的手段,使得开发者在实际开发过程中能够真正利用形式化方法的优点。在面向对象开发领域中,契约式开发已经是一种被普遍接受的用于提高软件可靠性的系统化方法。但是,契约式开发也有其不利的方面,比如编写程序时的“额外负担”、不同关注点的代码纠缠等等,因此,主流的面向对象语言并未提供对它的支持。面向方面编程[2](Aspect-Oriented Programming,AOP)是一种新兴的编程技术,近年来已逐渐成为程序设计领域的热点。它强调关注点的分离和横切关注点的封装,被人们认为是解决面向对象系统固有问题的“灵丹妙药”。AOP的语言构造与契约式开发之间存在着天然的对应关系,这一特点恰好可以弥补契约式开发方法的不利方面,因此,利用AOP技术在面向对象系统中支持契约式开发是提高软件系统可靠性的途径。目前存在的将AOP实现应用于契约式开发的方法主要分为两类:一类是使用AOP的具体实现语言(如AspectJ)来支持主流的面向对象语言的契约式开发。在这种情况下,与契约相关的代码从业务逻辑代码中彻底分离出来了,节省了大量重复的契约检查代码。但是,这类方法依赖于语言的具体实现细节,要求程序员掌握AOP实现语言的复杂语法,对程序员而言是一种挑战和负担;再则,这种方法只能用于实现阶段,而无法在设计阶段对契约进行精确的定义和描述。第二类方法则借助于相对比较成熟和完善的规范语言(如OCL)进行契约约束,然后通过一定的转换规则将其转换成AspectJ等AOP实现语言。这类方法可以在设计阶段精确地描述各种谓词和不变式条件,但是,鉴于大多数规范语言都是建立在形式语言的基础之上的,因此其表达式一般比较冗长,理解起来不直观;而且,因为OCL等规范语言和AspectJ等AOP实现语言在抽象程度上有着很大的差异,从而导致两者在转换的实现上存在着一定的困难。在本文中,作者分别深入研究了面向方面编程技术和契约式开发,发现了两者之间的联系,结合目前AOP在契约式开发中暴露出来的问题,提出了一种改善和提高基于AOP的契约式开发方法的方案。该方案集成了基于AOP的契约式软件开发流程的整个过程,填补了基于AOP的契约式开发中上层设计和下层实现之间的鸿沟,将两者融会贯通。本文首先给出了AOP和DBC之间的对应关系,在此基础上,提出了一种基于AOP的契约描述语言(ACDL),该语言以AOP的方式表示契约,可以在设计阶段就精确而直观地描述类不变式、方法的前置、后置条件,而不依赖于任何AO的语言细节;另一方面,由于其在语言的表达风格上接近于AO,因此,可以很容易地向AspectJ等AOP实现语言转换。同时,本文对ACDL语言与上层设计和下层实现之间的联系进行了阐述,分析了他们之间转换的可行性,并探讨了ACDL语言在实际软件开发过程中的作用和意义。最后,本文给出了ACDL语言辅助工具AJMaker的实现框架,该工具可以根据用户给出的不变式和谓词信息自动生成ACDL代码,也可将ACDL代码解析成AspectJ代码。
其他文献
目的:探讨使用甲硝唑栓联合干扰素栓治疗慢性宫颈炎的效果。方法:选取2017年1月至2017年8月期间余姚市丈亭中心卫生院妇产科收治的86例慢性宫颈炎患者作为研究对象。根据随机数
随着我国配电网自动化的不断发展,对配电网的监控及故障处理提出了更高的要求,作为馈线自动化的基础控制单元,配电自动化终端对于提高配电网的供电质量以及可靠性有着重要的作用
以50%乙醇为溶剂,采用紫外分光光度法测定芒果叶提取物中芒果苷的含量。结果表明,芒果苷在319nm波长处有最大吸收峰,且峰形一致,无杂峰干扰;经线性关系考察,在5~50μg/mL范围
目的探讨产程中镇痛分娩配合体位护理的价值。方法按照随机数字表法,将2016年2月—2017年2月100例分娩产妇分组。对照组采取传统分娩护理,干预组产程中采取镇痛分娩配合体位
写作是语言综合能力的体现,也是英语学习者较难掌握的技能之一。学生在写作过程中会遇到种种难题,诸如如何下笔,句子及段落之间的衔接与连贯,等等。对于中国学生来讲,这些问
随着国际大型媒介集团抢滩中国市场步伐的加快,以及国内媒介市场竞争的加剧,中国媒介产业对于资本的需求越来越迫切,资本运营已成为国内媒介高度关注的话题。证券、借贷等金
<正> (一) 水稻高产栽培的灌溉与排水,必須根据水稻的需水量和需水特性。稻田的需水量由三部份組成:叶面蒸騰量,科間蒸发量,田間渗漏量。据广西各灌溉試验站历年来的試驗結果
城市房屋拆迁法律制度,是在土地所有权与房屋所有权分离的基础上建立起来的制度,是我国房地产法律制度和城市建设法律制度的重要组成部分。其涵义是指在城市规划区国有土地上
本研究旨在获得一种高效转染水牛细胞的方法。本研究首先以水牛胎儿成纤维细胞(BFF)为研究对象,建立、优化核转染法;随后,比较核转染法、脂质体法、电穿孔法转染BFF的效率;最
本课题主要目的是基于“编译原理”的教学现状,定义了类C教学语言。该类C教学语言类似于C语言的一个子集,具有清楚的词法和语法定义,具备一般高级编译语言的必需部分(如函数