一种基于软件开发问题的技术债务识别方法及装置制造方法及图纸

技术编号:35563907 阅读:26 留言:0更新日期:2022-11-12 15:47
本发明专利技术公开了一种基于软件开发问题的技术债务识别方法及装置,其中的方法包括如下步骤:1.获取软件开发问题跟踪系统中的开发问题集合,2.对开发问题文本进行预处理,3.基于深度学习的技术债务识别模型,包括嵌入层、长短时记忆网络层和全连接层,4.训练模型,5.模型的应用。本发明专利技术创新地关注软件开发问题跟踪系统中的开发问题是否包含技术债务,有利于软件工程师更好的关注和管理软件中的技术债务,并且使用基于LSTM的深度学习模型识别软件开发问题跟踪系统中每个开发问题是否包含技术债务,比传统检测方法的准确率更高。比传统检测方法的准确率更高。比传统检测方法的准确率更高。

【技术实现步骤摘要】
一种基于软件开发问题的技术债务识别方法及装置


[0001]本专利技术涉及软件
,尤其涉及一种基于软件开发问题的技术债务识别方法及装置。

技术介绍

[0002]技术债务是指软件开发中为了项目的短期利益产生的不成熟的软件制品,这些制品给软件维护和演化带来额外成本,并且该成本会随着时间不断累积。由于其对软件质量的重大影响,技术债务已成为一个热门话题,受到了学术界和工业界的极大关注。
[0003]现有技术中,主要通过两种途径来识别软件中的技术债务:
[0004](一)通过静态源代码分析来识别技术债务。高质量的软件项目有着合理清晰的设计、简洁明了的代码。因此,软件工程师可以通过适当的量化方法来分析项目中的源代码,从而评估项目的质量以及捕捉项目中的技术债务。
[0005](二)通过代码注释识别技术债务。Potdar和Shihab把在代码注释中明确承认的技术债务定义为自承认技术债务。当软件工程师有意识地写下不合理的代码时,他们通常会在代码旁边手工注释,以提醒自己或其他的软件工程师。因此,可以通过这种带有主观意识的注释去识别和判断其周边代码的技术债务。
[0006]本本申请专利技术人在实施本专利技术的过程中,发现现有技术的方法,至少存在如下技术问题:
[0007]第一种方法依赖于各个软件代码的设计规范,且前期需要人工对各个项目进行大量的分析,耗费人力。第二种方法使用的代码注释依赖于软件工程师的自发性,其使用场景和数据较少。因此,现有技术中的上述两种途径并不能完全且准确地识别出软件中隐含的技术债务。

技术实现思路

