CN111460401B - 结合软件制品过程信息和文本相似度的制品自动追踪方法 - Google Patents
结合软件制品过程信息和文本相似度的制品自动追踪方法 Download PDFInfo
- Publication number
- CN111460401B CN111460401B CN202010431048.3A CN202010431048A CN111460401B CN 111460401 B CN111460401 B CN 111460401B CN 202010431048 A CN202010431048 A CN 202010431048A CN 111460401 B CN111460401 B CN 111460401B
- Authority
- CN
- China
- Prior art keywords
- product
- tracking
- products
- file
- article
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 230000008569 process Effects 0.000 title claims abstract description 74
- 239000000047 product Substances 0.000 claims abstract description 178
- 238000012549 training Methods 0.000 claims abstract description 19
- 238000007781 pre-processing Methods 0.000 claims abstract description 11
- 239000013067 intermediate product Substances 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 claims description 21
- 230000000694 effects Effects 0.000 claims description 17
- 238000005065 mining Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 8
- 238000007637 random forest analysis Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000013145 classification model Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 4
- 238000010801 machine learning Methods 0.000 abstract description 2
- 238000007635 classification algorithm Methods 0.000 abstract 1
- 238000002372 labelling Methods 0.000 abstract 1
- 230000007547 defect Effects 0.000 description 36
- 230000008439 repair process Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000003066 decision tree Methods 0.000 description 3
- CLMQBVUFKIKYLU-UHFFFAOYSA-N 6-amino-4-(2,5-dimethoxyphenyl)-3-naphthalen-2-yl-2,4-dihydropyrano[2,3-c]pyrazole-5-carbonitrile Chemical compound COC1=CC=C(OC)C(C2C(=C(N)OC=3C2=C(NN=3)C=2C=C3C=CC=CC3=CC=2)C#N)=C1 CLMQBVUFKIKYLU-UHFFFAOYSA-N 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机技术领域,具体涉及一种结合软件制品过程信息和文本相似度的制品自动追踪方法,包括:选择制品,挖掘待关联制品间的追踪关系,划分显隐式追踪关系;抽取待关联制品的过程信息;计算待关联制品间的文本相似度;为显式追踪关系的制品选定过程特征及关系结果标签;隐式追踪关系的制品间的追踪关系人工打标签,并借助中间制品增加相关特征;预处理数据,获取样本集,选择机器学习分类算法,训练模型,预测制品间是否存在追踪关系。本发明从过程数据出发,解决了信息检索方法受限于文本质量以及词汇失配的问题,且可以追踪多种制品间的追踪关系。本发明相较于传统依赖文本相似度的信息检索方法,精确率和召回率均有大幅度提升。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种结合软件制品过程信息和文本相似度的制品自动追踪方法。
背景技术
软件可追踪性是一种将软件制品与其他制品关联起来,并使用制品关系网络解析软件产品和开发问题的能力。软件可追踪性研究的主要目标是构建各种制品间的追踪关系,称为追踪链接,通过追踪关系可以减轻软件维护难度,保障软件安全性,帮助利益相关人员了解此类制品以及与其关联的制品,挖掘更多信息。制品间的追踪链接一般为项目参与者心中的隐式信息,由于人工记录链接成本较高,且对于项目参与者来说,追踪链接带来的收益不够突出,故在软件开发过程中制品相应的链接并没有被直接记录。但随着可追踪性在保障关键安全系统正确性和支持软件维护工作中地位的提高,同时作为软件可信、过程可信的重要属性,构建和恢复制品间的追踪链接成为当下的研究热点。因此出现了一些半自动化的方法用以恢复制品间的链接,致力于减少人力成本。
目前,主流方法借助信息检索模型,根据文本相似度生成潜在追踪链接的排名列表,用以构建需求和源代码间的追踪关系。但是该方法完全受限于制品的文本质量,由于词汇失配,代码元素命名不规范等低质量文本内容,存在召回率和精确率不能两全的问题。
发明内容
本发明的目的在于:针对现有方法的不足,本发明的目的是提供一种结合软件制品过程信息和文本相似度的多制品自动追踪方法。
为实现上述目的,本发明的技术方案是:提供一种结合软件制品过程信息和文本相似度的制品自动追踪方法,包括以下步骤:
S1:选择待关联软件制品,挖掘软件制品间是否存在追踪链接,确定软件制品间的追踪关系类型,所述追踪关系类型具体分为显式追踪关系和隐式追踪关系;
S2:从目标软件资源库中抽取待关联软件制品的过程信息相关字段,包括制品状态、文本描述信息、不同状态下的时间、相关负责人员;
S3:计算待关联软件制品间的文本相似度;
S4:对于显式追踪关系的软件制品,从过程信息中提取时间、人员和已关联链接特征,并确定结果标签。
S5:对于隐式追踪关系的软件制品,借助过程中的中间制品作为媒介,增加时间、人员、文件特征,判定待关联软件制品间是否存在追踪关系。
S6:预处理数据,获得样本集,将样本集分为训练集和测试集,训练二分类模型,预测软件制品间是否存在追踪关系;
命名待关联的软件制品为制品A和制品B,制品A的集合表示为SetA={a1,a2,a3,…,an},其中ai表示具体的制品,制品B的集合表示为SetB={b1,b2,b3,…,bn},其中bi表示具体的制品。
优选地,所述S1包含以下步骤:
S1-1:选择待关联制品A和制品B,挖掘制品间是否存在追踪链接,确定制品间的追踪关系类型;
若产生制品A的软件活动与产生制品B的软件活动在过程上相邻,制品A的过程信息中包含与制品B直接关联的字段,则制品之间存在显式追踪关系;
若产生制品A的软件活动与产生制品B的软件活动在过程上不相邻,且制品A的过程信息中并不包含与制品B直接关联的字段,则制品之间存在隐式追踪关系。
优选地,所述S2包含以下步骤:
S2-1:获取软件制品A过程信息数据,从软件资源库中获取制品A涉及到的人员、时间、文本描述及过程状态相关数据;
S2-2:获取软件制品B过程信息数据,从软件资源库中获取制品A涉及到的人员、时间、文本描述及过程状态相关数据。
优选地,所述S3包含以下步骤:
S3-1:制品A和制品B的文本描述信息分别被视为一个文档,对其进行文本预处理,预处理包括删除不规范文本记录和去除停用词;
S3-2:基于VSM模型,所述VSM模型表示空间向量模型,计算制品A和制品B的文本相似度,将制品A和制品B的文本描述用向量a,b表示,向量中的每个维度对应一个词项在文档中的权重,每个词项权重的计算方法为TF-IDF法,TF-IDF法表示词频-逆词频法,其中,向量a=(w11,w12,···,w1n),向量b=(w21,w22,···,w2n),wij为词项的权重;利用余弦距离计算向量a,b之间的余弦相似度:
制品A和制品B的文本相似度可表述为sim(des(A),des(B)),des(A)和des(B)表示制品A和制品B的文本描述字段,θ为向量a,b之间的夹角。
优选地,所述S4包含以下步骤:
S4-1:挖掘显式追踪关系制品间的时间特征,首先确定制品A和制品B的生命周期关系,一般分为周期包含、周期交叉和周期并列;对比制品A和制品B的创建时间和结束时间,得到时间特征;
S4-2:挖掘人员特征,挖掘制品A和制品B的相关负责人的联系,包括同时参与制品A和制品B对应的软件活动的人员;
S4-3:挖掘已链接记录特征,显式追踪关系制品间存在已链接的记录,挖掘待关联制品和已链接记录之间的关系,提取特征;
其中,待追踪具体制品ai与具体制品bi,时间上在具体制品bi之前且与具体制品ai已链接的B类制品集合作为Lpre,Lp为集合中时间与bi相隔最近的具体制品,计算具体制品bi与Lp的文件重合度Nf=overlap(file(bi),file(Lp))、文本相似度Nt=sim(des(bi),des(Lp));
其中计算文件重合度的公式为:
overlap(file(ai),file(bi))=(file(ai)∩file(bi))/(file(ai)∪file(bi))
file(ai)为具体制品ai涉及到的文件集合,file(bi)为具体制品bi涉及到的文件集合,file(ai)∩file(bi)为两个集合的交集,file(ai)∪file(bi)为两个集合的并集;
待追踪具体制品ai与具体制品bi,时间上在bi之后且与具体制品ai已链接的B类制品集合作为Lnext,Ln为集合中时间上与具体制品bi相隔最近的具体制品,计算具体制品bi与Ln的文件重合度Nf=overlap(file(bi),file(Ln))、文本相似度Nt=sim(des(bi),des(Ln));
S4-4:挖掘制品A和制品B之间的结果标签,若具体制品ai可以关联到具体制品bi,则ai和bi之间存在追踪关系,为正样本,否则为负样本。
优选地,所述S5包括以下步骤:
S5-1:选取中间制品C,作为制品A和制品B的媒介制品;
S5-2:获取制品A和制品B的时间特征、人员特征和文本特征;
S5-3:依据制品C,增加制品A和制品B间与制品C的相关特征,计算文件重合度和人员重合度;
S5-4:研究人员和项目参与者交叉判定制品A和制品B之间是否存在链接,存在则为正样本,否则为负样本。
优选地,所述S6包括以下步骤:
S6-1:数据预处理,对获取到的特征进行预处理,包括异常值、缺失值、数据规范化、离散特征处理;
S6-2:选用随机森林算法,按照训练集和测试集8:2的比例划分数据,以过采样的方法均衡训练集,用以训练模型;
S6-3:追踪关系预测,利用训练的模型预测待关联的链接。
本发明的有益效果:
与传统的信息检索模型相比,该方法应用了文本相似度作为其中一个特征,挖掘了多源软件资源库数据,并增加了软件制品过程相关特征,提高了特征的丰富度,同时减少了词汇失配、语言不统一、过多依赖于高质量文本等问题对预测结果带来的负面影响。该方法相较于传统的基于文本相似度的信息检索方法,准确率和召回率显著提高,且不局限于需求和源代码之间的追踪,可支持构建其他多制品间的追踪关系。
附图说明
图1为一种结合软件制品过程信息和文本相似度的制品自动追踪方法的流程示意图。
图2为实施例中数据的处理过程示意图。
图3为模型的训练过程示意图。
图4为制品间生命周期关系示例图。
图5为制品显隐式追踪关系示例图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
请参阅图1至图5所示,本发明提供了一种结合软件制品过程信息和文本相似度的制品自动追踪方法,包括以下步骤:
S1:选择待关联软件制品,挖掘软件制品间是否存在追踪链接,确定软件制品间的追踪关系类型,所述追踪关系类型具体分为显式追踪关系和隐式追踪关系;
S2:从目标软件资源库中抽取待关联软件制品的过程信息相关字段,包括制品状态、文本描述信息、不同状态下的时间、相关负责人员;
S3:计算待关联软件制品间的文本相似度;
S4:对于显式追踪关系的软件制品,从过程信息中提取时间、人员和已关联链接特征,并确定结果标签。
S5:对于隐式追踪关系的软件制品,借助过程中的中间制品作为媒介,增加时间、人员、文件重合特征,判定待关联软件制品间是否存在追踪关系。
S6:预处理数据,获得样本集,将样本集分为训练集和测试集,训练二分类模型,预测软件制品间是否存在追踪关系;
命名待关联的软件制品为制品A和制品B,制品A的集合表示为SetA={a1,a2,a3,…,an},其中ai表示具体的制品,制品B的集合表示为SetB={b1,b2,b3,…,bn},其中bi表示具体的制品。
所述S1包含以下步骤:
S1-1:选择待关联制品A和制品B,挖掘制品间是否存在追踪链接,确定制品间的追踪关系类型;
若产生制品A的软件活动与产生制品B的软件活动在过程上相邻,制品A的过程信息中包含与制品B直接关联的字段,则制品之间存在显式追踪关系;
若产生制品A的软件活动与产生制品B的软件活动在过程上不相邻,且制品A的过程信息中并不包含与制品B直接关联的字段,则制品之间存在隐式追踪关系。
所述S2包含以下步骤:
S2-1:获取软件制品A过程信息数据,从软件资源库中获取制品A涉及到的人员、时间、文本描述及过程状态相关数据;
S2-2:获取软件制品B过程信息数据,从软件资源库中获取制品A涉及到的人员、时间、文本描述及过程状态相关数据。
所述S3包含以下步骤:
S3-1:制品A和制品B的文本描述信息分别被视为一个文档,对其进行文本预处理,预处理包括删除不规范文本记录和去除停用词;
S3-2:基于VSM模型,所述VSM模型表示向量空间模型,计算制品A和制品B的文本相似度,将制品A和制品B的文本描述用向量a,b表示,向量中的每个维度对应一个词项在文档中的权重,每个词项权重的计算方法为TF-IDF法,TF-IDF法表示词频-逆词频法,其中,向量a=(w11,w12,···,w1n),向量b=(w21,w22,···,w2n),wij为词项的权重;利用余弦距离计算向量a,b之间的余弦相似度:
制品A和制品B的文本相似度可表述为sim(des(A),des(B)),des(A)和des(B)表示制品A和制品B的文本描述字段,θ为向量a,b之间的夹角。
所述S4包含以下步骤:
S4-1:挖掘显式追踪关系制品间的时间特征,首先确定制品A和制品B的生命周期关系,一般分为周期包含、周期交叉和周期并列;对比制品A和制品B的创建时间和结束时间,得到时间特征;
S4-2:挖掘人员特征,挖掘制品A和制品B的相关负责人的联系,包括同时参与制品A和制品B对应的软件活动的人员;
S4-3:挖掘已链接特征,显式追踪关系制品间存在已链接的记录,挖掘待关联制品和已链接记录之间的关系,提取特征;
其中,待追踪具体制品ai与具体制品bi,时间上在bi之前且与具体制品ai已链接的B类制品集合作为Lpre,Lp为集合中时间具体制品bi相隔最近的具体制品,计算具体制品bi与Lp的文件重合度Nf=overlap(file(bi),file(Lp))、文本相似度Nt=sim(des(bi),des(Lp));
其中计算文件重合度的公式为:
overlap(file(ai),file(bi))=(file(ai)∩file(bi))/(file(ai)∪file(bi))
file(ai)为具体制品ai涉及到的文件集合,file(bi)为具体制品bi涉及到的文件集合,file(ai)∩file(bi)为两个集合的交集,file(ai)∪file(bi)为两个集合的并集;
待追踪具体制品ai与具体制品bi,时间上在bi之后且与具体制品ai已链接的B类制品集合作为Lnext,Ln为集合中时间与具体制品bi相隔最近的具体制品,计算具体制品bi与Ln的文件重合度Nf=overlap(file(bi),file(Ln))、文本相似度Nt=sim(des(bi),des(Ln));
S4-4:挖掘制品A和制品B之间的结果标签,若具体制品ai可以关联到具体制品bi,则ai和bi之间存在追踪关系,为正样本,否则为负样本。
所述S5包括以下步骤:
S5-1:选取中间制品C,作为制品A和制品B的媒介制品;
S5-2:获取制品A和制品B的时间特征、人员特征和文本特征;
S5-3:依据制品C,增加制品A和制品B间与制品C的相关特征,计算文件重合度和人员重合度;
S5-4:研究人员和项目参与者交叉判定制品A和制品B之间是否存在链接,存在则为正样本,否则为负样本。
所述S6包括以下步骤:
S6-1:数据预处理,对获取到的特征进行预处理,包括异常值、缺失值、数据规范化、离散特征处理;
S6-2:选用随机森林算法,按照训练集和测试集8:2的比例划分数据,以过采样的方法均衡训练集,用以训练模型;
S6-3:追踪关系预测,利用训练的模型预测待关联的链接。
实施例中将选取具体的制品,详细叙述追踪构建过程。对于显式追踪关系,实施例一中以需求和代码提交的追踪为例。对于隐式追踪关系,实施例二中以需求和缺陷的追踪为例。
实施例一
本实施例中,主要描述的是显式追踪关系制品的追踪过程,以需求和代码提交为例。需求是软件制品中最为重要的制品,代码提交是代码变动的主要形式,可一定程度上代表代码制品。在实践中,开发人员在代码提交时,会手动填入关联的需求编号或修复的缺陷编号,由此可以从代码提交中定位到需求,即挖掘到已存在的追踪关系。且在需求设计完成后,进入编译过程,两类制品在过程上相邻,为显式追踪关系。但目前大多项目中的需求与代码提交记录间的追踪率参差不齐,仍存在部分需求和代码提交记录间无关联的情况。本实施例通过挖掘企业项目中的数据,选择已链接的记录作为样本集,构建模型,预测追踪关系。
步骤1:挖掘需求和代码提交的追踪关系。
代码提交中的描述信息中包含需求的编号,可由此定位到具体的需求,故需求与代码提交间为显式追踪关系。但因为不是每个需求都被追踪,在选取的企业项目中,需求在代码提交中的追踪率参差不齐,40%~80%不等。
步骤2:从软件资源库中,获取需求和代码提交的过程数据。
需求的生命周期会持续一段时间,从需求的创建、分析、排期、实现、验证直到需求的完成。软件资源库中所记录的过程信息包括需求的时间信息:创建时间和关闭时间;人员信息:需求的创建人员、开发人员、测试人员;需求的文本描述:标题和具体描述。资源库中需求的过程数据并不局限于表1中的数据。表1只涉及本方法所抽取的需求过程数据。
表1
字段名称 | 具体描述 |
R_id | 需求编号,定位唯一需求记录 |
R_title | 需求的标题 |
R_des | 需求的文本描述 |
R_userid | 需求的创建者,一般为需求的设计者 |
R_createTime | 需求的创建时间,一般在版本开始之初 |
R_closeTime | 需求的关闭时间,一般在版本上线之前 |
R_developer | 需求的开发人员 |
R_tester | 需求的测试人员 |
R_version | 需求所属版本 |
R_status | 需求状态:评估、开发、测试、已完成 |
代码提交是代码变动的主要体现方式,且因为代码提交可以定位到每次更改的变动文件,可一定程度上代表代码制品。另外,在国内,软件开发中大部分的制品文档及代码提交信息都以中文为主,选择代码提交可一定程度规避源代码和制品间因语言差异和语义不一致带来的文本失配问题。代码提交会涉及到提交人员、提交时间、提交描述、增加和删除的代码行以及修改的文件,其中修改的文件一般为多个。表2为资源库中代码提交的相关过程数据。
表2
字段 | 具体描述 |
C_id | 代码提交编号,定位唯一commit |
C_userid | 提交者,即开发人员 |
C_commitTime | commit提交时间 |
C_des | commit文本描述,改动说明 |
C_deletions | 该commit删除的代码行 |
C_additions | 该commit增加的代码行 |
C_number | 该commit关联的需求、缺陷等 |
File_name | 文件名称,即代码提交修改到的文件 |
步骤3:文本相似度计算。
文档d分词、去除停用词后,可由其包含的词项表示,d={t1,t2,t3,…,tn},每个词项tk按照一定的原则被赋予权重wk,表示词项在文档中的重要程度。
每一个词项权重wk的计算方法TF-IDF。
tfidfi,j=tfi,j×idfi
其中tfi,j指的是词项在文档dj中的出现频率,其中分子ni,j为词项ti在文档dj中的出现次数,分母指的是文档dj所有词项的次数之和;idfi,表示词项ti的逆文本频率,分子|D|表示文档总数,分母表示包含词项ti的文档数目。
D1和D2为两个文档的空间向量表示,D1={w11,w12,…,w1k},D2={w21,w22,…,w2k},计算D1和D2的余弦相似度,可得到文档d1和d2的文本相似度。
用sim(d1,d2)表示两个文档d1和d2的计算过程,包含文本预处理、向量化和余弦距离计算,可达到文档d1和文档d2的文本相似度值。
des(C)和des(R)分别为代码提交和需求的文本描述,故需求和代码提交的文本相似度为sim(des(C),des(R)),作为文本特征。
步骤4,从需求和代码提交的过程信息中提取时间、人员、其他类型特征。
人员特征:需求的开发人员应为关联到此需求的代码提交的作者。RC1代码提交者,RC2为需求的开发人员,若RC1=RC2,则RC3=1,否则RC3=0。
时间特征:代码的提交时间应在需求的生命周期内。RC4为代码提交与需求创建时间差,RC5为需求关闭时间与代码提交的时间差,若RC4与RC5都大于等0,则RC6=1,否则RC6=0。
其他特征:已链接到同一需求的先前提交相关特征。将已链接到此需求的commit作为集合Cpre,集合Cpre中代码的提交时间均小于C,Cp=maxtime(Cpre),RC7=commitTime(C)-commitTime(Cp)。
两次代码提交的文件重合度。其中,file_C为代码提交C修改的文件集合,file_Cp为代码提交Cp修改的文件集合,RC8=overlap(file_C,file_Cp),RC9=userid(Cp)。
对于已链接到此需求的commit作为集合Cnext,且Cnext的提交时间均大于C,Cn=mintime(Cnext),RC10=commitTime(C)-commitTime(Cn),RC11=overlap(file_C,file_Cn),RC12=userid(Cn)。
在代码提交时,该项目开发进行中的需求数量,RC13=R{open}。
已链接到此需求的代码提交数量,RC14=C{linked}
表3为需求和代码提交的特征汇总。
表3
特征 | 特征值 |
RC1 | userid(C) |
RC2 | userid(R) |
RC3 | 0/1 |
RC4 | commitTime(C)-createTime(R) |
RC5 | closeTime(R)-commitTime(C) |
RC6 | 0/1 |
RC7 | commitTime(C)-commitTime(Cp) |
RC8 | overlap(file_C,file_Cp) |
RC9 | userid(Cp) |
RC10 | commitTime(C)-commitTime(Cn) |
RC11 | overlap(file_C,file_Cn) |
RC12 | userid(Cn) |
RC13 | R{open} |
RC14 | C{linked} |
RC15 | sim(des(C),des(R)) |
确定结果标签,代码提交时开发人员一般会在C_number字段中填入涉及的需求编号,若代码提交信息中存在某个需求编号,则其追踪关系作为正样本,否则作为负样本。
步骤5,为隐式追踪关系制品的特征提取,此处不涉及。
步骤6,获取样本数据,训练模型。
将获取到的样本按照8:2的比例进行分割,其中样本数据集存在着不平衡问题,采取过采样方法对训练集进行均衡。采样多次,最终取随机森林模型的平均结果。其中附图3为模型的训练过程。
随机森林是一种由决策树扩展而来的集成机器学习算法,通过综合多棵决策树降低单一决策树中的过拟合问题,提高分类效果。
本实施例中选取了5个工业项目,表4为需求和代码提交追踪关系恢复的精确率和召回率。
表4
项目 | F1 | P | R |
P1 | 073 | 0.77 | 0.70 |
P2 | 0.68 | 0.73 | 0.64 |
P3 | 0.87 | 0.87 | 0.87 |
P4 | 0.66 | 0.74 | 0.59 |
P5 | 0.83 | 0.88 | 0.78 |
实施例二
本实施例中为隐式追踪关系制品的追踪过程,以需求和缺陷的追踪为例,并选取代码提交为媒介制品,增加过程特征。需求的设计和缺陷的修复活动在过程上不相邻,且数据上不存在直接可追踪的记录。研究人员和项目参与者交叉判定制品间的追踪关系作为样本集,训练模型,恢复制品间的追踪关系。
步骤1,挖掘需求和缺陷的追踪关系。
缺陷的过程数据中,不存在可以直接定位需求的数据。需求的过程数据中不包含可以直接定位缺陷的数据。需求和缺陷不存在已链接的追踪关系,且在制品生产过程上,需求和缺陷不相邻(参见附图5),故为隐式追踪关系制品。
步骤2,从软件资源库中获取需求和缺陷的过程数据。
缺陷自创建到关闭会经历缺陷提交,定位,修复,验证等几个状态。缺陷追踪系统中会包含人员信息:提交人员和修复人员;时间信息:缺陷的创建时间、修复时间、关闭时间;以及缺陷的文本描述。注缺陷追踪系统中所记录的数据包括但不局限于表5。表5只涉及该方法所抽取的部分缺陷过程信息。
表5
步骤3,计算需求和缺陷文本描述的相似度。文本相似度的计算过程和实施例一中相同,需求和缺陷文本相似度sim(des(R),des(B)),作为本文特征。
步骤4为显式追踪关系制品的特征提取,此处不涉及。
步骤5,选取中间制品,增加特征。一般情况下,缺陷会被分配给负责此需求的开发人员,以减少代码阅读理解成本。进一步,如果需求和缺陷之间存在追踪关系,两种制品对应的代码提交的源文件会存在高重叠度。
选取代码提交为中间制品,从人员、时间、代码提交重合度等提取需求和缺陷的特征。
人员特征:一般需求的开发人员应与缺陷的修复人员高度重合。RBC1为需求的开发人员,RBC2是缺陷的修复人员,若RBC1=RBC2,则RBC3=1,否则RBC3=0。此处的相关人员为主要负责人,不与RBC7的人员集合冲突。
时间特征:缺陷的生命周期应在需求的生命周期内。RBC4为缺陷与需求创建时间的时间差,RBC5为需求与缺陷的关闭时间的时间差,若RBC4和RBC5都大于等于0,则RBC6=1,否则RBC6=0。
代码提交重合特征:需求和缺陷在代码提交人员的重合度。RBC7=overlap(committer(R),committer(B)),其中committer(R)为需求开发人员集合,committer(B)为缺陷修复人员集合。
一次代码提交会修改多个源文件,而缺陷修复大多是在原有功能基础上的修改维护,如果需求和缺陷存在追踪关系,则所修改源文件存在高度重合,RBC8=overlap(file(R),file(B))。其中file(R)为需求开发修改的文件集合,file(B)为缺陷修复修改的文件集合。
表6为需求和缺陷关联的过程特征汇总。
表6
特征 | 特征值 |
RBC1 | developer(R) |
RBC2 | developer(B) |
RBC3 | 0/1 |
RBC4 | createTime(B)-createTime(R) |
RBC5 | closeTime(R)-closeTime(B) |
RBC6 | 0/1 |
RBC7 | overlap(committer(R),committer(B)) |
RBC8 | overlap(file(R),file(B)) |
RBC9 | sim(des(R),des(B)) |
研究人员和项目参与者手动关联并交叉确认需求和缺陷间的追踪关系,以构建样本数据。制品间存在追踪关系为正样本,否则为负样本。
步骤6,划分样本数据,训练模型。将获取到的样本按照8:2的比例进行分割,其中样本数据集存在着不平衡问题,采取过采样方法对训练集进行均衡。采样多次,最终取随机森林模型的平均结果。
本实施例中,选取了5个工业项目,分类器使用随机森林模型。表7需为求和缺陷关联时每个项目的精确率和召回率。
表7
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (3)
1.一种结合软件制品过程信息和文本相似度的制品自动追踪方法,其特征在于,包括以下步骤:
S1:选择待关联软件制品,挖掘软件制品间是否存在追踪链接,确定软件制品间的追踪关系类型,所述追踪关系类型具体分为显式追踪关系和隐式追踪关系;
S2:从目标软件资源库中抽取待关联软件制品的过程信息相关字段,包括制品状态、文本描述信息、不同状态下的时间、相关负责人员;
S3:计算待关联软件制品间的文本相似度;
S4:对于显式追踪关系的软件制品,从过程信息中提取时间、人员和已关联链接特征,并确定结果标签;
S5:对于隐式追踪关系的软件制品,借助过程中的中间制品作为媒介,增加人员、时间和文件特征,判定待关联软件制品间是否存在追踪关系;
S6:预处理数据,获得样本集,将样本集分为训练集和测试集,训练二分类模型,预测软件制品间是否存在追踪关系;
命名待关联的软件制品为制品A和制品B,制品A的集合表示为Set A={a1,a2,a3,…,an},其中ai表示具体的制品,制品B的集合表示为Set B={b1,b2,b3,…,bn},其中bi表示具体的制品;
所述S3包含以下步骤:S3-1:制品A和制品B的文本描述信息分别被视为一个文档,对其进行文本预处理,预处理包括删除不规范文本记录和去除停用词;
S3-2:基于VSM模型,所述VSM模型为空间向量模型,计算制品A和制品B的文本相似度,将制品A和制品B的文本描述用向量a,b表示,向量中的每个维度对应一个词项在文档中的权重,每个词项权重的计算方法为TF-IDF法,其中,向量a=(w11,w12,···,w1n),向量b=(w21,w22,···,w2n),wij为词项的权重;利用余弦距离计算向量a,b之间的余弦相似度:
制品A和制品B的文本相似度可表述为sim(des(A),des(B)),des(A)和des(B)表示制品A和制品B的文本描述字段,θ为向量a,b之间的夹角;
所述S4包含以下步骤:S4-1:挖掘显式追踪关系制品间的时间特征,首先确定制品A和制品B的生命周期关系,一般分为周期包含、周期交叉和周期并列;对比制品A和制品B的创建时间和结束时间,得到时间特征;
S4-2:挖掘人员特征,挖掘制品A和制品B的相关负责人的联系,包括同时参与制品A和制品B对应的软件活动的人员;
S4-3:挖掘已链接记录特征,显式追踪关系制品间存在已链接的记录,挖掘待关联制品和已链接记录之间的关系,提取特征;
其中,待追踪具体制品ai与具体制品bi,时间上在具体制品bi之前且与具体制品ai已链接的B类制品集合作为Lpre,Lp为集合中时间与具体制品bi相隔最近的具体制品,计算具体制品bi与Lp的文件重合度Nf=overlap(file(bi),file(Lp))、文本相似度Nt=sim(des(bi),des(Lp));
其中计算文件重合度的公式为:
overlap(file(ai),file(bi))=(file(ai)∩file(bi))/(file(ai)∪file(bi))
file(ai)为具体制品ai涉及到的文件集合,file(bi)为具体制品bi涉及到的文件集合,file(ai)∩file(bi)为两个集合的交集,file(ai)∪file(bi)为两个集合的并集;
待追踪具体制品ai与具体制品bi,时间上在具体制品bi之后且与具体制品ai已链接的B类制品集合作为Lnext,Ln为集合中时间与具体制品bi相隔最近的具体制品,计算具体制品bi与Ln的文件重合度Nf=overlap(file(bi),file(Ln))、文本相似度Nt=sim(des(bi),des(Ln));
S4-4:挖掘制品A和制品B之间的结果标签,若具体制品ai可以关联到具体制品bi,则ai和bi之间存在追踪关系,为正样本,否则为负样本;
所述S5包括以下步骤:S5-1:选取中间制品C,作为制品A和制品B的媒介制品;
S5-2:获取制品A和制品B的时间特征、人员特征和文本特征;
S5-3:依据制品C,增加制品A和制品B间与制品C的相关特征,计算文件重合度和人员重合度;
S5-4:研究人员和项目参与者交叉判定制品A和制品B之间是否存在链接,存在则为正样本,否则为负样本;
所述S6包括以下步骤:S6-1:数据预处理,对获取到的特征进行预处理,包括异常值、缺失值、数据规范化、离散特征处理;
S6-2:选用随机森林算法,按照训练集和测试集8:2的比例划分数据,以过采样的方法均衡训练集,用以训练模型;
S6-3:追踪关系预测,利用训练的模型预测待关联的链接。
2.根据权利要求1所述的结合软件制品过程信息和文本相似度的制品自动追踪方法,其特征在于,所述S1包含以下步骤:
S1-1:选择待关联制品A和制品B,挖掘制品间是否存在追踪链接,确定制品间的追踪关系类型;
若产生制品A的软件活动与产生制品B的软件活动在过程上相邻,制品A的过程信息中包含与制品B直接关联的字段,则制品之间存在显式追踪关系;
若产生制品A的软件活动与产生制品B的软件活动在过程上不相邻,且制品A的过程信息中并不包含与制品B直接关联的字段,则制品之间存在隐式追踪关系。
3.根据权利要求1所述的结合软件制品过程信息和文本相似度的制品自动追踪方法,其特征在于,所述S2包含以下步骤:
S2-1:获取软件制品A过程信息数据,从软件资源库中获取制品A涉及到的人员、时间、文本描述及过程状态相关数据;
S2-2:获取软件制品B过程信息数据,从软件资源库中获取制品A涉及到的人员、时间、文本描述及过程状态相关数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010431048.3A CN111460401B (zh) | 2020-05-20 | 2020-05-20 | 结合软件制品过程信息和文本相似度的制品自动追踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010431048.3A CN111460401B (zh) | 2020-05-20 | 2020-05-20 | 结合软件制品过程信息和文本相似度的制品自动追踪方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111460401A CN111460401A (zh) | 2020-07-28 |
CN111460401B true CN111460401B (zh) | 2023-08-22 |
Family
ID=71684800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010431048.3A Active CN111460401B (zh) | 2020-05-20 | 2020-05-20 | 结合软件制品过程信息和文本相似度的制品自动追踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460401B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527988A (zh) * | 2020-12-14 | 2021-03-19 | 深圳市优必选科技股份有限公司 | 自动回复生成方法、装置及智能设备 |
CN113378907B (zh) * | 2021-06-04 | 2024-01-09 | 南京大学 | 增强数据预处理过程的自动化软件可追踪性恢复方法 |
CN113515597B (zh) * | 2021-06-21 | 2022-11-01 | 中盾创新数字科技(北京)有限公司 | 一种基于关联规则挖掘的档案处理方法 |
CN115147071A (zh) * | 2022-06-17 | 2022-10-04 | 深圳市翼海云峰科技有限公司 | 一种软件研发成本估算方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893848A (zh) * | 2016-04-27 | 2016-08-24 | 南京邮电大学 | 一种基于代码行为相似度匹配的Android恶意应用程序防范方法 |
CN107967255A (zh) * | 2017-11-08 | 2018-04-27 | 北京广利核系统工程有限公司 | 一种判定文本相似性的方法和系统 |
CN108459965A (zh) * | 2018-03-06 | 2018-08-28 | 南京大学 | 一种结合用户反馈和代码依赖的软件可追踪生成方法 |
CN110045981A (zh) * | 2018-01-14 | 2019-07-23 | 北京关键科技股份有限公司 | 一种基于源码比对分析技术建立需求追踪关系的方法 |
CN111124366A (zh) * | 2019-12-23 | 2020-05-08 | 南京航空航天大学 | 一种基于信息检索的需求追踪恢复方法 |
-
2020
- 2020-05-20 CN CN202010431048.3A patent/CN111460401B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893848A (zh) * | 2016-04-27 | 2016-08-24 | 南京邮电大学 | 一种基于代码行为相似度匹配的Android恶意应用程序防范方法 |
CN107967255A (zh) * | 2017-11-08 | 2018-04-27 | 北京广利核系统工程有限公司 | 一种判定文本相似性的方法和系统 |
CN110045981A (zh) * | 2018-01-14 | 2019-07-23 | 北京关键科技股份有限公司 | 一种基于源码比对分析技术建立需求追踪关系的方法 |
CN108459965A (zh) * | 2018-03-06 | 2018-08-28 | 南京大学 | 一种结合用户反馈和代码依赖的软件可追踪生成方法 |
CN111124366A (zh) * | 2019-12-23 | 2020-05-08 | 南京航空航天大学 | 一种基于信息检索的需求追踪恢复方法 |
Non-Patent Citations (1)
Title |
---|
杨丙贤等.基于软件结构的文档与代码间可追踪性研究.CNKI.全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111460401A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111460401B (zh) | 结合软件制品过程信息和文本相似度的制品自动追踪方法 | |
Fan et al. | The impact of mislabeled changes by szz on just-in-time defect prediction | |
Rattan et al. | Software clone detection: A systematic review | |
Aung et al. | A literature review of automatic traceability links recovery for software change impact analysis | |
Halkidi et al. | Data mining in software engineering | |
US7418449B2 (en) | System and method for efficient enrichment of business data | |
Nyamawe et al. | Automated recommendation of software refactorings based on feature requests | |
CN113656805B (zh) | 一种面向多源漏洞信息的事件图谱自动构建方法及系统 | |
CN107729258B (zh) | 一种面向软件版本问题的程序故障定位方法 | |
CN112395424A (zh) | 一种复杂产品质量问题追溯方法及系统 | |
Merten et al. | Do information retrieval algorithms for automated traceability perform effectively on issue tracking system data? | |
LU503512B1 (en) | Operating method for construction of knowledge graph based on naming rule and caching mechanism | |
Limsettho et al. | Automatic unsupervised bug report categorization | |
Thomas et al. | Mining unstructured software repositories | |
CN111125116B (zh) | 定位业务表中代码字段及对应代码表的方法及系统 | |
CN112148595A (zh) | 一种去除重复变更的软件变更级缺陷预测方法 | |
Song et al. | Auto-validate: Unsupervised data validation using data-domain patterns inferred from data lakes | |
CN112699018B (zh) | 基于软件缺陷关联分析的软件缺陷定位方法 | |
Hattori et al. | Mining software repositories for software change impact analysis: a case study | |
Husain et al. | Application of data mining techniques for improving software engineering | |
US11893008B1 (en) | System and method for automated data harmonization | |
Revindasari et al. | Traceability between business process and software component using Probabilistic Latent Semantic Analysis | |
CN102541913A (zh) | 面向Web的VSM分类器训练、OSSP页面识别及OSS资源提取方法 | |
Gerlec et al. | Mining source code changes from software repositories | |
Wang et al. | A survey on data cleaning methods in cyberspace |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |