收藏 分享(赏)

列控系统规范验证的反例可视化研究.doc

上传人:dreamzhangning 文档编号:4206670 上传时间:2018-12-15 格式:DOC 页数:57 大小:1.76MB
下载 相关 举报
列控系统规范验证的反例可视化研究.doc_第1页
第1页 / 共57页
列控系统规范验证的反例可视化研究.doc_第2页
第2页 / 共57页
列控系统规范验证的反例可视化研究.doc_第3页
第3页 / 共57页
列控系统规范验证的反例可视化研究.doc_第4页
第4页 / 共57页
列控系统规范验证的反例可视化研究.doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、列控系统规范验证的反例可视化研究i列控系统规范验证的反例可视化研究李志斌 陶然摘 要:列控系统的规范已逐渐成形,而且对于列控系统这样安全苛求系统而言,系统需求规范中的任何缺陷都有可能由潜在的风险演变成系统失效从而导致安全事故的发生,因此对规范的形式化验证就很有必要。但是由于形式化验证的结果往往过于繁杂,工程技术人员不能很好地对结果进行分析和追踪,进而提出了一些将得到的反例进行可视化操作的研究。目前存在许多研究,试图结合 UML 与形式化方法的优点,提供一种易于使用的并且根据需求提供相应程度形式化验证的软件方法。这些方法一般先使用 UML 对系统规范进行建模,然后将 UML 图形转换成相应的形式

2、化规范语言,并使用相应工具进行验证。但是形式化验证和验证结果的反例追踪,目前并不能很好地标注在 UML 的各类图上,这为验证错误的定位设置了极大障碍。针对现有问题,本文结合密歇根大学计算机科学软件工程与网络系统实验室提出的 Theseus 可视化框架,进行列控系统规范验证的反例可视化研究,利用 Eclipse 平台开发模型检验反例可视化插件,通过集成反例可视化与 UML建模和验证工具链,实现了列控系统规范建模、验证和结果显示的自动化。关键词:列控规范;反例验证;可视化 列控系统规范验证的反例可视化研究iiVisualization of counterexamples for specific

3、ation and verification of train control systemLI Zhi-bin , TAO RanAbstract: Train control system specification has been gradually formed, and as for safety critical systems such as the train control system, if there exists any defect, the specification of system requirements is likely to evolve into

4、 the potential risks of system failure, resulting in the occurrence of accidents. so its necessary to formally verify the specification. However, due to formal verification of the results are often too complicated, and engineers cannot properly analyze the results and tracking. So some researches ab

5、out the visualization of counterexamples have been done.At present, there are many studies attempting to combine the advantages of UML and the formal methods, then providing an easy way to offer software formal verification methods based on demands. These methods generally take advantages of the UML

6、 to model the system specification and then convert the corresponding UML diagrams into formal specification language using the appropriate tools for 列控系统规范验证的反例可视化研究iiiverification. However, the results of formal verification and the trace of validation counterexamples are not well marked in all ki

7、nds of UML diagrams, so some obstacles occur in locating the places of errors.For the existing problems, with visualization framework, “Theseus” which is given by Computer Science Software Engineering and Network Systems Laboratory of University of Michigan, we do some studies about the Visualizatio

8、n of counterexamples for specification and verification of train control system. Using the Eclipse platform, some plugins are done to realize the automation.Key words:Train Control Specification; Counterexample verification; Visualization列控系统规范验证的反例可视化研究iv目录1 绪论 11.1 研究背景 11.2 研究现状 21.2.1 国内列控系统规范验证

9、现状 21.2.2 可视化框架研究现状 31.3 研究的目的和意义 51.4 论文的研究内容 62 Eclipse 平台下列控系统规范的建模 72.1 Papyrus 插件下的 UML 建模 72.1.1 统一建模语言 UML 概述 72.1.2 UML 的建模机制 82.1.3 Eclipse 平台及 Papyrus 插件简介 112.1.4 UML 建模示例 132.1.5 其他 Eclipse 平台 UML 编辑插件 172.2 Eclipse Modeling Framework (EMF)192.2.1 EMF 概述 192.2.2 列控联锁系统的建模 193 模型检验与反例的语法描

