OCL-JML转换方法的研究及其在软件开发过程中的应用

OCL-JML转换方法的研究及其在软件开发过程中的应用

论文摘要

UML是在多种面向对象建模方法的基础上发展起来的建模语言,被广泛地用于软件系统的分析与设计。但是,UML缺少对下层实现的支持。在编码阶段,尽管很多的UML建模工具支持代码自动生成,即使用面向对象编程语言将来自设计阶段的类转换成实际的代码,如Java类代码框架。但是这些代码框架只是一个空空的架子,对于后续的编码没有什么实质的指导。在测试阶段,UML模型还可作为测试阶段的依据。不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和合作图;系统测试使用用例图来验证系统的行为。但是,这种依据不是精确的指导,只是作为测试人员的一种文档参考。UML在描述中层及低层的软件设计时被广泛地使用,近来又被用作一种架构描述语言。其主要优势有:面向对象的风格及相关模式;在大多数图表中表示组件和接口的能力;良好定义的过程和语义;代码的自动生成;对于具体领域的可扩展性等。但是,与标准的ADL相比,UML在作为ADL时有它的不足之处:形式化水平不足;鼓励对象连接架构,而不是接口连接架构;缺少对特定模式的支持;无法自动生成测试用例,缺少对测试的指导;对性能/安全性要求高的系统的描述困难等。OCL是UML规范的一个子规范,用来描述对象的约束和相互之间的关联关系。标准的UML模型对模型特性的描述主要是通过自然语言进行描述的,自然语言的描述存在着不精确和二义性,这在系统设计的时候还不是太大的问题,但要将UML模型转化为实际运行的程序,则要求消除这种模型表述的不确定性。OCL语言可以精确地描述模型的约束条件以及相互之间的关系,非常适合于模型驱动的开发。目前已经有许多UML建模工具支持OCL。本文提出了一种基于OCL-JML转换的解决方案:将带有OCL约束的UML图转换为带有JML注解的Java类代码框架,从而可以利用JML丰富的支撑工具进行调试和自动测试。基于OCL-JML的转换,一方面集成了软件开发流程的整个过程,使高层设计指导低层实现及测试;另一方面,弥补了UML在作为ADL时在指导测试方面的不足。文章定义了OCL-JML详细的形式化映射机制,分别描述了OCL基本数据类型、属性表达式、集合操作、迭代操作、前置/后置条件约束、不变式约束及其他有意义的OCL结构的映射规则。同时,本文给出了基于上述OCL-JML映射机制的工具JML-AddIn的实现框架,它是Rational Rose建模软件的插件。它可以辅助用户向Rose软件中的UML类图添加OCL约束,并按照己定义好的OCL-JML映射机制将添加的OCL约束映射到相应的JML规范,这些规范将被添加到相应的Java类框架代码中。

论文目录

  • 摘要
  • Abstract
  • 第一章 序论
  • 1.1 研究背景
  • 1.1.1 使用UML进行系统设计
  • 1.1.2 UML作为ADL
  • 1.1.3 问题总结
  • 1.2 解决方案
  • 1.2.1 JML
  • 1.2.2 OCL-JML转换
  • 1.2.3 JML-AddIn工具
  • 1.3 本文的主要贡献
  • 1.4 本文的组织结构
  • 第二章 基于OCL-JML转换的解决方案
  • 2.1 OCL
  • 2.2 JML及其支撑工具
  • 2.2.1 JML
  • 2.2.2 JML的支撑工具
  • 2.3 OCL-JML转换的意义
  • 2.4 OCL-JML转换的可行性分析
  • 2.4.1 OCL和JML都是强类型语言
  • 2.4.2 OCL和JML的断言和表达式都是虚的(pure)
  • 2.4.3 OCL和JML都是DBC语言
  • 2.5 小结
  • 第三章 OCL-JML映射机制
  • 3.1 OCL抽象语法树
  • 3.2 基本数据类型的映射机制
  • 3.2.1 基本操作表达式
  • 3.2.2 布尔类型
  • 3.2.3 其他类型
  • 3.3 属性表达式
  • 3.3.1 导航表达式
  • 3.4 集合操作的映射机制
  • 3.3.1 等价的映射机制
  • 3.3.2 公共操作的映射机制
  • 3.3.3 Set类型的操作符的映射机制
  • 3.3.4 Bag类型的操作符的映射机制
  • 3.3.5 Sequence操作符的映射机制
  • 3.5 迭代表达式的映射机制
  • 3.6 其他OCL结构的映射机制
  • 3.7 约束的转换机制
  • 3.7.1 上下文表达式
  • 3.7.2 方法规范的转换机制
  • 3.7.3 类规范的转换机制
  • 3.8 小结
  • 第四章 JML-AddIn工具的实现框架
  • 4.1 Rational Rose系列建模工具的优点
  • 4.2 Rational Rose工具的扩展接口
  • 4.3 JML-AddIn工具的实现框架
  • 4.3.1 用户界面
  • 4.3.2 接口模块
  • 4.3.3 OCL语法检查工具
  • 4.3.4 JML代码翻译器
  • 4.4 小结
  • 第五章 应用实例
  • 5.1 实例描述
  • 5.1.1 用例图
  • 5.1.2 类图
  • 5.1.3 接口
  • 5.2 实例中JML-AddIn工具的应用
  • 5.2.1 约束添加
  • 5.2.2 代码生成
  • 5.2.3 高层设计对下层实现的指导
  • 5.2.4 自动化测试
  • 5.3 小结
  • 第六章 总结与展望
  • 6.1 本文总结
  • 6.2 相关工作和展望
  • 第七章 参考文献
  • 致谢
  • 附录 攻读学位期间发表的学术论文目录
  • 相关论文文献

    标签:;  ;  

    OCL-JML转换方法的研究及其在软件开发过程中的应用
    下载Doc文档

    猜你喜欢