首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种bug、commit、相关人员关系建立方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:扬州大学

摘要:本发明涉及一种bug、commit、相关人员关系建立方法。本发明建立图形数据库,将bug、commit和人员的信息以节点的形式存储并将相互关联的节点连接起来可以有效的解决这一问题,图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。本发明克服了大多数的程序设计领域的问答网站存在的效率低下、不提供与之相关的commit与技术人员的信息以及需要进行大量的查询产生性能上的缺陷等。本发明构建了一个bug对象、commit对象和人员对象三者之间的对应关系,并以这三个对象为节点,以这三者关系为边的关系网络,快速高效的帮助用户了解问题、解决问题,向用户提供一个全面的知识网络,解决关系型数据库在处理大量数据时性能下降的问题。

主权项:一种bug、commit、相关人员关系建立方法,其特征在于步骤如下:1抽取和识别bug源文件、commit源文件、人员源文件中每个bug、commit、人员的实体与属性,进行预处理,并分别建立bug对象、commit对象、人员对象;2使用python的nltk包构建一个带监督的分类器,以bugzilla中的keywords列表中的关键词作为label构建训练语料库,在这个语料库的基础上构建分类器,对于输入的每一个bug对象、commit对象或人员对象,首先对它的描述信息经行分词,然后抽取其中的高频词对bug对象、commit对象和人员对象进行分类,生成bug对象、commit对象、人员对象的分类文件;3根据bug对象与commit对象之间一个bug对象对应一个或多个commit对象的对应关系建立联系,根据bug对象的duplicate、depends on和block属性建立bug对象之间的联系,bug对象的reporter属性建立bug对象和人员对象之间的联系,根据commit对象的committer属性建立commit对象与人员对象之间的关系,根据人员对象的关注领域构建人员对象之间的联系,最后生成bug对象、commit对象、人员对象之间对应关系的文件;4综合步骤2、步骤3的bug对象、commit对象、人员对象之间对应关系的文件给相似的bug对象、相似的commit对象之间建立联系,关注相似的bug对象或commit对象的人员对象之间建立联系,形成完整的bug对象、commit对象和人员对象之间的图形数据关系,最后将bug对象、commit对象、人员对象之间的相互关系以bug_id为序保存为csv格式文件;5将步骤4生成的文件导入图形数据库软件,建立bug对象、commit对象、人员对象的节点,根据csv文件的内容连接各个节点,建立图形数据库。

