软件度量的比较研究-聚合技术

更新时间:2023-05-27 11:34:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

软件度量的比较研究

软件度量的比较研究-聚合技术

摘要

虽然软件度量通常用于评估软件的可靠性和软件演化的研究,他们通常定义在微观层面(方法,类,包)。因此,应汇总指标,以提供在宏观层次(系统)进化的见解。此外,如最近的基尼系数和泰尔指数计量聚合技术已经被提出。 至今尚未评估聚合技术不同的优点和缺点。本文提出了不同的聚合技术进行比较研究的初步结果。

关键词:软件度量,可靠性,聚合技术

1、简介

虽然软件度量通常用于评估软件的可靠性和软件演化的研究,他们通常定义在微观层面(方法,类,包)。因此,应汇总指标,以提供在宏观层次(系统)进化的见解。热门聚合技术包括平均[14]和分布拟合[4,18]。而平均的主要优点是它的衡量标准,独立性:凡是度量,都意味着要以同样的方式计算。然而,由于许多有趣的软件分发指标倾斜[22],平均变得不可靠。分布拟合包括选择已知的家庭分布,分布(例如,日志正常,指数或负二项分布)和装修,其参数值近似度量观察。然而,装修过程中每当有新的衡量标准时应反复考虑它。此外,它仍然是一个争论的问题,例如,软件大小分布数一般[4]或双帕累托[11]。 这是非常可取的,因此,建立一个聚合的方法,将是既可靠和独立的汇总该指标。 这种方法的例子有基尼系数[10]和泰尔指数[20],两个著名的计量经济学[6],最近应用软件度量[21,19]。至今仍无法精确比较不同聚合技术。这个简短的文件,是我们目前的第一份初步结果。

本文的其余部分安排如下: 在第2节简要介绍了聚合技术被比较。第3节比较了不同的聚合技术的理论性能。第4节中描述的进行实证研究,最后,第5节讨论相关工作,并得出结论。

2、聚合技术

在本节中我们简要介绍了聚合技术的数学定义并进行评估。 设{x1, . . . , xn} 是一组聚合值。然后,定义X,定义为

软件度量的比较研究

软件度量基尼指数和泰尔指数已经分别应用到[21,19]。除了这两个计量指标,我们还研究 Kolm指数和阿特金森指数 :

以上,也被称为第一泰尔指数,泰尔[20]还推出了第二泰尔指数,对数平均偏差为已知。在本文中我们不考虑平均对数偏差,每当“泰尔指数”中提到泰尔,就是这个意思。泰尔和阿特金森是标准的实例和阿特金森指数的Kolm家庭,参数值分别是1和0.5。

3、理论比较

在本节中,我们研究他们的聚合技术相关的数学属性的数量应用软件度量。 域。聚合技术领域决定了这种技术适用于软件类。计量经济指数通常适用于收入或福利分配,即套以正面的价值观。但是一些软件度量,可能有负值,例如,可靠性指数[15]。日志Z是针对z <0 未定义,泰尔和阿特金森是不确定的。与这些指数中,基尼和Kolm可以用于聚合负值。此外,由于日志0是未定义的泰尔指数公式的直接应用,第2节是不可能的。然而,所示[19]泰尔(x1, . . . , xn 1, xn)可以被定义为xn = 0,零表示空虚(如SLOC,班级数包)或没有。所有其他聚合技术,本文认为可以应用到零值。最后,对于基尼系数公式,泰尔指数和阿特金森指数涉及由X表示。因此,这些指标是不确定的,如果X = 0。 平均指数和Kolm没有额外的情况下,当它们的值是不确定的。

范围的汇总值的解释对聚合技术的范围取决于:例如,0.99表示一个不平等程度非常高,如果基尼被认为是,而在案件泰尔和阿特金森解释会取决于所聚合值的数量。通过应用平均得到的值的范围从- ∞到+∞。基尼指数是经常声称范围在[0,1] [21]:这是,但是,只有在所有情况下的值被聚合是积极的。一般情况下,这并不一定如此:基尼(1,-1.5)= -2.5。范围泰尔,并阿特金森取决于所聚合值的数量:一是可以证明0 ≤ ITheil(x1, . . . , xn) ≤ log n和日志0 ≤ IAtkinson(x1, . . . , xn) ≤ 1。该Kolm索引范围超过非负实数。 不变性,我们说的聚合技术是相对于另外不变的 ,如果I(x1, . . . , xn) = I(x1 +

软件度量的比较研究

c, . . . , xn + c)对任意的x1, . . . , xn和 c,只要I(x1 + c, . . . , xn + c)存在。同样,我们说的聚集技术是相对于乘法不变的 ,如果I(x1, . . . , xn) = I(x1 c, . . . , xn c)对任意的 x1, . . . , xn和 c,

