OCL约束验证与实现方法研究

来源 :江西财经大学 | 被引量 : 0次 | 上传用户:apap4444
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
UML是一种通用的可视化建模语言,用于对软件进行描述、可视化处理、构建软件系统的文档。作为UML标准的一部分,对象约束语言(Object ConstraintLanguage,OCL)用来精确地描述模型的约束条件以及相互之间的关系。OCL是一种声明式语言,也是一种形式化语言。 施加于模型之上的三种常用OCL约束是前置条件、后置条件、不变式。前置条件表示当操作被激发时输入参数和模型状态的可接受值。后置条件表明操作完成时必须满足的条件,它表示操作完成时检测该操作的结果值和模型的状态。不变式是在属性的生命期内一直保持为真的规则。为了保证程序执行过程中这些约束得以满足,需要对约束进行验证。在运行时检测约束的冲突有助于软件系统的开发,尤其是大型系统和嵌入式实时系统的开发。 本文的目标是对模型施加必要的约束,得到能检测出运行时约束冲突的代码,这就要求分别为前置条件、后置条件、不变式设计出相应的代码模式。代码模式描述了OCL约束对应的可执行的Java代码(即OCL-Java代码)如何被插入到Java程序中的方式。在程序运行时一旦检测到约束的冲突,代码模式能够抛出相应的异常。 文中利用UML建模工具为系统建立模型,并基于OCL理论为该模型施加必要的约束,从而得到精确的模型。应用建模工具的自动生成代码功能得到的模型对应的Java程序中,OCL约束只以注释形式出现,本文实现了从程序中抽取出这些OCL约束。由于OCL不是一种编程语言,其约束不能在程序中直接执行,本文使用的目标语言是Java,因此要把OCL约束转化为可直接执行的Java代码(即OCL-Java代码)。为此,本文详细阐述了OCL约束转化为OCL-Java代码的实现过程。为了能在程序运行时检测出冲突的约束,需要把OCL-Java代码插入到Java程序中,使之与Java程序一起执行,从而能有效地验证声明的约束。针对简单的代码插入方案和封装方法存在的不足,本文提出了改进的代码插入方案,分别设计了前置条件代码模式、后置条件代码模式、不变式代码模式,这三种代码模式都应用了异常处理技术从而能够捕获冲突的约束。本文充分应用了Java解析器能解析Java文件的特性,实现了把OCL-Java代码插入到Java程序中。最后,应用本文提出的OCL约束验证框架在实例模型的基础上分别对不变式、前置条件、后置条件进行了验证。
其他文献
基于哺乳动物的视觉模型提出的第三代人工神经网络模型-脉冲耦合神经网络(PCNN: Pulse Coupled Neural Network),已经广泛应用在图像处理和路径优化问题求解中。该人工神经网
计算机博弈是人工智能领域所公认的最具有挑战性的课题之一,而中国象棋计算机博弈比国际象棋计算机博弈难度更大、更复杂,并且研究者少且有关中国象棋计算机博弈的资料更是匮乏
基于网络的教学系统,使分布在各地的学生、老师不再需要面对面地进行教学活动,这种方式的教学活动得到越来越多的人的认可与支持,远程教学也逐渐普及。智能答疑作为教学活动
随着科学技术的飞速发展,定位技术和人们的日常生活越来越紧密地联系在了一起,从无人驾驶到GPS,定位技术在许多行业中都扮演着极为重要的绝色。当我们把最新的机器智能领域中的
本文首先介绍交换和CPU流量控制的基本概念及国内外研究现状,并在随后的三个章节中详细分析了它们各自的功能特性和发展概况。为了更好地设计出全新的交换机CPU流量控制,本文
近年来,随着市场经济体制的逐步确立、对外改革开放政策的稳定实施、国内外政治环境的不断改善,我国的国民经济出现了空前的、快速增长的好势头;全球范围内的信息技术革命和知识
移动机器人是一类在复杂的环境下进行工作的,具有自规划、自组织、自适应能力的机器人。移动机器人的研究开始于上世纪六十年代,经过近半个世纪的发展,机器人技术越来越先进全面
近两年来,互联网搜索空前发展,搜索内容早已超越了网页搜索的限制,音乐、图像、视频等复杂信息的搜索大量涌现,因此对图像信息的检索技术得到了大规模的应用。目前,主流搜索
在产品设计与制造过程、产品展示与预览、操作与培训等诸多领域,与传统的文字叙述、简单图示相比,三维动画/仿真具有生动、形象、直观、准确的优势,易于理解和接受,其需求越
本体作为一种能在语义和知识层次上描述概念的建模工具,可有效地解决知识工程中知识共享和重用两大重点问题。近几年本体已经成为人工智能领域的研究热点,主要研究本体表示、