平码五不中公式规律
  • / 9
  • 下载费用:30 金币  

一种基于事件日志的软件开发活动聚类分析方法.pdf

关 键 词:
一种 基于 事件 日志 软件 开发 活动 聚类分析 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201910042718

申请日:

20190117

公开号:

CN109656545A

公开日:

20190419

当前法律状态:

公开

有效性:

审中

法?#19978;?#24773;: 公开
IPC分类号: G06F8/30;G06F16/35;G06F17/27 主分类号: G06F8/30;G06F16/35;G06F17/27
申请人: 云南师范大学
发明人: 唐明靖;文斌;王俊;陈建兵;邹伟
地址: 650500 云南省昆明市呈贡区聚贤街768号
优先权:
专利代理机构: 53204 代理人: 王娟
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201910042718

授权公告号:

法律状态公告日:

20190419

法律状态类?#20572;?/td>

公开

摘要

本发明涉及一种基于事件日志的软件开发活动聚类分析方法,属于软件工程、过程挖掘技术领域。首先利用自然语?#28304;?#29702;技术对软件开发过程版本控制系统的事件日志数据进行文本解析和特征词提取,并基于word2vec实现软件开发活动事件日志向量化,然后基于K?means聚类算法对向量化后的软件开发活动事件进行聚类,并利用轮廓系数法得到最优聚类簇数,最终获得软件开发活动以及事件与活动的关联关系。本发明能增强软件开发事件日志的可理解性、揭示事件日志数据蕴含的信息,便于发现软件开发活动并指导和规范软件开发行为,为软件开发提供技术支持。

权利要求书

1.一种基于事件日志的软件开发活动聚类分析方法,其特征在于:利用自然语?#28304;?#29702;技术对软件开发过程版本控制系统的事件日志数据进行文本解析和特征词提取,并基于word2vec实现软件开发活动事件日志向量化,然后基于K-means聚类算法对向量化后的软件开发活动事件进行聚类,并利用轮廓系数法得到最优聚类簇数,最终获得软件开发活动以及事件与活动的关联关系。 2.根据权利要求1所述的基于事件日志的软件开发活动聚类分析方法,其特征在于具体?#34903;?#20026;: Step1、事件日志特征?#39135;?#21462;; Step1.1、解析xml文件,提取节点元素文本内容; Step1.2、去除停用词,保留实体词汇,所述停用词包括介?#30465;?#24418;容词和副词,所述实体词汇包括动词和名词; Step1.3、把各种时态的词汇转化为一般形式,做?#24066;?#36824;原; Step2、事件日志向量化; Step2.1、根据事件属性子节点与软件开发活动的相关性,分别?#36816;?#23646;特征词赋不同权重值; Step2.2、通过调用Word2vec接口,构建Continuous Bag-of-Words Model连续词袋模?#20572;?#23545;软件开发事件日志特征词进行词向量训练; Step2.3、将词向量训练后的软件开发活动事件日志特征向量归一化到[0,1]区间; Step2.4、得到软件开发活动事件日志加权向量矩阵,假设整个事件日志具有n个事件,通过向量化后得到如下软件开发活动事件日志加权向量矩阵: 其中,n为软件开发活动事件日志中的事件个数,m为软件开发活动事件日志的特征词个数; Step3、软件开发活动事件日志聚类; Step3.1、设定一个聚类初始簇数k值,调用K-means聚类算法对软件开发活动事件日志向量矩阵进行聚类; Step3.2、计算个体轮廓系数; 对于软件开发活动事件日志数据的个体轮廓系数Si通过公式计算: 其中,假设样本数据i被聚类到λ簇,ai为i到λ簇内其它样本的平均距离,bi为i到非λ簇其它样本的平均距离最小值; Step3.3、计算整体轮廓系数; 对于软件开发活动事件日志数据的体轮廓系数SC通过公式计算: 其中,n为软件开发活动事件日志数据样本总数; Step3.4、执行m次Step3.1-Step3.3?#34903;?#21518;,根据计算所得个体轮廓系数和整体轮廓系数?#33539;?#26368;优聚类效果的簇数k值; Step4、最后得到基于相似度的软件开发活动事件日志聚类结果。

说明书


一种基于事件日志的软件开发活动聚类分析方法
技术领域


本发明涉及一种基于事件日志的软件开发活动聚类分析方法,属于软件工程、过
程挖掘技术领域。


背景技术


