本发明专利技术涉及软件度量与评估技术领域,提供一种软件架构腐蚀修复成本预估方法、装置、设备和存储介质,包括如下步骤:基于软件架构的质量属性计算所述软件架构的腐蚀度,基于所述腐蚀度判断所述软件架构的腐蚀程度,得到判断结果;构造软件架构演进前及演进后的多层次软件架构树;对比演进前和演进后的多层次软件架构树,标记两个所述多层次软件架构树中的不同点,记所述不同点为软件架构的变更点;基于软件架构的质量属性和变更点定位腐蚀点;计算腐蚀点的全切片;基于腐蚀点的全切片计算腐蚀点的修复成本。本发明专利技术从软件架构的角度对软件架构腐蚀的修复成本进行预估,达到提高预估结果准确度的技术效果。准确度的技术效果。准确度的技术效果。
【技术实现步骤摘要】
软件架构腐蚀修复成本预估方法、装置、设备和存储介质
[0001]本专利技术涉及领域软件度量与评估技术,具体涉及软件架构腐蚀修复成本预估方法、设备和存储介质。
技术介绍
[0002]软件架构作为软件的重要组成部分,它的质量决定着软件的质量、性能等。然而在软件演进过程中,由于成本压力、技术不成熟等原因,常常会造成软件架构腐蚀。在实际开发中,修复全部的腐蚀问题并不具有可操作性,因此,预估软件架构腐蚀的修复成本,在成本一定的情况下修复更多的腐蚀问题对提高软件架构质量具有十分重要的现实意义。
[0003]现有的预估软件架构腐蚀的修复成本方法在实际应用过程中所存在不足有:(1)缺少从软件架构角度出发的修复成本预估方法。软件架构腐蚀与源代码属于不同抽象层次,因此在质量度量、腐蚀分析、成本预估等方面,它与软件源码存在较大不同,从而需要基于软件架构的特性来进行修复成本的预估;(2)缺少从软件架构出发,在源代码层次定位软件架构腐蚀原因的方法。软件架构是软件源码的高级抽象,因此软件架构腐蚀的根本原因在于源代码的不合理变更,缺少如何在源代码中定位导致架构腐蚀的语句的方法;(3)缺少准确预估修复成本的方法。软件架构腐蚀的根本原因在于语句不合理变更,在修改该语句时,与其相关联的语句可能都需要进行相应调整,但缺少如何获取所有关联语句集合和基于语句集合计算修复成本的方法。
技术实现思路
[0004]本专利技术的目的在于提供一种软件架构腐蚀修复成本预估方法、装置、设备和存储介质,从软件架构的角度对软件架构腐蚀的修复成本进行预估,用以解决现有技术中软件架构腐蚀修复成本预估结果不准确的技术问题,以达到提高软件架构腐蚀修复成本预估结果准确度的技术效果。
[0005]为实现上述目的,本专利技术提供如下方案:
[0006]第一方面,本专利技术提供了一种软件架构腐蚀修复成本预估方法,包括如下步骤:
[0007]基于软件架构的质量属性计算所述软件架构的腐蚀度,基于所述腐蚀度判断所述软件架构的腐蚀程度,得到判断结果;
[0008]基于所述判断结果,构造所述软件架构演进前及演进后的多层次软件架构树;
[0009]对比演进前和演进后的所述多层次软件架构树,标记两个所述多层次软件架构树中的不同点,记所述不同点为软件架构的变更点;
[0010]基于所述软件架构的所述质量属性和变更点定位腐蚀点;
[0011]计算所述腐蚀点的全切片;
[0012]基于所述腐蚀点的全切片,计算所述腐蚀点的修复成本。
[0013]进一步的,所述基于软件架构的质量属性计算软件架构的腐蚀度,基于所述腐蚀度判断软件架构的腐蚀程度,得到判断结果,包括:
[0014]基于质量属性计算所述软件架构的腐蚀度ED(a,b);
[0015][0016]其中,a表示演进前的软件架构,b表示演进后的软件架构,ED(a,b)表示与各个质量属性的差值的平均值,N是软件架构的质量属性的集合,|N|是N中所包含的元素数,N
i_a
是a的第i个质量属性的度量值,N
i_b
是b的第i个质量属性的度量值。
[0017]进一步的,构造所述软件架构演进前及演进后的多层次软件架构树,包括:
[0018]为演进前及演进后的软件架构分别构造多层次软件架构树,其中:
[0019]树的根节点代表整个软件架构,所述根节点拥有若干层子节点;
[0020]第一层子节点为组件节点,每个所述组件节点代表一个组件,所述根节点与所述第一层子节点的关联关系代表软件架构所包含的组件;
[0021]第二层子节点为文件节点,每个所述文件节点代表一个文件,所述第一层子节点与所述第二层子节点的关联关系代表所述第一层子节点对应的所述组件所包含的所述第二层子节点对应的所述文件;
[0022]第三层子节点至最后一层子节点为语句节点,每个所述语句节点代表一条源码的语句,所述第二层子节点与所述第三层至最后一层子节点的关联关系代表所述第二层子节点对应的所述文件所包含的所述第三层子节点至所述最后一层子节点的语句。
[0023]进一步的,所述对比演进前和演进后的所述多层次软件架构树,包括:依据所述多层次软件架构树中的所述子节点所包含的内容检测演进前和演进后的软件架构之间的不同点。
[0024]进一步的,所述基于软件架构的质量属性和所述变更点定位腐蚀点,包括:
[0025]基于所述软件架构的所述质量属性的度量公式分析所述多层次软件架构树,标记所述多层次软件架构树中引起所述软件架构腐蚀的变更点,记引起所述软件架构腐蚀的所述变更点为腐蚀点。
[0026]进一步的,计算所述腐蚀点的全切片,包括:
[0027]以腐蚀点p为切片准则,计算所述腐蚀点p的前向切片f(p);
[0028]以腐蚀点p为切片准则,计算所述腐蚀点p的后向切片b(p);
[0029]基于所述腐蚀点p的所述前向切片f(p)和所述后向切片b(p),计算所述腐蚀点p的全切片S
p
=f(p)∪b(p)。
[0030]进一步的,所述基于所述腐蚀点的全切片,计算所述腐蚀点的修复成本,包括:
[0031]基于所述腐蚀点p的全切片S
p
,计算所述腐蚀点p的修复成本m
p
;
[0032][0033]其中,S
p
是以p为切片准则的全切片,F
p
是p所在的文件的语句集合,|F
p
|是F
p
中所含的元素个数,C
p
是p所在的组件的语句集合,|C
p
|是C
p
中所含的元素个数,A
p
是p所在的程序的语句集合,|A
p
|是A
p
中所含的元素个数,|F
p
∩S
p
|是F
p
与S
p
的并集所含的元素个数,|C
p
∩S
p
|是C
p
与S
p
的并集所含的元素个数,|A
p
∩S
p
|是A
p
与S
p
的并集所含的元素个数,α是同文件修复难度系数,β是同组件修复难度系数,γ是全局修复难度系数。
[0034]第二方面,本专利技术提供了一种软件架构腐蚀修复成本预估装置,包括:
[0035]第一计算模块,用于基于软件架构的质量属性计算所述软件架构的腐蚀度,基于所述腐蚀度判断所述软件架构的腐蚀程度,得到判断结果;
[0036]构造模块,用于基于所述判断结果,构造所述软件架构演进前及演进后的多层次软件架构树;
[0037]对比标记模块,用于对比演进前和演进后的所述多层次软件架构树,标记两个所述多层次软件架构树中的不同点,记所述不同点为所述软件架构的变更点;
[0038]分析模块,本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种软件架构腐蚀修复成本预估方法,其特征在于,包括如下步骤:基于软件架构的质量属性计算所述软件架构的腐蚀度,基于所述腐蚀度判断所述软件架构的腐蚀程度,得到判断结果;构造所述软件架构演进前及演进后的多层次软件架构树;对比演进前和演进后的所述多层次软件架构树,标记两个所述多层次软件架构树中的不同点,记所述不同点为软件架构的变更点;基于所述软件架构的所述质量属性和所述变更点定位腐蚀点;计算所述腐蚀点的全切片;基于所述腐蚀点的全切片,计算所述腐蚀点的修复成本。2.根据权利要求1所述的一种软件架构腐蚀修复成本预估方法,其特征在于:所述基于软件架构的质量属性计算所述软件架构的腐蚀度,基于所述腐蚀度判断所述软件架构的腐蚀程度,得到判断结果,包括:基于所述质量属性计算所述软件架构的腐蚀度ED(a,b);其中,a表示演进前的软件架构,b表示演进后的软件架构,ED(a,b)表示与各个质量属性的差值的平均值,N是软件架构的质量属性的集合,|N|是N中所包含的元素数,N
i_a
是a的第i个质量属性的度量值,N
i_b
是b的第i个质量属性的度量值。3.根据权利要求1所述的一种软件架构腐蚀修复成本预估方法,其特征在于:构造所述软件架构演进前及演进后的多层次软件架构树,包括:为演进前及演进后的所述软件架构分别构造多层次软件架构树,其中:树的根节点代表整个软件架构,所述根节点拥有若干层子节点;第一层子节点为组件节点,每个所述组件节点代表一个组件,所述根节点与所述第一层子节点的关联关系代表软件架构所包含的组件;第二层子节点为文件节点,每个所述文件节点代表一个文件,所述第一层子节点与所述第二层子节点的关联关系代表所述第一层子节点对应的所述组件所包含的所述第二层子节点对应的文件;第三层子节点至最后一层子节点为语句节点,每个所述语句节点代表一条源码的语句,所述第二层子节点与所述第三层子节点至所述最后一层子节点的关联关系代表所述第二层子节点对应的所述文件所包含的所述第三层子节点至所述最后一层子节点对应的语句。4.根据权利要求3所述的一种软件架构腐蚀修复成本预估方法,其特征在于:所述对比演进前和演进后的所述多层次软件架构树,包括:依据所述多层次软件架构树中的所述子节点所包含的内容检测演进前和演进后的软件架构之间的不同点。5.根据权利要求1所述的一种软件架构腐蚀修复成本预估方法,其特征在于:所述基于所述软件架构的质量属性和所述变更点定位腐蚀点,包括:基于所述软件架构的质量属性的度量公式分析所述多层次软件架构树,标记所述多层次软件架构树中引起所述软件架构腐蚀的变更点,记引起所述软件架构腐蚀的所述变更点
为腐蚀点。6.根据权利要求1所述的一种软件架构腐蚀修复成本预估方法,其特征在于:所述计算所述腐蚀点的全切片,包括:以腐蚀点p为切片准则,计算所述腐蚀点p的前向切片...
【专利技术属性】
技术研发人员:王桐,吴宣够,
申请(专利权)人:安徽工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。