首页> 中国专利> 一种基于语义概念的软件缺陷检索和分析系统及方法

一种基于语义概念的软件缺陷检索和分析系统及方法

摘要

本发明提出了一种基于语义概念的软件缺陷检索和分析系统及方法,属于软件工程技术领域。所述系统和方法包括分类模块、语义概念模块和用户反馈模块,以及其对应的步骤实现了软件缺陷检索和分析。提高了检索和分析的效率,使得开发人员和用户可以由此找到相关的软件缺陷和合适的解决方案。

著录项

  • 公开/公告号CN109299381A

    专利类型发明专利

  • 公开/公告日2019-02-01

    原文格式PDF

  • 申请/专利权人 哈尔滨工程大学;

    申请/专利号CN201811285850.5

  • 发明设计人 张涛;张子昂;

    申请日2018-10-31

  • 分类号

  • 代理机构哈尔滨市阳光惠远知识产权代理有限公司;

  • 代理人安琪

  • 地址 150001 黑龙江省哈尔滨市南岗区南通大街145号

  • 入库时间 2024-02-19 07:11:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-10-14

    未缴年费专利权终止 IPC(主分类):G06F16/9535 专利号:ZL2018112858505 申请日:20181031 授权公告日:20200424

    专利权的终止

  • 2020-04-24

    授权

    授权

  • 2019-03-01

    实质审查的生效 IPC(主分类):G06F16/9535 申请日:20181031

    实质审查的生效

  • 2019-02-01

    公开

    公开

说明书

技术领域

本发明涉及一种基于语义概念的软件缺陷检索和分析系统及方法,属于软件工程技术领域。

背景技术

近年来,大量软件被快速开发。特别地,为了满足社会需求,规模更大,更加复杂的软件被设计了出来。同时,许多软件缺陷也随之出现。有时,这些缺陷导致了代价极大的停机时间。很显然,软件缺陷所造成的危害是不可估量的,所以,在软件开发和测试阶段必须对合适的软件缺陷进行检索和分析。为了完成检索和分析相关软件缺陷的任务,许多软件缺陷勘察和分析的模型与方法已经被提出。然而,它们对于缺陷检索的精确度都不高,使用缺陷检索开发者反而需要做更多的工作。除此之外,这些模型与方法没有考虑到开发人员与使用者的评论。

发明内容

本发明为了解决上述现有技术中缺乏在软件开发和测试阶段的软件缺陷检索和分析的技术问题,提出了一种基于语义概念的软件缺陷检索和分析系统及方法,所采取的技术方案如下:

一种基于语义概念的软件缺陷检索和分析系统,所述系统包括:

用于将标签进行分类的分类模块;其中,所述标签为用于标记软件缺陷的关键词;

用于帮助用户和开发人员检索标签和解决方案信息的语义概念模块;

用于管理并存储用户反馈信息,同时记录使用者信息的用户反馈模块;

所述分类模块包括:

用于开发人员产生软件缺陷和所述软件缺陷对应的解决方案的软件缺陷及解决方案产生模块;

用于通过大众分类法对所述软件缺陷和所述软件缺陷对应的解决方案进行标记的标记模块;

用于根据所述标签将所述软件缺陷分为不同类型并获得缺陷种类的缺陷分类模块;

所述语义概念模块包括:

用于通过余弦相似度算法生成一颗添加有语义概念模型的标签树的标签树模块;其中,所述语义概念模型包括标签和相关语义概念,所述语义概念模型用于描述标签和相关语义概念之间的关系;

用于接收用户查询请求的用户查询模块;

用于通过用户所输入的查询请求,根据所述相关语义概念向用户推荐所述标签的标签推荐模块;

所述用户反馈模块包括:

用于用户进行结果评估、评分并提出评论的评估模块;

用于管理用户反馈信息的反馈信息管理模块;

用于储存用户反馈信息的反馈信息储存模块;