提供I(x1 c, . . . , xn c)存在。每个文件的代码聚合测线,聚集,技术不变与关于除允许忽略,例如,标题包含许可信息和所有的源文件中。通过应用聚合技术,是相对于乘法不变得到的结果不会受到影响如果代码行总数的百分比被视为而不是自己的代码行数。平均既不是相对于另外也不乘法不变。它可以证明基尼,泰尔和阿特金森关于乘法是不变的。与这些指标,Kolm是相对于另外不变。

可分解性,可分解性是关键财产不平等的解释必要的分割值汇总成不相交的群体。在计量经济学等团体对应,如受教育程度,性别或种族,而在软件演化的研究,如包装,编程语言和维护者的名称[19]。从形式上看,是可分解的,如果对任意给定分区{x1,1, . . . , x1,n1, . . . , xJ,1, . . . , xJ,nJ}的 {x1, . . . , xn}被认为

对于一些系数w1, . . . ,w 定义为

, xj,1, . . . , xj,nj .。然后,该比率组与组之间的不平等和总金额的不平等可以被看作是不平等的,可以百分比被解释为划分成组的人口。这两个泰尔[6]和 Kolm[5]的分解,而基尼和阿特金森是[1]。应当指出,虽然一些作者提出的分解的手段基尼还是阿特金森,他们使用的可分解[13,7]略有不同的概念。

4、实证比较

要执行不同的聚集,我们进行了两次一系列实验技术经验的评价。作为案例研究,我们选择了ArgoUML,一个流行的Java编写的UML建模工具。

在第一组实验,我们已申请相关性分析,在包使用水平的指标数据汇总意思是, 基尼,泰尔,Kolm和阿特金森和缺陷(每包计数错误)。在第二盘我们已经研究了之间的平均指数的相关性和不同的存在,以及不同指数之间的自己,相同的数据指标。

软件度量的比较研究

在这个初步研究考虑的指标是代码行(行数的代码没有评论和空格)。 为(S)LOC的动机是双重的。首先,以往的研究表明,大小,以条款行代码,是一种缺陷[9]强有力的预测。二,同一来源提到,虽然指标,如在Chidamber和Kemerer套件或套件和基德,预计将有关故障验证类(缺陷)前屈,后规模以上指标没有控制可以与缺陷了。因此,(S)LOC的缺陷仍然是一个可靠和易于衡量的指标。

4.1、方法

研究指标值之间的聚合与一些漏洞,我们已经开始通过选择相关用的最多的ArgoUML的错误修正版本 。为修正错误的选择,而不是报告 , 解雇 等是出于事实,提交信息包含(最好)大约只有固定的错误信息(通常表示,如“问题”或“修复”)的关键字。这些信息是必要的,以与Java相关联的错误类。此外,在此之前,在[8]中描述的方法。由于我们只分析了案件快照,为faultiest版本的选择保证了足够大的缺陷人口是准确的。

从ArgoUML的整个历史上释放了大约150版本,版本有0.13.4与它最多(89)相关的错误修复。它包含94包和1230班。 接下来,源代码ArgoUML的0.13.4版的是自动处理的 包和Java类中列出每个包建。下一步,我们已考虑包至少包含2类:软件包聚集指数包含一个类只等于0,因此应予以排除。总共有77包进行了审议。

在下面的步骤中,我们映射到Java包的缺陷,通过分析该版本的提交信息控制系统的日志。 由于同一类可能受到影响在一个已知的bug修正多次(例如由于错误地实施的第一次修正),我们只记录一次,以减少噪音。 出了ArgoUML的0.13.4版的相关问题89,只有41个提交日志提到的(例如,因为一些问题需要非Java源文件的更改)。 该缺陷产生的向量集的基数包含的包每一个元素,并担任我们的验证指标。

接下来我们计算SLOC每个使用中交选定的Java类包,并汇总这些值使用的意思是,基尼,泰尔,Kolm 和阿特金森。最后,在实验的第一个系列,我们有相关性研究向量之间的聚合度量和缺陷,而在第二个系列的实验我们研究相关指标之间的聚合向量自己。所有计算均使用R [17]。

4.2、结果

在实验的第一个系列,我们已经研究之间的聚合向量和相关指标缺陷。我们

