[发明专利]一种从SVN日志事件流中动态实时挖掘软件过程活动的方法有效
【说明书】:
本发明属于错误检测;错误校正;监控技术领域,公开了一种从SVN日志事件流中动态实时挖掘软件过程活动的方法,对软件过程日志进行预处理:从软件过程日志文档中提取每个事件的路径和行为两条属性内容;将以自然语言形式表示的属性内容进行结构化处理;将得到的结构化的数据作为语料库进行训练,完成对数据基于语义特征的向量化;再依据向量化的数据的距离对数据进行聚类,采用差分二次求导确定最佳聚类数;最后将得到的聚类结果作为训练样本构造分类器,完成事件对活动类别的映射。本发明解使得初始的标签划分相对合理;使用朴素贝叶斯算法构造分类器的方法构建分类器更稳定地处理全新的数据,完成软件过程日志活动标签的有效映射。
技术领域
本发明属于错误检测;错误校正;监控技术领域,尤其涉及一种从SVN日志事件流中动态实时挖掘软件过程活动的方法。
背景技术
目前,业内常用的现有技术是这样的:软件产品的质量很大程度上取决于产品开发中使用的过程。20世纪80年代中期到20世纪90年代,在软件工程领域开展了软件过程及其改善的。传统软件过程的,主要分为两类:第一类为软件过程评估和改进模型。第二类是软件过程建模。其中,软件过程建模可以指导软件开发。由于软件反应的是客观事物在计算机世界的投影,而客观事物是不断发展变化的,软件过程必然也处于不断的动态变化中。各种相应的问题也会接踵而至,本发明需要不断提炼这些问题,建立相应的模型寻找处理方法,从而解决问题,不断完善软件过程的管理与应用,建立起规范的软件开发过程,完善软件过程理论基础。然而,随着对软件过程的深入,主观的传统人为建模的方法的问题逐渐凸显出来。这些问题主要集中在:软件过程模型的设计工作极其复杂、易于出错、模型生命周期短暂、人们对于实际过程和过程模型间的差异的感知不敏感、对过程工程师的要求较高,同时软件过程还在动态地演化中。随着当前软件系统越来越复杂,一个优秀的过程模型的建立就越来越像“一种艺术而非科学”。因此,传统人为建模方法已经不能有效满足当前大数据时代软件工程领域对模型获取的需求,如何自动化地从软件开发组织已有的海量过程数据中挖掘出过程模型已经成为了当前软件过程的热点问题。在大数据的时代背景下,机器学习有了可利用的大量数据资源,并开始渗透到计算机科学的各个领域中。软件过程挖掘将数据挖掘与机器学习应用在软件过程建模上,突破传统主观建模方式,转而从软件过程日志的数据中挖掘模型。软件过程挖掘是指在软件过程数据的驱动下,能够自动地发现软件过程模型,进而帮助软件工程师更好地识别、理解、分析、优化实际执行的软件过程,最终达到软件过程改进并提升软件产品质量的目的。软件过程挖掘最早起源于20世纪90年代,当时挖掘方法仅能够挖掘出顺序、选择等简单结构,而无法正确的挖掘出并发结构,之后业务过程领域对过程挖掘理论进行了大量深入,从而凝练出业务过程挖掘的理论与方法。但是软件过程挖掘与业务过程领域相比,具有以下特征:(1)数据基础不同,软件过程数据与业务过程数据的来源、组成以及属性方面存在差异;(2)挖掘难点不同,软件过程实例相对较少,并且具有大量的并发、迭代以及复杂结构;(3)验证标准不同,软件过程挖掘的结果不仅要求能够获取模型,同时更加重视模型的准确度、合理性等质量属性;(4)挖掘目的不同,软件过程以人为中心,最终目的是为了提升软件产品质量。软件过程挖掘基于软件过程数据进行,软件过程数据中包含了软件开发过程的行为信息。在这些行为信息中,相似的行为作为一类活动,活动是软件过程挖掘的必要条件。通过使用过程挖掘算法对活动组成的单触发序列进行案例划分进而进行模型的挖掘。最终目的是快速地发现一个简洁、合理、优质的过程模型来支持软件开发活动。当前业务过程领域的挖掘方法不适用软件过程数据,一个重要的原因是相比一般的事件日志,软件过程日志缺少活动,因此软件过程挖掘需要进行活动发现。软件工程领域中,活动发现也具有意义。因软件危机而生的软件工程使得软件业发展走向规模化和规范化,它以流程化管理为基础,以计算机学科理论和其他学科的理论为指导,采用工程化的概念、原理、技术与方法进行软件开发与维护,需要经历从磨合、提炼到标准化的过程。软件工程的目的是较少的代价获得高质量的软件产品并对它进行维护。在软件工程中,为了确保开发的软件产品质量,需要控制与监督软件开发过程,软件开发过程的信息记录在软件过程日志文档中,通过日志文档的事件内容可以获知软件过程的行为信息,但是这些行为信息没有进行任何处理,人为判断费时费力,加大成本。软件过程活动发现不仅能够促进软件工程的发展,而且相比人工判断,它可以更容易地通过对日志文档中行为信息进行判断与归类,进而促进对软件开发过程的监督与维护。在2007年,过程挖掘的现状和问题综述中已经指出,过程挖掘技术方面未来将会集中在系统日志数据的处理、挖掘过程的特殊结构、挖掘结果的可视化与利用等方面。软件过程挖掘中的活动发现与数据挖掘分类器有类似之处,其本质也是一个映射活动,是一个基于事件和活动的关联关系,将日志事件映射成活动的过程。而目前在过程挖掘的日志数据处理方面,对活动分类器很少。文献Process Mining:Discovery,Conformance and Enhancement of BusinessProcess中提出了过程挖掘领域常用的由属性确定活动的分类器,它在业务过程领域应用广泛,但不适用于只有单条实例的软件过程。一种适用于多样性环境的业务流程挖掘方法中,基于领域知识对日志进行分类,但是它针对的是业务过程日志在案例层面的分类,是通过对执行实例分类来将日志划分成子日志,也不适用于软件过程。文献Process miningframework for software processes中提出了通过对路径中的关键字进行过滤来完成活动发现的方法,该方法可以较快的得到映射结果,但是结果的准确性不高,活动发现粒度粗。数据驱动的软件开发过程挖掘与分析一文中提出的基于熵的聚类进行活动映射的方法,可以根据时间先后信息挖掘出活动信息,但是缺乏对比试验,且向量化没有考虑到保留语义信息,对最佳聚类数的确定没有提出具体的标准。在传统的过程挖掘中,过程由案例组成,案例由事件组成,这些事件是有序的且具有一些典型的属性如活动、时间戳等。而软件过程挖掘基于软件过程日志开展,软件过程日志的独特性在于它只有一个案例,且案例中包含的事件缺乏活动属性。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云南大学,未经云南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810855718.7/2.html,转载请声明来源钻瓜专利网。