10、述 213.1 模型检验 21列控系统规范验证的反例可视化研究v3.1.1 模型检验概述 213.1.2 模型检验算法 223.1.3 模型检验工具 253.2 反例的语法描述 263.2.1 SMV 语言简介 263.2.2 SMV 实例应用 294 反例文件的生成及文件格式的转换 324.1 反例文件的生成 324.2 反例文件格式的转换 334.2.1 可扩展标记语言(XML )概述 334.2.2 ANTLR 工具简介 344.3 XML 格式的反例文件 365 JAVA 解析 XML 反例文件 375.1 XML 解析算法概述 375.2 JAVA 解析 XML 格式反例文件 396

11、 Eclipse 平台可视化插件的集成 406.1 界面的制作及功能的实现 406.1.1 插件界面的制作 406.1.2 插件功能的实现 426.2 反例可视化插件效果演示 436.2.1 简单的照明灯开关控制系统 436.2.1 列控系统站场图联锁系统 44列控系统规范验证的反例可视化研究vi7 总结与展望 477.1 论文总结 477.2 展望 48参考文献 50第 1 页11 绪论1.1 研究背景自 20 世纪 90 年代,欧美各国为制定轨道交通系统的技术规范做了许多工作,先后已制定多个有关轨道交通系统技术规范。而近年来,国内逐渐开始重视列控系统规范的研究,铁道部在 2002 年提出发

12、展 CTCS(中国列车运行控制系统) 。因而,列控系统的规范已逐渐成形,而且对于列控系统这样安全苛求系统而言,系统需求规范中的任何缺陷都有可能由潜在的风险演变成系统失效从而导致安全事故的发生,因此对规范的形式化验证就很有必要。目前存在许多研究,试图结合 UML 与形式化方法的优点,提供一种易于使用的并且根据需求提供相应程度形式化验证的软件方法。这些方法一般先使用UML 对系统规范进行建模,然后将 UML 图形转换成相应的形式化规范语言,并使用相应工具进行验证。但是形式化验证和验证结果的反例追踪,目前并不能很好地标注在 UML 的各类图上,这为验证错误的定位设置了极大障碍。目前国外有对安全系统形

13、式化验证的可视化框架,提出 Theseus 项目并利用 MDA(模型驱动开发)的模式进行开发,目的是将模型验证的输出文件解析后,利用 Theseus 很好地跟踪标注。但是依然存在两个问题,一个是对反例的描述需要详细、客观;二是需要将导致错误的原因和路径清楚地标注在最原始的 UML 图上面。针对这些问题,本课题列控系统规范验证的反例可视化研究,就是通过解析模型检验的日志文件,提取反例涉及的状态和迁移信息,实现规范 UML 模型的反例轨迹着色。利用 Eclipse 平台开发模型检验反例可视化插件是主要任务。反例可视化方便了规范错误的定位和查找;通过集成反例可视化与 UML建模和验证工具链,实现了列

14、控系统规范建模、验证和结果显示的自动化,为将来的工程应用奠定基础。第 2 页21.2 研究现状随着世界各国轨道交通列车控制系统规范的重视,多个有关轨道交通系统技术规范已经成形并且投入使用,而国际上对于高可靠性系统的形式化验证也已经有了完善的可视化框架。本课题是将二者结合起来,将 Theseus 可视化框架应用于列车控制系统规范的验证当中,下面分别介绍一下这两者目前研究的现状。1.2.1 国内列控系统规范验证现状近年来,随着我国铁路跨越式发展战略的实施,铁路建设进入了前所未有的高速发展时期。 “十一五”期间,我国先在胶济、合宁线路上使用 CTCS 一2 级列车控制系统,完成了第六次大提速任务。随

15、后不久又有使用 CTCS 一 3级列车控制系统的武广、郑西线路开始运营,其运营速度最高达到350/h。 “十二五”期间是中国铁路高速发展的时期,干线铁路将进一步提速、多条客运专线将开工建设、高速铁路正在酝酿中。在高速运行条件下,迫切需要先进的列车运行控制系统(以下简称“列控系统”) 保证列车运行的安全和高效。列控系统是指将先进的控制技术、计算机技术、通信技术与铁路信号技术融为一体的行车指挥、控制、管理自动化系统。我国在参考欧洲列车控制系统 ETCS(European Train Control System) 的基础上制定了中国列车控制系统 CTCS(China Train Control S

16、ystem) 技术规范,保证列车安全运行,并以分级形式满足我国不同线路运输需求。 随着计算机技术的提高,应用在列控系统中计算机系统变得越来越复杂,规模也越来越大。复杂的系统很难设计开发,快速寻找错误和安全隐患也比较困难,一般的测试方法很难发现系统所有的设计故障,这会给轨道交通系统的安全、高效运行带来一定的安全隐患。因此,研究如何快速定位以及将错误的位置很好地标注出来,以此保证系统设计正确性和安全性对列控系统第 3 页3来说显得至关重要。根据国际标准 IEC615081,对于安全苛求系统需求规范验证,强烈推荐使用形式化方法。形式化方法提供了验证系统设计正确性的一个重要途径。它用数学方法表达系统的

17、规范或系统的性质,并且根据数学理论来证明所设计系统满足系统的规范或具有期望的性质。在不能证明所期望的性质时,则可能发现设计错误。形式化方法是列控系统规范的建模和验证的重要方法,代表着安全苛求系统规范建模、验证研究和工程应用的方向。现阶段,形式化方法在工业开发中的应用还是比较少的。原因来自多个方面,首先,验证一个计算机系统的规范、设计或实现的正确性这个问题本身是一个非常复杂的问题。其次,传统的工程人员对于形式化的描述方法和分析、验证技术不熟悉,而且这些概念和方法也不是很容易理解和掌握,因此难于在实际工程中运用。为了能够在列车控制系统规范的验证中使用形式化验证的方法,因此提出一个验证反例可视化的研

18、究,希望通过可视化工具的使用快速定位错误,这样工程技术人员可以最大地避免接触形式化验证繁杂的语法,以及花费很大的代价去追溯产生规范错误的路径。1.2.2 可视化框架研究现状由 OMG 提出的符合模型驱动架构开发(MDA)的面向对象建模技术,统一建模语言(UML) ,是模型驱动开发 (MDD)的一项重要建模技术,它已经日益普遍地应用于工业系统开发当中。模型驱动开发(MDD),就是从最初的需求设计分析到最后的代码生成。如果将 UML 模型转换成形式化验证的一般语言,那么就能用模型检验工具去分析。但是,因为分析结果繁杂庞大,工程开发人员往往不能充分利用分析的结果,也就是,无法解析反例生成文件并将错误

19、的原因清晰地标注在最初的 UML 图上。第 4 页4这里我们引用由密歇根大学计算机科学软件工程与网络系统实验室提出的Theseus 可视化框架(如图 1) ,它是一种通用的可视化框架,基于模型分析可以在原始的 UML 图上得到可视化的分析结果。利用这个框架,我们能将违背模型检验的反例执行路径清晰地标注在最初的 UML 状态图和顺序图上,这样可以清楚地将问题描述出来。由于 Theseus 支持 Spin 和 SMV 等模型验证工具,工业上已经将 Theseus 应用于各个领域的系统开发当中。图 1 Theseus 可视化框架Theseus,它支持从一般的模型验证工具生成的模型驱动可视化输出分析文

20、件。在 Theseus 框架中,有三大任务必须完成,第一,由于各种模型验证工具生成的文件各不相同,我们必须构造一个通用的词法语法解析器来分析各种不同格式的输出文件,解析器为每个路径文件生成一个语法树(ASG);第二,我们必须构造一个通用的翻译器将语法树转换成一个通用 XML 格式的文件,XML 格式文件只包含 UML 相关的模型元素,比如状态名称、转换名称、属性等。解析器和翻译器将集成在专门的路径分析工具中;第三,我们必须开发第 5 页5一个可视化引擎用来处理以 XML 格式呈现的反例文件,并且支持 UML 状态图和顺序图的生成。这三者结合起来,就可以实现以 UML 模型和模型验证的反例路径文

21、件为输入,以标注了反例的状态图和顺序图为输出的自动化过程。使用者不仅可以通过动画一步一步运行,也可以一下执行所有的反例文件,这样状态和问题路径将通过颜色的改变呈现出来。1.3 研究的目的和意义近年来,国内逐渐开始重视列控系统规范的研究。铁道部 2002 年提出发展中国列车运行控制系统(CTCS) ,实施引进和自主研发并举的发展战略,在消化吸收国外先进技术的同时,实现引进设备的国产化,发展 CTCS 系统。技术规范是轨道交通系统的核心,为保证我国轨道交通持续稳定发展,必须在借鉴欧美国家轨道交通系统相关技术标准的基础上,结合中国轨道交通需要,研究制定 CTCS 规范。对于列控系统这样安全苛求系统而

22、言,系统规范的验证就显得尤为重要,主要的有效实用的验证方法是形式化验证。形式化语言虽然具有严格的语法和语义定义,可以准确地描述系统模型,但所包含的数学理论,限制了大多数设计人员的学习和使用。大多数的形式化语言和形式化验证技术对于设计人员来说,并不熟悉而且难以理解,因此造成了形式化方法实用方面的困难。在这其中,可理解性起了很重要的作用。这样就会造成不必要的人力物力浪费,为了很好地解决这个问题,本课题旨在开发一个通用的列车控制系统规范验证的反例可视化框架,通过集成一些软件工具,可以大大地提高效率,是工程开发人员不必再去纠结于繁琐的形式化验证语言,而且可视化的插件能够很好地将错误快速地定位在原始的模

23、型图上,并且将造成反例的路径通过颜色的改变标注出来,这样可以很好地进行追踪定位。通过集成反例可视化与 UML 建模和验证工具链,实现了列控系统规范建模、验证和结果显示的自动化。第 6 页61.4 论文的研究内容第一章 绪论 本章主要介绍了课题研究背景及其意义、发展现状、本课题的研究内容以及本文的主要研究内容。第二章 Eclipse 平台下列控系统规范的建模 本章主要介绍了在 Eclipse 平台下 Papyrus 插件下的 UML 建模和 Eclipse Modeling Framework (EMF)两种建模方式,并分别给出了简单的照明灯开关控制系统和列控站场联锁系统两个案例模型,作为后续进

24、一步研究的基础。第三章 模型检验与反例的语法描述 本章主要介绍了模型检验的基础知识,并以此为基础,对反例模型检验实现 SMV 语言描述。第四章 反例文件的生成及文件格式的转换 本章主要介绍了可扩展标记语言(XML)和 ANTLR 工具的基础知识,并借助 ANTLR 工具完成对反例生成文件 XML 格式的转换。第五章 JAVA 解析 XML 反例文件 本章主要介绍了 XML 解析算法的基础知识,并利用 JAVA 解析 XML 文件的 DOM 方法实现对 XML 格式反例文件的解析,同时对 XML 解析算法进行了初步改进。第六章 Eclipse 平台可视化插件的集成 本章主要展示了可视化插件的界面

25、和功能,并呈现模型最后的可视化效果。第七章 总结和展望 本章主要介绍了已经完成的工作、存在的问题以及将来研究方向的展望。第 7 页72 Eclipse 平台下列控系统规范的建模2.1 Papyrus 插件下的 UML 建模2.1.1 统一建模语言 UML 概述统一建模语言 (Unified Modeling Language,UML) 是用来对软件密集系统进行可视化建模的一种语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。UML 适用于各种软件开发方法、软件生命周期的各个阶段、各种应

26、用领域以及各种开发工具,UML 是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。UML 包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。UML 标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。它是为支持大部分现存的面向对象开发过程而设计的。UML 是由 3 位杰出的方法论学家 (Gray Booch,Ivar Jacobson 和 Jams Rumbaugh) 发起,在 Booch 表示法、OOSE 方法和 OMT 方法的基础上,反复修改而完成的,是非专利的第三代建模

27、和规约语言。UML 是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML 是一种用来建模和开发软件系统的图形化语言,主要用于为系统建造模型。它提供了软件开发的各个阶段的可视化建模支持,包括从需求分析到规格书写,以及系统开发和建立等。它为面向对象的分析与设计提供详细描述系统结构的方法,为规范化、可视化、文档化软件系统提供了一致的建模语言。目前,UML 己成为在软件工业中占支配地位的建模语言,在许多领域的软件开发中得到应用。UML 支持可视化建模,包括动态和静态两种建模机制以及多种类型的图第 8 页8表,通过使用这些图表我们可以对系统运行过程中各部件及其运行模式进

28、行详细描述。因此它非常适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,面向对象的方法可使用 UML 提供的用例图、静态图、行为图、交互图和实现图 5 类图进行系统开发中不同阶段的建模。2.1.2 UML 的建模机制同所有语言一样,UML 由语法和语义组成。其中,元模型是 UML 的语义,解释 UML 的意思,图(表示法)是 UML 的语法。下面将分别介绍这两方面的内容。(1) UML 语义UML 的语义定义在一个四层建模框架中,它们分别是元元模型层、元模型层、模型层和用户模型层。元元模型层是元模型结构的基础,定义元模型描述语言的模型,它比元模型具有更高的抽象层次,为准确

