基于扩展马尔可夫模型的程序约束挖掘方法研究

来源 :华中科技大学 | 被引量 : 0次 | 上传用户:lianxirenll520
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序中的时序约束是一类广泛存在的约束,其规定了组件的接口函数之间调用的先后顺序关系。例如:调用java.util.Stack类的peek()函数之前,如果没有调用push函数,程序会因为空栈而抛出EmptyStackException异常;又比如调用java.util.Iteration类的next()函数之前,如果没有调用hasNext()函数查看是否有元素存在,就会导致NoSuchElementException异常。根据时序约束,可以对程序进行有效的验证,检测出多种类型的错误。然而,时序约束经常被软件开发人员忽视,在软件说明文档中也鲜有相关说明。自动化程序约束挖掘是获得时序约束的重要方法。这类方法大都采用静态分析或者动态分析的技术从程序中提取函数调用信息,然后利用数据挖掘、机器学习和数理统计等方法归纳出采用各种形式描述的时序约束。然而,这类方法通常都受训练数据中的噪声和多样性等因素的制约。为了更好的提取程序中的时序约束,围绕着噪声和多样性等问题展开研究,采用一种具有终止概率的扩展马尔可夫模型进行时序约束挖掘。首先,基于类之间具有继承关系这一性质,从程序中收集大量的对象使用场景作为训练数据,然后采用一种联机算法对扩展马尔可夫模型进行训练,最后给出了一种基于客户端/服务器架构的动态时序约束挖掘框架。  训练数据规模对于数据挖掘、机器学习等方法具有十分重要的意义。一方面,大规模的训练数据能缓解噪声带来的干扰;另一方面,大规模的训练数据具有更好的多样性。因此,收集大量的对象使用场景作为时序约束挖掘器的输入,是缓解数据噪声和多样性问题并且获得准确而完备的时序约束的重要基础。大量对象使用场景提取方法根据类之间具有继承关系这一性质,能够从面向对象程序中提取出n倍于传统方法的对象使用场景,其中n为程序中的平均继承深度,为本文工作提供了可靠的数据来源。  为了进一步抵抗训练数据中的噪声,采用一种扩展的马尔可夫模型进行时序约束建模。由于其是一种概率模型,与广泛采用的有限自动机相比,具有更好的噪声处理能力。以该模型为基础,采用一种联机方法进行时序约束挖掘。该方法无须存储大量的对象使用场景,其接收对象使用场景中的一个函数调用,然后对已经存在的时序约束进行更新或者创建一个新的时序约束。由于该方法不存储对象使用场景,因此具有极小的空间开销。另一方面,由于该方法能够对已有的时序约束进行持续更新,因此能够挖掘出更具普遍性的模型。为了使用时序约束,需要将采用概率模型表示的时序约束转换为一种确定性模型。转换过程中的阈值选择是获取正确模型的基础。采用的阈值计算方法不仅对噪声具有良好的处理能力,而且能够确保获得连通的确定性模型。  为了减少时序约束挖掘的成本,推进其在工业界的应用,给出了一种基于客户端/服务器架构的动态时序约束挖掘框架NSpecMiner。NSpecMiner采用基于扩展马尔可夫模型的时序约束挖掘方法。其客户端为一个动态程序追踪器,负责对目标程序进行插桩并将收集的程序执行轨迹发送到服务器端。服务器端从广泛分布于网络上的客户端接收大量程序执行轨迹并进行时序约束挖掘。挖掘的时序约束集中存储于服务器端,为程序验证、软件测试和程序进化等应用提供数据支持。与本地挖掘器相比,NSpecMiner更容易获得大量的训练数据。更重要的是,如果将程序追踪器集成在广泛应用的软件中,则当软件被使用时,收集的程序执行轨迹便会自动的发送到服务器端进行时序约束挖掘。由于该方法不需要耗费额外的人力运行目标程序,因此大大降低了时序约束挖掘的成本。  为了对以上工作进行验证,基于Java1.6开发了动态时序约束挖掘器ISpecMiner并进行了相关实验。实验结果表明ISpecMiner能够获取数倍于传统方法的对象使用场景并且能够挖掘出正确的时序约束。
其他文献
网格技术作为网络发展的第三次浪潮,其广阔前景使得在这一领域的研究具有重要的积极意义。网格的重要宗旨就是用最快的速度找到合适的资源,并加以应用。网格资源在地理上具有分
ASON(Automatically Switched Optical Network自动交换光网络)赋予了传统光传送网前所未有的灵活性和可扩展性,代表了下一代光网络的发展方向。动态路由和波长分配算法是实
近年来,开放网络环境中的诸多应用如P2P共享、电子商务、社交服务等已深刻地改变了人们的社会活动和交流方式,然而,在这种开放的、分布式的虚拟社会网络中存在着大量的欺诈行
为了从业务系统积累的越来越多的事务数据中提取有用的信息,解决日趋加剧的数据丰富而信息贫乏的矛盾,数据仓库应运而生。而在数据仓库的构建过程中,数据质量是影响数据仓库
电力负荷预测是电力系统运行与控制的基础也是电力市场运作的基础,在电力市场的条件下对负荷预测提出了准确性、实时性、可靠性、智能性的要求,其预测精度直接影响电力系统的经济效益以及电网的稳定性。负荷预测是电力系统规划和运行中的重要工作之一。由于负荷决定了发电、输电和电量的分配,在一定规划期内负荷与用电量的大小决定了电力系统的发展规模和发展速度,因此预测电力系统的负荷与用电量是进行电力系统发展规划的首要任
计算机网络技术和信息技术的飞速发展,带给企业及个人办公极大方便。任何用户可以通过Internet进行信息交流、洽谈业务以及各种办公活动,提高了工作效率,促进了企业间的相互
人工生命和复杂性研究的一个主要思想是:功能的或美学的复杂形式是从局部交互中通过自组织而突现的。本文研究两个交互系统的突现性质,以及产生的图象图形和动画,并作为生成艺术
针对Web个性化信息推荐技术面临的主要挑战,本课题对WPIR系统的设计及关键技术进行了有益的探索和研究。 首先,改进了基于关联规则超图模式的高维数据聚类算法,提出了一个新
随着自动化技术、计算机技术、网络技术等的不断发展,同时也受到各行业在生产过程实时监控方面市场需求的有力驱动,实时监控系统得到越来越广泛的应用。因此实时监控系统的集
近年来,随着无线传感器网络(Wireless Sensor Network,WSN)的广泛应用,WSN网络的安全问题越来越受到学者的重视,密钥的生成是WSN网络安全中的一个重要问题,其中基于物理层无