用于记录用户的使用者信息的使用者信息记录模块。

进一步地,所述系统还包括:

用于客户输入包含标签和端面信息问题的客户输入模块;

用于显示软件缺陷报告的显示模块;

用于将用于输入的关键词和端面信息与数据库中已有的数据进行匹配的数据匹配模块;其中,端面信息包括种类、语言和缺陷描述;

用于将所述标签与所述软件缺陷和解决方案建立关联的关联建立模块。

进一步地,所述余弦相似度算法的计算模型为:

其中,sim(ti,tj)为标签间的相似值,标签ti,tj被表示为向量;wki是标签ti在缺陷bk中的权重,wki的值被定义为TF-IDF,并且有

分别表示表示为标签ti,tj的向量。N代表软件缺陷的总数,n代表标签ti至少出现一次的软件缺陷的数量。

一种基于语义概念的软件缺陷检索和分析方法,所述方法包括:

用于将标签进行分类的分类步骤;其中,所述标签为用于标记软件缺陷的关键词;

用于帮助用户和开发人员检索标签和解决方案信息的语义概念步骤;

用于管理并存储用户反馈信息,同时记录使用者信息的用户反馈步骤;

所述分类步骤包括:

用于开发人员产生软件缺陷和所述软件缺陷对应的解决方案的软件缺陷及解决方案产生步骤;

用于通过大众分类法对所述软件缺陷和所述软件缺陷对应的解决方案进行标记的标记步骤;

用于根据所述标签将所述软件缺陷分为不同类型并获得缺陷种类的缺陷分类步骤;

所述语义概念步骤包括:

用于通过余弦相似度算法生成一颗添加有语义概念模型的标签树的标签树步骤;其中,所述语义概念模型包括标签和相关语义概念,所述语义概念模型用于描述标签和相关语义概念之间的关系;

用于接收用户查询请求的用户查询步骤;

用于通过用户所输入的查询请求,根据所述相关语义概念向用户推荐所述标签的标签推荐步骤;

所述用户反馈步骤包括:

用于用户进行结果评估、评分并提出评论的评估步骤;

用于管理用户反馈信息的反馈信息管理步骤;

用于储存用户反馈信息的反馈信息储存步骤;

用于记录用户的使用者信息的使用者信息记录步骤。

进一步地,所述方法还包括:

用于客户输入包含标签和端面信息的问题的客户输入步骤;

用于显示软件缺陷报告的显示步骤;

用于将用于输入的关键词和端面信息与数据库中已有的数据进行匹配的数据匹配步骤;其中,端面信息包括种类、语言和缺陷描述;

用于将所述标签与所述软件缺陷和解决方案建立关联的关联建立步骤。

进一步地,所述余弦相似度算法的计算模型为:

其中,sim(ti,tj)为标签间的相似值,标签ti,tj被表示为向量;wki是标签ti在缺陷bk中的权重,wki的值被定义为TF-IDF,并且有

分别表示表示为标签ti,tj的向量。N代表软件缺陷的总数,n代表标签ti至少出现一次的软件缺陷的数量。

本发明有益效果:

本发明提出的一种基于语义概念的软件缺陷检索和分析系统及方法,所述系统和方法以建立能够支持用关键词搜索视频的语义概念模型和对软件检索采用以用户反馈为基础的互补分类技术为基础的语义概念的方法。开发人员和用户通过输入关键词和进行一些被称作端面的关联运算,就可以搜索到合适的软件缺陷。所述系统和方法采用了语义概念模型来提高检索的精确度。此外,为了满足开发人员和使用者的需求,这个系统允许他们提交反馈信息。这种技术结合了关键词搜索,端面搜索和大众搜索进行软件缺陷的检索和分析。同时,大众分类法允许用户在网上根据文件具体含义对文件进行标记。即使大众分类法有许许多多的优点,它主要的缺点还是缺少语义信息。因此,为避免大众分类法的这种缺点,本发明中利用一种语义概念模型来提高语义分析的精确度,这种方法提高了检索和分析的效率,使得开发人员和用户可以由此找到相关的软件缺陷和合适的解决方案。

