【技术实现步骤摘要】
软件架构腐蚀修复成本预估方法、装置、设备和存储介质
[0001]本专利技术涉及领域软件度量与评估技术,具体涉及软件架构腐蚀修复成本预估方法、设备和存储介质。
技术介绍
[0002]软件架构作为软件的重要组成部分,它的质量决定着软件的质量、性能等。然而在软件演进过程中,由于成本压力、技术不成熟等原因,常常会造成软件架构腐蚀。在实际开发中,修复全部的腐蚀问题并不具有可操作性,因此,预估软件架构腐蚀的修复成本,在成本一定的情况下修复更多的腐蚀问题对提高软件架构质量具有十分重要的现实意义。
[0003]现有的预估软件架构腐蚀的修复成本方法在实际应用过程中所存在不足有:(1)缺少从软件架构角度出发的修复成本预估方法。软件架构腐蚀与源代码属于不同抽象层次,因此在质量度量、腐蚀分析、成本预估等方面,它与软件源码存在较大不同,从而需要基于软件架构的特性来进行修复成本的预估;(2)缺少从软件架构出发,在源代码层次定位软件架构腐蚀原因的方法。软件架构是软件源码的高级抽象,因此软件架构腐蚀的根本原因在于源代码的不合理变更,缺少如何在源代码 ...
【技术保护点】
【技术特征摘要】
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的前向切片...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。