[发明专利]一种基于UPPAAL模型的汽车软件源代码仿真测试方法有效
申请号: | 201210382231.4 | 申请日: | 2012-10-11 |
公开(公告)号: | CN102866952A | 公开(公告)日: | 2013-01-09 |
发明(设计)人: | 闫旭琴;刘晓建;王知学;成巍 | 申请(专利权)人: | 山东省科学院自动化研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 张勇 |
地址: | 250014 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 uppaal 模型 汽车 软件 源代码 仿真 测试 方法 | ||
1.一种基于UPPAAL模型的汽车软件源代码仿真测试方法,其特征是,实现步骤如下:
(1)根据需求规格说明,构建UPPAAL模型,构建好的UPPAAL模型中的全局声明部分定义的数据变量和管道变量就是测试系统中的输入变量和输出变量,利用构建好的UPPAAL模型进行仿真和功能需求验证;
(2)根据UPPAAL模型的定义或者通过UPPAAL仿真器,确定测试系统的输入队列和输出变量;
(3)将UPPAAL模型转化为C++代码;
(4)根据测试系统的输入变量和输出变量,确定软件源代码中相应的输入变量和输出变量,在软件源代码和测试系统中的输入变量和输出变量之间建立映射关系;
(5)设置测试系统的输入队列,运行代码转化后的UPPAAL模型和软件源代码,并记录它们的输出结果,最后判断它们的输出结果是否一致,如果一致就说明与系统的可控的物理工作过程相关的源代码是正确的,否则就存在错误。
2.如权利要求1所述的一种基于UPPAAL模型的汽车软件源代码仿真测试方法,其特征是,所述步骤(3)的具体步骤为:
(3-1)利用MSXML技术,通过DOM接口从UPPAAL模型的XML文件中获取到UPPAAL模型信息;DOM是万维网联盟的推荐标准,是表示诸如XML、HTML格式文档和访问、操作构成文档的各种元素的应用程序接口;DOM将一个XML文档作为一种树形结构并声明成一个文档对象,通过使用该文档对象的方法和属性实现对XML文件中数据的管理;
(3-2)生成UPPAAL模型的C++代码的第一部分CUppaalLocation,CUppaalTransition和CUppaalTemplate三个C++类,它们分别用来描述位置元素、转换元素和模板元素的数据结构,这部分代码是固定的,只需要产生一次,将它们写为C++类库;
(3-3)将UPPAAL系统编辑器中的变量声明部分和时间自动机图形描述中的表达式进行C++代码表示;其中,变量声明部分包括全局声明、模板的声明以及模板的参数,时间自动机图形描述中的表达式包括卫士条件表达式、赋值操作表达式和不变式;定义一组将UPPAAL模型中变量、参数和表达式转化为C++代码的转化规则:
R1:将UPPAAL模型中的全局声明部分转化为C++代码中的全局声明;
R2:将UPPAAL模板中的局部声明中的元素转化为C++代码中模板类对象的成员变量;
R3:将UPPAAL模板中的参数转化为C++代码中模板类对象的成员变量;
R4:将UPPAAL中的时钟变量转换为C++代码中的一种整形变量,这类整形变量与用于计时的线程相关;
R5:将UPPAAL中的有界的整形变量转化为C++代码中的一种整形变量,这类整形变量有一个对其限定取值范围的声明;
R6:将UPPAAL中的同步管道转化为一种字符串变量,这类字符串变量表示它们作为同步管道的特殊用途;
R7:将UPPAAL中的不变式、卫士条件表达式和赋值操作表达式转化为C++代码中的全局函数;
(3-4)生成UPPAAL模型的C++代码的第二部分C++类CUppaalModel,用于描述UPPAAL模型中的位置、转换和模板的信息,以下是CUppaalModel类定义的格式:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东省科学院自动化研究所,未经山东省科学院自动化研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210382231.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种铣刀
- 下一篇:GIS超高频局部放电检测仿真系统