附图说明

图1为本发明所述系统的结构示意图;

图2为软件缺陷检索界面;

图3为标签推荐界面;

图4为软件缺陷的结果列表;

图5为缺陷报告显示界面;

图6为本发明所述系统打标签的实例示意图;

图7为语义概念模型的体系结构示意图;

图8为本发明所述方法流程图。

具体实施方式

下面结合具体实施例对本发明做进一步说明,但本发明不受实施例的限制。

实施例1:

一种基于语义概念的软件缺陷检索和分析系统,如图1所示,所述系统包括:

用于将标签进行分类的分类模块;其中,所述标签为用于标记软件缺陷的关键词;

用于帮助用户和开发人员检索标签和解决方案信息的语义概念模块;

用于管理并存储用户反馈信息,同时记录使用者信息的用户反馈模块;

所述分类模块包括:

用于开发人员产生软件缺陷和所述软件缺陷对应的解决方案的软件缺陷及解决方案产生模块;

用于通过大众分类法对所述软件缺陷和所述软件缺陷对应的解决方案进行标记的标记模块;

用于根据所述标签将所述软件缺陷分为不同类型并获得缺陷种类的缺陷分类模块;

所述语义概念模块包括:

用于通过余弦相似度算法生成一颗添加有语义概念模型的标签树的标签树模块;其中,所述语义概念模型包括标签和相关语义概念,所述语义概念模型用于描述标签和相关语义概念之间的关系;

用于接收用户查询请求的用户查询模块;

用于通过用户所输入的查询请求,根据所述相关语义概念向用户推荐所述标签的标签推荐模块;

所述用户反馈模块包括:

用于用户进行结果评估、评分并提出评论的评估模块;

用于管理用户反馈信息的反馈信息管理模块;

用于储存用户反馈信息的反馈信息储存模块;

用于记录用户的使用者信息的使用者信息记录模块。

其中,所述系统还包括:

用于客户输入包含标签和端面信息问题的客户输入模块;

用于显示软件缺陷报告的显示模块;

用于将用于输入的关键词和端面信息与数据库中已有的数据进行匹配的数据匹配模块;其中,端面信息包括种类、语言和缺陷描述;

用于将所述标签与所述软件缺陷和解决方案建立关联的关联建立模块。

本实施例提出的基于语义概念的软件缺陷检索和分析系统主要包含三个模块:

分类模块:这个模块用于将标签进行分类。在开发人员创建了一个新的包含缺陷描述和相关解决方案的软件缺陷报告之后,对它用标签对它进行标记,根据类性算法,这个标签将被安排到一个缺陷分类中。

语义概念模块:这个模块是系统的核心。在这个模块中,我们运用了语义概念模型。语义概念模型是一个分级系统,这个结构由概念树组成(标签和相关的语义概念)。语义概念模型描述的标签和相关语义概念的关系,以此来帮助用户和开发人员检索相关的软件缺陷描述和解决方案信息。如果用户选择一个合适的语义概念,我们的系统将给出一个软件缺陷的结果列表。

用户反馈模块:用户能在系统给出的软件缺陷和相关解决方案之后权衡相关的解决方案并给出评论,这个模块管理并储存了用户的回馈信息,同时也记录了使用者的信息,以此提高系统表现。

在检索过程的开始,开发人员和使用者可以产生软件缺陷和它们的解决方案,并通过添加标签对它进行标记。相似的标签将被语义分析集中起来。如果用户输入了包含关键词和端面信息的问题,我们的系统将推荐相关标签。开发人员和用户可以权衡这些标签以提高标签推荐的质量。最后,开发人员就可以通过提出被推荐的标签来找到软件缺陷和相应的解决方案。

