The Rise of Language Models in Mining Software Repositories: A Survey
SCORE Lab, I3US Institute, Universidad de Sevilla(塞维利亚大学)
本文综述了语言模型在软件仓库挖掘中的应用,分析了85篇论文,探讨了模型的应用方式、分析的 artifacts 类型、模型演变及可重复性,提出分类并指出未来研究方向。
2026-08-04 cs.SE
Topic Recommendation for Software Repositories using Multi-label Classification Algorithms
许多平台利用协作标记来在搜索或导航时为用户提供更快、更准确的结果。标签可以传达不同的概念,例如主要特性、技术、功能和软件存储库的目标。最近,GitHub允许用户使用主题标签来注释存储库。它还提供了一组特色主题,以及在社区的帮助下精心策划的可能的别名。这就创造了一个机会,通过训练模型向开发人员推荐高质量的主题标签,使用这个初始的主题种子来自动注释所有剩余的存储库。在这项工作中,我们研究了应用多标签分类技术预测软件仓库的主题。首先,我们将大量的用户自定义主题映射到GitHub上的主题。其核心思想是从项目的可用文档中获取更多信息。我们的数据包含有关$152$ K GitHub存储库和$228$特色主题。然后,我们将监督模型应用于存储库的文本信息,如描述、README文件、wiki页面和文件名。我们评估我们的方法的性能定量和定性。我们提出的模型分别达到了$0.890$和$0.805$的Recall@5和LRAP分数。此外,根据用户的评估,我们的方法是高度能够推荐一个正确的和完整的主题集。最后,我们使用我们的模型来开发一个名为\texttt{Repository Catalogue}的在线工具,它可以自动预测GitHub存储库的主题,并且可以公开使用。
2021-06-13 cs.SE
Exploring the Lifecycle and Maintenance Practices of Pre-Trained Models in Open-Source Software Repositories
本文提出一项探索性研究计划,通过挖掘开源软件仓库分析预训练模型的使用、维护与测试实践,旨在为模型依赖背景下的软件工程实践提供可操作见解。
2025-04-08 cs.SE
Developer Prioritization in Bug Repositories
开发人员在开发过程中构建所有软件构件。现有的工作已经研究了软件仓库中的社会行为。在最重要的软件存储库之一缺陷存储库中,开发人员创建并更新缺陷报告以支持支持软件开发和维护。然而,以前的工作没有考虑开发人员在错误存储库中的优先级。在本文中,我们解决的问题,开发人员的优先级,其目的是排名的开发人员的贡献。我们主要探索两个方面,即在错误存储库中对开发人员的优先级进行建模,并使用我们的模型辅助预测任务。首先,我们模拟如何分配的优先级的开发人员的基础上的社会网络技术。研究了三个问题,包括开发人员在产品中的排名,随着时间的推移的演变,和嘈杂的评论的容忍度。其次,我们考虑利用开发人员优先级来改进bug存储库中的三个预测任务,即,错误分类、严重性识别和重新打开的错误预测。我们实证研究我们的模型和它的应用程序在Eclipse和Mozilla的错误库的性能。结果表明,开发人员优先级可以提供开发人员优先级的知识,以帮助软件任务,特别是错误分类的任务。
2017-04-16 cs.SE
Teaching Mining Software Repositories
本章系统介绍软件仓库挖掘(MSR)的研究方法、伦理问题、教学资源与未来趋势,为教育者和学生提供从研究设计到数据分析的实践指导。
2025-01-03 cs.SE
Predicting the Objective and Priority of Issue Reports in Software Repositories
开发人员协作讨论、实现、使用和共享托管在软件存储库上的软件实体。正确的文档在成功的软件管理和维护中起着重要的作用。用户利用问题跟踪系统(一种软件存储库工具)跟踪问题报告,管理工作量和流程,最后记录团队工作的亮点。问题报告是协作管理的软件知识的丰富来源,可以包含报告的问题,对新功能的请求,或者仅仅是关于软件产品的问题。随着这些问题数量的增加,手动管理它们变得越来越困难。GitHub提供了标记问题的标签,作为问题管理的一种手段。然而,在GitHub的前1000个存储库中,大约有一半的问题没有任何标签。我们的目标是自动化软件团队管理问题报告的过程。我们提出了一个两阶段的方法来预测背后的目标打开一个问题,它的优先级使用功能工程方法和国家的最先进的文本分类。据我们所知,我们是第一个微调Transformer以进行问题分类的公司。我们在基于项目和跨项目的环境中对模型进行训练和评估。后一种方法提供了一个通用的预测模型,适用于任何看不见的软件项目或几乎没有历史数据的项目。我们提出的方法可以成功地预测问题报告的目标和优先级,分别为82%和75%的准确率。此外,我们对六个看不见的GitHub项目中未标记的问题进行了人工标记和评估,以评估跨项目模型在新数据上的性能。该模型达到90%的准确率。我们获得85%的平均百分比协议和71%的伦道夫的自由边际Kappa转化为大量的协议之间的贴标机。
2021-09-28 cs.SE
MSRBot: Using Bots to Answer Questions from Software Repositories
软件存储库包含大量有用的信息,可用于增强软件项目。以前的工作已经利用存储库数据来改进软件开发过程的许多方面,例如,帮助提取需求决策,识别潜在的缺陷代码以及改进维护和演化。然而,在许多情况下,从业者不能从软件存储库中充分受益,因为他们需要特殊的专业知识和专门的努力来挖掘他们的存储库。因此,在本文中,我们使用机器人来自动化和简化从软件存储库中提取有用信息的过程。特别是,我们提出了一种方法,即如何使用位于软件存储库之上的机器人来回答开发人员面临的一些最常见的软件开发/维护问题。我们与12名参与者进行了初步研究,以验证机器人的有效性。我们的研究结果表明,使用机器人在回答准确性,速度和有用性方面取得了非常有希望的结果。我们的工作有可能通过显着降低进入门槛来改变MSR领域,使从软件存储库中提取有用信息变得像与机器人聊天一样简单。
2020-03-18 cs.HC cs.SE
TestMiner: Software Testing Analysis for GitHub Repositories
UFMG(米纳斯吉拉斯联邦大学);University of Sheffield(谢菲尔德大学);University of Bordeaux, CNRS(波尔多大学,法国国家科学研究中心)
研究针对软件系统测试特性差异带来的理解困难,提出TestMiner工具,可提供项目测试实践概述。通过本科课程中50名学生使用该工具探索真实仓库测试实践,学生反馈良好,此为其主要贡献。
2026-07-15 cs.SE
What Makes a Popular Academic AI Repository?
许多人工智能研究人员正在GitHub存储库中发布伴随他们论文的代码,数据和其他资源。在本文中,我们将这些知识库称为学术AI知识库。我们的初步研究表明,高被引论文更有可能拥有流行的学术AI知识库(反之亦然)。因此,在这项研究中,我们对学术人工智能知识库进行了实证研究,以突出流行的学术人工智能知识库的良好软件工程实践。我们收集了1,149个学术AI存储库,其中我们将拥有最多星星的前20%存储库标记为受欢迎,我们将底部70%的存储库标记为不受欢迎。剩下的10%存储库被设置为流行和不流行的学术AI存储库之间的差距。我们提出了21个特征来描述学术AI知识库的软件工程实践。我们的实验结果表明,流行和不流行的学术AI存储库在11个研究特征上存在统计学显著差异--表明这两组存储库具有显著不同的软件工程实践。此外,我们发现README文件中指向其他GitHub存储库的链接数量、README文件中的图像数量以及包含许可证是区分两组学术AI存储库的最重要特征。我们的数据集和代码是公开的,可以与社区共享。
2020-10-10 cs.SE
Using Experience Sampling to link Software Repositories with Emotions and Work Well-Being
背景:经验抽样方法研究人类在自然环境中的日常经验。在心理学中,它被用来研究工作幸福感和生产力之间的关系。据我们所知,日常经验抽样以前没有在软件工程中使用过。目标:我们的目的是确定软件开发人员自我报告的情感状态和工作幸福感和从软件库中获得的措施之间的联系。方法:我们在一家软件公司进行了为期八个月的经验抽样研究,我们使用逻辑回归将幸福感测量与开发活动联系起来,即提交和聊天消息的数量。结果:我们发现问卷变量和软件库变量之间有几个显着的关系。令我们惊讶的是,匆忙和提交数量之间的关系是负的,这意味着更多的感知匆忙与更少的提交数量有关。我们还发现,社会互动和阻碍工作幸福感之间存在负相关。结论:提交和匆忙之间的负面联系是违反直觉的,也与之前软件工程中的实验室实验相反,这些实验表明在时间压力下效率会提高。总的来说,我们的工作是在软件工程中使用经验抽样和验证软件工程领域其他领域的工作幸福感理论的第一步。
2018-09-04 cs.SE
Methodological Harness in Agentic Software Engineering: An Empirical Study on Mining Software Repositories
Universidad Politécnica de Madrid(马德里理工大学)
本研究基于AIDev数据集中的5,435个GitHub仓库,实证验证了智能体软件工程中八机制方法论约束框架的可观察性,发现机制采用以孤立形式为主,集成系统罕见。
2026-09-29 cs.SE
Mining Software Repositories with a Collaborative Heuristic Repository
许多软件工程研究或任务依赖于对软件工程工件进行分类。在实践中,这是通过定义简单但通常不精确的分类,或者通过人工标记工件来完成的。不幸的是,这些分类中的错误会影响依赖它们的任务。为了提高这些分类的精度,我们建议在一个协作的启发式存储库中收集知识,研究人员可以为各种SE工件上的各种任务贡献大量不同的知识。然后,利用最先进的弱监督技术来训练高质量的分类器,从而改进分类。我们提出了一个初始版本的启发式存储库,我们适用于提交分类的具体任务。
2021-03-02 cs.SE
Apples, Oranges & Fruits -- Understanding Similarity of Software Projects Through The Lens of Dissimilar Artifacts
开源项目的日益增长的可用性促进了开发人员重用现有的软件工件并利用它们开发新软件。然而,很难理解相似性的概念,因为它因开发人员而异。有些开发人员可能会搜索具有类似源代码的存储库,而有些开发人员可能会搜索具有类似需求或问题的存储库。现有的方法倾向于通过比较类似的工件来找到类似的项目,例如源代码与源代码,API使用与API使用,文档与文档等。即使两个类似的工件之间存在差异,两个不同的工件之间也可能存在相似性。因此,在本文中,我们的目标是回答这个问题-我们可以通过不同的工件找到软件存储库的相似性吗?为此,我们进行了一个实验,以找到三个存储库之间的相似之处,两个类似的项目和一个不同的项目比较相似和不同的工件(文档,提交和源代码)。我们观察到了不同工件之间的相似性,例如在相似和不同存储库的上下文中的提交、源代码和自述文件。
2021-03-02 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
Interactive Visualization for Exploring Information Fragments in Software Repositories
Seoul National University(首尔大学);Soongsil University(崇实大学);Hankuk University of Foreign Studies(韩国外国语大学);Samsung Electronics(三星电子)
软件开发人员探索和检查软件存储库数据,以获得开发历史中存档的详细信息。然而,开发人员谁不熟悉的开发环境遭受钻研的存储库与少数信息,他们有困难发现和扩展的信息片段,考虑到存储库的拓扑和顺序的多维结构。我们介绍ExIF,一个交互式的可视化探索信息片段的软件存储库。ExIF帮助用户发现集群或拓扑邻居中的新信息片段,并识别包含用户收集的片段的修订。
2021-04-28 cs.CV cs.SE
Analyzing the Evolution and Maintenance of Quantum Software Repositories
本研究通过挖掘GitHub上2.1万余个量子软件仓库的120万次提交,分析其演化与维护特征,揭示了增长趋势、提交类型分布及量子特有问题占比,为量子软件工程实践改进提供实证依据并开源数据集。
2025-06-06 cs.SE
AutoFL: A Tool for Automatic Multi-granular Labelling of Software Repositories
AutoFL是一种从源代码自动标注软件仓库的工具,支持文件、包和项目多粒度注释,旨在减少开发者理解大型代码库的时间。
2025-04-25 cs.SE
The Software Heritage Graph Dataset: Large-scale Analysis of Public Software Development History
Software Heritage是现存最大的软件源代码及其开发历史的公共档案。它涵盖了超过50亿个独特的源代码文件和10亿个独特的提交,来自8000多万个软件项目。这些软件工件是从主要的协作开发平台(例如,GitHub、GitLab)和包存储库(例如,PyPI,Debian,NPM),并存储在一个统一的表示链接在一起的源代码文件,目录,提交,和版本控制系统(DRM)存储库的完整快照,如软件遗产在定期爬网期间观察。这个数据集在可访问性和规模方面是独一无二的,并且允许探索公共软件开发长尾上的许多研究问题,而不是像经常发生的那样仅仅关注“最受欢迎”的存储库。
2020-11-16 cs.SE
Individual Differences Limit Predicting Well-being and Productivity Using Software Repositories: A Longitudinal Industrial Study
针对软件开发者幸福感与生产力预测难题,通过工业团队纵向研究发现个体差异是主要影响因素,个性化预测模型效果更优,为相关管理与研究提供参考。
2021-04-28 cs.SE
A Proposal for the Measurement and Documentation of Research Software Sustainability in Interactive Metadata Repositories
本文提出了一种交互式的存储库类型的研究软件元数据的措施和文件的软件可持续性积累元数据,并计算可持续性指标。这样一个储存库将有助于克服软件可持续性的技术障碍,促进发现和确定可持续的软件,从而也便利在软件管理计划的框架内记录研究软件。
2016-08-17 cs.CY cs.SE
Data stream mining for predicting software build outcomes using source code metrics
软件开发项目涉及使用各种工具来产生软件工件。软件仓库,如源代码控制系统,已经成为一个重点的紧急研究,因为他们是一个丰富的信息源,有关软件开发项目。为了更深入地了解发展进程,挖掘这种储存库的做法越来越普遍。
2016-04-19 cs.SE
Use and Misuse of the Term Experiment in Mining Software Repositories Research
在软件工程(SE)中,挖掘软件仓库(MSR)的重要性和重要性为广泛的实证研究带来了新的机遇和挑战。然而,MSR研究人员似乎很难将他们使用的经验方法描述为现有的经验SE知识体系。MSR实验尤其如此。为了证明MSR实验的特殊性及其与迄今为止SE中传统上承认的实验的差异,我们引出了将实验与其他类型的实证研究区分开来的标志,并描述了MSR实验的标志和类型。我们分析了从小规模系统映射研究中获得的MSR文献,以评估MSR中术语实验的使用。我们发现,19%声称是实验的论文实际上根本不是实验,而是观察性研究,所以他们以误导的方式使用这个术语。在剩下的81%的论文中,只有一篇提到了真正的受控实验,而其他的则代表了有限控制的实验。MSR的研究人员往往会忽视这些局限性,从而影响对研究结果的解释。我们提供建议和见解,以支持改进MSR实验。
2021-10-18 cs.SE
Repositories, Contributors, and Continuity: An Empirical Study of Foundational Quantum Software
Technical University of Applied Sciences Regensburg(雷根斯堡应用技术大学)
研究量子软件生态系统中概念和影响如何跨存储库边界持续存在,运用实证软件工程技术分析基础量子软件存储库,结合跨库活动与贡献者关系研究社区演变,发现多种发展路径并提供实证视角。
2026-07-29 cs.SE quant-ph
G-Issue: Analyzing Lifetime and Evolution of Issue-related Artifacts from Open Source Repositories
University of Texas at El Paso(德克萨斯大学埃尔帕索分校)
提出G-Issue工具用于挖掘问题相关工件,通过对比实验和演化分析,发现其挖掘速度快但内存消耗大,并基于问题生命周期和演化可辅助优先级排序。
2026-06-23 cs.SE
A Methodological Framework for LLM-Based Mining of Software Repositories
针对LLM在软件仓库挖掘中方法学整合缺乏理解的问题,通过混合方法研究揭示了15种方法、9种威胁和25种缓解策略,并提出了包含6阶段23子步骤的PRIMES 2.0实证框架,为基于LLM的MSR研究提供规范性支持。
2025-08-11 cs.SE
Prompting in the Wild: An Empirical Study of Prompt Evolution in Software Repositories
本文通过分析243个GitHub仓库中的1,262项提示变更,首次实证研究提示演化模式、文档与系统影响,并指出需专门测试、验证和文档工具。
2025-01-12 cs.SE
How are Software Repositories Mined? A Systematic Literature Review of Workflows, Methodologies, Reproducibility, and Tools
随着开放源码软件的出现,以前的专有软件开发数据的真正宝库得以利用。这为学术界的任何人打开了经验软件工程研究的领域。然而,从软件项目中挖掘的数据需要进行大量处理,并且需要极其谨慎地处理,以确保得出有效的结论。由于软件开发实践和工具在过去二十年中发生了变化,我们的目标是了解最先进的研究工作流程,并突出潜在的挑战。我们采用了系统的文献综述,从领先的会议中抽取了1000多篇论文,并从数据工作流程,方法,再现性和工具的角度分析了286篇最相关的论文。我们发现,涉及数据集选择的研究工作流程的一个重要部分特别有问题,这对现有文献中结果的一般性提出了质疑。此外,我们发现相当多的论文提供很少或根本没有重复性说明-这对于数据密集型领域来说是一个重大缺陷。事实上,33%的论文没有提供关于如何检索数据的信息。基于这些发现,我们提出了通过现有工具解决这些缺点的方法,并提供了改进研究工作流程和研究可重复性的建议。
2022-04-17 cs.SE
Demystifying the Evolution of Neural Networks with BOM Analysis: Insights from a Large-Scale Study of 55,997 GitHub Repositories
针对神经网络软件演化分析缺乏适用物料清单的问题,提出NNBOM数据集,基于55,997个PyTorch仓库构建数据库,实证研究规模、复用与依赖演化,并开发两个原型应用。
2025-09-24 cs.SE
LabelGit: A Dataset for Software Repositories Classification using Attributed Dependency Graphs
Bernoulli Institute University of Groningen Groningen, Netherlands
软件存储库托管服务包含大量开源软件,GitHub托管了超过1亿个存储库,从新的到已建立的。考虑到如此大量的项目,迫切需要基于软件的内容和功能进行搜索。然而,尽管GitHub提供了各种解决方案来帮助软件发现,但大多数存储库没有任何标签,从而降低了搜索和基于主题的分析的实用性。此外,软件模块的分类也变得越来越重要,因为基于代理的软件开发越来越多。然而,以前的工作集中在使用基于关键字的方法或项目代理的软件分类上(例如,README),并不总是可用的。在这项工作中,我们创建了一个名为LabelGit的GitHub Java项目的新注释数据集。我们的数据集使用来自源代码的直接信息,例如依赖图和来自标识符的源代码神经表示。使用这个数据集,我们希望帮助开发不依赖代理的解决方案,而是使用整个源代码来执行分类。
2021-03-16 cs.LG cs.SE
On a Factorial Knowledge Architecture for Data Science-powered Software Engineering
鉴于科学中的数据密集型和协作趋势,软件工程社区也越来越关注从数据存储库中获得有价值和有用的见解。然而,将数据科学应用于软件工程(例如,如果缺乏合适的知识体系结构(KA),挖掘软件存储库)可能是盲目的和无意义的。通过观察软件工程实践通常通过一组因素(例如,编程器容量、不同的环境条件等)在此基础上,提出了一种基于因素的软件工程知识共享层次模型,以最大化软件资源库的价值,并对未来的软件数据驱动研究有所启发。特别是,它是有组织的因素和它们的关系,有助于指导软件工程知识挖掘,而挖掘的知识反过来将通过相关的因素和它们的相互作用索引/管理。本文阐述了我们关于阶乘KA的思想,并简要地说明了一个KA组件,即软件产品工程的早期版本KA。一旦充分的范围,这个拟议的KA将补充众所周知的SWEBOK的因素为中心的知识管理和潜在的软件工程知识的覆盖面/含义。
2021-03-02 cs.SE
Empirical Analysis of Temporal and Spatial Fault Characteristics in Multi-Fault Bug Repositories
本文实证分析了Defects4J和BugsInPy中16个开源项目的故障时空特征,发现许多故障长期存在且多版本共存,且故障在子集中均匀分布,纠正了原数据集单故障假设。
2025-08-12 cs.SE
Quality Classifiers for Open Source Software Repositories
Athens University of Economics and Business(雅典经济与商业大学);University of Pireaus(比雷埃夫斯大学)
开源软件(OSS)通常依赖于大型存储库(如SourceForge)进行初始孵化。开放源码软件存储库提供了各种各样的元数据,提供了有关项目及其成功的有趣信息。在本文中,我们提出了一个数据采掘的方法来训练分类器的OSS元数据提供的数据存储库。分类器学习预测OSS项目的成功延续。项目的“成功性”是根据分类器的置信度来定义的,它预测这些项目可以移植到流行的OSS项目中(如FreeBSD,Gentoo Portage)。
2009-04-29 cs.AI cs.SE
Leveraging Predictions from Multiple Repositories to Improve Bot Detection
诸如GitHub之类的当代社交编码平台促进了协作分布式软件开发。参与这些平台的开发人员通常使用机器帐户(机器人)来自动化工作密集型或重复性活动。确定贡献者是否对应于机器人或人类帐户在社会技术研究中非常重要,例如,评估使用机器人的积极和消极影响,分析机器人及其使用的演变,识别顶级人类贡献者等。BoDeGHa是文献中提出的机器人检测工具之一。它依赖于单个存储库中的评论活动来预测帐户是由机器人还是由人类驱动。本文介绍了初步的结果如何BoDeGHa的有效性可以提高结合从许多存储库中获得的预测一次。我们发现,这样做不仅增加了可以做出预测的案例数量,而且可以通过这种方式修复许多不同的预测。这些有希望的初步结果表明,“群众智慧”原则可以提高机器人检测工具的有效性。
2022-03-31 cs.SE
UserTrace: User-Level Requirements Generation and Traceability Recovery from Software Project Repositories
针对现有方法忽视用户级需求与项目演进影响的问题,提出多智能体系统 UserTrace,通过协调四个专门智能体自动生成用户级需求并恢复其实时可追溯链接,实验证明其生成质量和追溯精度均优于基线及现有方法。
2025-09-14 cs.SE
Evolution of repositories and privacy laws: commit activities in the GDPR and CCPA era
研究分析了GDPR和CCPA时代软件仓库的提交活动,发现隐私相关术语在提交信息中出现,但对用户权利的引用较少,提出需加强隐私教育和工具开发。
2025-05-28 cs.SE
Insights into Software Development Approaches: Mining Q&A Repositories
本研究通过主题建模与定性分析结合的混合方法,挖掘三大问答论坛的13903篇开发者帖子,识别出15个软件开发方法高频主题、49项实践挑战及难点主题上升趋势,为从业者提供参考以提升软件质量。
2023-05-02 cs.SE
Knowledge Management in Medium-Sized Software Consulting Companies: An investigation of Intranet-based Knowledge Management Tools for Knowledge Cartography and Knowledge Repositories for Learning Software Organisations
开发软件的公司面临着来自客户的压力,要求他们提供更好的解决方案,并更快、更便宜地提供解决方案。许多研究人员提出了如何改进开发过程的建议;软件过程改进。由于软件开发是一项知识密集型的任务,研究人员和工业界最近都把注意力转向知识管理,以提高软件开发。这通常涉及开发技术工具,许多公司已为此投入资源,但这些工具在公司的开发人员和管理人员中往往没有实际使用,而且这些工具是否改善了知识管理方式往往是未知的。为了建立有效的知识管理工具,我们需要更好地了解现有的工具是如何在软件开发中应用和使用的。我们提出并分析了八个案例研究的知识管理举措的文献。我们发现,这些举措提高了软件质量,降低了开发成本,并为开发人员提供了更好的工作环境。此外,我们研究成功的标准,在知识管理编纂的举措,在中型软件公司的内联网工具的基础上。此外,我们调查了知识管理工具是如何用于不同的目的,由不同群体的用户在两个软件咨询公司。他们使用工具来支持个性化和编码策略。这两家咨询公司是挪威的两家中型公司,分别有40名和150名员工,从事开发项目,持续时间从几周到几年不等。
2019-03-28 cs.SE
Domain-Driven Design in Practice: A Mining Study of Maintenance and Evolution in Open-Source Repositories
Karlsruhe Institute of Technology(卡尔斯鲁厄理工学院);Adelaide University(阿德莱德大学);Faculty of Science and Engineering Waseda University(早稻田大学理工学府);esentri AG(esentri股份公司)
通过挖掘GitHub仓库,研究领域驱动设计战术构建块的分布、演化及其对软件维护质量的影响,量化边界上下文违规的规模与维护关联。
2026-06-24 cs.SE
Should I Get Involved? On the Privacy Perils of Mining Software Repositories for Research Participants
挖掘软件存储库(MSR)是一种基于证据的方法,它将数据交叉链接,以揭示有关软件系统的可操作信息。软件工程中的实证研究经常利用MSR技术,因为它们允许研究人员揭示软件开发中的问题和缺陷,以便分析导致这些问题和缺陷的不同因素。因此,依靠关于被挖掘的存储库和源的细粒度信息(例如,服务器名称和贡献者的身份)对于MSR研究的可重复性和透明度至关重要。然而,这也可能对参与者的隐私造成威胁,因为他们的身份可能与有缺陷/次优的编程实践(例如,代码气味、不正确的文档),反之亦然。此外,这可以扩展到密切的合作者和社区成员,从而导致“因关联而有罪”。这份立场文件旨在开始讨论间接参与MSR调查,关于共享非汇总数据的“隐私与效用”的二分法,以及其对参与者参与的隐私限制和道德考虑的影响。
2022-02-24 cs.IR cs.SE
Empirical Study on the Software Engineering Practices in Open Source ML Package Repositories
York University(约克大学);École Polytechnique de Montréal(蒙特利尔高等理工学院);Queen’s University(皇后大学)
人工智能(AI),特别是机器学习(ML)的最新进展已经引入了各种实际应用(例如,虚拟个人助理和自动驾驶汽车),增强日常用户的体验。然而,像深度学习这样的现代机器学习技术需要大量的技术专业知识和资源来开发、训练和部署这些模型,这使得有效地重用机器学习模型成为必要。实践者和研究人员的这种发现和重用正在由公共ML包存储库解决,该存储库将预先训练的模型捆绑到包中以供发布。由于这类储存库是最近才出现的现象,因此没有关于其现状和挑战的经验数据。因此,本文进行了一项探索性研究,分析了两个流行的ML包存储库TFHub和PyTorch Hub的结构和内容,比较了它们的信息元素(功能和策略),包组织,包管理器功能和使用上下文与流行的软件包存储库(npm,PyPI和CRAN)。通过这些研究,我们确定了共享ML包的独特SE实践和挑战。这些发现和影响对于打算使用这些共享ML包的数据科学家,研究人员和软件开发人员来说非常有用。
2020-12-08 cs.AI cs.SE
Self-Admitted Technical Debt in LLM Software: An Empirical Comparison with ML and Non-ML Software
École de Technologie Supérieure - ÉTS Montreal(蒙特利尔高等工程技术学院);Trent University(特伦特大学)
本文通过实证研究比较了大语言模型、机器学习和非机器学习软件中的技术债情况,发现LLM系统积累技术债的速度与ML系统相似,但保持无债时间更长,并发现了三种新的技术债类型。
2026-01-20 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
Mining Bug Repositories for Multi-Fault Programs
针对 Defects4J 与 BugsInPy 多为单缺陷条目的局限,本文利用测试用例移植和故障位置转换构建保留原数据集特性的真实多故障程序数据集。
2024-04-10 cs.SE
Interoperable verification and dissemination of software assets in repositories using COAR Notify
针对开放研究软件在论文中难以被发现和重用的问题,SoFAIR项目结合机器学习提取软件提及,并集成COAR Notify协议实现仓库间自动化互操作验证与传播,提升软件作为书目记录的可见性和可信度。
2025-08-04 cs.DL cs.SE
Integrating Large Language Models in Software Engineering Education: A Pilot Study through GitHub Repositories Mining
本研究通过挖掘400个GitHub项目开展试点,实证验证了SE教育中LLM应用的激励与阻碍因素分类体系,为构建负责任融入的综合框架奠定基础。
2025-09-05 cs.SE
What's in a GitHub Repository? -- A Software Documentation Perspective
开发人员在GitHub上使用和贡献存储库。存储库中的文档是一个重要的资源,可以帮助开发人员理解、维护和为项目做出贡献。目前,存储库中的文档是多样化的,存在于各种文件中,其中大部分存在于自述文件中。然而,存储库中的其他软件工件,如问题报告和拉取请求,也可以对文档有所贡献,而无需显式指定文档。因此,在本文中,我们提出了一个分类的文档来源,通过分析不同的软件工件,开发人员的采访和卡片排序的方法。我们检查了950个公共GitHub存储库中的多个工件,这些工件是用四种不同的程序设计语言编写的,C++,C#,Python和Java,并分析了可以从这些工件中提取的文档的类型和数量。为此,我们观察到,约25.93%的信息提取的所有来源中提出的分类包含错误相关的文档,并拉请求贡献了约18.21%的提取信息。
2021-03-01 cs.SE
The Harmony Platform
根据维基百科,挖掘软件仓库(MSR)字段分析软件仓库中可用的丰富数据,如版本控制仓库,邮件列表存档,错误跟踪系统,问题跟踪系统等,以发现有关软件系统,项目和软件工程的有趣和可操作的信息。MSR领域受到了极大的关注,现在有了自己的研究会议:http://www.msrconf.org/。然而,进行MSR研究仍然是一个技术挑战。事实上,数据源(如版本控制系统或错误跟踪系统)是高度异构的。此外,对大量数据源执行研究在执行时间方面是非常昂贵的。令人惊讶的是,没有那么多的工具能够帮助研究人员在他们的MSR任务。这就是为什么我们创建了Harmony平台,作为协助研究人员进行MSR研究的一种手段。
2013-09-02 cs.SE
From Codebases to LLMs: Non-Inclusive Naming in Linux Foundation Repositories
Concordia University(康考迪亚大学);Brac University(布拉格大学)
研究利用 NISCAN 框架检测 Linux 基金会存储库中代码及相关工件的非包容性术语,对 461 个存储库进行生态系统规模研究,分析术语变化及影响因素,还通过案例研究评估大语言模型处理情况。
2026-07-14 cs.SE
Modeling Library Dependencies and Updates in Large Software Repository Universes
第三方开源软件(OSS)的流行(重用)证明了托管存储库(如maven)对当今软件开发的影响。更新库至关重要,最近的研究强调了与老化的OSS库相关的漏洞。迁移到更新的库的决定可能是微不足道的(安全威胁),也可能是复杂的(评估适应更改所需的工作)。通过利用“智慧的软件库人群”,我们提出了一个简单而有效的方法来推荐“同意”库更新。我们的Software Universe Graph(SUG)对库依赖性进行建模,并从超级存储库中挖掘更新信息,以提供不同的度量和可视化,帮助做出更新决策。为了进行评估,我们首先从6,374个maven独特工件的188,951个节点构建了一个SUG。然后,我们将展示如何通过真实世界的例子来应用我们的指标和可视化。作为扩展,我们展示了SUG如何比较不同超级存储库之间的依赖关系。从100个GitHub应用程序的样本中,我们的方法发现,平均79%相似的重叠依赖组合存在于maven和github超级存储库世界之间。
2017-09-14 cs.SE
Does the Tool Matter? Exploring Some Causes of Threats to Validity in Mining Software Repositories
本研究通过对比两种工具分析十个大型软件项目,发现即使简单指标也可能相差500%,差异源于细微技术细节,并总结成因以帮助避免常见陷阱,提示工具中心研究结论的效度受限。
2025-01-25 cs.SE
Bot Detection in GitHub Repositories
像GitHub这样的当代社交编码平台促进了协作开发。托管在这些平台上的许多开源软件存储库使用机器帐户(机器人)来自动化和促进广泛的工作密集型和重复性活动。确定一个帐户对应于机器人还是人类贡献者对于社会技术发展分析非常重要,例如,了解人类如何在机器人存在的情况下进行协作和互动,评估使用机器人的积极和消极影响,识别顶级项目贡献者,识别潜在的公共汽车因素,我们的项目旨在将BoDeGHa机器人检测工具中经过训练的机器学习(ML)分类器作为一个插件包含到GrimoireLab软件开发分析平台中。在这项工作中,我们提出了形成一个管道的过程,用于使用Perceval检索贡献和贡献者数据,使用BoDeGHa区分机器人和人类,并使用Kibana可视化结果。
2022-03-31 cs.SE
How do Software Engineering Researchers Use GitHub? An Empirical Study of Artifacts & Impact
本文通过手工标注顶级软件工程会议论文中的 GitHub/Zenodo 链接并深入分析309个仓库,考察研究制品的维护、社区关注与学术影响力。
2024-04-05 cs.SE
Mining Software Repair Models for Reasoning on the Search Space of Automated Program Fixing
本文通过分析软件仓库中数以千计的错误修复事务来理解错误修复的本质。然后,它将这些学习到的知识放在自动程序修复的上下文中。我们给出了大量的经验结果,在大规模和细粒度的抽象语法树差异的性质,人类的错误修复。我们建立了数学推理的搜索空间的自动修复和时间,通过应用我们的方法对14个存储库的Java软件和89,993版本事务,我们表明,并非所有的概率修复模型是等价的。
2013-11-14 cs.SE
Forking Without Clicking: on How to Identify Software Repository Forks
随着时间的推移,软件“分叉”的概念已经从社区分歧的(负面)现象转变为使用分布式版本控制系统(Distributed Version Control System,简称DCS)存储库来协作改进单个产品而不会踩到彼此的脚趾。在这两种情况下,参与fork的Linux存储库共享共同开发历史的一部分。对软件分叉的研究通常依赖于托管平台元数据,如GitHub,作为构成分叉的真实来源。然而,这些“forge forks”只能识别为在平台上创建的forks存储库,例如,通过点击平台用户界面上的“fork”按钮。代码托管平台的多样性增加(例如,GitLab)和重要开发社区的习惯(例如,Linux内核,它主要不是托管在任何单一平台上)对信任代码托管平台来识别fork的可靠性提出了质疑。这样做可能会在实证研究中引入选择和方法上的偏见。在本文中,我们将探讨“软件分叉”的各种定义,试图捕捉现实世界中存在的分叉工作流。我们根据不同的定义量化了GitHub上有多少仓库被识别为fork的差异,确认了一个重要的数字可以通过只考虑forge fork而被忽略。我们研究了分叉网络的结构和规模,观察它们如何受到所提出的定义的影响,并讨论了对实证研究的潜在影响。
2020-11-16 cs.SE