Sourcerer's Apprentice and the study of code snippet migration
在万维网上,不仅网页是连接的,源代码也是。软件开发正变得越来越容易为每个人所用,而软件的许可证仍然很复杂。我们需要知道软件许可证在其重用和发展过程中是否得到了正确的维护。这激发了Sourcer's Apprentice的开发,这是一个帮助跟踪克隆重新授权的网络服务,因为软件通常使用软件许可证来描述其软件的使用和改编方式。但大多数开发人员不具备解决许可证冲突的法律专业知识。在本文中,我们让Apprentice进行了实证研究,证明StackOverflow代码和Python模块以及Python文档之间存在大量共享,这违反了原始Python模块和文档的许可:通过StackOverflow共享的软件片段经常被不正确地重新许可到CC-BY-SA 3.0,而没有保持适当的属性。我们发现,StackOverflow上的许多片段被StackOverflow用户不适当地重新授权,危及重用StackOverflow片段的公司和开发人员构建的软件的状态。
2018-07-31 cs.SE
Helping Software Developers through Offline Repository Based API Searching in Data MiningIntegrated Environment
软件开发变化如此之快。如果能够通过对开发人员的指导来加快软件开发的进程,将是非常有益的。在开发过程中给开发人员提供适当的指导和准确的建议,可以减少软件开发费用,也可以节省开发人员宝贵的时间。有很多方法可以加速软件开发过程。这可以通过代码辅助工具来完成,这些工具通过从应用程序编程接口(API)的特定存储库中推荐相关项目来帮助开发人员。一些方法是基于在线搜索,由于请求和响应延迟,因为它必须处理服务器中的超大文件,因此具有一些缺点。开发人员通常使用以前完成的资源以及库或框架来生成相关的代码片段,这些代码片段由API的引用存储库提供。开发人员发现很难选择合适的方法,因为有成千上万的方法,其中一些没有正确的文档。在本文中,我们提出了一个概念及其相应的框架,以指导开发人员从离线挖掘的存储库中建议相关的API方法。从我们所做的调查,我们可以说,我们的方法比一些现有的方法工作得更好。
2020-06-21 cs.SE
"My GitHub Sponsors profile is live!" Investigating the Impact of Twitter/X Mentions on GitHub Sponsors
本研究调查包含 GitHub Sponsors 链接的推文对赞助数量及在 Twitter/X 上反响的影响,发现此类推文能增加赞助者,提升平台可见度,并促进开发者当周的开源贡献。
2024-01-05 cs.SE
Expertise-Based Developer Assignment for Long-Term Software Components in Open-Source Projects
Zayed University(扎耶德大学);University of Adelaide(阿德莱德大学);National University of Computer and Emerging Sciences(国家计算机与新兴科学大学);Heriot-Watt University(赫瑞-瓦特大学)
本文针对开源项目中长期软件组件的开发人员分配问题,开发了基于Git提交建模专业技能的网页应用,该应用经测试在速度和目标开发人员排序上表现良好。
2026-08-07 cs.SE
On the Requirements for Serious Games geared towards Software Developers in the Industry
向行业员工讲授网络安全问题是一项必须开展的基本活动,以确保向市场提供成功和强大的产品。在过去的几年里,很多研究都集中在这个问题上。然而,已经完成的研究并没有集中在工业环境中开发安全代码。在本文中,我们将通过网络安全挑战的方式,从行业角度出发,探讨提供安全编码主题培训的限制和要求。使用需求工程,我们的目标是了解这些挑战的设计要求。在此过程中,我们详细介绍了我们在工业环境中应对网络安全挑战的经验,并展示了成果和经验教训。针对工业环境中软件开发人员的网络安全挑战的拟议要求是基于系统的文献综述、与行业安全专家的访谈以及对参与者反馈的半结构化评估。
2021-01-06 cs.SE
ALFAA: Active Learning Fingerprint Based Anti-Aliasing for Correcting Developer Identity Errors in Version Control Data
开发人员网络图对于软件工程的研究和实践具有重要意义。为了让这些图真实地表示网络,准确的开发人员身份是必不可少的。我们的目标是从开源软件存储库中识别开发人员身份错误,调查这些错误的性质,设计纠正算法,并估计这些错误对从这些数据推断的网络的影响。我们使用超过1B的Git提交和超过23M的记录作者身份来调查这些问题。通过检查最频繁出现的作者字符串,我们将标识错误分为几类。然后,我们用3个行为指纹来增加作者字符串:时区频率,修改的文件集,以及提交消息的向量嵌入。我们使用主动学习方法为一部分OpenStack开发人员创建了一组手动验证的身份,并使用它来拟合监督学习模型,以预测OpenStack中剩余作者字符串的身份。我们将这些预测与商业努力和领先的研究方法进行比较。最后,我们比较网络措施的文件诱导作者网络的基础上校正和原始数据。我们发现来自不同环境的提交、拼写错误、组织ID、默认值和匿名ID是错误的主要来源。我们还发现,与现有方法相比,监督学习方法可以将错误减少数倍,而主动学习方法是创建验证数据集的有效方法,并且开发人员身份的纠正对社交网络的推理有很大影响。我们相信,我们提出的主动学习基于指纹的抗锯齿(ALFAA)的方法将加快研究进展,在软件工程领域的应用程序,依赖于开发人员或其他社交网络的图形。
2019-01-10 cs.SE
How Do Software Developers Use GitHub Actions to Automate Their Workflows?
本文首次实证研究开发者对 GitHub Actions 的使用及其影响,发现采用者评价积极,但该技术会增加月度拒绝 PR 数并减少已合并 PR 的月度提交数。
2021-03-22 cs.SE
Context Capture in Software Development
Centre for Informatics and Systems of the University of Coimbra(科英布拉大学信息学与系统中心)
软件开发人员的上下文是很难定义和捕捉的,因为它代表了一个复杂的元素网络,这些元素跨越不同的维度,并不局限于在IDE上开发的工作。我们提出了一个软件开发上下文模型的定义,考虑到所有的尺寸,开发人员的工作环境的特点。我们特别关注软件开发人员上下文在项目级别包含什么以及如何捕获它。到目前为止所做的实验工作表明,有用的上下文信息可以从项目管理工具中提取。该上下文信息的提取、分析和可用性可以用于利用额外的知识来丰富开发者的工作环境以支持她/他的工作。
2011-01-21 cs.AI cs.SE
Don't forget your classics: Systematizing 45 years of Ancestry for Security API Usability Recommendations
开发安全的软件是一项挑战。安全API的可用性差使得这更加困难。已经提出了许多建议,通过提高密码库和API的可用性来支持开发人员;植根于软件工程和API设计中更广泛的最佳实践指南。在本SLR中,我们系统化了有关这些建议的知识。我们识别并分析了45年来的65篇论文,共提供了883条建议。我们进行了主题分析,以确定提高API可用性的7种核心方法。我们发现,大多数建议侧重于帮助API开发人员构建和结构化他们的代码,使其更易于使用,更容易为程序员理解。然而,对文档、编写要求、代码质量评估和组织软件开发实践的影响的关注较少。通过追踪和分析论文来源,我们绘制了这些知识如何随着时间的推移而得到验证和转化。我们发现,只有不到四分之一的API可用性建议得到了经验验证,而针对可用安全API的建议在这方面甚至更落后。
2021-05-05 cs.CR cs.SE
"I Don't Use AI for Everything": Exploring Utility, Attitude, and Responsibility of AI-empowered Tools in Software Development
本文通过访谈 19 位软件从业者,研究 AI 赋能工具在软件开发中的采用、效用、态度及安全责任,发现其被广泛采用且被视为效率助手,但在复杂任务上存在局限,安全风险意识因公司规模而异。
2024-11-21 cs.CR cs.SE
Why are Some Bugs Non-Reproducible? An Empirical Investigation using Data Fusion
软件开发人员试图复制软件错误,以了解他们的错误行为并修复它们。不幸的是,他们经常无法复制(或修复)它们,这导致了错误的,不可靠的软件系统。然而,到目前为止,只有很少的研究已经完成,以更好地了解是什么使软件错误不可重现。在本文中,我们进行了多模态研究,以更好地了解软件错误的不可再现性。首先,我们使用来自两个流行的软件系统(Firefox,Eclipse)的576个不可再现的错误报告进行实证研究,并确定11个关键因素,可能导致报告的错误不可再现。其次,我们进行了一项用户研究,涉及13名专业开发人员,我们调查了开发人员如何应对不可重现的错误。我们发现他们要么关闭这些bug,要么请求进一步的信息,这涉及到长时间的审议和适得其反的手动搜索。第三,我们提供了一些关于如何避免不可再现性的可操作见解(例如,假阳性错误报告检测器)并提高所报告的错误的再现性(例如,用于错误复制的沙箱)通过结合我们来自多个研究的分析(例如,经验研究、开发人员研究)。
2021-08-11 cs.SE
We Don't Need Another Hero? The Impact of "Heroes" on Software Development
当80%的贡献由20%的开发人员交付时,软件项目就有了“英雄开发人员”。这样的英雄是个好主意吗?太多的英雄对软件质量有害吗?对于不同类型的项目来说,多一些或少一些英雄是不是更好?为了回答这些问题,我们研究了来自公共开源软件(OSS)Github的661个开源项目和来自企业Github的171个项目。我们发现英雄项目非常普遍。事实上,随着项目规模的增长,几乎所有的项目都会成为英雄项目。这些发现促使我们更密切地关注英雄对软件开发的影响。分析表明,关闭问题和错误的频率不会受到项目类型(公共或企业)的显著影响。同样,解决问题/bug/增强所需的时间不受英雄或项目类型的影响。这是一个令人惊讶的结果,因为在查看数据之前,我们预计项目中英雄的增加会减缓项目对变化的反应速度。然而,我们确实发现英雄、项目类型和增强分辨率之间存在统计学上的显著关联。英雄不影响公共项目的增强分辨率。然而,在企业项目中,英雄越多,项目完成增强的速度就越快。总之,我们的实证结果要求对软件工程中一个长期存在的真理进行修正。软件英雄远比文献中所建议的更常见和有价值,特别是对于中型到大型企业开发。组织应该反思更好的方法来发现和留住更多的这些英雄
2018-02-20 cs.SE
Seeker: Towards Exception Safety Code Generation with Intermediate Language Agents Framework
Tsinghua University(清华大学);Lingxin AI(灵心人工智能);Beihang University(北京航空航天大学);ByteDance(字节跳动)
针对代码异常处理不当导致软件脆弱的问题,提出多智能体框架Seeker,利用LLMs检测、捕获和解决异常,提升代码健壮性。
2024-12-16 cs.CL cs.SE
Who, What, Why and How? Towards the Monetary Incentive in Crowd Collaboration: A Case Study of Github's Sponsor Mechanism
虽然目前有多种形式的财政支助,但仍有许多人抱怨软件维护者提供的资金不足。2019年5月,全球最活跃的社交编码平台GitHub推出了赞助商机制,作为更深入地整合开源开发和财务支持的一步。本文收集了8,028名维护者、13,555名赞助商和22,515名赞助商的数据,并进行了综合分析。我们从四个维度探讨了Sponsor机制与开发者之间的关系,采用定性与定量相结合的分析方法,考察了开发者为什么参与,该机制如何影响开发者的活动,谁获得了更多的赞助,以及开发者在使用过程中遇到了哪些机制缺陷。我们发现赞助行为中存在长尾效应,大多数维护者的期望没有得到满足,赞助对发展活动只有短期的、略微积极的影响,但不能持续。虽然赞助者参加这一机制主要是为了感谢他们使用的开放源码软件的开发者,但实际上,开发者的社会地位是影响赞助人数的主要因素。我们发现,无论是赞助商机制还是开源捐赠都存在一定的不足,需要进一步改进,以吸引更多的参与者。
2021-11-26 cs.HC cs.SE
DASP: A Framework for Driving the Adoption of Software Security Practices
实现软件安全实践是现代软件开发中的一个关键问题。行业从业者、安全工具提供商和研究人员提供了标准的安全指南和复杂的安全开发工具,以确保安全的软件开发管道。但是,尽管做出了这些努力,恶意黑客可以利用的漏洞数量仍在增加。因此,迫切需要了解为什么开发人员仍然在他们的应用程序中引入安全漏洞,并了解可以做些什么来激励他们编写更安全的代码。为了进一步理解和解决这个问题,我们提出了DASP,这是一个用于诊断和推动开发人员采用软件安全实践的框架。DASP是通过结合行为科学理论来构思的,以形成对28名软件从业者的横截面访谈研究。我们的访谈产生了一个框架,该框架由33个驱动因素组成,分为7个更高级别的类别,这些类别代表了需要发生或更改的内容,以便采用软件安全实践。使用DASP框架,组织可以设计适合开发人员特定开发环境的干预措施,这将激励他们编写更安全的代码。
2022-05-24 cs.SE
Don't Complete It! Preventing Unhelpful Code Completion for Productive and Sustainable Neural Code Completion Systems
Singapore Management University(新加坡管理大学);Monash University(莫纳什大学);Key Laboratory of System Software (Chinese Academy of Sciences)(中国科学院系统软件重点实验室);State Key Laboratory of Computer Science(计算机科学国家重点实验室);Institute of Software, Chinese Academy of Sciences(中国科学院软件研究所);University of Chinese Academy of Sciences(中国科学院大学);Nanjing Institute of Software Technology(南京软件技术学院);National University of Defense Technology(国防科技大学);University of Technology Sydney(悉尼科技大学);Beihang University(北京航空航天大学)
针对大型代码模型约70%补全未被接受且浪费算力的问题,本文识别低回报提示模式,并提出基于质量预测的早期拒绝机制,五类估计器实验显示可拒绝20%请求且精确率达97.4%。
2024-08-09 cs.AI cs.SE
Test Case Generation using Mutation Operators and Fault Classification
软件测试是软件开发过程的重要阶段。但是,软件开发人员很容易错过这个阶段,因为他们完成项目的时间有限。因为,软件开发人员在接近交付时间时完成了他们的软件;他们没有足够的时间通过创建有效的测试用例来测试他们的程序。.软件测试的主要困难之一是生成满足给定充分性准则的测试用例。此外,在最后的高峰时间,手工创建测试用例对于软件开发人员来说是一项繁琐的工作。一种新的生成测试用例的方法可以帮助软件开发人员在软件开发的早期阶段(编码之前)从软件规格说明中创建测试用例,以及从软件开发之后(编码之后)的程序执行跟踪中创建测试用例。启发式技术可以用于创建高质量的测试用例。变异测试是一种对软件单元进行测试的技术,对于提高测试质量、保证软件的高可靠性有着巨大的潜力。本文提出了一种基于变异测试的测试用例生成技术,从程序执行轨迹中生成测试用例,使测试用例可以在编码后生成。本文详细介绍了变异测试生成测试用例的实现方法。该算法已被证明是一个例子。
2010-02-10 cs.SE
What We Don't Know About Spreadsheet Errors Today: The Facts, Why We Don't Believe Them, and What We Need to Do
对电子表格错误的研究是大量的,令人信服的,一致的。它有三个简单的结论。首先,电子表格错误在每个单元格的基础上是罕见的,但在大型程序中,至少有一个不正确的底线值很可能存在。第二,错误极难发现和纠正。第三个是电子表格开发人员和公司对他们的电子表格的准确性过于自信。前两个结论和第三个结论之间的脱节似乎是由于人类认知的工作方式。最重要的是,我们很少意识到自己犯的错误。此外,虽然我们自豪地意识到我们修复了错误,但我们不知道还有多少错误,但像小杰克霍纳一样,我们对自己发现错误的能力印象深刻。本文回顾了人类的认知过程,首先表明,无论人类多么努力,他们都不可能没有错误,其次,我们对错误的直觉以及我们如何减少错误是基于令人震惊的错误知识。本文认为,我们应该拒绝任何尚未被严格证明安全有效的减少错误的处方。本文还认为,基于经验数据,我们最大的需求是比现在做更多的测试。这表明,在软件开发中开发的代码检查方法可能非常适用于电子表格检查。
2016-02-02 cs.SE
Analyzing Offline Social Engagements: An Empirical Study of Meetup Events Related to Software Development
软件开发人员使用各种社交媒体渠道和工具来保持自己的最新状态,与其他开发人员合作,并找到可以贡献的项目。Meetings是软件开发人员用来组织社区聚会的社交媒体之一。Liu等人将MeeChat描述为一个基于事件的社交网络(EBSN),除了在线互动外,它还包含有价值的离线社交互动。最近,Storey等人发现,MeeShop是开发人员使用的社交渠道之一。在这项工作中,我们详细调查的动态Meetings组和事件相关的软件开发,这还没有做任何以前的作品。首先,我们确定了6,317个与软件开发相关的会议组,并提取了185,758个由他们组织的事件。然后,我们对452个事件进行了统计学上显著的样本,并对其进行了开放编码,基于此,我们能够开发9类事件(8个主要类别+其他)。接下来,我们对活动类别进行了流行度分析,发现领域专家讲座,动手会话和开放式讨论是与软件开发相关的会议组组织的最受欢迎的活动类别。我们的研究结果表明,更受欢迎的类别是那些开发人员可以学习和获得知识的类别。在对Meetings群组进行多样性分析时,我们发现平均19.82%的成员是女性,这一比例高于之前在其他社交媒体上报道的数字。从更广泛的软件开发社区的角度来看,来自这个新论坛的信息对于识别和理解新出现的主题及其之间的关联是有价值的,这有助于识别未来的趋势以及当前的最佳实践。
2019-12-16 cs.SE
Software, Attacker and Asset-centric Approach for Improving Security in System Development Process
安全开发过程是开发人员采取的一个程序,以确保开发的程序遵循一般的安全标准,并将始终保持最新,以便结果得到很好的保护和服从。作为软件开发人员,为客户和用户实现和开发高度安全和可靠的程序是非常重要的。在当前的数字世界中,一切都比我们想象的更快,大多数旧的安全策略不再能够单独实施。如果软件应用程序没有按照现代趋势进行安全保护,可能会给公司带来巨大的后果和影响。因此,本文对软件开发过程中的安全集成进行了研究。这项研究的概念和目的是提供有关当前的问题和面临的大多数软件开发人员在安全的软件开发方面的挑战的见解。通过更好和更清晰地解释这些问题,讨论了克服这些问题的挑战和方法,这些方法可以提供更好和更高级别的安全性,以及更好的软件程序员和客户关系。为了满足未来的需求和威胁,在开发软件系统的所有阶段都需要考虑安全问题。因此,通过本文的努力,调查和贡献这一领域。
2020-12-20 cs.SE
A Study of Library Migration in Java Software
软件强烈依赖于外部库,这些库的相关性在其生存周期中可能会发生变化。因此,软件开发人员必须定期重新考虑他们所依赖的库,并且必须考虑\textit{library migration}。据我们所知,没有现有的研究已经做了了解图书馆迁移,虽然它是一个昂贵的维护任务。图书馆迁移频繁吗?它们针对哪些软件执行,何时执行?哪些图书馆?为什么?本文的目的是回答这些问题,旨在帮助软件开发人员更换他们的库。在这种程度上,我们对大量开源软件进行了统计分析,以挖掘它们的库迁移。为了进行这种分析,我们定义了一种方法,通过分析软件的源代码,以伪自动的方式识别库迁移。我们已经为Java程序设计语言实现了这种方法,并将其应用于存储在大型托管服务中的Java开源软件。我们研究的主要结果是,库迁移不是一个频繁的做法,但在很大程度上取决于软件的性质以及库的性质。
2013-06-26 cs.SE
An Empirical Study on How the Developers Discussed about Pandas Topics
Ahsanullah University of Science and Technology(阿萨努拉科技大学)
本研究通过分析 Stack Overflow 上与 pandas 相关的帖子,运用主题建模识别出 26 个主题并归类为 5 大类,旨在揭示 pandas 主题的流行度和难度,为开发者、教育者和学习者提供指导。
2023-05-10 cs.AI cs.IR cs.SE
Skills That Don't Exist: A Large-Scale Study of Hallucinated Skill Recommendation in LLM Agents
Huazhong University of Science and Technology(华中科技大学);Nanyang Technological University(南洋理工大学)
研究大语言模型代理中技能名称幻觉漏洞,通过大规模测量发现各配置均有此问题,系统生成众多幻觉名称且非随机,测试的模型级防御存在安全与可用性冲突,修复需全生态系统结构改变。
2026-07-15 cs.CR cs.SE
"Don't Be Afraid, Just Learn": Insights from Industry Practitioners to Prepare Software Engineers in the Age of Generative AI
William & Mary(威廉与玛丽学院)
本文通过调研51名行业从业者和11次访谈,发现生成式AI对软件工程师技能需求产生影响,提出教育界应整合GenAI并改进评估方法的建议。
2026-04-07 cs.AI cs.SE
MLmisFinder: A Specification and Detection Approach of Machine Learning Service Misuses
École de Technologie Supérieure(高等电力技术学院);Trent University(特伦特大学)
本文提出MLmisFinder,通过元模型和规则算法自动检测机器学习服务误用,验证其在107个系统中的高精度和召回率,揭示误用在数据漂移监控等领域的广泛存在。
2026-03-18 cs.SE
User Story Tutor (UST) to Support Agile Software Developers
Federal Institute of Alagoas(阿拉戈斯联邦学院);Federal University of Campina Grande(帕坎纳格兰德联邦大学);Federal University of Alagoas(阿拉戈斯联邦大学)
本研究开发了Web应用用户故事导师(UST),可检查用户故事可读性、推荐改进方案并通过机器学习估算故事点工作量,经40名敏捷从业者评估易用性良好,可辅助完善用户故事创建。
2024-06-24 cs.AI cs.SE
Why Companies "Democratise" Artificial Intelligence: The Case of Open Source Software Donations
Oxford Internet Institute(牛津互联网研究所);University of Oxford(牛津大学)
本研究采用混合方法调查了向Linux Foundation捐赠的43项AI开源软件的商业激励,提出了涵盖个人与组织的社会、经济和技术激励分类体系,强调开放治理与自下而上的推动作用,为AI民主化提供分析框架。
2024-09-26 cs.AI cs.CY cs.SE
Public-private funding models in open source software development: A case study on scikit-learn
Oxford Internet Institute(牛津互联网研究所);University of Oxford(牛津大学)
本文以 scikit-learn 为案例,通过 25 次访谈研究政府与私人资助对开源软件开发的利弊及治理机制,并为开发者、政府和企业提供资助建议。
2024-05-03 cs.AI cs.CY cs.LG