[0008]本专利技术提供了一种基于软件开发问题的技术债务识别方法及装置,用以解决或者至少部分解决现有技术中存在的识别准确性不高的技术问题。
[0009]为了解决上述技术问题,本专利技术第一方面提供了一种基于软件开发问题的技术债务识别方法,包括:
[0010]S1:基于开发问题跟踪系统获取开发问题集合,开发问题集合中的每一个开发问题包括两部分:开发问题文本和开发问题类型,其中,开发问题文本为研发人员对该开发问题的描述性文字,开发问题类型表示开发问题是否涉及到技术债务;
[0011]S2:对获取的开发问题集合中的开发问题文本进行预处理;
[0012]S3:构建基于深度学习的技术债务识别模型,模型包括嵌入层、LSTM层和全连接层,其中,嵌入层用于将输入的文本转换为实数向量,LSTM层包括两层,用于将输入的实数向量转换为特征向量,全连接层用于将两个LSTM层输出的特征向量转换为实数,再通过Softmax函数得到开发问题涉及技术债务的概率,从而得到预测结果;
[0013]S4:将预处理后的开发问题文本划分为训练集和测试集;
[0014]S5:利用划分的训练集对构建的基于深度学习的技术债务识别模型进行训练,得到训练好的技术债务识别模型;
[0015]S6:利用训练好的技术债务识别模型进行技术债务识别。
[0016]在一种实施方式中,所述方法还包括:利用划分的测试集对训练好的技术债务识别模型进行测试,具体为:将测试集中包含的开发问题文本输入到训练好技术债务识别模型中,通过模型预测出输入的开发问题涉及到技术债务的概率,其中,当预测概率大于或等于阈值时,则表明该开发问题涉及到了技术债务,否则表明该开发问题不涉及技术债务。
[0017]在一种实施方式中,步骤S2包括:
[0018]S2.1:对开发问题文本进行字符处理,只保留英文字母以及情感标点符号,并将英文的大写字母转换为小写字母;
[0019]S2.2:将开发问题文本中的所有的单词转化为其词干形式;
[0020]S2.3:删除开发问题文本中包含的功能词。
[0021]在一种实施方式中,LSTM层的处理过程包括:
[0022]每次依序读取矩阵W中的子矩阵x,矩阵x的大小设置为5*300,每一次,LSTM利用门机制记录并更新信息,当LSTM将整个矩阵W读取完毕,并按照门机制更新状态后,LSTM层会输出一个最终状态H,其中,矩阵W由开发问题文本通过嵌入层后得到,最终状态H即为输出的特征向量。
[0023]基于同样的专利技术构思,本专利技术第二方面提供了一种基于软件开发问题的技术债务识别装置,包括:
[0024]数据获取模块,用于基于开发问题跟踪系统获取开发问题集合,开发问题集合中的每一个开发问题包括两部分:开发问题文本和开发问题类型,其中,开发问题文本为研发人员对该开发问题的描述性文字,开发问题类型表示开发问题是否涉及到技术债务;
[0025]预处理模块,用于对获取的开发问题集合中的开发问题文本进行预处理;
[0026]模型构建模块,用于构建基于深度学习的技术债务识别模型,模型包括嵌入层、LSTM层和全连接层,其中,嵌入层用于将输入的文本转换为实数向量,LSTM层包括两层,用于将输入的实数向量转换为特征向量,全连接层用于将两个LSTM层输出的特征向量转换为实数,再通过Softmax函数得到开发问题涉及技术债务的概率,从而得到预测结果;
[0027]数据集划分模块,用于将预处理后的开发问题文本划分为训练集和测试集;
[0028]训练模块,用于利用划分的训练集对构建的基于深度学习的技术债务识别模型进行训练,得到训练好的技术债务识别模型;
[0029]技术债务识别模块,用于利用训练好的技术债务识别模型进行技术债务识别。
[0030]基于同样的专利技术构思,本专利技术第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
[0031]基于同样的专利技术构思,本专利技术第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
[0032]相对于现有技术,本专利技术的优点和有益的技术效果如下:
[0033]本专利技术提供的一种基于软件开发问题的技术债务识别方法,创新地关注软件开发
问题跟踪系统中的开发问题是否包含技术债务。从软件开发问题跟踪系统中能够获取大量的技术债务信息,不需要人工标记,问题结构与包含的内容也更加完整准确,从而可以在较短的时间内关注到更多的信息。并且本专利技术使用基于LSTM的深度学习模型识别开发问题跟踪系统中每个开发问题是否涉及到技术债务。相较于传统的深度学习模型而言,LSTM通过门机制可以捕获到更长的文字信息,并保证了运行效率,提高了识别准确率,比传统检测方法的效果更好。
附图说明
[0034]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1为本专利技术实施例中构建的基于深度学习的技术债务识别模型的框架图;
[0036]图2为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于软件开发问题的技术债务识别方法,其特征在于,包括:S1:基于开发问题跟踪系统获取开发问题集合,开发问题集合中的每一个开发问题包括两部分:开发问题文本和开发问题类型,其中,开发问题文本为研发人员对该开发问题的描述性文字,开发问题类型表示开发问题是否涉及到技术债务;S2:对获取的开发问题集合中的开发问题文本进行预处理;S3:构建基于深度学习的技术债务识别模型,模型包括嵌入层、LSTM层和全连接层,其中,嵌入层用于将输入的文本转换为实数向量,LSTM层包括两层,用于将输入的实数向量转换为特征向量,全连接层用于将两个LSTM层输出的特征向量转换为实数,再通过Softmax函数得到开发问题涉及技术债务的概率,从而得到预测结果;S4:将预处理后的开发问题文本划分为训练集和测试集;S5:利用划分的训练集对构建的基于深度学习的技术债务识别模型进行训练,得到训练好的技术债务识别模型;S6:利用训练好的技术债务识别模型进行技术债务识别。2.如权利要求1所述的基于软件开发问题的技术债务识别方法,其特征在于,所述方法还包括:利用划分的测试集对训练好的技术债务识别模型进行测试,具体为:将测试集中包含的开发问题文本输入到训练好技术债务识别模型中,通过模型预测出输入的开发问题涉及到技术债务的概率,其中,当预测概率大于或等于阈值时,则表明该开发问题涉及到了技术债务,否则表明该开发问题不涉及技术债务。3.如权利要求1所述的基于软件开发问题的技术债务识别方法,其特征在于,步骤S2包括:S2.1:对开发问题文本进行字符处理,只保留英文字母以及情感标点符号,并将英文的大写字母转换为小写字母;S2.2:将开发问题文本中的所有的单词转化为其词干形式;S2.3:删除开发问题文本中包含的功能词。4.如权利要求1所述的基于软件开发问题的技术债务识别方法...

【专利技术属性】
技术研发人员:彭依琳李增扬
申请(专利权)人:华中师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1