【技术实现步骤摘要】
一种xUML4MC模型到MSVL语言程序的转换方法、计算机程序
本专利技术属于计算机软件
,尤其涉及一种xUML4MC模型到MSVL语言程序的转换方法、计算机程序。
技术介绍
模型检测是一种重要的形式化验证技术,其通过穷尽遍历系统的状态空间以检测待验证系统是否满足所期望的性质。由于模型检测过程可以由计算机自动完成,并且当性质不成立时还能够提供反例路径以便于工程技术人员定位错误和排错,因此在工业界倍受推崇,已经成功应用到硬件、通信协议、交通控制等诸多领域的系统验证中。时序逻辑语言MSVL是投影时序逻辑的一个可执行子集,是一种集系统建模(Modeling)、仿真(Simulation)和验证(Verification)的时序逻辑程序设计语言,支持丰富的数据类型、表达式和能够描述顺序、选择、循环、并发、同步特征的语句,能将系统的建模与性质的描述统一于同一逻辑框架内,通过其专用的模型检测工具MSV验证系统的性质。但MSVL为文本模式的逻辑程序设计语言,与工业界常用的编程语言(如C语言)完全不同,工程技术人员需要额外熟练掌握该语言才能进行系统建模;其次,所建模型不具有直观可见性,复杂系统建模时很难保证模型本身的正确性;另外,模型型检测系统建模和软硬件系统开发本身的分析设计建模相互独立,工程技术人员在系统开发和验证要使用不同的建模方法和工具分别建立两套模型,增加了开发的难度和工作量。UML语言是一种通用的开发建模语言,提供了在软件工程领域可视化系统设计的标准方法;广泛应用于软件工程的系统设计、建模方面,具有统一化,可视化建模的特点。UML是半形式化语言,所建模型 ...
【技术保护点】
一种xUML4MC模型到MSVL语言程序的转换方法,其特征在于,所述xUML4MC模型到MSVL的转换方法包括:建立类图模型和活动图模型描述系统;将类图和活动图转换为面向对象抽象语法树;对面向对象抽象语法树进行预处理转换为面向过程抽象语法树;面向过程的抽象语法树转换为MSVL语言程序。
【技术特征摘要】
1.一种xUML4MC模型到MSVL语言程序的转换方法,其特征在于,所述xUML4MC模型到MSVL的转换方法包括:建立类图模型和活动图模型描述系统;将类图和活动图转换为面向对象抽象语法树;对面向对象抽象语法树进行预处理转换为面向过程抽象语法树;面向过程的抽象语法树转换为MSVL语言程序。2.如权利要求1所述的xUML4MC模型到MSVL语言程序的转换方法,其特征在于,所述xUML4MC模型到MSVL的转换方法包括以下步骤:第一步:对待验证系统建立类图模型和活动图模型,包括抽象出系统中包含的类,以及类与类之间的关系;活动图模型包括系统中对象之间的数据交互过程;第二步:分析待验证系统类图模型和活动图模型,根据xUML4MC的语法规则构造待验证系统模型的面向对象抽象语法树,该面向对象抽象语法树包括类图及活动图的全部信息;第三步:将面向对象抽象语法树转换成面向过程抽象语法树,包括面向对象语言到面向过程语言的预处理规则;所述预处理规则为:规则1:对于抽象语法树中的类节点,为其类名前添加“struct”作为前缀;规则2:对于有初始值的类属性,移除其初始值,并在该类所有的构造方法所属的层次语法图结构的初始节点后添加该类属性的赋值语句。如果该类没有构造方法,则为其创建一个不包含任何语句的无参构造方法,之后再执行规则2,层次语法图结构如图4;规则3:如果一个类有父类,则为该类添加新的类属性“_Parent”,该属性的类型为该类的父类类型;规则4:对于每个类方法的层次语法图结构的初始节点的内容中,在方法名前添加方法所属类的“类名加‘_’”作为前缀,并在形参的第一个位置添加新的形参“*this”,该形参的类型为该方法所属类的类型。如果有返回值,则在其形参的最后一个位置,添加新的形参“*Ret”,其类型为该方法的返回值类型。如果该类有多个重载方法,则为每个重载方法的方法名后添加“‘_’加数字索引”作为方法名的后缀。规则5:对于层次语法图中每个包含直接访问类属性的语句,对该语句的类属性前添加“this->”;规则6:对于类的方法中包含方法调用的语句,x=obj.fun(e1,…,en)和obj.fun(e1,…,en),其中obj是类的实例,将该方法调用语句替换为fun(obj,e1,…,en,&x)和fun(obj,e1,…,en);规则7:对于层次语法图的终止状态节点,如果其包含返回语句“returne”,则将该语句用“*Ret=e”代替;第四步:xUML4MC语言与MSVL语言程序之间的数据类型转换规则、表达式转换规则、语句转换规则、图形元素转换规则。3.如权利要求2所述的xUML4MC模型到MSVL语言程序的转换方法,其特征在于,所述数据类型转换规则为:(1)数据类型为Boolean,转换为MSVL为bool;(2)数据类型为Integer,转换为MSVL为int;(3)数据类型为Real,转换为MSVL为float;(4)数据类型为String,转换为MSVL为string;(5)数据类型为Set、Sequence,转换为MSVL为list;(6)数据类型为Array,转换为MSVL为array。4.如权利要求2所述的xUML4MC模型到MSVL语言程序的转换方法,其特征在于,所述表达式转换规则为:x为一个变量或常量,obj为一个对象,attr为类的一个属性,e和b代表标准符号,参照规则为:(1)表达式为x,转换为MSVL表达式为x;(2)表达式为attr,转化为MSVL表达式为t...
【专利技术属性】
技术研发人员:舒新峰,王曙燕,王梦楠,
申请(专利权)人:西安邮电大学,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。