软件度量的比较研究

要研究的相关性之间有一个肯德尔的τand的Pearson相关系数 r的选择 :当后者需要的是既分布比较正常,前者是适用于当正常的假设

可以拒绝至少发行版之一。因此,我们进行夏皮罗-威尔克正常testto确定适当的相关统计:向量的缺陷夏皮罗威尔克正态性检验允许拒绝常态假设(对 W统计等于0.8003和p值是8.444 × 10 -5)。因此,Kendall的τ应该被使用。在实验的第二个系列中,我们研究了不同的聚合之间的关系得到的值技术。正态假设可以被拒绝的泰尔,Kolm和阿特金森指数如此反复在Kendall的τ应该被使用。这两项研究结果总结在表1,其中相关的结果双面 p值不超过0.01以粗体和0.01和0.05之间的排版排版是斜体。

实验似乎表明,聚合技术,分为两组:一组包括IGini,ITheil and IAtkinson, another one of the mean and IKolm.有较高相关性同组的聚合技术,即聚合值获得使用这些技术传达相同信息。相关技术之间的聚合不同群体的范围从低(0.17),以平均(0.501),而且,在任何情况下,除了与同组的聚合技术结果的相关性较低。重要的是,大多数IGini, ITheil and IAtkinson表示最强烈的(其中的技术考虑),并统计显着的相关性与缺陷数量。其中,最高的τ值时获得了泰尔指数是用来汇总各个值(τ 0.273)由基尼系数(τ 0.27)和阿特金森随后指数(τ 0.229)。这些结果在统计上具有双面 p值是0.0014062,0.0015996 重大和0.0073827分别。

虽然这方面的证据是初步的,它也是重要的几个原因。首先,它提供了一个迹象表明,在聚合技术的选择会导致不同的结果与验证相关设置(在这种情况下的缺陷),即使如行代码简单的软件指标。这一发现提示了更多的研究需要确定如果这些关系都相对于其他软件系统相一致,以及与尊重更复杂指标。第二,它证实了猜想,其中如研究这里的不平等指数可以作为如平均值,当应用到传统的软件度量聚合方法可行的选择。然而,它仍然是一个研究课题,如何使用不同的聚合技术可以影响一个指标的解释 。对于例如,事实不平等指数为一类的包只等于

软件度量的比较研究

零似乎表明,他们不应该完全取代传统的聚合技术,而是相辅相成的。 同样,事实,对于不平等指数高值应用到一些指标(如继承树的深度),说明高平等,可能并不总是理想似乎表明,需要特别小心使用不平等指数在进化的设置。

4.3、为有效威胁

上面介绍的结果应该被认为是初步的有效性和对威胁的人数应广告身着未来。 首先,关于建设的有效性,我们需要考虑的代表组基准,而不是仅仅ArgoUML的,以及它们的版本代表集。此外,我们的信息可能在问题跟踪系统记录,我们的地图对类缺陷平可能是不完善的,由于有限的信息记录在提交信息。最后,我们认为只有一个指标,即行的代码,而且目前尚不清楚是否可以得到的结果推广到更多的指标。

5、结论

在本文中,我们提出了一个不同的聚合技术进行比较研究的初步结果软件度量。 我们已经讨论了不同的聚合技术方面的理论和应用他们到行的代码值总额在ArgoUML,版本0.13.4。我们的研究结果表明,聚合的选择技术确实会影响与缺陷数量的聚合值的相关性,而泰尔指数,此外,获得值之间的相关性这些聚合技术被证明是非常高的。在经济学文献中流行的做法包括在学习,而不是FO -多个计量指标其中之一。例如,[16]采用六种不同的包括基尼指数,泰尔指数和指数,阿特金森指数的研究在我们的报纸。 Champernowne [3]的确观察到不同的指数表现不同的敏感性

“不平等尺寸”:在不平等关联异常丰富,第二是最敏感的不平等反映了较广泛的传播极端而对于其中大部分的收入是多少倾向束身相当狭窄的范围内。至于未来的工作。因此,我们认为确定最不平等的软件度量相关的尺寸,研究最合适的聚合技术。 此外,这种理论研究会辅之以更深刻的实证研究,类似的第4节的初步研究,包括额外的基准系统,软件度量和验证的指标。最后,虽然在目前的工作只有一个快照已考虑,在进化之间设置的计量指标差异的研究也被认为是今后的工作。

本文来源:https://www.bwwdw.com/article/9ib4.html

Top