在软件开发过程中会产生一系列的软件开发活动和事件日志数据,这些不断增长
的事件日志数据记录了软件开发活动实施的具体详情,对规避软件开发项目风险、提高软
件开发项目成熟度和控制软件产?#20998;?#37327;具有重要意义。然而,由于对事件日志数据重视程
度?#36824;弧?#21407;始事件日志数据繁杂和难以被理解等原因,软件开发过程中的事件日志没有充
分发挥其价值。利用过程挖掘的方法对软件开发活动进行挖掘与分析,将有助于揭示事件
日志数据蕴含的信息,更好地理解、规范和指导软件开发行为,为软件开发提供技术支持。


发明内容


本发明要解决的技术问题是以软件开发过程中的事件日志数据为基础,提供一种
基于事件日志的软件开发活动聚类分析方法。通过该方法可以增强软件开发事件日志的可
理解性、便于发现软件开发活动及其关系并指导和规范软件开发行为。


本发明的技术方案是:一种基于事件日志的软件开发活动聚类分析方法,利用自
然语?#28304;?#29702;技术对软件开发过程版本控制系统的事件日志数据进行文本解析和特征词提
取,并基于word2vec实现软件开发活动事件日志向量化,然后基于K-means聚类算法对向量
化后的软件开发活动事件进行聚类,并利用轮廓系数法得到最优聚类簇数,最终获得软件
开发活动以及事件与活动的关联关系。


Step1、事件日志特征?#39135;?#21462;;


软件开发过程事件日志数据是一个扩展的XML文件存储格式,相关的节点及子节
点记录了事件的id、作者、事件信息等数据。如,logentry属性节点表示事件信息,包含
revision、author、paths、msg等属性子节点。revision表示事件的id,author表示事件的发
起者,paths表示事件所操作的文件及路径,msg表示事件的描述。针对每个事件节点执行
Step1.1-Step1.3,具体?#34903;?#20026;:


Step1.1、解析xml文件,提取节点元素文本内容;


Step1.2、去除介?#30465;?#24418;容词和副词等含义较少的停用词,保留动词和名词等实体
词汇;


Step1.3、把各种时态的词汇转化为一般形式,做?#24066;?#36824;原;


Step2、事件日志向量化;


在完成软件开发过程事件日志特征?#39135;?#21462;后,为?#31169;?#34892;事件间相似度的度量,进
而实现软件开发活动聚类,需要对事件日志的每个事件信息进行向量化。所述?#34903;鑃tep2的
具体?#34903;?#20026;:


Step2.1、根据事件属性子节点与软件开发活动的相关性,分别?#36816;?#23646;特征词赋不
同权重值。


Step2.2、通过调用Word2vec接口,构建Continuous Bag-of-Words Model(CBOW)
连续词袋模?#20572;?#23545;软件开发事件日志特征词进行词向量训练;


Step2.3、将Step2.2?#34903;?#30340;输出结果(软件开发活动事件日志特征向量)归一化到
[0,1]区间;


Step2.4、得到软件开发活动事件日志加权向量矩阵。假设整个事件日志具有n个
事件,通过向量化后得到如下软件开发活动事件日志加权向量矩阵:






其中,
n为软件开发活动事件日志中的事件个数,m为软件开发活动事
件日志的特征词个数。


Step3、软件开发活动事件日志聚类;


通过Step2?#34903;?#23436;成软件开发活动事件日志向量化后,可以得到每个事件对应的
特征向量,从而可以通过聚类算法对事件间的相似性进行度量,实现软件开发活动事件的
关联与区分。为了取得最佳聚类效果,需要多次调用聚类算法以?#33539;?#26368;佳初始簇数k,每次
聚类依次执行Step3.1-Step3.3,具体?#34903;?#20026;:


Step3.1、设定一个聚类初始簇数k值,调用K-means聚类算法对软件开发活动事件
日志向量矩阵进行聚类;


Step3.2、计算个体轮廓系数;


对于软件开发活动事件日志数据的个体轮廓系数S
i通过公式计算:






其中,假设样本数据i被聚类到λ簇,a
i为i到λ簇内其它样本的平均距离,b
i为i到非
λ簇其它样本的平均距离最小值。由公式(1)可以看出,个体轮廓系数S
i的值范围为[-1,1]
区间,若值越趋于1,则表明簇内距离远小于簇间距离,聚类效果最?#36873;?br>

Step3.3、计算整体轮廓系数;


对于软件开发活动事件日志数据的体轮廓系数SC通过公式计算:






其中,n为软件开发活动事件日志数据样本总数。由公式(2)可以看出,SC的值越
大,聚类簇数k越合适,聚类效果最?#36873;?br>

Step3.4、执行m次Step3.1-Step3.3?#34903;?#21518;,根据计算所得个体轮廓系数和整体轮
廓系数?#33539;?#26368;优聚类效果的簇数k值;


Step4、通过Step3可以得到基于相似度的软件开发活动事件日志聚类结果,从而
发现软件开发过程事件与软件开发活动的关系?#25104;洌?#36827;而为软件开发活动管理和流程优化
提供支持。


本发明的有益效果是:本发明所采用的构建词向量方法(word2vec),是基于三层
神经网络进行词向量训练,并根据向量空间余弦距离做向量间的相似度计算,能有效?#26723;?br>向量空间维度、提高训练效率;所采用的K-means聚类算法和基于轮廓系数的初始k值选定
方法,有效解决了聚类初始簇数目无法?#33539;?#30340;问题;通过以上两个?#34903;?#23454;现了软件开发过
程事件与软件开发活动的关联,揭示了事件日志信息所蕴含的开发行为,为软件开发活动
管理和过程优化提高了支持。


附图说明


图1是本发明的流程图。


具体实施方式


下面结合附图和具体实施方式,对本发明作进一步说明。


一种基于事件日志的软件开发活动聚类分析方法,首先利用自然语?#28304;?#29702;技术对
软件开发过程版本控制系统的事件日志数据进行文本解析和特征词提取,并基于word2vec
实现软件开发活动事件日志向量化,然后基于K-means聚类算法对向量化后的软件开发活
动事件进行聚类,并利用轮廓系数法得到最优聚类簇数,最终获得软件开发活动以及事件
与活动的关联关系。


具体?#34903;?#20026;:


Step1、事件日志特征?#39135;?#21462;;


软件开发过程事件日志数据是一个扩展的XML文件存储格式,相关的节点及子节
点记录了事件的id、作者、事件信息等数据。如,logentry属性节点表示事件信息,包含
revision、author、paths、msg等属性子节点。revision表示事件的id,author表示事件的发
起者,paths表示事件所操作的文件及路径,msg表示事件的描述。针对每个事件节点执行
Step1.1-Step1.3,具体?#34903;?#20026;:


Step1.1、解析xml文件,提取节点元素文本内容;


Step1.2、去除停用词,保留实体词汇,所述停用词包括介?#30465;?#24418;容词和副词,所述
实体词汇包括动词和名词;


Step1.3、把各种时态的词汇转化为一般形式,做?#24066;?#36824;原;


Step2、事件日志向量化;


在完成软件开发过程事件日志特征?#39135;?#21462;后,为?#31169;?#34892;事件间相似度的度量,进
而实现软件开发活动聚类,需要对事件日志的每个事件信息进行向量化。所述?#34903;鑃tep2的
具体?#34903;?#20026;:


Step2.1、根据事件属性子节点与软件开发活动的相关性,分别?#36816;?#23646;特征词赋不
同权重值;


Step2.2、通过调用Word2vec接口,构建Continuous Bag-of-Words Model(CBOW)
连续词袋模?#20572;?#23545;软件开发事件日志特征词进行词向量训练;


Step2.3、将词向量训练后的软件开发活动事件日志特征向量归一化到[0,1]区
间;


Step2.4、得到软件开发活动事件日志加权向量矩阵,假设整个事件日志具有n个
事件,通过向量化后得到如下软件开发活动事件日志加权向量矩阵:






其中,
n为软件开发活动事件日志中的事件个数,m为软件开发活动事
件日志的特征词个数;


Step3、软件开发活动事件日志聚类;


通过Step2?#34903;?#23436;成软件开发活动事件日志向量化后,可以得到每个事件对应的
特征向量,从而可以通过聚类算法对事件间的相似性进行度量,实现软件开发活动事件的
关联与区分。为了取得最佳聚类效果,需要多次调用聚类算法以?#33539;?#26368;佳初始簇数k,每次
聚类依次执行Step3.1-Step3.3,具体?#34903;?#20026;:


Step3.1、设定一个聚类初始簇数k值,调用K-means聚类算法对软件开发活动事件
日志向量矩阵进行聚类;


Step3.2、计算个体轮廓系数;


对于软件开发活动事件日志数据的个体轮廓系数S
i通过公式计算:






其中,假设样本数据i被聚类到λ簇,a
i为i到λ簇内其它样本的平均距离,b
i为i到非
λ簇其它样本的平均距离最小值,由公式(1)可以得出,个体轮廓系数S
i的值范围为[-1,1]
区间,若值越趋于1,则表明簇内距离远小于簇间距离,聚类效果最?#36873;?br>

Step3.3、计算整体轮廓系数;


对于软件开发活动事件日志数据的体轮廓系数SC通过公式计算:






其中,n为软件开发活动事件日志数据样本总数,由公式(2)可以看出,SC的值越
大,聚类簇数k越合适,聚类效果最?#36873;?br>

Step3.4、执行m次Step3.1-Step3.3?#34903;?#21518;,根据计算所得个体轮廓系数和整体轮
廓系数?#33539;?#26368;优聚类效果的簇数k值;


Step4、最后得到基于相似度的软件开发活动事件日志聚类结果。


实施例1:如图1所示,一种基于事件日志的软件开发活动聚类分析方法,本实施例
以开源软件ArgoUML的开发日志文件为例,?#20113;?#36827;行软件开发活动聚类分析。该软件下载量
达10万余次,其日志文件详细记录了1998年至2015年间共17795个事件信息,具有较强代表
性。具体过程包括:提取事件日志特征词(Step1),对事件日志进行向量化(Step2),对事件
日志进行聚类(Step3),根据聚类结果完成软件开发过程事件与软件开发活动的关联
(Step4)。


所述软件开发活动聚类分析方法的具体?#34903;?#22914;下(具体程序实现采用Python语
言):


Step1、事件日志特征?#39135;?#21462;。


Step1.1、调用Python语言的XML文件解析接口ElementTree,提取revision、
author、paths、msg等属性子节点内容;


Step1.2、调用Python语言的自然语?#28304;?#29702;工具NLTK,去除介?#30465;?#24418;容词和副词和
含义较少的停用词,保留动词和名词等实体词汇;


Step1.3、调用Python语言的自然语?#28304;?#29702;工具NLTK,各种时态的词汇转化为一般
形式。


Step2、事件日志向量化;


Step2.1、根据事件属性子节点与软件开发活动的相关性,分别?#36816;?#23646;特征词赋不
同权重值。将revision、author、paths和msg分别赋权重0.2、0.2、0.2、0.4;


Step2.2、载入Python的gensim库,通过调用Word2vec接口,构建词向量训?#32442;P停?br>对软件开发事件日志特征词进行词向量训练;


Step2.3、将Step2.2?#34903;?#30340;输出结果(软件开发活动事件日志特征向量)归一化到
[0,1]区间;


Step2.4、得到软件开发活动事件日志加权向量矩阵,示意如下:






Step3、软件开发活动事件日志聚类;


为了取得最佳聚类效果,需要多次调用聚类算法以?#33539;?#26368;佳初始簇数k,每次聚类
依次执行Step3.1-Step3.3,具体?#34903;?#20026;:


Step3.1、载入Python的sklearn库,设定一个聚类初始簇数k值,调用K-means聚类
算法对软件开发活动事件日志向量矩阵进行聚类;


Step3.2、计算个体轮廓系数;






利用公式(1)计算软件开发活动事件日志个体轮廓系数S
i。


Step3.3、计算整体轮廓系数;






利用公式(2)计算软件开发活动事件日志整体轮廓系数SC。


Step3.4、执行m次Step3.1-Step3.3?#34903;?#21518;,根据计算所得个体轮廓系数和整体轮
廓系数?#33539;?#26368;优聚类效果的初始簇数k值;


Step4、通过Step3可以得到基于相似度的软件开发活动事件日志聚类结果,并对
聚类结果进行PCA降维后调用Python的MATLAB包matplotlib,对聚类效果进行可视化分析。
通过分析,分类簇数k值为16?#20445;?#32858;类效果最?#36873;?#33267;此,实现了把ArgoUML软件开发日志中的
17795个事件?#25104;?#21040;16个软件开发活动,其中,一个软件开发活动最多包含了3856个事件。


以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述
实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前
提下作出各种变化。


关于本文
本文标题:一种基于事件日志的软件开发活动聚类分析方法.pdf
链接地址:http://www.pqiex.tw/p-6152984.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 内蒙古11选5分析 36棋牌神兽游戏外挂 10月6日福彩开奖 甘肃11选5开奖结果手机版 澳洲幸运5走势统计 福彩3d试机号走势图表 河北11选5topo10最大遗漏 社会福利彩票规则 北京pk10选永旺 中彩票客户端