暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
一种随机化的软件模型生成方法-何啸 , 李文峰 , 张天 , 麻志毅 , 邵维忠 , 胡长军.pdf
133
18页
0次
2022-05-20
免费下载
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2017,28(4):907924 [doi: 10.13328/j.cnki.jos.005055] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
一种随机化的软件模型生成方法
1,2,3
,
李文峰
1
,
3
,
麻志毅
2
,
邵维忠
2
,
胡长军
1
1
(北京科技大学 计算机与通信工程学院,北京 100083)
2
(高可信软件技术教育部重点实验室(北京大学),北京 100871)
3
(计算机软件新技术国家重点实验室(南京大学),江苏 南京 210093)
通讯作者: 何啸, E-mail: hexiao@ustb.edu.cn
: 模型转换是模型驱动开发的核心技术.当要把模型转换用于工业生产时,其性能成为影响这一技术成败
的关键因素之一.为了测试模型转换程序的性能,需要能够快速地生成一组具有较大规模的模型数据用于作为测试
的输入数据.提出一种随机化的模型生成方法,该方法能够根据元模型的定义以及用户输入的约束条件随机且正确
地生成模型文件.实验结果表明:该方法与其他方法相比,具有更好的生成效率,从而更适合支持模型转换的性能
测试.
关键词: 模型生成;模型转换;性能测试;随机测试;模型驱动工程
中图法分类号: TP311
中文引用格式: 何啸,李文峰,张天,麻志毅,邵维忠,胡长军.一种随机化的软件模型生成方法.软件学报,2017,28(4):907924.
http://www.jos.org.cn/1000-9825/5055.htm
英文引用格式: He X, Li WF, Zhang T, Ma ZY, Shao WZ, Hu CJ. Randomized approach to software model generation. Ruan Jian
Xue Bao/Journal of Software, 2017,28(4):907924 (in Chinese). http://www.jos.org.cn/1000-9825/5055.htm
Randomized Approach to Software Model Generation
HE Xiao
1,2,3
, LI Wen-Feng
1
, ZHANG Tian
3
, MA Zhi-Yi
2
, SHAO Wei-Zhong
2
, HU Chang-Jun
1
1
(School of Computer and Communication Engineering, University of Science and Technology Beijing, Beijing 100083, China)
2
(Key Laboratory of High Confidence Software Technologies for the Ministry of Education (Peking University), Beijing 100871, China)
3
(State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210093, China)
Abstract: Model transformation is the key to model-based software engineering. When the model transformation is applied to industrial
developments, its scalability becomes an important issue. To test the performance of model transformations, developers must be able to
generate a set of models, i.e. the test inputs, efficiently. This paper proposes a randomized approach to generating large models. This
approach can produce a model randomly and correctly based on the definition of metamodel and user-defined constraints. And the
evaluation result also shows that the proposed approach is more efficient than other approaches, and therefore is more suitable for
supporting performance testing of transformations.
Key words: model generation; model transformation; performance testing; random testing; model-driven engineering
模型驱动的软件工程是一种以模型为核心的软件开发方法,模型和模型转换是其核心成分.模型是对系统
的一种抽象描述,而模型转换则是将一种模型变换成另一种模型的特殊程序,它推动了整个开发过程并实现了
基金项目: 国家重点基础研究发展计划(973)(2013CB329606); 国家自然科学基金(61300009)
Foundation item: National Basic Research Program of China (973) (2013CB329606); National Natural Science Foundation of China
(61300009)
收稿时间: 2014-08-28; 修改时间: 2015-11-18; 采用时间: 2016-02-19; jos 在线出版时间: 2016-05-03
CNKI 网络优先出版: 2016-05-04 08:44:08, http://www.cnki.net/kcms/detail/11.2560.TP.20160504.0844.003.html
908
Journal of Software 软件学报 Vol.28, No.4, April 2017
开发的自动化.
现有的工作大多都将研究重点放在了转换语言和算法上,如讨论如何实现模型重构
[1,2]
、实现代码生成
[3,4]
和模型同步
[5,6]
.这些研究增强了模型转换的处理能力,使之能够实现许多复杂的操作.
当把模型转换技术运用到工业生产中时,可伸缩性成为左右其成败的关键因素之一.在被开发(或维护)
系统比较复杂的情况下,被转换的模型可能具有较大规模.如果转换程序不能快速地处理大模型”,那么这个开
(或维护)过程就可能失败.此外,在大数据时代,高效地处理大模型的能力也变得越来越重要.
例如,在基于运行时模型的软件管理技术中,模型同步(即双向模型转换)常常被用于实现系统状态和抽象
管理视图之间的连接
[7]
.当系统状态发生改变时,通过正向转换将其映射到管理视图上;系统管理员在管理视图
上进行系统调整,并利用逆向转换将系统变化传播到运行时系统上.在这一过程中,模型同步的执行效率至关重
.如果同步操作不能及时将系统状态转换成管理视图,那么管理员则可能无法观测到系统最新的运行情况,
而无法对系统进行正确调整.同理,如果同步操作不能将管理视图上的变化及时传播到运行时系统上,系统状态
可能在转换过程中发生改变,从而导致系统调整的错误和失败.
因此,在应用模型转换之前,应该对其性能进行系统化的测试.一方面,可以明确转换程序的执行效率和极
,从而确定其应用范围;另一方面,还可以进一步确定其中的性能瓶颈,从而可以对其进行优化改进.为了进行
性能测试,一个关键问题在于如何有效地生成较大规模的输入数据,即模型.模型生成需满足下面 4 个基本需求.
语法正确性:自动生成的模型需要符合语法约束;
高效性:生成模型的过程必须是高效的;
随机性:模型必须被随机生成,以便衡量转换程序的平均执行时间;
可配置性:模型生成的过程必须是可配置的,比如,应允许用户限制模型元素的数量等等.
目前主要存在两种类型的自动化模型生成方法——基于求解器的方法和基于算法的方法.在基于求解器
的方法中,元模型和生成需求被编码成某种约束表达式, Object Constraint Language(OCL)
[8]
表达式.之后,这些
约束表达式会被代入到一个约束求解器中进行求解.如果约束可解,求解器会返回一个符合条件的模型.基于求
解器的模型生成方法能够处理复杂的约束条件,但其效率十分低下,无法快速生成较大规模的模型,因此不能很
好地支持性能测试.基于算法的模型生成方法通常会使用某种算法生成模型,这类方法能够随机、快速地生成
模型.但大部分算法往往忽略了生成过程的可配置性以及一些基本语法约束,这就导致它们生成的模型可能包
含语法错误.
本文提出一种针对模型转换性能测试的模型生成算法,该方法具有随机性和可配置性,能够在合理的时间
内生成正确的模型.在该方法中,所有的模型元素及关系都将被随机生成.为了生成正确的模型,该方法考虑了
元模型中定义的全部语法约束和一部分语义约束.该方法还允许用户自定义约束来指导生成过程,以便具有更
好的可配置性.最后,通过一组实验证明该方法能够正确、高效地生成较大规模的模型数据.本文的初步想法已
经发表在 COMPSAC 2014
[9]
,本文完善了方法描述,并对方法进行了更多的实验评估.
本文方法的主要目标是生成规模较大、语法正确的模型,但并不直接处理用 OCL 描述的语义约束.这样做
有以下 3 个原因:(1) 不同于白盒测试,用于性能测试的输入模型对于 OCL 语义约束的要求较低;(2) 在生成过
程中处理 OCL 约束会极大地影响模型生成效率;(3) 对于某些转换程序而言,如模型一致性修复程序,不符合
OCL 约束的模型反而是有效的输入.本文方法可以看作模型生成的基线方法,并可以结合其他技术构造满足复
杂约束的模型:从理论上看,只要能够快速地生成足够数量的随机模型,一定可以从中选出符合 OCL 约束的结
;从实践上看,可以利用模型修复技术
[10]
对随机生成的模型进行后处理,使其符合 OCL 约束.
本文第 1 节介绍该算法支持的约束条件. 2 节讨论该算法的技术细节. 3 节对本文方法进行实验评估.
4 节讨论相关的工作.最后是结论和未来工作.
1 模型生成的约束
在本文中,模型生成是一个根据语法约束(即元模型)和用户选项(配置参数)生成模型的过.语法约束和用
of 18
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