Measuring SES-related traits relating to technology usage: Two validated surveys
本文提出两份经过验证的调查问卷 SES-Subjective 和 SES-Facets,用于测量软件产品对不同社会经济地位人群的适用性,并通过实证验证其可靠性,为软件从业者提供可操作的测量工具。
2025-02-07 cs.HC cs.SE
Improving the Technical Aspects of Software Testing in Enterprises
许多软件开发项目由于质量问题而失败。软件测试能够创建高质量的软件产品。由于这是一项繁琐而昂贵的任务,而且往往难以管理,因此其技术背景和组织实施都必须有充分的基础。我们与开发软件的区域公司合作,以了解他们在测试方面的明显弱点和优势。通过分析和比较优势,我们得出了最佳实践。在本文中,我们解释了该项目的背景和素描的设计科学研究方法论使用。然后,我们介绍了一个图形分类框架,帮助企业判断建议的适用性。最后,我们提出了五个技术方面的测试建议的细节。对于每一个建议,我们给出了基于分类框架的实施建议。
2010-11-02 cs.SE
Automata Describing Object Behavior
将形式化表示技术与商业化的面向对象软件开发方法联系起来,对于增强这些软件开发方法和工具的功能和灵活性具有重要意义。我们将提出一个自动机模型连同指称和操作语义来描述对象的行为。在给出的语义基础上,我们定义了一组功能强大的检索规则,并讨论了它们在软件工程实践中的适用性,特别是在继承的使用下。
2014-11-10 cs.SE
RepoMiner: a Language-agnostic Python Framework to Mine Software Repositories for Defect Prediction
来自开源软件项目的数据为提高软件质量提供了宝贵的信息。在软件缺陷预测的范围内,最具挑战性的部分之一是从这些存储库中提取有关易失败软件组件的有效数据,这可以帮助开发更健壮的软件。特别是,从这些存储库中收集数据、计算度量和合成结果是一项乏味且容易出错的任务,这通常需要理解所挖掘的存储库中涉及的程序设计语言,最终导致特定于语言的数据挖掘软件的激增。本文介绍了RepoMiner,语言无关的工具,开发支持软件工程研究人员在创建数据集,以支持任何研究缺陷预测。RepoMiner自动从软件组件中收集故障数据,将其标记为易故障或中性,并计算用作缺陷预测模型基础事实的指标。我们提出了它的实现,并提供了它的应用程序的例子。
2021-11-23 cs.SE
Certifying controls and systems software
软件系统认证本身面临着许多挑战,包括在功能需求、代码和二进制级别上认证系统的必要性,追踪运行时错误的必要性,以及证明最终编译系统的时序属性的必要性。本文说明了可能的方法来验证代码所产生的控制系统的要求,只要稳定性有关。核证过程相对简单,这应鼓励为核证更复杂环境的控制系统代码制定系统程序。
2007-01-23 cs.SE
Customer Validation, Feedback and Collaboration in Large-Scale Continuous Software Development
针对大型组织持续整合客户反馈的挑战,本研究以戴尔科技为背景,采用行动研究方法提出改进模型,助力组织通过可衡量指标交付满足客户需求的软件增量改进。
2025-04-13 cs.SE
Software quality: A Historical and Synthetic Content Analysis
互联的计算机和软件系统已经成为人们生活中不可缺少的一部分,因此软件质量的研究变得越来越重要。在软件质量研究中,人们曾多次尝试综合软件质量研究中获得的知识,但是,他们主要集中在软件质量的单个方面,而不是以整体的方式构建知识。我们研究的目的就是缩小这一差距。从Scopus书目数据库中获得软件质量出版物。元数据首先被导出到CRexlporer,用于识别历史根源,其次是VOSViewer,用作合成内容分析的一部分。在我们的研究中,我们将综合语境分析定义为文献计量学和内容分析的三角测量。我们的搜索结果在14451出版物。绩效文献计量研究表明,与软件质量有关的研究出版物的出版目前呈指数增长趋势,软件质量研究界也在不断壮大。最多产的国家是美国,最多产的机构是佛罗里达大西洋大学。综合内容分析显示,已发表的知识可以被结构化为10个主题,最重要的是关于软件质量改进与增强软件工程,先进的软件测试,并改进缺陷和故障预测与机器学习和数据采掘的主题。根据对热点问题的分析,未来的研究似乎将致力于开发和使用新的人工智能工具(而不仅仅是机器学习和数据采掘),并专注于如何在敏捷开发范式中确保软件质量。
2021-06-28 cs.SE
Exploring Apache Incubator Project Trajectories with APEX
开源软件(OSS)是我们数字基础设施的主要组成部分,但超过80%的此类项目都失败了。为了减少不确定性,许多OSS项目加入了已建立的软件社区,例如,Apache软件基金会(ASF),通过既定的规则和社区支持来指导项目实现可持续性。在初创阶段,ASF项目在ASF孵化器(ASFI)中孵化,该孵化器为长期可持续发展提供系统的指导。ASFI的项目最终通过毕业(如果成功)或退休(如果不成功)来结束孵化。开发人员活动的时间戳跟踪可从ASF公开获得,并可用于监控项目的可持续发展轨迹。在这里,我们介绍了一个网络应用程序仪表板工具APEX,它允许内部和外部利益相关者监控和探索ASFI项目的可持续发展轨迹,包括社交和技术网络。
2022-05-23 cs.SE
Observing Custom Software Modifications: A Quantitative Approach of Tracking the Evolution of Patch Stacks
对开源软件的修改通常以“补丁堆栈”的形式提供-修改给定源代码主体的更改(补丁)集。当底层基础项目频繁更改时,长时间维护修补程序堆栈是有问题的。这就需要对电池组进行持续的、工程密集型的调整。然而,长期维护对于未纳入项目的变更是一个重要问题,例如,当变更有争议或仅对有限的用户群体有价值时。我们提出并实施了一种方法,系统地检查补丁堆栈的时间演变,跟踪非功能性的属性,如可集成性和可维护性,并估计最终的经济和工程所需的努力,成功地开发和维护补丁堆栈。我们的研究结果提供了定量研究补丁堆栈,包括统计分析和其他方法,导致可操作的建议,建设和长期维护的自定义扩展到OSS的基础。
2016-07-04 cs.SE
Software Micro-Rejuvenation for Android Mobile Systems
软件老化-这种现象会影响许多长期运行的系统,导致性能下降或随着任务时间的推移故障率增加,最终导致故障-也会影响移动设备及其操作系统。软件更新--通常用于对抗老化的技术--如果以粗粒度应用,可能会损害用户对个人设备可用性和可靠性的感知,通过重新启动应用程序,或者更糟的是,重新启动整个设备。本文提出了一种可配置的微恢复技术,以抵消软件老化在基于Android的移动设备,在细粒度的水平,即在内存中的系统数据结构。该技术分为两个阶段。在发布(自定义)Android版本之前,制造商的开发人员使用堆分析工具来识别Android服务中可能膨胀的数据结构,并检测其代码。发布后,老化检测和恢复服务将安全地清理膨胀的数据结构,对用户感知和设备可用性的影响可以忽略不计,因为设备和操作系统的进程都不会重新启动。实验结果表明,该技术的能力,以提供显着的收益,在老化的移动操作系统的响应和故障时间。
2021-12-13 cs.SE
Better User Recommendations using Enhancing Software Development Process Repository
重用以前完成的软件存储库来增强开发过程是一种常见现象。如果开发人员从现有项目中获得建议,他们可能会在编码时受益匪浅。这一领域的现有战略每天都在迅速变化。有一些努力一直专注于采矿过程和建造储存库。其中一些人强调基于Web的代码搜索,而另一些人则将基于Web的代码搜索集成到他们的定制工具中。但是基于Web的方法效率低下,特别是在构建应用挖掘技术的知识库方面。为了搜索响应用户查询的代码片段,我们需要一个具有更好表示和抽象的丰富存储库。为了保证仓库在挖掘过程之前,我们开发了一个基于增强软件开发过程(ESDP)的概念。在ESDP方法中,考虑了来自在线和离线存储的多个代码源,以构建具有XML表示的中央存储库,并在客户端应用挖掘技术。相应的评估表明,ESDP方法的工作更好的响应时间和性能比许多现有的方法今天。
2020-06-21 cs.SE
Demonstrating Software Reliability using Possibly Correlated Tests: Insights from a Conservative Bayesian Approach
本文提出保守贝叶斯方法,在软件执行可能相关时评估可靠性,揭示独立性假设的影响,并指出运行测试的徒劳性与故障敏感性,应用于核电站和自动驾驶安全。
2023-10-11 cs.SE
Developer Discussion Topics on the Adoption and Barriers of Low Code Software Development Platforms
低代码软件开发(LCSD)是一种新兴的方法,可以使来自不同背景的软件从业者的应用程序开发民主化。康文署平台以拖放界面和最少的手工编程促进快速应用程序开发。由于这是一个相对较新的模式,因此研究开发商在采用康文署平台时遇到的困难至关重要。软件工程师经常使用在线开发人员论坛Stack Overflow(SO)寻求技术问题的帮助。我们观察到,在统计处,与文康署有关的职位数目不断增加。本文提出了一个实证研究,约33 K SO职位包含38个流行的康文署平台的讨论。我们使用主题建模来确定这些帖子中讨论的主题。此外,我们还研究了这些主题如何分布在敏捷软件开发生存周期(SDLC)的各个阶段,以及LCSD的哪个部分最受欢迎和最具挑战性。我们的研究提供了几个有趣的发现。首先,我们找到40个LCSD主题,我们分为五个类别:应用程序定制,数据库和文件管理,平台采用,平台维护和第三方API集成。其次,虽然应用程序定制(30\%)和数据存储(25\%)\rev{topic}类别是最常见的,但与其他几个类别(例如,平台采用\rev{topic}类别)近年来获得了相当大的关注。第三,所有主题类别都在迅速发展,特别是在新冠肺炎大流行期间。这项研究的结果对所有三个LCSD利益相关者都有影响:LCSD平台供应商,LCSD开发人员/从业人员,研究人员和教育工作者。研究人员和LCSD平台供应商可以合作改进LCSD的不同方面,…
2022-09-02 cs.SE
Enhancing Software Development Process (ESDP) using Data Mining Integrated Environment
如今,重用现有的应用程序编程接口(API)、类库和框架已成为快速软件开发的基本需求。软件开发人员经常通过调用相应的API或库来重用它。但在这样做的时候,开发人员在搜索适当的代码段时通常会遇到不同的问题。在大多数情况下,API和库是复杂的,没有良好的结构或良好的文档记录。在线搜索引擎的搜索耗时长,但匹配的相关性不高,表示性不好。为了根据查询获得建议,我们可以使用搜索引擎或代码搜索引擎在线找到该片段。在某些情况下,依赖于数据库的搜索和基于远程Web服务器的挖掘存储库搜索给开发人员带来了问题。在代码搜索引擎上查找API建议通常会处理超大文件,最终会减慢软件开发过程。我们在整个工作过程中一直在寻找解决办法,并努力取得更好的结果。作为替代行动,我们已经实施了一个系统,我们称之为增强软件开发过程(ESDP)工具,该工具能够为开发人员提供一个高效的集成环境,更好地抽象和表示搜索结果,程序员需要从源代码中派生。我们还构建并应用了一个基于XML的丰富存储库,以从客户端的挖掘存储库中获得推荐,而无需与依赖于互联网的服务器进行交互,以节省复杂性和时间。我们使用基于图的表示为程序员或开发人员提供最相关的代码框架或映射。
2020-05-06 cs.SE
Myriad People Open Source Software for New Media Arts
本文提出Myriad People数据集,收录124个新媒体艺术所用开源项目及其贡献者,并展示其在软件与艺术研究中的用途。
2025-01-23 cs.MM cs.SE
Facilitating Asynchronous Participatory Design of Open Source Software: Bringing End Users into the Loop
随着开放源码软件(OSS)变得越来越成熟和流行,在适当考虑不同最终用户的可用性问题方面存在重大挑战。参与式设计,即多个利益相关者合作迭代设计,可以是解决OSS项目可用性问题的有效方法。然而,诸如以代码为中心的思维和工具支持不足等障碍往往阻止OSS团队有效地将最终用户纳入参与式设计方法。本文提出了这个问题的初步贡献,通过以用户为中心的探索(1)一套设计准则,捕捉OSS参与式设计工具的需求,(2)两个人物角色,代表OSS设计师和最终用户的特点,(3)一个低保真度的原型工具,最终用户参与OSS项目。这项工作铺平了道路,为未来的研究工具设计,最终将有助于提高OSS的可用性。
2021-02-24 cs.HC cs.SE
Relating Complexity, Explicitness, Effectiveness of Refactorings and Non-Functional Requirements: A Replication Study
本研究通过将项目数翻倍并验证8,408个重构实例复现Soares等人的研究,考察SAR的复杂性、显式性、有效性及其与非功能需求的关系,发现显式重构更复杂但通常更利于内部质量。
2025-05-12 cs.SE
Service Intelligence Oriented Distributed Data Stream Integration
软件即服务(SaaS)最近受到了广泛关注,因为它使软件的使用更加方便和具有成本效益。与此同时,用户对高质量服务(如实时信息或功能提供)的期望的提高带来了新的挑战:为了满足这种(接近)实时的要求,需要对流数据进行实时监控和有效处理。然而,由于服务的组合结构和多实例特性,服务数据流往往是分布式的,难以同步和聚合。我们解决这些挑战,(1)提出系统的关联策略相关的分布式数据;(2)引入一个新的小窗口数组机制聚合分布式数据;(3)设置窗口参数的累积分布函数(CDF)方法的基础上;(4)建模流媒体运营商与排队模型的性能评估和预测。实验表明,该方法在处理分布式服务数据流时具有良好的准确性、完整性和可接受的性能度量。
2016-04-12 cs.SE
What Makes Agile Test Artifacts Useful? An Activity-Based Quality Model from a Practitioners' Perspective
背景:敏捷软件测试中使用的工件以及使用这些工件的原因已经相当清楚。然而,关于敏捷测试工件最终如何在实践中设计以及哪些质量因素使它们对软件测试有用的实证研究仍然很少。目标:我们的目标是双重的。首先,我们确定当前使用测试工件的挑战,以了解为什么某些质量因素被认为是好的或坏的。其次,我们构建了一个基于活动的敏捷测试质量模型,描述了敏捷测试工件应该是什么样子。方法:我们进行了一项行业调查,18个从业者从12家公司在七个不同的领域。结果:我们的分析揭示了9个挑战和16个因素,从敏捷测试人员的角度描述了6个测试工件的质量。有趣的是,我们观察到的主要挑战是关于语言和可追溯性的,这在非敏捷项目中是众所周知的。结论:尽管敏捷软件测试正在成为一种规范,但我们仍然对超越传统智慧的一般性做和不做没有多少信心。这项研究是第一个提炼出一系列质量因素的研究,这些因素被认为是有用的测试工件的重要因素。
2020-09-03 cs.SE
What Pulls the Strings? Understanding the Characteristics and Role of Argumentation in Open-Source Software Usability Discussions
Polytechnique Montreal(蒙特利尔高等理工学院)
研究分析了开源软件可用性讨论中论证的特点和作用,发现论证质量影响参与者行为,揭示了开源社区在可用性方面的集体智慧不足。
2025-12-08 cs.HC cs.SE
Continuous Integration Theater
背景:持续集成(CI)系统现在是一些软件开发实践的基础。一些工具,如TravisCI,CircleCI和Hudson,实现CI实践,通常被软件工程师采用。然而,软件工程师使用这些工具的方式可能会导致我们所说的“持续集成剧场”,即软件工程师不能有效地使用这些工具,从而导致不健康的CI实践。目的:本文的目标是了解这些不健康的持续集成实践在实践中的普遍程度。方法:通过检查1,270个使用TravisCI(最常用的CI服务)的开源项目,我们定量研究了使用CI的常见程度(1)不频繁提交,(2)在测试覆盖率差的软件项目中,(3)长期保持中断的构建,以及(4)运行时间过长的构建。结果:我们观察到748个($sim$ 60%)项目面临不频繁的提交,这基本上使合并过程更加困难。此外,我们能够找到51个项目的代码覆盖率信息。平均代码覆盖率为78%,尽管Ruby项目的代码覆盖率高于Java项目(分别为86%和63%)。然而,我们也发现了一些覆盖率非常小的项目($sim$ 4%)。尽管如此,我们观察到85%的研究项目至少有一个损坏的构建,需要超过四天的时间才能修复。有趣的是,非常小的项目(多达1,000行代码)是修复损坏的构建所需时间最长的项目。最后,我们注意到,对于大多数被研究的项目,构建都是在10分钟的经验法则下执行的。结论:我们的研究结果是很重要的软件工程师越来越多的社区,采用CI的做法,每天的基础…
2019-07-02 cs.SE
An Effective Software Risk Prediction Management Analysis of Data Using Machine Learning and Data Mining Method
Southern Methodist University(南卫理公会大学);New York University(纽约大学);Columbia University(哥伦比亚大学)
本文提出结合增强型乌鸦搜索算法与ANFIS的软件风险预测方法,并在NASA 93数据集上验证其相比现有方法具有更高的风险评估准确性与有效性。
2024-06-29 cs.LG cs.SE
From Copilot to Pilot: Towards AI Supported Software Development
University of Toronto(多伦多大学);University of Victoria(维多利亚大学)
人工智能支持的编程已经到来,正如用于代码的大语言模型的引入和成功所表明的那样,例如Copilot/Codex(Github/OpenAI)和AlphaCode(DeepMind)。在编程挑战上的人类平均表现现在是可能的。然而,软件工程远不止解决编程竞赛。从代码完成转向人工智能支持的软件工程将需要一个人工智能系统,它可以理解如何避免代码气味,遵循语言习惯,并最终(也许!)提出合理的软件设计。在这项研究中,我们探讨了目前像Copilot这样的人工智能支持的代码完成工具的局限性,并提供了一个简单的分类法来理解这个领域中人工智能支持的代码完成工具的分类。我们首先对Copilot关于语言习惯和代码气味的代码建议进行了探索性研究。Copilot不遵循语言习惯,并避免在我们的大多数测试场景中出现代码气味。然后,我们进行额外的调查,以确定当前的边界AI支持的代码完成工具,如Copilot通过引入软件抽象层次的分类,其中“基本的编程功能”,如代码编译和语法检查是在最抽象的水平,软件架构分析和设计是在最抽象的水平。最后,我们讨论了未来开发AI支持的代码完成工具所面临的挑战,以达到我们分类法中的设计抽象级别。
2023-03-07 cs.AI cs.LG cs.SE
ResyDuo: Combining data models and CF-based recommender systems to develop Arduino projects
针对Arduino开发中组件选择过载问题,提出结合MDE与CF推荐算法的ResyDuo原型,可基于标签或ProjectHub项目推荐硬件及对应软件库,经十折交叉验证评估表现良好仍有提升空间。
2023-08-26 cs.SE
Newcomer OSS-Candidates: Characterizing Contributions of Novice Developers to GitHub
开源软件(OSS)项目吸引、接纳和留住任何新来者的能力对其生存至关重要。尽管有证据表明,新手开发人员加入社交编码平台(如GitHub)的人数激增,但他们的活动在多大程度上导致了OSS的贡献尚不清楚。阻碍,我们执行注册报告的协议,以研究“新来者OSS候选人”的活动,他是一个新的社会编码平台的新手开发人员,并打算以后加入OSS项目。使用GitHub作为案例平台,我们分析了171个确定的新OSS候选人,以描述他们的贡献活动。结果表明,新来的OSS候选者可能以基于软件的存储库为目标(即,66%),他们的第一个贡献主要与开发(提交)和维护(PR)有关。新手OSS-候选人不太可能练习社交编码,但最终会加入(即,30%定量,70%后续调查)的开放源码软件项目。此外,他们认为找到一种开始的方式是最具挑战性的障碍。我们的工作揭示了社交编码平台的新来者如何成为OSS贡献的潜在来源。
2022-04-06 cs.SE
Exploring Research Interest in Stack Overflow -- A Systematic Mapping Study and Quality Evaluation
像Stack Overflow这样的平台可供软件从业者寻求解决方案来应对他们的挑战和知识需求。然而,其中的做法最近引发了与质量有关的问题。考虑到Stack Overflow平台被许多软件开发人员使用,这是一个值得注意的问题。学术研究倾向于为Stack Overflow和其他此类论坛所采用的实践和流程提供验证。然而,以前的工作并没有审查科学关注的规模,这是给这个原因。从我们的初步工作开始,我们进行了一项系统映射研究,涉及来自六个相关数据库的265篇论文,以解决这一差距。在这项工作中,我们探讨了Stack Overflow产生的学术兴趣水平,有针对性的出版场所,研究的主题,使用的方法,贡献类型以及关于Stack Overflow的出版物的质量。结果表明,Stack Overflow多年来吸引了越来越多的研究兴趣,主题涉及社区动态和人为因素以及技术问题。此外,调查研究主要是评价性的或提出解决办法;然而,后一种方法往往缺乏验证。这些研究的贡献通常是技术或对特定问题的答案。对所有致力于软件编程的研究(58篇论文)的质量进行评估,我们的结果显示,平均只有58%的开发质量标准得到满足。尽管研究的目的是不断了解堆栈溢出和其他类似的社区,需要进一步的调查,以验证这些研究和他们提出的解决方案。
2020-10-23 cs.SE
A First Look at Fairness of Machine Learning Based Code Reviewer Recommendation
本文首次研究软件工程领域ML应用的公平性问题,发现基于ML的代码评审者推荐存在性别不公平(男性获荐量平均多7.25%),分析原因并提出缓解方案,指出现有方法在不平衡数据上效果有限并给出改进思路。
2023-07-21 cs.SE
Practical Integer Overflow Prevention
商用软件中的溢出是软件错误的主要来源,这可能导致可利用的存储器损坏漏洞,并且可能最终促成基于强大软件的利用,即,代码重用攻击(CRA)在本文中,我们介绍了IntGuard,一个可以修复整数溢出的工具,具有高质量的源代码修复。具体来说,给定程序的源代码,IntGuard首先通过使用静态源代码分析和可满足性模理论(SMT)求解来发现整数溢出错误的位置。然后,IntGuard基于SMT约束的模块化操作以及可扩展的可定制代码修复模式集生成整数多精度代码修复。我们已经用2052个C程序实现和评估了IntGuard(大约2000个)。100万美元),可在目前最大的开放源码测试套件的C/C++程序,并与基准包含大型和复杂的程序。评估结果表明,IntGuard可以精确地(即,没有误报被意外修复),具有低计算和运行时开销的修复程序,具有非常小的二进制和源代码爆炸。在一个对照实验中,我们表明,IntGuard是更有效的时间,并实现了更高的修复成功率比手动生成的代码修复。
2017-11-03 cs.CR cs.SE
Collective Mind, Part II: Towards Performance- and Cost-Aware Software Engineering as a Natural Science
cTuning foundation(cTuning基金会);UVSQ(凡尔赛大学);STMicroelectronics(意法半导体);ARM(ARM公司)
如今,工程师必须开发软件,甚至不知道它最终将在众多手机,平板电脑,台式机,笔记本电脑,数据中心,超级计算机和云服务中运行的硬件。不幸的是,优化编译器不再跟上计算机系统不断增加的复杂性,并且可能产生严重性能不佳的可执行代码,同时浪费昂贵的资源和能量。我们提出了我们的实际和协作的解决方案,这个问题,通过轻量级包装围绕任何软件时,一个以上的实现或优化选择。这些包装器与公共的Collective Mind自动调优基础设施和知识库(c-mind.org/repo)连接,以在众多现有硬件配置中持续监控这些片段(计算物种)的各种重要特征以及随机选择的优化。与自然科学类似,我们现在可以持续跟踪获胜的解决方案(针对给定硬件的优化),这些解决方案可以最大限度地减少帕累托边界上给定物种的所有计算成本(执行时间,能耗,代码大小,故障,内存和存储占用,优化时间,故障,竞争,不准确性等)以及任何意外行为。然后,社区可以协作地对解决方案进行分类,删除冗余的解决方案,并将它们与软件的各种功能、输入(数据集)和使用的硬件手动或使用强大的预测分析技术相关联。然后,我们的方法可以帮助创建一个大型的,现实的,多样化的,有代表性的,并不断发展的基准与相关的优化知识,同时逐步覆盖所有可能的软件和硬件,以便能够预测最佳优化,并根据使用场景和要求改进编译器和硬件。
2015-06-20 cs.LG cs.PF cs.SE
Categorizing Bugs with Social Networks: A Case Study on Four Open Source Software Communities
ETH Zurich(苏黎世联邦理工学院)
有效的错误分类过程是成功的协作软件工程项目的重要前提。对bug进行分类可能会成为一项艰巨的任务,特别是在开源软件(OSS)项目中,有大量缺乏经验的兼职贡献者。在本文中,我们提出了一个有效的和实用的方法来识别有效的错误报告,a)指的是一个实际的软件错误,b)不是重复的,c)包含足够的信息,立即处理。我们的分类是基于九个措施,以量化的社会嵌入的bug报告者在协作网络。我们证明了它的适用性的案例研究中,使用一个全面的数据集,超过70万个错误报告,从Bugzilla安装的四个主要的OSS社区,为期十多年。对于那些表现出最低比例的有效错误报告的项目,我们发现,错误报告者在协作网络中的位置是错误报告质量的一个强有力的指标。基于这一发现,我们开发了一个自动化的分类方案,可以很容易地集成到错误跟踪平台,并分析其性能在考虑OSS社区。一个支持向量机(SVM),以确定有效的错误报告的基础上的九个措施产生了高达90.3%的准确率与38.9%的召回。有了这个,我们显着提高了在以前的案例研究中获得的结果,自动早期识别的错误,最终修复。此外,我们的研究强调了在协作软件工程中使用社会组织的定量测量的潜力。它还为将社会意识纳入支助基础设施的设计开辟了广阔的前景。
2013-02-28 cs.LG cs.SE cs.SI
Automated Identification of Toxic Code Reviews Using ToxiCR
Wayne State University(韦恩州立大学)
在软件开发互动过程中的有害对话可能会对自由和开放源码软件(FOSS)开发项目产生严重影响。例如,有害对话的受害者可能会害怕表达自己,因此失去动力,最终可能会离开项目。自动过滤有害对话可帮助自由和开放源码软件社区保持其成员之间的健康互动。然而,现成的毒性检测器在软件工程(SE)数据集上表现不佳,例如从代码评审评论中策划的数据集。为了应对这一挑战,我们提出了ToxiCR,一个基于监督学习的毒性识别工具,用于代码评审交互。ToxiCR包括选择十种监督学习算法之一的选项,选择文本矢量化技术的选项,八个预处理步骤,以及19,571个代码评审评论的大规模标记数据集。这八个预处理步骤中有两个是SE域特定的。通过对预处理步骤和矢量化技术的各种组合的模型进行严格评估,我们已经确定了数据集的最佳组合,提高了95.8%的准确率和88.9%的F1得分。ToxiCR在我们的数据集上显著优于现有的毒性检测器。我们已经发布了我们的数据集,预训练模型,评估结果和源代码,可在https://github.com/WSU-SEAL/ToxiCR上公开获取
2023-02-08 cs.CL cs.LG cs.SE
Early Prediction for Merged vs Abandoned Code Changes in Modern Code Reviews
Bangladesh University of Engineering and Technology(孟加拉国工程技术大学);University of California, Davis(加利福尼亚大学戴维斯分校);University of Calgary(卡尔加里大学)
现代代码评审过程是当前软件开发实践的一个组成部分。这里付出了相当大的努力来检查代码更改,发现缺陷,提出改进建议,并处理评审人员的建议。在代码审查过程中,通常会进行多次迭代,作者提交代码更改,审查者提供反馈,直到乐于接受更改。在大约12%的情况下,更改被放弃,最终浪费了所有的努力。在这项研究中,我们的目标是设计一个工具,可以预测代码更改是否会在早期阶段被合并或放弃,以减少所有利益相关者(例如,程序作者、评审员、项目管理人员等)涉案Fan等人的一项研究正式确定了现实世界对此类工具的需求。[1]。我们已经从三个大型和流行的开源软件的代码审查中挖掘了146,612个代码更改,并训练和测试了一套基于浅层和深度学习的监督机器学习分类器。在模型的训练和测试过程中,我们在每次代码更改中总共考虑了25个功能。性能最好的模型名为PredCR(预测代码审查),一个基于LightGBM的分类器平均达到约85%的AUC分数,并相对提高了14- 23%的最新技术水平。在我们对来自三个软件项目的146,612个代码更改的实证研究中,我们发现(1)PredCR中引入的审阅者维度等新功能信息量最大。(2)与基线相比,PredCR更有效地减少了对新开发者的偏见。(3)PredCR使用代码评审存储库中的历史数据,因此,随着软件系统使用新的和更多的数据而发展,PredCR的性能也会提高。
2021-08-30 cs.LG cs.SE