29、定义元模型的元素和各种机制提供最基本的概念和机制。元模型是元元模型的实例,定义模型描述语言的模型。元模型通过把属性、操作、结合和通信进一步抽象为结构元素、行为元素来表达模型,并提供表达系统的机制( 包) 。模型是元模型的实例,定义特定信息域描述余姚的模型。模型规定了对象的属性、操作以及聚集、结构和通信,保证用户对象层的语义正确描述。用户模型(用户数据) 是模型的实例,描述了一个特定的信息域,它是按照某一领域的域模型组织的。任何软件系统在用户看来都是相互通信的具体对象。如果排除面向对象语言表示的细节,这些具体对象构成一个对象体系结构,并完成具体的相互通信,其目的是实现软件系统的功能和性能。如下表

30、1 所示:第 9 页9层 描述 例子元元模型Meta-meta ModelUML 最基本的元素,元建模体系结构的基础 元类、元属性、元操作元模型Meta ModelUML 的基本元素,包括面向对象和面向组件的概念。元元模型的实例。定义说明模型语言。类、属性、操作、组件模型 ModelUML 的模型。元模型的实例。定义描述信息领域的语言。例如:课程、查询、成绩用户模型 User Model模型的实例。定义特定的信息领域。 例如:数据结构等表 1 UML 的四层元模型体系结构(2) UML 语法UML 的概念和模型可以分成以下几个概念域:静态结构、动态行为、实现构造、模型组织、扩展机制。作为一种建

31、模语言,UML 的定义包括 UML 语义和 UML 表示法两个部分:UML 语义描述基于 UML 的精确元模型定义;UML 表示法定义 UML 符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。UML 中的各种组件和概念之间没有明显的划分界限,但为方便起见,我们用视图来划分这些概念和组件。视图只是表达系统某一方面特征的 UML 建模组件的子集。视图的划分带有一定的随意性。在最上一层,视图被划分成三个视图域:结构分类、动态行为和模型管理。UML 还包括多种具有扩展能力的组件,这些扩展能力有限但很有用。这第 10 页10些组件包括约束、构造型和标记值,它们适用于所有的

32、视图元素。表 2 列出了 UML 的视图和视图所包括的图以及与每种图有关的主要概念。主要的域 描述 图 主要概念静态视图 类图 类、关联、泛化、依赖关系、实现、接口用例视图 用例图 用例、参与者、关联、扩展、包含、泛化实现视图 构件图 构件、接口、依赖关系、实现结构配置视图 配置图 节点、构件、依赖关系、位置状态机视图 状态机图 状态、事件、转换、动作活动视图 活动图 状态、活动、完成转换、分叉、结合顺序图 交互、对象、消息、激活动态交互视图协作图 协作、交互、协作对象、消息模型管理 模型管理视图 类图 包、子系统、模型可扩展性 所有 所有 约束、版型、标记值表 2 UML 的视图和图标准建模

33、语言 UML 的重要内容由 5 图(9 种图形)定义:一是用例图 (Use-case Diagram); 二是静态图 (Static Diagram),包括类图、对象图和包图;三是行为图 (Behavior Diagram),包括状态图和活动图 ; 四是交互图 (Interactive Diagram),包括顺序图、合作图;五是实现图(Implementation Diagram)。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。多个视图共存于一个模型中,它们的元素之间有很多关系,其中一些关系如下表 3 所示。第 11 页11元素 元素 关系类 拥有 状态机操作 交互 实现用例 合作

34、实现用例 交互实例 样本场景构件实例 节点实例 位置动作 操作 调用动作 信号 发送表 3 不同视图元素之间的部分关系应用 UML 设计系统时,首先应建立系统的逻辑模型,然后建立相应的物理模型。建立系统逻辑模型的过程大致分为三步:第一步用用例图描述系统需求 ;第二步根据系统需求建立系统的静态模型,包括类图、对象图和包图。类图描述系统中类的静态结构对象图是类图的实例包图由包或类组成,表示包与包之间的关系;第三步是描述系统的行为,主要用状态图和顺序图。状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互

35、。采用 UML 分析和设计系统,将复杂的系统用简单明了的可视化图形表示出来,对整个系统软件的开发提供灵活、一致、易读的表达,不仅可以解决系统软件开发中众多领域人员之间难以互相交流理解的难题,为系统的分析、设计、维护及扩展提供了有利的条件,还可提高系统的可重用性和可维护性,具有广泛的应用前景。第 12 页122.1.3 Eclipse 平台及 Papyrus 插件简介(1) Eclipse 概述Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 规范标准 > 国内外标准规范

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报