The Correlation among Software Complexity Metrics with Case Study
人们对软件质量的要求越来越高,因此不同规模的软件都在快速增长,以处理软件的质量问题。软件复杂性度量是利用软件的一些内部属性或特征来了解它们对软件质量的影响的度量之一。在本文中,我们涵盖了一些更有效的软件复杂性度量,如圈复杂性,代码行和Hallstead复杂性度量。本文介绍了它们对软件质量的影响。并对两者之间的相关性进行了探讨和分析。最后以一个真实数据集为例,揭示了它们与错误数的关系。
2014-08-20 cs.SE
Source Code Metrics for Software Defects Prediction
在目前的研究中,有对比的结果,软件源代码度量的缺陷预测模型的功能的适用性。本文的目标是评估软件缺陷预测模型中软件度量的采用,确定单个源代码度量的影响。通过对从GitHub上挖掘的39个Java项目的275个发布版本的实证研究,我们计算了12个软件度量并收集了软件缺陷信息。我们训练和比较三个缺陷分类模型。所有项目的结果表明,决策树(DT)和随机森林(RF)分类器显示出最好的结果。性能最高的单个指标包括NOC、NPA、DIT和LCOM5。而其他指标,如CBO,并没有带来显着的改进模型。
2023-01-19 cs.SE
Snapshot Metrics Are Not Enough: Analyzing Software Repositories with Longitudinal Metrics
软件度量捕获关于软件开发过程和产品的信息。这些指标支持决策制定,例如,在团队管理或依赖选择中。然而,现有的度量工具只测量软件项目的快照。很少有人关注让工程师能够推理出一段时间内的度量趋势--纵向度量提供了对过程的洞察力,而不仅仅是产品。在这项工作中,我们提出了PRiME(PRocess MEtrics),计算和可视化过程度量的工具。目前支持的指标包括生产率、问题密度、问题损坏率和总线因素。我们说明了纵向数据的价值,并得出一个研究议程。该工具的演示视频可以在https://youtu.be/YigEHy3_JCo上观看。源代码可以在https://github.com/SoftwareSystemsLaboratory/prime上找到。
2022-07-24 cs.SE
Smart Contracts Software Metrics: a First Study
智能合约(SC)是驻留并运行在区块链上的软件代码。代码可以用不同的语言编写,其共同目的是在托管区块链上实现各种交易,它们由区块链基础设施管理,并工作以满足传统合同的典型条件。与传统的软件代码相比,软件代码必须满足强上下文相关的约束。特别是,由于字节码是在托管区块链中上传的,因此大小,计算资源,软件不同部分之间的交互都是有限的,即使特定的软件语言实现了或多或少与传统语言相同的结构,也没有正常软件开发中的自由。SC软件预计将反映这些约束SC软件度量,应该显示度量值的域的特性,并从更传统的软件度量不同。我们在超过12000个用Solidity编写并上传到以太坊区块链上的SC代码上测试了这个假设。我们从一个公共存储库中下载了SC,并计算了一组与SC相关的软件度量的统计数据,并将它们与从更传统的软件项目中提取的度量进行了比较。我们的研究结果表明,通常智能合约指标的范围比传统软件系统中的相应指标更受限制。一些程式化的事实,如一些指标分布尾部的幂律,只是近似的,但代码行遵循对数正态分布,这让人想起在传统软件系统中已经发现的相同行为。
2018-02-07 cs.SE
Metrics Dashboard: A Hosted Platform for Software Quality Metrics
科学软件界正在形成一种共识,即科学研究的进展取决于“各级软件的质量和可获得性”(wssspe.researchcomputing.org.uk/)。这一进展取决于在软件工程中接受最好的传统和紧急实践,特别是与软件工程更正式的传统相交的敏捷实践。作为我们研究计算科学和工程(CSE)软件开发项目过程中质量指标的更大探索性项目的第一步,我们开发了一个名为“测试仪表板”的平台,该平台通过挖掘GitHub上的开源软件存储库来生成和观察指标。与GitHub和提供个人绩效指标(例如提交)的类似系统不同,GitHub仪表板专注于指示团队进度和项目健康状况的指标。用户可以通过Oracle Dashboard提交托管存储库的URL进行批处理分析,然后缓存分析结果。完成后,用户可以交互式地研究各种指标随着时间的推移(在不同的粒度),数字和视觉。该系统的初始版本作为公共云服务(SaaS)启动和运行,并支持项目规模(KBEE),缺陷密度,缺陷损坏和生产力。虽然我们的系统绝不是第一个支持支持软件指标的系统,但我们相信它可能是第一个可以被任何托管项目使用的以社区为中心的可扩展资源之一。
2018-04-09 cs.SE
Do internal software quality tools measure validated metrics?
软件内部质量决定了软件产品的可维护性,影响着软件产品的使用质量。有大量的度量标准声称要度量软件的内部质量,这些度量标准由静态软件分析工具提供。迄今为止,一些报告已经评估了这些衡量标准的有效性。然而,没有数据表明这些工具提供的指标是否在科学研究中得到了验证。目前的研究通过提供关于提供哪些工具以及提供了多少经过验证的指标的数据来弥补这一差距。结果表明,一系列的指标,提供的工具似乎没有在文献中进行验证,只有一小部分的指标进行了验证,在所提供的工具。
2019-09-20 cs.SE
The Impact of the Object-Oriented Software Evolution on Software Metrics: The Iris Approach
面向对象(OO)软件系统随着时间的推移而发展,以满足新的需求。在软件初始发布的基础上,软件代码的不断修改导致软件演化。软件需要随着时间的推移而发展,以满足新用户的需求。软件公司经常根据客户的需求开发原始软件的变体。本文的主要假设指出,软件随着时间的推移而发展,其代码不断增长,变化并变得更加复杂。本文提出了一种自动的方法(虹膜)来检查所提出的假设。这种方法的独创性是利用软件变体来研究软件演化对软件度量的影响。本文介绍了三个版本的绘图形状软件,犀牛软件的16个版本,8个版本的移动媒体软件和ArgoUML软件的10个版本进行的实验结果。基于提取的软件度量,它已被发现,虹膜假设是支持的计算度量。
2018-03-15 cs.SE
Use of Source Code Similarity Metrics in Software Defect Prediction
近年来,缺陷预测在经验软件工程领域受到了极大的关注。在维护阶段之前预测软件缺陷对于降低软件维护成本和提高软件产品的整体质量具有重要意义。有不同类型的产品,过程和开发人员为基础的软件度量提出了迄今为止,以衡量软件系统的缺陷。本文建议使用一套新的软件度量标准,它是基于软件项目中的源代码文件之间的相似性检测。为了发现软件系统的不同文件之间的源代码相似性,使用剽窃和克隆检测技术。为每个文件计算两个简单的相似性度量,考虑其与项目中有缺陷和无缺陷文件的总体相似性。使用这些相似性度量,我们预测一个特定的文件是否有缺陷。我们在10个开放的源数据集上的实验表明,根据检测到的相似性的量,建议的度量可以实现显着更好的性能相比,现有的静态代码度量的曲线下面积(AUC)。
2018-08-29 cs.SE
Software Metric Framework
许多研究人员批评软件复杂性度量领域缺乏测试,验证和可重复性的许多度量和案例研究,利用这些度量。本文档描述了SMF,这是一种可以帮助解决其中一些问题的工具,即通过实现指标验证,实验的可重复性以及新指标的易于实施。这里讨论的工具是软件度量框架;一组可扩展的脚本、工具和标准,允许其他人以允许自动化数据汇集和分析的方式实现度量。因为它只是一个原型,所以该框架仅限于分析使用Maven的Java应用程序,Maven是一个构建系统,它大大简化了编译源代码的任务。
2017-11-16 cs.SE
Software Entropy: A Statistical Mechanics Framework for Software Testing
National University of Córdoba(科尔多瓦国立大学);Comisión Nacional de Actividades Espaciales(国家航天活动委员会);Consejo Nacional de Investigaciones Científicas y Técnicas(国家科学研究和技术委员会)
本文提出基于统计力学的软件熵定义,通过测试套件作为可执行规范的视角,分析测试如何限制程序空间,并引入信息加权指标评估测试对程序空间的约束作用。
2026-03-20 cs.IT cs.SE math.IT
Metrics for Evolution of Aspect Oriented Software
面向方面软件开发(Aspect-OrientedSoftwareDevelopment,AOSD)是一种很有前途的软件开发方法,它通过将横切关注点从核心功能中分离出来,为提高软件的模块性提供了强有力的技术。由于演化是任何软件可持续性的主要要求,因此有必要量化其影响。为了量化,定义度量标准是必不可少的,这些度量标准将捕获面向方面(AO)软件的演变。还需要比较不同版本软件的度量值,以推断AO软件的演化动态。这需要识别在不同版本中添加、删除或修改的工件,并研究这些类型的更改的结果。本文定义了一组新的度量标准来衡量面向方面软件的发展。作为一个案例研究,一个方面重构的软件,AJHotDraw已被选中,并分析了其四个版本的能力,随着时间的推移而发展。
2020-10-17 cs.SE
Software Process Measurement and Related Challenges in Agile Software Development: A Multiple Case Study
现有的科学文献强调了度量在敏捷软件开发(ASD)中的重要性。尽管如此,实证调查指标在ASD是稀缺的,特别是在确定的理由和与指标相关的操作挑战。在Q-Rapids项目(Horizon 2020)中,我们使用目标问题度量(GQM)方法在四家敏捷公司进行了多个案例研究,以调查ASD中过程度量选择的基本原理,以及在实施过程中面临的挑战。结果反映了公司对评估流程方面(如速度、测试性能和估计准确性)感兴趣,并且他们更喜欢这些评估的自定义指标。公司使用指标作为访问甚至利用数据的手段,以前由于技术或流程限制而无法访问。然而,公司的开发环境可能会阻碍度量的操作化,主要表现为度量度量所需的数据的不可用。(查看全文摘要)
2018-09-04 cs.SE
Design Level Metrics to Measure the Complexity Across Versions of AO Software
软件度量在定量评估任何特定的软件开发方法及其对软件维护的影响方面起着至关重要的作用。它还可以通过提供有关质量属性(如可维护性、可修改性和可理解性)的有价值的反馈来指示组件之间的相互依赖程度。软件维护的努力通常与其设计的复杂性有很高的相关性。面向方面的软件设计是一种新兴的方法学,它提供了强大的新技术来提高软件的模块化设计。在本文中,评估模型,以捕捉症状的复杂性已被定义为包括度量,工件和复杂性的元素。一个工具,自动捕捉这些指标在不同版本的案例研究应用程序,大学自动化系统已经开发。建议的指标获得的值被用来推断的Java和ANOSJ实现的案例研究应用程序的复杂性。这些测量结果表明,与Java实现相比,AAJJ实现的复杂性更低,并且对软件的可维护性产生了积极的影响。
2020-12-01 cs.SE
Data stream mining for predicting software build outcomes using source code metrics
软件开发项目涉及使用各种工具来产生软件工件。软件仓库,如源代码控制系统,已经成为一个重点的紧急研究,因为他们是一个丰富的信息源,有关软件开发项目。为了更深入地了解发展进程,挖掘这种储存库的做法越来越普遍。
2016-04-19 cs.SE
Mining Software Metrics from Jazz
在本文中,我们描述了提取的源代码度量从Jazz存储库和应用程序的数据采掘技术,以确定最有用的这些指标预测的成功或失败的尝试构建一个工作实例的软件产品。我们目前的结果,从一个系统的研究,使用J48分类方法。结果表明,我们认为只有相对较少的可用软件度量对预测构建的结果有意义。这些重要的指标进行了讨论,并讨论了结果的影响,特别是能够预测失败的构建尝试的相对困难。
2014-07-09 cs.SE
New Software Metrics for Evaluation and Comparison of Advanced Power Management Systems
提出了一套用于评估电源管理系统(PMS)的软件度量方法。这种用于管理电力的系统需要是自主的、可扩展的、复杂度低的,并且包括便携式算法,以便很好地应用于利用电力系统的各种实现方式。尽管对于软件一般存在类似的度量,但是它们的定义并不容易使它们自身适合于功率管理系统或类似架构的系统的独特特性。
2016-07-17 cs.SE
OSS effort estimation using software features similarity and developer activity-based metrics
软件开发工作量估计(SDEE)通常涉及利用过去开发类似软件所花费的工作量信息。大多数组织无法从过去的项目中获得足够和可靠的此类数据。因此,现有的SDEE方法的使用率和准确性低。我们提出了一个有效的SDEE方法的开源软件,它提供了准确和快速的努力估计。我们的论文的重要贡献是i)从各种软件存储库的开发者活动信息导出的新型SDEE软件度量,ii)SDEE数据集,包括从来自150个不同软件类别的$\approx13,000$ GitHub存储库导出的SDEE度量值,iii)基于SDEE度量和软件描述相似性模型的工作量估计工具。我们的软件描述相似性模型基本上是一个机器学习模型,使用段落向量算法对GitHub存储库的软件产品描述进行训练。给出了一个新设想的软件的软件描述,我们的工具产生了开发它的努力估计。我们的方法达到了最高的标准准确度得分为87.26%(与悬崖的$δ$ =0.88在99.999%的置信水平)和42.7%的自动转换线性基线模型。我们的软件工件可以在https://doi.org/10.5281/zenodo.5095723上找到。
2021-09-13 cs.SE
An Expert Module Design and Implementation that Evaluation the C&K Metric Suite in Terms of Object Oriented Software Quality
面向对象软件具有封装性、继承性、内聚性、耦合性和多态性等特性。这些特性对面向对象软件的测试、维护和修复活动有着重要的影响。这些活动的成功结束,取决于正确的检测和正确的解释的指标将被评估。通过开发和使用软件测试工具,也可以安全、快速地评估这些指标。目前,许多软件测试工具都是面向对象的。但是,这些工具的功能存在一些限制。许多这种工具只产生度量结果,不采取任何行动,在这一点上,这些结果意味着什么,以及它如何影响软件的质量。因此,需要使这些工具多样化并提高其能力。基于本研究中提到的软件测试工具的局限性,旨在通过专家系统的方法提供面向对象测试过程的自动化。为此,专家模块,审查和解释的度量结果,提供信息的内部质量属性的项目(.jar扩展名)开发的面向对象的编程方法已经开发。本模块采用了Chidamber和Kemerer(C&K)开发的公制套件。该模块利用软件测试工具QMS获得的度量结果,具有自动、手动和跨版本比较方法的评价特点,并解释了内部质量规范之间的关系。在软件测试活动中,预期betrefend模块将成为白盒测试的支持元素。
2019-02-09 cs.SE
Empirical Confirmation (and Refutation) of Presumptions on Software
代码度量很容易定义,但不容易证明。很难证明一个度量是有效的,即,测量的数值意味着模糊定义的任何东西,但关键的软件属性,如复杂性和可维护性。本文采用统计分析和测试的方法来检验一些关于软件行为和度量的“可信”假设。其中包括在任何代码度量的应用中隐含的可靠性假设,以及软件工件中的变化幅度与其版本号的变化相关的假设。将一套36个指标用于试验,我们证实了大多数假设。出乎意料的是,我们表明,一些指标的可靠性的很大一部分,可以观察到,即使在随机变化的架构。另一个令人惊讶的结果是,布尔值度量往往在较小的软件版本增量中比在主要增量中更频繁地翻转它们的值。
2012-01-15 cs.SE
Do Internal Software Metrics Have Relationship with Fault-proneness and Change-proneness?
本研究重新审视了Apache和Eclipse开源系统中25个内部软件度量与易错性及易变性的关系,发现多数度量与易错性几乎无关,而继承、耦合和注释度量与易变性呈中高度相关,为提升软件可维护性和预测方法提供了指导。
2024-06-07 cs.SE
Using entropy measures for comparison of software traces
从给定软件产品收集的执行路径(也称为软件跟踪)的分析可以在许多领域提供帮助,包括软件测试、软件维护和程序理解。缺乏一个可扩展的匹配算法上运行的详细执行路径激励寻找一个替代的解决方案。本文提出了使用词熵的软件痕迹的分类。使用一个良好的研究有缺陷的软件作为一个例子,我们调查香农和扩展熵(Landsberg-Vedral,Rényi和Tsallis)的应用程序的痕迹相关的各种软件缺陷的分类。我们的研究表明,使用熵的措施进行比较,提供了一个有效的和可扩展的方法比较痕迹。这三个扩展熵,与参数选择强调罕见的事件,都表现类似,优于香农熵。
2012-04-25 cs.IT cs.SE math.IT
Significance of Quality Metrics in Software Development Process
近年来,软件已成为从简单的办公自动化到空间技术和电子邮件到电子商务的每个部分不可或缺的一部分。软件体系结构的演化一直是研究人员解决具有众多特定领域需求的复杂系统的一个开放性问题。一个系统的成功是基于每个开发阶段的质量结果与适当的测量技术。过程、产品和参与开发过程的人员(P3)的度量,作为反映公司成熟度水平的质量指标。已经定义并实践了几个过程度量来度量软件可交付成果,包括通过维护进行的需求分析。每个阶段的质量控制对于提高里程碑的质量以及最终产品的质量都有其自身的意义。本文强调了软件质量度量的重要性,其次是在软件开发的主要阶段,即需求,设计和实施。因此,本文旨在提高对现有指标的认识,并导致对它们的增强,以反映公司在市场上的可持续性的持续过程改进。
2012-07-03 cs.SE
Metrics for Software Process Simulation Modeling
背景:软件过程仿真(SPS)已经成为软件过程管理和改进的有效工具。然而,由于测量成本的负担和对领域知识的高需求,它在工业中的采用低于研究界的预期。从过程制定中提取具有真实数据的适当度量的困难是最大的挑战之一。目的:为软件过程(仿真)建模提供基于证据的过程度量支持。方法:一个系统的文献综述进行了扩展我们以前的审查系列,以得出一个全面的理解的过程建模的度量本体的元模型的度量在SPS。结果:我们确定了145个过程建模研究,共同涉及2130个指标,并使用编码技术进行分类。两个图表,说明指标之间使用的高频因果关系提出了两个层次的建模目的。我们重新审视了SPS数据准备阶段遇到的数据问题,并确定了相应的策略。结论:本研究的结果提供了一个基于证据的参考识别和SPS建模中的度量过程建模,并进一步有助于开发的知识体系的软件度量过程建模的背景下。此外,这项研究不仅限于过程模拟,但可以扩展到软件过程建模,一般。将仿真度量作为标准和参考,可以进一步激励和指导软件开发人员在实践中改进过程数据的收集、治理和应用。
2023-01-16 cs.SE
Software Architecture Metrics: a literature review
在软件工程中,早期发现体系结构问题是关键。它有助于降低性能差的风险,并降低修复这些问题的成本。图3给出了项目的快速概述,帮助设计人员检测其架构中的缺陷或退化。尽管研究在25年前就公布了架构指标,但它们尚未被行业和开源社区所接受。在这项研究中,我们的目标是进行审查现有的度量集中在软件架构的质量评估,早期的设计流程和整个项目的生命周期。我们也给他们的使用准则,并研究他们在不同的情况下的相关性。
2019-01-25 cs.SE
An overview of metrics-based approaches to support software components reusability assessment
目的:介绍了基于度量的软件构件和构件组装质量评估的研究现状。方法:比较文献中可用的几种方法,使用包括几个方面的框架,如范围,意图,定义技术和成熟度。结果如下:识别当前方法的共同缺点,如定义的模糊性,缺乏足够的指定形式主义和当前的质量模型和度量的软件组件的验证不足。结论:组件和基于组件的基础设施的质量评估对实验软件工程社区提出了新的挑战。
2011-09-30 cs.SE
Comparing Static and Dynamic Weighted Software Coupling Metrics
耦合度量是度量软件体系结构模块化质量的一种已建立的方法。静态耦合度量从程序的源代码或编译代码获得,而动态度量使用收集的运行时数据,例如,通过监控生产中的系统。我们研究\emph{weighted}动态耦合,考虑到如何经常在系统的运行过程中执行连接。我们研究动态加权度量和静态度量之间的相关性。我们使用从四个不同的实验中收集到的数据,每个实验在四周内监控商业软件系统的生产使用。我们观察到一个意想不到的静态和加权动态的情况下,以及揭示类和包级分析之间的差异之间的相关性水平。
2019-09-27 cs.SE
MetricHaven -- More Than 23,000 Metrics for Measuring Quality Attributes of Software Product Lines
可变性感知度量被设计用于度量软件产品线的定性方面。正如我们在先前的SLR \cite{El-SharkawyYamagishi-EichlerSchmid19}中所确定的,已经存在许多单独解决代码或可变性的度量,而对两者的组合的研究较少。MetricHaven填补了这一空白,因为它广泛支持将来自代码文件和可变性模型的信息组合在一起。此外,我们还实现了完善的单一系统指标与新颖的可变性感知指标的组合,超越现有的可变性感知指标。我们的工具支持最突出的单系统和可变性感知代码度量。我们为已经实施的指标提供配置支持,导致23,342个指标变化。此外,我们提出了一个抽象的语法树MetricHaven开发,允许实现额外的代码指标。工具:https://github.com/KernelHaven/MetricHaven视频:https://youtu.be/vPEmD5Sr6gM
2021-10-19 cs.SE
A Systematic Mapping Study on Dynamic Metrics and Software Quality
软件产品质量的几个重要方面可以使用动态度量来评估,这些度量有效地捕获和反映了软件的真实运行时行为。虽然这一领域的研究范围仍然相对有限,特别是与静态指标的研究相比,但由于动态指标的固有优势,该领域正在增长。这项工作的目的是系统地调查机构的动态软件度量的研究,以确定与他们的选择,设计和实施的问题。映射研究越来越多地用于软件工程中,以表征新兴的研究主体,并确定正在调查的领域中的差距。在这项研究中,我们确定和评估了60个作品的基础上,一组定义的选择标准。这些研究进一步分类和分析,以确定其相关性,以未来的动态度量研究。分类是基于三个不同的方面:研究重点,研究类型和贡献类型。我们发现了大量与动态耦合和内聚度量相关的研究,其中大多数作品还涉及软件复杂性的抽象概念。未来工作的具体机会涉及更广泛的质量层面。
2021-01-11 cs.SE
Exploring Software Reusability Metrics with Q&A Forum Data
问答(Q&A)论坛包含有关软件重用的有价值的信息,但由于其非结构化的自由文本,分析起来可能具有挑战性。在这里,我们介绍了一种新的方法(LANLAN),使用词嵌入和机器学习,利用StackOverflow中可用的信息。具体来说,我们认为两种不同的用户沟通,描述在软件重用中遇到的困难:“问题报告”指向潜在的缺陷,而“支持请求”要求澄清软件的使用。词嵌入在StackOverflow的16亿个令牌上进行了训练,并应用于识别哪些问答论坛消息(来自两个大型开源项目:Eclipse和Bioconductor)对应于问题报告或支持请求。LANLAN的受试者操作曲线下面积(AUROC)超过0.9;它可以用来探索软件可重用性指标和用户遇到的困难之间的关系,以及预测用户未来将面临的困难的数量。Q&A论坛数据可以帮助提高对软件复用的理解,并可以作为评估软件复用性度量的额外资源。
2020-05-18 cs.SE
Evaluation of Reusability in Aspect Oriented Software using Inheritance Metrics
面向方面的软件开发(AOSD)是一种有效地将横切功能(关注点)捕获为称为方面的独立单元的方法。类和方面的继承在定义封装单元中起着至关重要的作用。因此,它是必不可少的,以定量捕捉的影响,继承AOSD使用设计级的指标,并推断出更高层次的质量属性,可重用性。一个应用程序自动化的过程中,一个典型的大学已经开发,以研究使用继承的影响,在一个方面化AO应用程序的版本。提出了一套度量继承的表现形式。设计并开发了一个面向方面的软件复用性度量工具AOSRM,用于计算所提出的度量值。基于获得的度量值的Java和ANOJ版本的案例研究应用程序,继承在ANOJ版本的软件的可重用性表现出积极的影响。
2020-12-01 cs.SE
Uncovering Scientific Software Sustainability through Community Engagement and Software Quality Metrics
University of Central Arkansas(阿肯色中央大学);University of Tennessee Knoxville(田纳西大学诺克斯维尔分校);Oak Ridge National Laboratory(橡树岭国家实验室)
该研究针对科学开源软件长期维持的挑战,以GitHub上的十个知名Sci-OSS项目为对象,结合社区参与与软件质量指标,提出新颖可视化技术及相关分析方法,为相关人员提供了软件可持续性的关键见解。
2026-07-30 cs.SE
Modularity Index Metrics for Java-Based Open Source Software Projects
开放源码软件(OSS)项目越来越受欢迎,这些天来,他们成为替代建设软件系统。尽管这些项目中有许多失败,但也有一些成功的故事,其中一个确定的成功因素是模块化。本文提出了第一个定量的软件度量标准来衡量基于Java的OSS项目的模块化水平称为模块化指数。该软件度量是通过使用SONAR工具分析sourceforge.net上的59个基于Java的OSS项目的大小、复杂性、内聚性和耦合性等模块化特征来制定的。这些OSS项目之所以被选中,是因为它们已经被下载了超过10万次,并且被认为具有成功所需的模块化特征。提取并分析了这些项目在类、包和系统级与模块化相关的软件度量。然后对发现的相似性进行分析,以确定类质量,包质量,然后结合系统架构措施制定模块化指数。在JFreeChart项目演进过程中度量模块化指数的案例研究表明,该软件度量能够识别项目的优势和潜在问题。
2013-09-23 cs.SE
State-Of-The-Art In Empirical Validation Of Software Metrics For Fault Proneness Prediction: Systematic Review
随着软件可靠性和故障成本的急剧上升,对软件质量的要求越来越高。然而,保证高质量的软件系统的规模和复杂性的增长,加上对他们的发展所施加的限制,已成为越来越困难,时间和资源消耗的活动。因此,交付没有严重错误的软件是不可避免的。在这种情况下,面向对象(OO)产品作为软件开发的事实标准,其独特的功能可能会有一些缺陷,很难发现或查明的变化的影响。故障识别、发现和修复得越早,成本就越低,质量就越高。为了评估产品质量,使用软件度量。许多面向对象的度量标准已经被提出和发展。此外,许多实证研究已经验证了度量和类错误倾向(FP)的关系。挑战在于哪些指标与FP类相关以及执行哪些活动。因此,这项研究汇集了最先进的故障预测的FP,利用CK和大小度量。我们对相关已发表的经验验证文章进行了系统的文献综述。所得结果进行了分析和介绍。它表明,29个相关的实证研究存在和措施,如复杂性,耦合和规模被发现是密切相关的FP。
2016-01-07 cs.SE
Towards Understanding the Impact of Code Modifications on Software Quality Metrics
本研究通过聚类GitHub代码修改并借助AI语言模型描述各簇功能,揭示代码变更对软件质量度量指标的集体影响,为理解代码变更与质量关系及改进维护策略提供新方法。
2024-04-05 cs.SE
Investigating Software Testability and Test cases Effectiveness
软件度量是开发健壮的、可维护的软件系统的重要管理工具。软件度量可以用来控制软件设计中固有的复杂性。可测试性属性是软件可维护性和质量保证的一个子特征,它的引入保证了软件组件的可测试性。本研究探讨静态程式码与测试指标、可测性与测试用例有效性之间的关系。该研究回答了三个研究问题。分析结果表明,规模和复杂性度量是适合预测面向对象类的可测试性。
2022-01-25 cs.SE
Revisiting the Impact of Dependency Network Metrics on Software Defect Prediction
通过应用社会网络分析(SNA度量)从软件模块的依赖图中提取软件依赖网络度量,已被证明可以提高软件缺陷预测(SDP)模型的性能。然而,这些SNA指标在提高SDP模型性能方面相对于代码指标的相对有效性一直受到广泛讨论,没有明确的共识。此外,一些常见的SDP场景,如预测跨版本和跨项目SDP上下文中的模块中的缺陷数量(缺陷计数)仍然没有探索。与广泛使用的代码度量相比,SNA度量的有效性缺乏明确的指导,这使我们无法构建性能更好的SDP模型。因此,通过对30个版本的9个开源软件项目的案例研究,我们研究了SNA指标与3个常用SDP上下文(项目内,跨版本和跨项目)和场景(缺陷计数,缺陷分类(如果模块有缺陷,则进行分类)和工作量感知(将缺陷模块排名为所涉及的工作量))的代码指标相比的相对有效性。我们发现SNA度量本身或与代码度量一起提高了SDP模型的性能,而不仅仅是在9个研究的SDP场景中的5个场景(三个SDP场景,三个SDP上下文)上使用代码度量。然而,我们注意到,在某些情况下,通过考虑SNA度量或与代码度量一起考虑SNA度量所提供的改进可能只是微不足道的,而在其他情况下,改进可能是巨大的。基于这些研究结果,我们建议未来的工作应该:考虑SNA度量在其SDP模型中的代码度量;以及考虑自我度量和全局度量,这两种不同类型的SNA度量在训练SDP模型时分开,因为它们的行为不同。
2022-02-12 cs.SE
Toward Software Measurement and Quality Analysis of MARF and GIPSY Case Studies a Team 13 SOEN6611-S14 Project Report
质量是任何软件产品的基本要求,特别是在竞争激烈的市场和关键任务产品的背景下,这不再是一个争论。为了获得更好的产品质量,软件度量是唯一可靠的指标,提供评估和测量软件产品的这一属性。已经详细阐述了几个指标,但没有一个在面向对象的生态系统中真正方便。然而,MOOD度量标准已经证明了它们在系统级度量软件质量的有效性,而CK度量标准则在类级度量软件质量。这些度量非常适合于面向对象的设计,允许测量面向对象的设计属性,如耦合,内聚,封装,继承和多态性。本研究的目的是使用上述指标来评估两个不同的案例研究,MARF和GIPSY的质量。为此,不同的工具,如麦凯布,Logiscope和,JDeodorant已被用来衡量这些项目的质量,以不同的方式实现的指标组成的CK和MOOD套件的指标,而MARFCAT已被用来检测脆弱的代码文件在这两个案例研究。本研究提出了这些工具的优势,以衡量质量的证明和大量研究的软件产品的光。
2014-07-03 cs.SE
A Model using agile methodologies for defining metrics to be used by the Public Sector in Brazil to set remuneration for outsourced software development
巴西联邦公共管理局(APF,葡萄牙语)范围内的软件工厂承包过程由于立法变更而发生了一些变化,并提出了一种模式,以改善提供与交付成果有关的服务。基于预测过程和功能点度量的软件工厂合同是批评的目标,并且在实现结果方面存在问题,正如先前的研究所验证的那样。现在提出的研究的初步目标是确定一个流程模型,用于制定可用于敏捷合同的指标,而不是标准化功能点,这些功能点已经证明是相当有问题的,难以为承包商管理。因此,根据软件开发公司敏捷合同的主题,拟议的研究将寻求更好地理解软件开发及其维护问题,公共机构通过使用敏捷方法和适当的指标来支付这些服务的合同。
2021-04-13 cs.SE
On the Diversity of Software Package Popularity Metrics: An Empirical Study of npm
软件系统通常利用开源软件库来重用功能。这样的库可以通过软件包管理器(如JavaScript的npm)轻松获得。由于在这样的包分发中可用的包的巨大数量,开发者通常基于其流行度来决定依赖于或贡献于软件包。此外,研究人员通常依赖流行度指标进行数据采样并为他们的研究选择合适的候选人。然而,受欢迎程度的含义是相对的,可以以多种方式定义和测量,即使在考虑相同的研究时,也可能产生不同的结果。在本文中,我们展示了在软件工程研究中流行的意义是如何不同的证据。此外,我们实证分析了不同的软件流行性措施之间的关系。作为一个案例研究,对于175 k npm包的大型数据集,我们从三个开源跟踪系统(libraries.io,npmjs.com和GitHub)中计算并提取了9个不同的流行度指标。我们发现,实际上流行度可以用不同的无关指标来衡量,每个指标都可以在特定的上下文中定义。这表明需要一个通用的框架,将使用一个投资组合的流行度度量从不同的概念。
2019-01-14 cs.SE
Software Code Quality Measurement: Implications from Metric Distributions
本文针对代码质量指标缺乏一致评估标准的问题,提出基于分布的方法对单调性与非单调性指标进行统一评分,并在36,460个开源仓库上验证了评分对软件采用的可解释性。
2024-01-16 cs.SE
Interactive Complexity: Software Metrics from an Ecosystem Perspective
现在,即使是最微不足道的应用程序也是在数百万行库、API和程序设计语言代码之上编写的,因此,设计软件时存在的许多复杂性已经被抽象掉,以便程序员能够主要关注业务逻辑。由于每个应用程序都严重依赖于其设计运行的生态系统,无论是局限于本地系统还是包括对通过网络连接的机器的依赖,测量这些系统的复杂性不再仅仅通过观察应用程序内部的代码来完成;我们还需要考虑其外部交互。在考虑安全问题时,这一点尤为重要,因为我们的医疗保健,金融和汽车依赖于复杂的软件系统。我们提出了互动的复杂性,它提供了一个量化的措施,如何交织的系统部分。一些最著名的软件复杂性度量是CK度量套件中的度量;这些度量是为测量面向对象系统而设计的,但我们相信它们可以用来帮助测量软件系统的交互。我们的实验结果表明,在一个版本中修复的错误数量与足够规模的系统中这些指标的价值之间存在很强的相关性。
2017-11-28 cs.SE
Product Line Metrics for Legacy Software in Practice
如今,像汽车这样的客户产品不仅包含机械部件,还包含高度复杂的软件,制造商必须提供技术上非常相似的系统的许多变体,有时它们的行为只有很小的差异。在最近的文献中讨论了使用软件产品线实现这种行为的软件工件的适当重用,并提出了适当的方法和技术来管理它们。然而,建立一个软件产品线,整合现有的遗留软件,以重用有价值的资源,为未来的类似产品是非常具体的公司。在本文中,概述了一种方法来客观地评估遗留软件的潜力,创建一个软件产品线。该方法应用于大众汽车公司布伦瑞克业务单元的几个开发项目,以评估转向系统软件产品线的潜力。
2014-09-22 cs.SE
MICOSE4aPS: Industrially Applicable Maturity Metric to Improve Systematic Reuse of Control Software
自动化生产系统(aPS)是高度复杂的机电一体化系统,通常必须可靠地运行数十年。控制软件模块的标准化和重用是在越来越短的开发周期内实现所需系统质量的核心先决条件。然而,在aPS领域的工业案例研究表明,许多aPS公司仍然挣扎在战略重用软件。本文提出了一种基于度量的方法来客观地衡量基于IEC 61131的工业控制软件在aPS(MICOSE 4aPS)中的成熟度,以识别潜在的弱点和质量问题,阻碍系统的重用。机器和设备制造行业的模块开发人员可以直接受益,因为度量计算被集成到软件工程工作流程中。在一家食品包装行业顶级机器制造公司进行的深入行业评估以及与不同公司进行的专家评估证实了有效管理控制软件质量的好处。
2022-12-09 cs.SE
Fast Static Analyses of Software Product Lines -- An Example With More Than 42,000 Metrics
内容:软件度量作为静态分析的一种形式,是软件工程中常用的一种方法,用于了解软件系统的状态,特别是识别容易出现缺陷的潜在区域。基于族的技术从软件产品线(SPL)中的代码工件中提取可变性信息,以对所有可用的变体执行静态分析。在文献中已经定义了具有许多变体的许多不同类型的度量。当计算包括这些变体的所有度量时,可以轻松地定义数千个度量。在性能和资源消耗方面,为大型产品线计算所有这些数据可能是一个极其昂贵的过程。目的:我们解决了这些性能和资源挑战,同时支持可定制的度量套件,允许运行单一系统和可变性感知代码度量。方法:在本文中,我们介绍了一种部分解析方法,用于有效测量超过42,000个代码度量变化。该方法涵盖了可变性信息,并限制解析到抽象树(AST)的相关部分。结论:这种部分解析方法被设计为覆盖所有相关信息,以计算关于包含基于注释的可变性的代码工件的各种可变性感知代码度量,例如,用C预处理器语句实现。它允许单个系统和可变性感知指标的灵活组合,这是现有工具所不支持的。这是通过一种新的表示部分解析的产品线代码工件,这是定制的度量的计算。我们的方法消耗的资源少得多,特别是在并行计算许多度量变量时。
2021-10-12 cs.SE
A New Framework for software Library Investment Metrics
软件质量被认为是软件工程面临的最重要的挑战之一。它有许多方面,与用户的观点不同,取决于他们的要求。因此,这些维度导致难以正确地测量和定义软件质量。软件质量度量是软件质量的主要核心。因此,有必要研究和开发软件度量,以满足更好的质量要求。使用库比使用泛型编程更能提高软件质量,因为这些库是预先准备和测试的。此外,这些库减少了设计、测试和维护过程中的工作量。在这项研究中,我们提出了一个新的模型来计算在编码,测试和生产过程中使用库而不是泛型编程所节省的工作量。该模型包括三个指标,即图书馆投资率,图书馆投资水平,程序简单性。通过对10个工程实例的实证分析,比较了模型与复用率的结果。结果表明,该模型比复用率更能反映软件质量和生产率的提高。
2019-06-03 cs.SE
An Empirical Study on Software Defect Prediction with a Simplified Metric Set
软件缺陷预测在估计软件中最容易出现缺陷的组件方面起着至关重要的作用,并且大量的研究都在追求提高项目内或跨项目的预测准确性。然而,当可用的历史数据不足时,在项目内和跨项目缺陷预测之间做出适当决定的规则仍然不清楚。本文的目的是验证在不同的软件缺陷预测场景中,基于简化度量集的预测器的可行性,并探讨在特定项目中选择训练数据、分类器和度量子集的实用指导原则。首先,基于六个典型的分类器,我们构造了三种类型的预测器,在三种情况下使用软件度量集的大小。然后,我们验证了可接受的性能的预测器的基础上Top-k度量的统计方法。最后,我们尝试通过去除冗余度量来最小化Top-k度量子集,并且我们使用单向ANOVA检验来测试这样的最小度量子集的稳定性。实验结果表明:(1)训练数据的选择应取决于预测精度的具体要求;(2)使用简化的度量集建立的预测器工作良好,在资源有限的情况下非常有用;(3)简单的分类器(例如,朴素贝叶斯)在使用简化的度量集进行缺陷预测时也倾向于表现良好;以及(4)在若干情况下,可以识别最小度量子集,以便于在实践中具有可接受的预测精度损失的一般缺陷预测过程。表12列出了在不同情景下选择合适的简化指标集的指南。
2014-12-24 cs.SE
Metrics for Assessing The Design of Software Interfaces
最近的研究主要是研究类设计异常的检测。他们提出了一个大的度量标准,帮助检测这些异常和预测类设计的质量。虽然这些研究和建议的指标是有价值的,他们没有解决软件接口的特殊性。接口定义了合同,详细说明了软件模块和逻辑单元如何相互交互。本文提出了一系列与接口相关的设计缺陷:接口之间的共享相似性,接口克隆和接口层次结构中的冗余。我们识别和描述这些设计缺陷,通过真实的例子,从著名的Java应用程序。然后,我们定义了三个指标,帮助自动估计的接口设计质量,关于建议的设计异常,并确定重构候选人。我们调查我们的指标,并通过对三个大型Java应用程序进行的实证研究表明其实用性。
2013-02-11 cs.SE
How to Measure Performance in Agile Software Development? A Mixed-Method Study
本研究通过快速文献综述与单案例焦点小组的混合方法,明确敏捷软件开发绩效指标应用的挑战,构建常用指标库并给出实践与研究启示,以提升指标应用成功率。
2024-07-08 cs.SE
The impact of software complexity on cost and quality - A comparative analysis between Open source and proprietary software
软件质量的早期预测对于更好地进行软件规划和控制具有重要意义。在早期开发阶段,设计复杂性度量被认为是软件测试工作和一些质量属性的有用指标。尽管许多研究调查了设计复杂性与成本和质量之间的关系,但目前还不清楚我们在个别研究范围之外学到了什么。本文对软件复杂性度量对质量属性的影响进行了系统的综述。我们通过量身定制的荟萃分析方法,从57项主要研究的59个不同数据集中汇总了斯皮尔曼相关系数。我们发现,故障倾向性和可维护性是最经常调查的属性。Chidamber和Kemerer度量套件是最常用的,但不是所有的都是好的质量属性指标。此外,这些指标的影响在专有项目和开源项目中没有什么不同。研究结果对建立跨项目类型的质量模型具有一定的启示意义
2017-12-02 cs.SE
A Metric of Software Size as a Tool for IT Governance
本文提出了一种新的软件功能规模度量方法,该方法来源于功能点分析(FPA),但克服了它的一些不足。统计结果表明,新的度量,功能元素(EF),和它的子度量,功能元素的交易(EFt),有更高的相关性,在软件开发的努力比FPA在分析的数据。本文说明了新的度量作为一种工具,以提高IT治理,特别是在评估,监控,并给予指导,软件开发领域的应用。
2018-10-16 cs.SE
Agile Metrics for a University Software Engineering Course
通过将讲座与实践项目配对来教授敏捷软件开发已经成为常态。这种方法提出了在开发过程中对实际项目工作以及过程一致性进行分级和评估的问题。然而,很少有最佳实践可以用来衡量学生在实施敏捷实践方面的成功。大多数大学课程依赖于课程或期末口语考试期间的观察。在本文中,我们提出了一套指标,让洞察团队中的敏捷实践的坚持。这些指标识别开发数据中未遵循敏捷流程的实例,例如提交或用户故事。查明的违规行为可作为进一步调查和小组讨论的起点。利用违规的上下文知识,可以细化执行的过程或度量本身。这些指标反映了我们在过去五年中运行软件工程课程的经验。他们衡量的方面,学生经常有问题,并减少过程采用和学生参与。我们提出了建议的指标,这是在最新的课程分期付款,辅导,讲座和口试一起测试。
2018-09-03 cs.SE
Statistical-Based Metric Threshold Setting Method for Software Fault Prediction in Firmware Projects: An Industrial Experience
University of Naples "Federico II"(那不勒斯费德里科二世大学)
本文提出基于统计的软件故障预测指标阈值设置方法,通过实证研究验证了其在工业环境中的有效性,为故障预测提供可解释的解决方案。
2026-02-06 cs.SE
Measuring the Overall Complexity of Graphical and Textual IEC 61131-3 Control Software
软件实现了工厂自动化中很大一部分功能。因此,有效的开发和软件部分(即所谓的单元)的重用提高了竞争力。因此,复杂的控制软件单元更难以理解,导致开发、测试和维护成本增加。然而,测量复杂性是具有挑战性的,因为许多不同的,主观的观点。本文比较了文献中不同的复杂性定义,并考虑了一个定性的问卷调查研究领域专家的复杂性感知,谁确认的重要性,客观的措施来比较复杂性。本文提出了一套度量标准,衡量各种类别的软件复杂性,以确定最复杂的软件单元作为重构的先决条件。这些度量包括由大小、数据结构、控制流、信息流和词法结构引起的复杂性。与大多数文献方法不同,这些指标符合IEC 61131-3标准的图形和文本语言。此外,一个概念,用于解释的度量结果。一个全面的评估与工业软件从两个德国工厂制造商验证了指标的适用性来衡量复杂性。
2022-12-09 cs.SE
Evaluation of Software Product Quality Metrics
计算设备和相关软件管理着日常生活,并构成银行、医疗保健、汽车和其他领域安全关键系统的支柱。不断增加的系统复杂性,快速发展的技术和范式转变使软件质量研究处于最前沿。ISO 25010等标准以可维护性、可靠性和安全性等子特性来表达它。大量的文献试图将这些子特征与软件度量值联系起来,最终目标是创建一个基于度量的软件产品质量模型。然而,研究也确定了最重要的现有障碍。其中,我们提到了软件应用程序类型,开发平台和语言的多样性。此外,使软件度量真正与语言无关的统一定义并不存在,并且在给定的程序设计语言级别的变化的情况下将难以实现。更糟糕的是,许多现有的研究没有详细说明他们的方法和工具,这使得研究人员无法创建调查以进行更大规模的数据分析。在我们的论文中,我们提出了一个全面的研究度量值的背景下,三个复杂的,开源的应用程序。我们将我们的方法和工具与现有的研究相结合,并详细介绍,以便于比较评估。我们研究指标值在整个18年的发展历史,我们的目标应用程序,以捕捉纵向的观点,我们发现缺乏现有的文献。我们识别度量依赖关系,并检查它们在应用程序及其版本之间的一致性。在每一步中,我们都与现有的研究进行了比较评估,并提出了我们的结果。
2020-09-03 cs.SE