全文数据:一种bug、commit、相关人员关系建立方法技术领域[0001]本发明属于软件调试领域,特别涉及一•种bug、commit、相关人员关系建立方法。背景技术[0002]由于软件复杂性的增加,软件开发和维护过程中出现的bug的数目不断增加;另夕卜,软件开发公司的人员频繁的流动,经常会有开发人员遇到一些自己无法解决的bug,由此广生了很多程序设计领域的问答网站(如StackOverflow、bugzilla@Mozilla。如何让用户快速准确的进行搜索,更快速解决自己所遭遇的问题成了急需解决的问题。[0003]在本发明做出之前,大多数的程序设计领域的问答网站所提供的搜索功能都基于关系型数据库。他们实现的原理是由用户输入的搜索内容去数据库中查询与之类似的数据返回给用户。用户可以参考返回的结果对比自己的问题寻找解决问题的思路。但是这种方法却存在着以下的几个的缺陷:1、随着数据库中bug的数量、种类不断增加,复杂性不断加大,用户搜索的结果集经常有几十甚至上百条,用户需要在这个结果集中再次进行人工搜索,效率低下。2、系统所提供的结果仅仅包含类似的问题信息,而并不提供与之相关的commit与技术人员的信息。不能有效地帮助用户了解自己所面临的问题,用户需要再次搜索类似bug的commit才能解决自己的问题。3、当关系型数据库中数据量十分庞大时,需要进行大量的查询,产生性能上的问题。发明内容[0004]本发明的目的就在于克服上述缺陷,研制一种bug、c0mmit和相关人员的关系建立方法。[0005]本发明的技术方案是:[0006]—种bug、C〇mmit、相关人员关系建立方法,其主要技术特征在于步骤如下:(1抽取和识别bug源文件、commit源文件、人员源文件中每个bug、commit、人员的实体与属性,进行预处理,并分别建立bug对象、commit对象、人员对象;[0007]2使用python的nltk包构建一个带监督的分类器,以bugzilla中的keywords列表中的关键词作为label构建训练语料库,在这个语料库的基础上构建分类器,对于输入的每一个bug对象、commit对象或人员对象,首先对它的描述信息经行分词,然后抽取其中的尚频词对bug对象、commit对象和人员对象进行分类,生成bug对象、commit对象、人员对象的分类文件;[0008]3根据bug对象与CO画it对象之间一个bug对象对应一个或多个commit对象的对应关系建立联系,根据bug对象的duplicate、dependson和block属性建立bug对象之间的联系,bug对象的reporter属性建立bug对象和人员对象之间的联系,根据commit对象的committer属性建立commit对象与人员对象之间的关系,根据人员对象的关注领域构建人员对象之间的联系,最后生成bug对象、commit对象、人员对象之间对应关系的文件;[0009]⑷综合步骤⑵、步骤⑶的bug对象、commit对象、人员对象之间对应关系的文件相似的bug对象、相似的commit对象之间建立联系,关注相似的bug对象或commit对象的人员对象之间建立联系,形成完整的bug对象、commit对象和人员对象之间的图形数据关系,最后将bug对象、commit对象、人员对象之间的相互关系以bug_id为序保存为csv格式文件;_0]⑸将步骤⑷生成的文件导入图形数据库软件,建立bug对象、commit对象、人员对象的节点,根据CSV文件的内容连接各个节点,建立图形数据库。[0011]本发明的优点和效果在于构建了一个bug对象、commit对象和人员对象三者之间的对应关系。提供给搜索问题的开发者一个以这三个对象为节点,以这三者关系为边的关系网络1快速高效的帮助用户了解问题、解决问题。同时解决了处理大量数据时关系型数据库性能衰退的问题。主要有如下一些优点:[0012]1目前的大部分程序设计问答网站所提供的搜索功能只提供与用户所查询内容相关的类似问题,不能提供相关的其他信息(如相关知识、commit等与关注类似领域的其他技术人员,这不利于用户了解并解决自己所遇到的问题。我们的方法构建了一个bug对象、commit对象与人员对象的关系网络,可以向用户提供一个全面的知识网络。[0013]2本方法使用图形数据库而不是关系型数据库,将数据结构存储在网络中,在遍历各个节点和抽取节点信息时十分高效,解决了关系型数据库在处理大量数据时性能下降的问题。附图说明[0014]图丨一一本发明的流程示意图。[0015]图2本发明的bug属性关系不意图。[0016]图3--本发明的commit属性关系不意图。[0017]图4一一本发明的人员属性关系示意图。[0018]图5--本发明的bug源文件不意图,其中⑴是bug源文件1图,(2是bug源文件2图,(3是bug源文件3图。[0019]图6--本发明的commit源文件不意图。[0020]图7—一本发明的ne〇4j图形数据库可视化界面示意图。具体实施方式[0021]本发明的技术思路是:[0022]建立图形数据库,将bug、c〇mmit和人员的信息以节点的形式存储并将相互关联的节点连接起来可以有效的解决这一问题。图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见的一个例子,就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。ne〇4j是一种图数据库。图形数据是以节点和边关系模式进行存储。每个节点可以包含一系列信息,通过Node类里面的setProperty方法对节点信息进行存储,Node也可以使用createRelationshipToO方法实现个节点和其他节点的联系,并且该方法返回的是一个Relationship对象,我们也可以对Relationship设置属性,也就是节点和节点之间的关系属性,以便在查找节点时对节点进行过滤。使用ne〇4j图形数据库自带可视化工具,其效果如图7,圆形和方形分别表示不同类型的节点,节点之间的连线表示节点之间的关系,不同的颜色表示节点的不同分类,可以简单直观的展现可能存在于各个节点之间多种多样的关系,进行节点的遍历和筛选。[2023]本发明的方法是首先从bug、commit、人员的数据源文件中提取出bug、c〇mmit、人贝的属性,建立bug、commit、人员的对象。通过分析bug对象、commit对象和人员对象的属性,构建出一个以bug对象、commit对象、人员对象为节点,以其相互之间的关系为边的图形数据关系,开对象、commit对象、人员对象之间关系的图形数据库。[0024]基于bug、commit和相关人员的图形数据关系是利用计算机将点、线、面等图形基本元素按一定数据结构进行存储的数据集合。它将结构化数据存储在网络从数学角度叫做图)上而不是表中。在图形数据库中,以“节点空间,,来表达领域数据——相对于传统的模型表、行和列来说,节点空间是很多节点、关系和属性键值对构成的网络。相比于关系型数-库,图形数据库在遍历信息节点和柚取节点信息方面的能力十分强大,可以更有效的表示bug节点、commit节点和人员信息节点之间的关系。[0025]下面具体说明本发明。[0026]如图1-6所示,步骤如下:[0027]步骤1•抽取和识别bug源文件(如图5,其中(1包含bug_ID、bug_Msg、whiteboard、platform、status'component、product'assigned'Duplicates等与bug相关的属性,(2包含Dependson、Blocks、report_time、reporter、modifiea—time、CCList等与bug相关的属性,⑶包含bug_pre、bug_comment等与bug相关的属性)、commit源文件如图6包含commit_id、bug_id、committer等与commit相关的属性)、人员源文件中每个bug、commit、人员的实体与属性,进行预处理,分别建立bug对象、ccranit对象和人员对象。如:①根据图2中bug实体和属性的对应关系,抽取bug_id、bug描述信息:bug_msg和bug_pre、bug评论信息:bug_comment、bug应用平台:platform、bug产生的product、bug的分配信息assigned、报告人reporter、关注者CCList、是否存在类似的bug:duplicate、阻塞这个bug解决的bug和被这个bug阻塞的bug:dependson和blocks;②根据图3中commit实体和属性的对应关系,抽取commit_id、commit所对应的bug的bug_id、commit的提交者comitter、commit的描述信息commit_msg;③根据图4中人员实体和属性的对应关系,抽取人员的id、人员所关注的领域、人员提问的bug、人员提交的commit。[0028]步骤2•使用python的nltk包构建一个带监督的分类器,以bugzilla中的keywords列表中的关键词作为label构建训练语料库,在这个语料库的基础上构建分类器,对于输入的每一个bug对象、commit对象或人员对象,首先对它的描述信息经行分词,去掉无关词汇,然后抽取其中的高频词对bug对象、commit对象和人员对象进行分类,生成bug对象、commit对象、人员对象的分类文件。如:[0029]Bug描述信息为“Createdattachment378363[details][0030]exampleofaworkingrunxpc.pyscriptinwindowsmobile[0031]Inordertogetxpcshel1testsrunningonwindowsmobile,weneedtoworkwiththecrippledversionofpythonthatwehaveavailabletous.Thismeanstheharnessscriptneedstoadjustfor:[0032]-popenanduseofreturnvalues[0033]-tmpdir[0034]-forwardslashvsbackslash[0035]IhaveattachedanexamplewhichworksonWinMostillhavetofigureouthowtogettheresultsbutwillshowsomeofthechangesthatweneedtotake.[0036]WecancreateanewsetofscriptsforwindowsmobileorretrofittheexistingscriptswhichIprefertoworkwiththelimitedpythonandossupport.”[0037]分词后的结果为:[0038][’Created’,’attachment’,’378363’,’[’,’details’,’]’,’example’,’of’,ra7,'working7,'runxpc.py7,'script’,'in’,’windows’,'mobile’,’In7,'order’,'to’,’get7,'xpcshell’,’tests7,'running’,'on’,’windows7,'mobile’,7,7,7we7,’need’,’to7,’work7,'with’,’the7,7crippled7,’version7,7of7,'python7,7that’,7we’,’have’,’available’,’to7,7us’,’人'This’,’means7,7the7,’harness’,7script’,’needs’,’to’,’adjust7,'for’,’:’,,’popen7,'and7use’of’,'return’,’values7,’-’tmpdir’,7-,7forward7,’slash’,7vs7,'backslash7,’17,’have’,’attached’,’an’,’example’,’which’,’works’,’on’,’WinMo’,’(’,’still’,’have’,’to’,’figure’,’out’,’how’,’to’,’get’,’the’,’results’,’)’,’but’,’will’,’show’,’some’,’of’,’the’,’changes’,’that’,’we’,’need’,’to’,’take’.’We’,’can’,’create’,’a7new’,’set7of’scripts’for’,’windows’,’mobile’,’or’,’retrofit’,’the’,’existing’,’scripts’,’(’,’which’,’I’,’prefer’,’)’,’to’,’work7,'with7,7the’,7limited’,’python’,’and’,’os’,’support’.[0039]根据词性分类后抽取高频词的结果为:[0040]soript,python,example,backslash,use,set,return,support,vs,popen,version,slash?forward?runxpc.py?order?tmpdir[0041]这些高频词即为这个bug的label信息,可以视为这个bug的精准描述,我们可以依靠这些label信息,在图形数据库中匹配到最为类似的其他bug对象,并建立联系。[0042]步骡3.根据bug对象与commit对象之间一个bug对象对应一个或多个commit对象的对应关系建立联系,根据bug对象的duplicate、dependson和block属性建立bug对象之间的联系,bug对象的reporter属性建立bug对象和人员对象之间的联系,根据commit对象的committer属性建立commit对象与人员对象之间的联系。根据人员对象的关注领域构建人员对象之间的联系。如:bug493748对应的commit的[0043]commit—id为002d9a4569dbelff55bec54db4eff7e38dl2d8eb[0044]dependson为504932515962516050552847[0045]blocks为491903503240[0046]Reporter为Joe1Maher[0047]所以可以将bugbug493748与[0048]C〇mmit002d9a4569dbelff55bec54db4eff7e38dl2d8eb之间建立联系;[0049]bug493748与bug504932bug515962bug516050bug552847bug491903bug503240建立联系;bug493748与JoelMaher之间建立联系这是从bug对象、commit对象本身所具有的属性的角度出发,建立bug、commit和人员之间的联系。[0050]步骤4•综合步骤2和步骤3的bug对象、commit对象、人员对象之间对应关系的文件给相似的bug对象、相似的commit对象之间建立联系,关注相似的bug对象或commit对象的人胃员对象之间建立联系。形成完整的bug对象、c〇mmit对象和人员对象之间的图形数据关系,最后将bug对象、commit对象、人员对象之间的相互关系bug」d为序保存为csv格式文件。综合步骤2和步骤3的结果,将获得更加丰富、准确的图形数据关系。骤5•将步骤4的文件导入图形数据库,建立bug对象、commit对象、人员对象的^二;文件的内容连接各个节点,建立图形数据库。其效果如图7,圆形和方形分别I节点’节点之间的连驗示节点之_关系,不__表示节点的不同神麵的臟可能存在于各个节点之酿种乡样的絲,肺节細遍历和师选。

权利要求:1.一种bug、commit、相关人员关系建立方法,其特征在于步骤如下:1抽取和识别bug源文件、commit源文件、人员源文件中每个bug、c〇mmit、人员的实体与属性,进行预处理,并分别建立bug对象、commit对象、人员对象;⑵使用python的nltk包构建一个带监督的分类器,以bugzilla中的keywords列表中的关键词作为label构建训练语料库,在这个语料库的基础上构建分类器,对于输入的每一个bug对象、commit对象或人员对象,首先对它的描述信息经行分词,然后抽取其中的高频词对bug对象、commit对象和人员对象进行分类,生成bug对象、commit对象、人员对象的分类文件;3根据bug对象与commit对象之间一个bug对象对应一个或多个commit对象的对应关系建立联系,根据bug对象的duplicate、dependson和block属性建立bug对象之间的联系,bug对象的reporter属性建立bug对象和人员对象之间的联系,根据commit对象的committer属性建立commit对象与人员对象之间的关系,根据人员对象的关注领域构建人贝对象之间的联系,最后生成bug对象、commit对象、人员对象之间对应关系的文件;⑷综合步骤2、步骤⑶的bug对象、commit对象、人员对象之间对应关系的文件给相似的bug对象、相似的commit对象之间建立联系,关注相似的bug对象或c〇mmit对象和人员对象之间建立联系,形成完整的bug对象、commit对象和人员对象之间的图形数据关系,最后将bug对象、commit对象、人员对象之间的相互关系以bUg_id为序保存为csv格式文件;5将步骤4生成的文件导入图形数据库软件,建立bug对象、c〇mmit对象、人员对象的节点,根据CSV文件的内容连接各个节点,建立图形数据库。

百度查询: 扬州大学 一种bug、commit、相关人员关系建立方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术