本实施例提出的一种基于语义概念的软件缺陷检索和分析系统,所述系统包括四个方面的检索的分析:关键字和分面检索、大众分析法、语义概念模型和用户的反馈。系统的检索的分析的整体过程为:首先,以输入关键字“电子邮件管理”和相关方面的信息为例,图2中显示了开发人员输入关键字“电子邮件管理”和相关方面的信息。当开发人员单击查询按钮来搜索相关的缺陷时,系统将推荐适当的标记和相关的语义概念。图3显示了推荐的标签和相关的语义概念。开发者可以选择合适的标签和概念。在本例中,开发者选择了标记“邮件管理”和相关语义概念“数据错误”,用于描述“邮件管理”的软件缺陷类型。图4显示了开发人员选择相关标记和语义概念时软件缺陷的结果列表,5个缺陷报告按照用户的评分进行了排序。每个报告都包含有关软件缺陷报告的信息,如程序名、类型、语言等。开发人员可以选择任意的缺陷报告来检查缺陷报告的细节。在图5中,软件缺陷报告被详细的描述给开发人员。这份报告显示了软件"Yahoo Test"的细节。其中,“用户评分”代表用户反馈的平均分,“解决方法”代表这个缺陷的调试方法。在软件缺陷报告中,开发人员可以给出从1到5的反馈评分和相关评论,以提高软件bug检索和分析的质量。

每个方面的检索和分析具体如下:

针对关键字和分面检索:

如果开发者只输入合适的关键字和面信息,相关的软件缺陷报告将被显示。如果开发者输入的信息与数据库中已有的数据相同,本发明所述系统会直接显示相关的软件缺陷报告。表1为一个由用户输入的关键字和面信息。用一段XML描述这个请求。在表1中,关键字元素显示了用户输入的关键字。分面信息包括“种类”,“语言”,“缺陷描述”。

表1

表2描述了根据图3输入的询问所得到的反馈。这个反馈包括了“软件名”,“一般说明”,“源代码行数”,“种类”,“缺陷描述”,“缺陷原因”,“解决方法”。这份反馈信息的核心部分是“缺陷描述”,“缺陷原因”,“解决方法”。

表2

针对大众分类法:

用户输入用于标记缺陷的关键字称之为“标签”。开发者可以用一些标签将软件缺陷符号化的表示。标签将缺陷分类成若干簇。图6展示了一个打标签的例子。在这个例子中,用“邮件管理”来标记缺陷“缓慢”的频率是最高的(8次),用“邮件管理”来标记缺陷“测试错误”的频率是最高的(6次),因此“缓慢”和“测试错误”的分类相同且有相同的标签“邮件管理”。最后,每一个缺陷都会被分类。

针对语义概念模型:

使用语义概念模型消除标签歧义,以此来加强标签推荐的准确性。在系统中,概念网络的概念被用于各项对语义概念的共同理解,以此来描述软件缺陷。所以在我们的系统中,语义概念模型由标签簇和相关的语义概念组成。形式上,我们有以下定义。

定义1:定义标签树:(i)标签树是语义概念模型的一个结构。(ii)t1,t2...,tk是标签的序列,它们包含语义概念且在一条从根到叶子的路径上。(iii)标记树由标记簇和相关语义概念组成。

定义2:为了实现标签簇,对标签之间的相似程度进行计算是必须的。本实施例采用余弦相似度算法计算标签之间的相似程度。所述余弦相似度算法的计算模型为:

其中,sim(ti,tj)为标签间的相似值,标签ti,tj被表示为向量;wki是标签ti在缺陷bk中的权重,wki的值被定义为TF-IDF,并且有

分别表示表示为标签ti,tj的向量。N代表软件缺陷的总数,n代表标签ti至少出现一次的软件缺陷的数量。

