当前位置:主页 > 法律论文 > 合同法论文 >

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

发布时间:2023-04-07 05:28
  程序的正确性是软件开发中的核心问题,也是软件质量的基础,为了能够解决该问题,开发出无错的软件,人们提出了许多方法。形式化方法是其中的一种,它试图用严格的数学理论来规范和指导程序设计,从而保证软件的正确性。但是,形式化方法有着严格的数学理论,对开发者的要求比较高,因而,在实践中的应用并不是非常普遍。契约式开发方法(Design By Contract,DBC)[1]是一种借鉴了形式化方法优点而又易于实践的开发方法学,它引入了形式化方法中的不变式、前置谓词和后置谓词等概念,来精确刻画程序模块的语义。契约式方法提供了方便的定义规约和检查规约的手段,使得开发者在实际开发过程中能够真正利用形式化方法的优点。在面向对象开发领域中,契约式开发已经是一种被普遍接受的用于提高软件可靠性的系统化方法。但是,契约式开发也有其不利的方面,比如编写程序时的“额外负担”、不同关注点的代码纠缠等等,因此,主流的面向对象语言并未提供对它的支持。 面向方面编程[2](Aspect-Oriented Programming,AOP)是一种新兴的编程技术,近年来已逐渐成为程序设计领域的热点。它强调关注点的分离和横切关注点的...

【文章页数】:93 页

【学位级别】:硕士

【文章目录】:
摘要
Abstract
第一章 引言
    1.1 研究背景
        1.1.1 契约式开发
        1.1.2 面向方面编程
        1.1.3 在契约式开发中应用AOP技术
        1.1.4 问题总结
    1.2 解决方案
        1.2.1 AOP-DBC对应关系
        1.2.2 ACDL语言
        1.2.3 AJMaker工具
    1.3 本文的主要贡献
    1.4 本文的组织结构
第二章 面向方面编程
    2.1 AOP产生背景
    2.2 面向方面编程概述
        2.2.1 AOP核心思想
        2.2.2 什么是Aspect
        2.2.3 AOP特性
        2.2.4 AOP的软件开发过程
        2.2.5 AOP的传统应用领域
    2.3 面向方面编程的实现技术
        2.3.1 AOP语言规范
        2.3.2 AOP的语言实现
        2.3.3 AOP的织入过程
        2.3.4 AspectJ-Java的AOP实现
    2.4 面向方面编程的研究内容
        2.4.1 面向方面的软件工程
        2.4.2 面向方面的程序分析、度量与测试
    2.5 小结
第三章 AOP在契约式开发中的应用
    3.1 契约式开发
        3.1.1 在Observer模式中支持契约
        3.1.2 契约式开发和单元测试
        3.1.3 DBC和OCL
    3.2 AOP增强契约式开发
        3.2.1 模块化契约
        3.2.2 对应关系
        3.2.3 使用AspectJ支持契约
    3.3 国内外相关研究工作
        3.3.1 DOT
        3.3.2 OCLE
        3.3.3 其他
    3.4 小结
第四章 ACDL语言
    4.1 设计目的
        4.1.1 独立描述约束
        4.1.2 无副作用
        4.1.3 详细的上下文信息
        4.1.4 可转换性
        4.1.5 灵活性
        4.1.6 目标用户
    4.2 ACDL语言特征
    4.3 语言描述
        4.3.1 contract
        4.3.2 checkpoint
        4.3.3 condition
            4.3.3.1 before
            4.3.3.2 after
            4.3.3.3 beforeAndAfter
        4.3.4 关于不变式检查的一些讨论
        4.3.5 ACDL中的抽象机制
        4.3.6 语言框架
        4.3.7 集合操作
            4.3.7.1 集合公共操作
            4.3.7.2 Set集合的操作符
            4.3.7.3 Bag集合的操作符
            4.3.7.4 Sequence集合的操作符
            4.3.7.5 集合操作实例
    4.4 ACDL主要语法规则
    4.5 目标语言
    4.6 使用ACDL集成DBC软件开发流程
        4.6.1 ACDL与上层设计
            4.6.1.1 VDM
            4.6.1.2 VDM-ACDL转换的可行性分析
            4.6.1.3 小结
        4.6.2 ACDL与下层实现
    4.7 小结
第五章 AJMaker工具的实现框架
    5.1 AJMaker框架
    5.2 代码生成模块的实现
        5.2.1 契约描述
        5.2.2 代码生成机制
        5.2.3 用户接口
            5.2.3.1 为类添加不变式条件约束
            5.2.3.2 为方法添加前置/后置条件约束
            5.2.3.3 代码生成
    5.3 转换解析模块的实现
        5.3.1 简单映射
        5.3.2 集合操作映射
        5.3.3 @pre的处理
    5.4 契约的异常处理
    5.5 小结
第六章 总结与展望
    6.1 关于ACDL语言的一些讨论和总结
    6.2 对未来工作的展望
第七章 参考文献
致谢
附录 攻读学位期间发表的学术论文目录



本文编号:3785182

资料下载
论文发表

本文链接:https://www.wllwen.com/falvlunwen/hetongqiyue/3785182.html


Copyright(c)文论论文网All Rights Reserved | 网站地图

版权申明:资料由用户1381d***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱[email protected]