UML状态图模型检查技术及工具实现

UML状态图模型检查技术及工具实现

论文摘要

UML已经是软件建模方面的标准语言,UML状态图描述系统在其生命周期中的动态行为。随着系统规模的扩大和复杂度的提高,UML状态图往往包含设计者所未预料到的隐患,通过模型检查技术对UML状态图进行穷举检验就成为一个重要课题。本文首先对一个UML状态图的子集完成形式化分析,这个子集包含层次、并发等语义,可以满足一般应用需求;形式化分析这个UML状态图的子集及其各元素的语法和语义后,对此状态图子集进行形式化定义;在形式化定义基础上,本文提出对状态图进行模型检查的一种新方法,这个新的方法包括状态图山脉算法和迁移提取算法。状态图山脉算法用在UML状态图转化到中间语言XML过程中,这个算法将UML状态图转化为三维视图,扩展UML状态图中迁移和状态的语义,使状态拥有“层”这个新属性,从而可以根据层来为图中所有状态分类;使迁移拥有“迹”这个新属性,从而可以根据迹将迁移分为平地走、上山、下山与先下山后上山四类,从而根据迁移的类型计算出迁移的进入状态集和退出状态集,最终使UML状态图形式化转化为文本格式的XML文件。迁移提取算法用在XML文件转化到Promela文件过程中,不同于以往提取状态的算法,该算法提取的是迁移,把XML中的迁移块提取并置于Promela文件中的主循环中。由于状态图中的状态具有静止特性,而动态的迁移是状态图动态特征的主要体现,所以提取迁移相比提取状态来说,状态图动态特征更加明显。事件处理方面,本文用一个先入先出的事件队列实现状态图的事件处理,Promela代码中,事件队列模块和迁移模块置于程序主模块中,实现UML状态图run-to-completion步语义。本文实现软件SC2Spin,应用状态图山脉算法、迁移提取算法和事件队列,可以将一个UML状态图转化为Spin的输入语言Promela,用户只要在Promela文件头加入状态图中所使用变量的定义和初始化,就可以直接输入Spin来验证UML状态图的死锁、活锁等错误和时序逻辑公式。

论文目录

  • 摘要
  • ABSTRACT
  • 第1章 绪论
  • 1.1 研究背景
  • 1.1.1 统一建模语言UML
  • 1.1.2 UML 状态图
  • 1.1.3 模型检查
  • 1.1.4 Spin/Promela
  • 1.2 模型检查状态图的研究现状
  • 1.2.1 国外的研究
  • 1.2.2 国内的研究
  • 1.3 本课题的研究内容
  • 1.4 本文组织结构
  • 第2章 形式化分析UML 状态图
  • 2.1 统一建模语言UML
  • 2.1.1 UML 简介
  • 2.1.2 UML 的目标
  • 2.1.3 UML 概念范围及分类
  • 2.1.4 UML 视图
  • 2.2 UML 状态机视图
  • 2.2.1 事件
  • 2.2.2 状态
  • 2.2.3 迁移
  • 2.2.4 复合状态
  • 2.2.5 伪状态
  • 2.3 UML 状态图的形式化
  • 2.3.1 UML 状态图的形式化定义
  • 2.3.2 操作语义和run-to-completion 步语义
  • 2.4 小结
  • 第3章 模型检查状态图
  • 3.1 模型检查
  • 3.2 线性时序逻辑LTL
  • 3.3 模型检查工具
  • 3.3.1 模型检查工具Spin
  • 3.3.2 模型检查工具SMV
  • 3.4 模型检查状态图的难点
  • 3.5 模型检查状态图的一般方法
  • 3.5.1 使用SMV 模型检查RSML
  • 3.5.2 使用SMV 模型检查STATEMATE
  • 3.5.3 使用 Spin 模型检查 STATEMATE
  • 3.5.4 使用Spin 模型检查UML 状态图
  • 3.5.5 使用 vUML 模型检查 UML 状态图
  • 3.6 小结
  • 第4章 UML 状态图模型检查算法
  • 4.1 状态图山脉算法
  • 4.2 迁移提取算法
  • 4.3 转化算法分析
  • 4.3.1 迁移冲突问题
  • 4.3.2 层次化问题
  • 4.3.3 并发问题
  • 4.3.4 通信问题
  • 4.3.5 步语义问题
  • 4.3.6 事件队列的模拟
  • 4.3.7 选择 Spin 作为转化目标
  • 4.4 小结
  • 第5章 SC2Spin 的设计、实现和使用
  • 5.1 SC2Spin 的设计
  • 5.2 SC2Spin 的实现
  • 5.3 SC2Spin 的使用
  • 5.4 小结
  • 第6章 实验
  • 6.1 采用方法一的哲学家就餐问题
  • 6.1.1 问题描述
  • 6.1.2 SC2Spin 生成的代码分析
  • 6.1.3 验证结果
  • 6.2 采用方法二的哲学家就餐问题
  • 6.2.1 问题描述
  • 6.2.2 SC2Spin 生成的代码分析
  • 6.2.3 验证结果
  • 6.3 采用方法三的哲学家就餐问题
  • 6.3.1 问题描述
  • 6.3.2 验证结果
  • 6.4 囚犯问题
  • 6.4.1 问题描述
  • 6.4.2 验证结果
  • 6.5 小结
  • 结论
  • 参考文献
  • 附录A 攻读学位期间所发表的论文和参加的项目
  • 致谢
  • 相关论文文献

    标签:;  ;  ;  ;  

    UML状态图模型检查技术及工具实现
    下载Doc文档

    猜你喜欢