图7是一个以树结构描述语义概念模型的例子,图中显示了标记簇和语义概念。比如,标签“动态仿真模块”和“嵌入式SL”,都被分类到“模拟器”中。“日期错误”和“序列错误”代表了“动态仿真模块”的语义概念。事实上,这些语义概念解释了软件"动态仿真模块"的不同缺陷。

通过余弦相似度算法计算标签的相似性,将标签分类成簇并形成语义概念模型。表3展示了语义理解的详细算法。在这个算法中如果标签和最初的节点ti的相似度超过了阈值,这个标签就会变成这个树的一个子节点;否则,标签和树中节点划为一类。然后,如果存在子节点就把语义概念添加到子节点;否则就添加到父节点。最后,逐步建立了语义概念模型。

表3

针对用户的反馈:

如前一节所述,反馈模块用于允许用户对软件错误进行适当的评估并提供评论。反馈反映用户的兴趣。它有助于系统提高检索质量。用户的反馈信息包括用户给软件缺陷的评分、软件缺陷的平均评分和用户的评论。

实施例2

一种基于语义概念的软件缺陷检索和分析方法,如图8所示,所述方法包括:

用于将标签进行分类的分类步骤;其中,所述标签为用于标记软件缺陷的关键词;

用于帮助用户和开发人员检索标签和解决方案信息的语义概念步骤;

用于管理并存储用户反馈信息,同时记录使用者信息的用户反馈步骤;

所述分类步骤包括:

用于开发人员产生软件缺陷和所述软件缺陷对应的解决方案的软件缺陷及解决方案产生步骤;

用于通过大众分类法对所述软件缺陷和所述软件缺陷对应的解决方案进行标记的标记步骤;

用于根据所述标签将所述软件缺陷分为不同类型并获得缺陷种类的缺陷分类步骤;

所述语义概念步骤包括:

用于通过余弦相似度算法生成一颗添加有语义概念模型的标签树的标签树步骤;其中,所述语义概念模型包括标签和相关语义概念,所述语义概念模型用于描述标签和相关语义概念之间的关系;

用于接收用户查询请求的用户查询步骤;

用于通过用户所输入的查询请求,根据所述相关语义概念向用户推荐所述标签的标签推荐步骤;

所述用户反馈步骤包括:

用于用户进行结果评估、评分并提出评论的评估步骤;

用于管理用户反馈信息的反馈信息管理步骤;

用于储存用户反馈信息的反馈信息储存步骤;

用于记录用户的使用者信息的使用者信息记录步骤。

其中,所述方法还包括:

用于客户输入包含标签和端面信息的问题的客户输入步骤;

用于显示软件缺陷报告的显示步骤;

用于将用于输入的关键词和端面信息与数据库中已有的数据进行匹配的数据匹配步骤;其中,端面信息包括种类、语言和缺陷描述;

用于将所述标签与所述软件缺陷和解决方案建立关联的关联建立步骤。

所述余弦相似度算法的计算模型为:

其中,sim(ti,tj)为标签间的相似值,标签ti,tj被表示为向量;wki是标签ti在缺陷bk中的权重,wki的值被定义为TF-IDF,并且有

分别表示表示为标签ti,tj的向量。N代表软件缺陷的总数,n代表标签ti至少出现一次的软件缺陷的数量。

在检索过程的开始,开发者创建软件缺陷报告和解决方案,使用大众分类法对开发者创造的缺陷报告进行标记,根据标签将缺陷分为不同的类(class 1-classN)获得软件缺陷种类,然后,利用余弦相似度算法生成一颗添加了语义概念模型的标签树,在用户输入查询请求后,该系统将根据语义概念推荐相关的标签给用户,并且用户在查看了推荐的标签后对这次查询进行评分。然后对我们的系统进行反馈。

虽然本发明已以较佳的实施例公开如上,但其并非用以限定本发明,任何熟悉此技术的人,在不脱离本发明的精神和范围内,都可以做各种改动和修饰,因此本发明的保护范围应该以权利要求书所界定的为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号