On Developers' Personality in Large-scale Distributed Projects: The Case of the Apache Ecosystem
大型分布式项目通常是多个开发人员共同努力的结果,每个人都有不同的个性。对开发人员个性的研究有可能解释他们在各种背景下的行为。例如,信任他人的倾向,全球软件工程成功的一个关键因素,已经发现对分布式项目中代码评审的结果有积极的影响。在本文中,我们进行了定量分析的开发人员的个性在开源软件项目,作为一种极端形式的分布式项目,没有一个单一的组织控制的项目。我们从Apache软件基金会(ASF)项目的开发人员贡献的代码提交和电子邮件中挖掘生态系统级数据,作为大型分布式项目的代表。我们发现,随着时间的推移,开发人员变得更加认真,随和和神经质。此外,个性特征并不因其角色、成员资格和对项目的贡献程度而有所不同。我们还发现,更开放和更令人愉快的开发人员更有可能成为项目贡献者。
2018-09-24 cs.SE
In Search of Metrics to Guide Developer-Based Refactoring Recommendations
本文提出一项实证研究,通过量化产品和过程度量标准来把握开发者执行重构的动机,从而为基于开发者的重构推荐器设计提供度量标准目录。
2024-07-25 cs.SE
A large-scale, in-depth analysis of developers' personalities in the Apache ecosystem
内容:大型分布式项目通常是由多个具有不同个性的开发人员共同努力的结果。目的:我们的目标是找到证据,个性可以解释开发人员在大规模分布式项目中的行为。例如,信任他人的倾向--全球软件工程成功的关键因素--被发现对分布式项目中代码评审的结果有积极的影响。方法:在本文中,我们进行了定量分析的生态系统级数据的代码提交和电子邮件消息的开发人员贡献的Apache软件基金会(ASF)的项目,作为大规模分布式项目的代表。结果如下:我们发现,Apache开发人员中有三种常见的性格特征,特别是他们的可持续性和神经质水平。我们还证实,开发人员的个性是稳定的,随着时间的推移。此外,个性特征并不因其角色、成员资格和对项目的贡献程度而有所不同。我们还发现,更多的开放开发人员更有可能成为Apache项目的贡献者。结论:总的来说,我们的研究结果加强了对软件工程中人为因素的未来研究的必要性,以使用心理测量工具来控制开发人员个性的差异。
2022-04-13 cs.SE
A systematic mapping study of developer social network research
开发者社交网络(DSN)是分析软件项目和软件生态系统中开发者之间的社区结构和协作的工具。在本文中,我们提出了一个系统的映射研究的结果,使用DSN在软件工程研究。我们确定了255项关于DSN的主要研究。我们将主要研究映射到研究方向,收集有关数据来源和研究规模的信息,并进行文献计量评估。我们发现,近一半的研究调查了开发人员社区的结构。其他常见的主题是使用DSN构建的预测系统,开发人员之间的协作行为以及开发人员的角色。此外,我们确定,许多出版物使用的项目数量的样本量很小,这可能是研究的外部有效性的问题。我们的研究揭示了现有技术中的几个开放问题,例如,研究公司间的合作,使用多个信息源进行DSN研究,以及普遍缺乏报告指南或复制研究。
2020-08-21 cs.SE
SBOM Challenges for Developers: From Analysis of Stack Overflow Questions
本文通过分析Stack Overflow上SBOM相关问题,揭示开发者使用SBOM时面临解决率低、问题持续增长及工具挑战三大问题。
2025-02-06 cs.SE
The Type to Take Out a Loan? A Study of Developer Personality and Technical Debt
本研究探讨了开发者人格特质与技术债务引入和移除的关系,发现尽责性、情绪稳定性和预防焦点等特质与TD呈负相关,为人员配置和未来研究提供了首个系统性证据。
2023-03-03 cs.SE
Helping Software Developers through Offline Repository Based API Searching in Data MiningIntegrated Environment
软件开发变化如此之快。如果能够通过对开发人员的指导来加快软件开发的进程,将是非常有益的。在开发过程中给开发人员提供适当的指导和准确的建议,可以减少软件开发费用,也可以节省开发人员宝贵的时间。有很多方法可以加速软件开发过程。这可以通过代码辅助工具来完成,这些工具通过从应用程序编程接口(API)的特定存储库中推荐相关项目来帮助开发人员。一些方法是基于在线搜索,由于请求和响应延迟,因为它必须处理服务器中的超大文件,因此具有一些缺点。开发人员通常使用以前完成的资源以及库或框架来生成相关的代码片段,这些代码片段由API的引用存储库提供。开发人员发现很难选择合适的方法,因为有成千上万的方法,其中一些没有正确的文档。在本文中,我们提出了一个概念及其相应的框架,以指导开发人员从离线挖掘的存储库中建议相关的API方法。从我们所做的调查,我们可以说,我们的方法比一些现有的方法工作得更好。
2020-06-21 cs.SE
Navigate, Understand, Communicate: How Developers Locate Performance Bugs
背景:性能缺陷可能导致计算效率、功耗和用户体验方面的严重问题。定位这些bug是一项困难的任务,因为开发人员必须判断每个昂贵的操作是否需要或不需要消耗运行时。目的:我们想研究开发人员在定位性能错误时如何浏览代码,理解程序并传达检测到的问题。方法:我们进行了一项定性的用户研究,观察12名开发人员试图修复两个开源项目中记录的性能错误。开发人员使用一个概要分析和分析工具,该工具以列表表示形式直观地描述运行时信息,并嵌入到源代码视图中。结果如下:我们确定了开发人员用于查明bug的典型导航策略,例如,基于运行时消耗的方法调用。可视化和代码的集成帮助开发人员理解错误。可视化数据结构和算法的草图被证明是有价值的外部化和沟通的复杂错误的理解过程。结论:修复性能bug是一个代码理解和导航问题。基于已执行方法的灵活导航特性以及源代码和性能信息的紧密集成支持该过程。
2017-06-30 cs.SE
Need for Sleep: the Impact of a Night of Sleep Deprivation on Novice Developers' Performance
我们提出了一个准实验,以调查是否,以及在何种程度上,睡眠不足的影响,新手软件开发人员使用敏捷实践的测试优先开发(TFD)的性能。我们招募了45名本科生,让他们完成一项编程任务。在参与者中,23人同意在执行任务前一晚保持清醒,而22人通常睡觉。我们分析了质量(即,功能正确性),他们在编写源代码中的参与(即,在处理编程任务时在IDE中执行的活动量)和应用TFD的能力(即,参与者可以使用此实践的程度)。通过比较两组参与者,我们发现,一个晚上的睡眠剥夺会导致执行质量降低50%。有重要的证据表明,开发人员的参与度和他们应用TFD的能力受到了负面影响。我们的研究结果还表明,睡眠不足的开发人员对源代码中的语法错误进行了更多的修复。我们的结论是,睡眠剥夺可能对软件开发活动产生破坏性影响。这些结果为通过将睡眠研究与软件工程研究社区最近感兴趣的其他心理生理因素相结合来提高开发人员的绩效提供了机会。
2018-05-07 cs.SE
Profiling Software Developers with Process Mining and N-Gram Language Models
内容:剖析开发人员是一项挑战,因为许多因素,如他们的技能,经验,开发环境和行为,可能会影响详细的分析和连贯的解释交付。目的:我们的目标是通过挖掘软件开发过程来分析软件开发人员。为此,我们进行了一个受控实验,在Python编程竞赛的领域中,一组开发人员具有相同的定义良好的需求规范集和定义良好的sprint时间表。事件收集自PyCharm IDE和Mooshak自动陪审团,其中受试者签入他们的代码。方法:我们使用n-gram语言模型和文本挖掘来描述开发人员的配置文件,并使用过程挖掘算法来发现他们的整体工作流程,并提取相应的度量以供进一步评估。结果如下:研究结果表明,我们可以清楚地与一个连贯的理由大多数开发人员的特点,并区分最高性能的更具挑战性的行为。这种方法可能最终导致创建一个软件开发过程气味的目录。结论:开发人员的个人资料为软件项目经理提供了一个线索,选择适当的任务,他/她应该被分配。随着低代码和无代码平台的使用越来越多,其中编码是从上层抽象层自动生成的,挖掘开发人员在开发平台中的行为是一种很有前途的方法,不仅可以早期检测行为,还可以评估项目复杂性和模型工作量。
2021-01-17 cs.SE
One Microservice per Developer: Is This the Trend in OSS?
本文通过对38个微服务开源项目的实证研究,检验“每个开发者一个微服务”策略是否被开源社区遵循,发现除拥有专门DevOps团队的项目外,该策略很少被遵守。
2023-08-05 cs.SE
"An Endless Stream of AI Slop": How Developers Discuss the Burden of AI-Assisted Software Development
Heidelberg University(海德堡大学);University of Melbourne(墨尔本大学);Singapore Management University(新加坡管理大学)
通过定性分析Reddit和Hacker News帖子,揭示开发者对AI生成低质量内容(AI slop)的感知与应对,归纳为审查摩擦、质量退化及系统诱因三大主题,指出其公地悲剧性质。
2026-08-31 cs.SE
Why Don't Developers Detect Improper Input Validation?'; DROP TABLE Papers; --
输入验证不当(IIV)是一种软件漏洞,当系统无法安全处理输入数据时会发生此漏洞。尽管IIV很容易检测和修复,但在实践中仍然经常发生。在本文中,我们研究在何种程度上开发人员可以检测IIV和调查的根本原因。这些知识对于更好地理解如何支持开发人员创建安全的软件系统至关重要。我们与146名参与者进行了一项在线实验,其中105人至少有三年的专业软件开发经验。我们的研究结果表明,一个可见的攻击场景的存在,有利于检测IIV漏洞,很大一部分的开发人员谁没有发现漏洞最初可以识别它时,警告它的存在。然而,共有60名参与者甚至在警告后也无法检测到漏洞。其他因素,如参与者执行代码审查的频率,影响IIV的检测。数据和材料:https://doi.org/10.5281/zenodo.3996696
2021-02-11 cs.SE
Why Developers Refactor Source Code: A Mining-based Study
重构的目的是在不修改代码外部行为的情况下改进代码的非函数属性。以前的研究通过调查开发人员来调查重构背后的动机。为了概括和补充他们的研究结果,我们提出了一个大规模的研究,定量和定性地调查为什么开发人员在开源项目中执行重构。首先,我们挖掘了150个系统历史上执行的287,813次重构操作。使用这个数据集,我们研究了重构操作和过程之间的相互作用(例如,先前的改变/修复)和产品(例如,质量度量)度量。然后,我们手动分析了551个合并的拉取请求,这些合并的拉取请求实现了重构操作,并对所实现的重构背后的动机进行了分类(例如,删除代码重复)。我们的研究结果导致(i)定量证据的关系存在于某些过程/产品指标和重构操作和(ii)一个详细的分类,概括和补充现有的文献中的动机,推动开发人员重构源代码。
2021-01-05 cs.SE
A Survey on How Test Flakiness Affects Developers and What Support They Need To Address It
非确定性地通过和失败的测试用例,即所谓的非确定性测试,近年来已成为软件工程研究的一个热点领域。虽然这一研究重点已经得到了一些行业的热情认可,但以前的工作主要是通过挖掘软件存储库使用以代码为中心的方法来研究片状。然而,从软件仓库中提取的数据无法告诉我们开发人员如何看待漏洞:测试漏洞在开发人员的日常工作中有多普遍,它如何影响他们,最重要的是:他们希望我们研究人员做些什么?为了回答这些问题,我们调查了335名不同领域的专业软件开发人员和测试人员。调查对象确认,艾滋病毒检测是一个普遍而严重的问题,从而加强了正在进行的艾滋病毒检测研究。开发人员不太担心重新运行测试所导致的计算成本,而更多地担心对测试结果的信任丧失。因此,他们希望有IDE插件来检测测试代码,并对问题进行更好的可视化,特别是显示测试结果的仪表板;他们还希望有更多的培训和关于剥落的信息。这些重要方面需要研究人员和工具开发人员的关注。
2022-04-08 cs.SE
Worse Than Spam: Issues In Sampling Software Developers
背景:接触专业软件开发人员是经验软件工程研究的重要组成部分。调查研究是研究实践状况的重要方法之一。由于随机抽取专业软件开发人员进行调查是不可能的,研究人员依赖于各种抽样策略。目的:在本文中,我们报告了我们的经验与不同的抽样策略,我们采用,突出道德问题,并激励需要保持一个关键的人口统计数据收集软件开发人员,以减轻外部有效性的评估研究。方法:我们的报告是基于我们过去进行的两项研究的数据。结果:通过公共媒体联系开发人员被证明是最有效和高效的抽样策略。然而,我们不仅描述了那些有兴趣达到目标的研究人员的观点,比如大量的参与者或高响应率,而且我们还揭示了不同抽样策略的伦理含义。我们提出了一个具体的道德准则,并指出在其他研究社区的辩论开始在软件工程研究社区的讨论,抽样策略应被视为道德。
2017-07-04 cs.SE
Understanding Emotions of Developer Community Towards Software Documentation
开源项目的可用性促进了开发人员在广泛的项目上做出贡献和协作。因此,为此类开源项目做出贡献的开发人员社区也在增加。许多项目都涉及频繁更新和广泛重复使用。一个更新良好的文档有助于更好地理解软件项目,也有助于有效的贡献和重用。虽然软件文档在软件开发和维护过程中扮演着重要的角色,但它也存在着诸如不充分、不一致、可维护性差等问题,探讨开发人员对文档的看法有助于理解软件文档中普遍存在的问题背后的原因。它可以进一步帮助决定可以向开发人员社区提供的培训,以便为社会建立更可持续的项目。分析项目贡献者的情绪可以为理解开发人员的看法提供见解。因此,作为朝着这个方向迈出的第一步,我们分析了特定于软件项目文档的提交消息的情感。为此,我们考虑了GHTorrent数据集中998个GitHub项目的提交历史,并确定了10,996个提交对应于存储库的文档。此外,我们应用情感分析技术来获得对所选提交的提交消息中表达的情感类型的见解。我们观察到,大约45%的已识别提交消息表达了信任情绪。
2021-03-01 cs.SE
Analysis of open source license selection for the GitHub programming community
开发者通常会为其开源代码选择不同的开源许可证来约束其使用条件, 以期能有效地保护知识产权和维持软件的长远发展.然而,开源社区有着种类繁多的许可证可供使用,开发者普遍难以理解不同开源许可证之间的差异。而现有的开源许可证选择工具要求开发人员了解开源许可证的条款,并确定自己的业务需求,这使得开发人员很难做出正确的选择。虽然学术界对开源许可证有着广泛的研究,但是对于开发者选择开源许可证的实际困难却没有系统的分析,从而缺乏一个清晰的认识,为此,本文的目的就是了解开源开发者在选择开源许可证时所面临的困难,分析了开源许可证的组成部分和开源许可证选择的影响因素,为开发者选择开源许可证提供参考。
2020-09-02 cs.SE
Knowledge Islands: Visualizing Developers Knowledge Concentration
本研究提出开源可视化工具Knowledge Islands,采用前沿知识模型分析GitHub项目的知识集中情况,计算巴士因子,识别核心开发者与文件,助力保障项目健康。
2024-08-16 cs.SE
Development Effort Estimation in Free/Open Source Software from Activity in Version Control Systems
工作量估计模型是软件管理中的一个基本工具,用于预测与软件开发相关的资源、约束和成本。对于自由/开放源码软件(FOSS)项目,工作量估算尤其复杂:专业开发人员与偶尔的志愿开发人员一起工作,因此整体工作量(以人月计)变得非常难以确定。这项工作的目标是根据开发人员工作的历史数据,为自由和开放源码软件项目开发一个简单的工作估算模型。该模型由开发人员直接反馈,以确保其准确性。在从6个大型FOSS项目中提取了数千名开发人员的个人发展概况之后,我们要求他们填写一份问卷,以确定他们是否应该被视为他们所工作的项目的全职开发人员。他们的反馈被用来微调工作阈值的值,超过该阈值的开发人员可以被视为全职。在收到的1,000多份调查问卷的帮助下,我们能够确定样本中每个项目的提交阈值,该阈值将全职开发人员与非全职开发人员区分开来。并且最小化I型和II型错误。我们最终提供了将我们的模型应用于使用版本控制系统的FOSS项目的指南和工具。
2022-03-18 cs.SE
Automated Extraction and Analysis of Developer's Rationale in Open Source Software
本研究基于Kantara架构实例化,结合预训练模型与大语言模型提出开源软件开发者设计理由的自动化提取分析方法,可检测推理冲突与设计退化问题,经Linux内核OOM-Killer模块及五个高活项目验证具备可行性与泛化潜力,助力开发者规避变更冲突。
2025-04-22 cs.SE
Who is the Real Hero? Measuring Developer Contribution via Multi-dimensional Data Integration
提出基于多维信息融合的CValue方法,通过提取源代码修改的语法和语义信息衡量开发者贡献,在真实项目中表现优于现有方法并有效检测提交膨胀。
2023-08-31 cs.SE
Developers and Generative AI: A Study of Self-Admitted Usage in Open Source Projects
Università della Svizzera italiana(瑞士意大利语大学);University of Sannio(萨尼奥大学);William & Mary(威廉与玛丽学院);JetBrains Research(JetBrains 研究)
本文研究了ChatGPT和GitHub Copilot在开源项目中的自我声明使用,通过分析GitHub提交、问题和拉取请求,构建了64种使用任务的分类体系,揭示了生成式AI在软件开发中的应用扩展和开发者认知变化。
2026-03-27 cs.SE
Unveiling the Role of ChatGPT in Software Development: Insights from Developer-ChatGPT Interactions on GitHub
School of Computer Science, Wuhan University(武汉大学计算机学院);Nanyang Technological University(南洋理工大学);School of Computer Science, Central China Normal University(华中师范大学计算机学院)
本研究通过分析GitHub上的开发者与ChatGPT交互数据,揭示了ChatGPT在软件开发中的应用特点及实际作用。
2026-02-18 cs.SE
Using CognitIDE to Capture Developers' Cognitive Load via Physiological Activity During Everyday Software Development Tasks
本文提出使用基于 IntelliJ 的插件 CognitIDE,在开发者执行日常软件开发任务时收集、映射并可视化其生理活动数据,以无干扰地捕获认知负荷,实验证明该插件能有效支持长达一小时的数据收集并反映任务期间的认知负荷变化。
2025-03-05 cs.SE
CLARA: A Developer's Companion for Code Comprehension and Analysis
CLARA是一个浏览器扩展,利用先进推理模型帮助开发者和研究人员进行代码理解、重构和质量检测,经用户研究验证其有用、准确且实用。
2025-09-11 cs.SE
Helpful but Fallible: Developer Experiences of AI Tools Under a Coordinated Industrial Roll-out
Lund University(隆德大学);Ericsson AB(爱立信公司);Mälardalen University(马尔默达尔大学);Carleton University(卡尔顿大学);KTH Royal Institute of Technology(皇家理工学院)
本研究通过瑞典电信公司12名开发者的访谈,揭示AI开发工具协调部署中管理层与开发者期望差距及感知风险的重要性,指出工具价值受组织期望、系统规模和技能影响。
2026-09-21 cs.SE
The Impact of Human Aspects on the Interactions Between Software Developers and End-Users in Software Engineering: A Systematic Literature Review
本文通过遵循Kitchenham指南、检索六个数据库并结合滚雪球法,对46项一手研究进行SLR,系统梳理影响开发者与用户交互的人为因素、关系、正负影响及缓解策略,并提出研究建议。
2024-05-08 cs.SE
An Empirical Study of Developers' Challenges in Implementing Workflows as Code: A Case Study on Apache Airflow
本文通过分析 1,000 个 Stack Overflow 帖子,系统研究了开发人员使用 Apache Airflow 实现“工作流即代码”时面临的挑战,构建了包含 7 大类 14 子类的分类体系,并识别出 10 个根本原因。
2024-05-31 cs.SE
A Longitudinal Cohort Study on the Retainment of Test-Driven Development
背景资料:测试驱动开发(TDD)是一种敏捷的软件开发实践,它被认为可以提高软件产品的外部质量和开发人员的生产力。目的:我们想研究(i)TDD对软件产品的外部质量以及开发人员的生产力的影响,以及(ii)在五个月内TDD的保留情况。方法:我们对意大利巴里大学计算机科学专业的30名三年级本科生进行了一项(定量)纵向队列研究。结果如下:TDD的使用对软件产品的外部质量和开发人员的生产力都没有统计上的显著影响。然而,我们观察到使用TDD的参与者比那些应用非TDD开发过程的参与者产生了更多的测试,并且TDD的保留在编写的测试数量中特别明显。结论:我们的结果应该鼓励软件公司采用TDD,因为实践TDD的人往往会编写更多的测试-在测试软件系统或定位错误时,有更多的测试可以派上用场-而且新手开发人员似乎会保留TDD。
2018-07-09 cs.SE
Breaks and Code Quality: Investigating the Impact of Forgetting on Software Development. A Registered Report
本注册报告提出实证研究,探究开发者活动中断时长、项目活动量及不同活动模式对代码质量的影响,为判断并行多项目开发或减少参与项目数哪种更有益提供依据。
2023-08-28 cs.SE
Exploring software developers' work practices: Task differences, participation, engagement, and speed of task resolution
在寻求理解的过程中制定的软件开发,越来越多的研究挖掘软件库。特别是,研究已经结束,以显示团队如何解决软件缺陷。虽然这些工作很有用,但我们认为,除了与缺陷相关的问题之外,对通常执行的活动范围进行大规模检查,将有助于我们更充分地了解缺陷发生的原因及其后果。更一般地说,这些探索将揭示团队过程如何在所有软件开发工作中发生。因此,我们扩展这样的研究,调查软件从业人员如何工作,同时承担的软件任务,通常执行的范围。多种形式的纵向案例研究的分析表明,软件从业人员主要参与修复缺陷,他们的参与covariate取决于他们所执行的工作的性质。此外,多种外部因素影响任务解决的速度。我们的研究结果表明,行为和内在的问题可能与外在因素相互作用,成为软件任务解决速度的重要预测因素。
2021-04-16 cs.SE
AI Tools in Software Development: Developer Perceptions and Usage Patterns
研究通过调查147名专业开发者,探讨AI工具使用与开发者感知的生产力、代码质量和采用意图之间的关系,发现高频和广泛使用AI工具与更高的生产力和代码质量感知相关,且无速度与质量的权衡。
2026-05-11 cs.SE
Not Only for Developers: Exploring Plugin Maintenance for Knowledge-Centric Communities
Universidad Rey Juan Carlos(雷乌斯·胡安·卡洛斯国王大学);The University of Osaka(大阪大学)
研究探讨了非开发者主导社区中插件生态系统的维护,通过分析Obsidian平台的插件发现六个知识管理相关主题,并揭示了其工程结构和可持续性问题。
2026-02-19 cs.SE
Requirements of API Documentation: A Case Study into Computer Vision Services
使用基于云的计算机视觉服务正在获得越来越多的关注,开发人员通过熟悉的RESTful API访问AI驱动的组件,而不需要协调大型训练和推理基础设施或管理/标记训练数据集。然而,虽然这些API看起来很熟悉,但它们的非确定性运行时行为和演变并没有充分传达给开发人员。因此,改进这些服务的API文档是非常重要的-更广泛的文档有助于智能软件的开发过程。在之前的研究中,我们从21个开创性的作品中提取了34个API文档工件,设计了五个关键需求的分类来生成高质量的API文档。我们以两种方式扩展这项研究。首先,通过调查104名不同经验的开发人员,了解哪些API文档工件对从业者最有价值。其次,通过新兴的计算机视觉服务领域的案例研究,确定这些高价值的人工制品中哪些是有据可查的,哪些没有。我们确定:(i)软件工程文献中的一些空白,其中API文档理解的各个方面被/没有被广泛调查;以及(ii)行业供应商(相反)文档工件以更好地服务于其终端开发人员。我们提供了一组建议,以增强供应商和更广泛的研究社区的智能软件文档。
2020-12-26 cs.SE
What really changes when developers intend to improve their source code: a commit-level study of static metric value and static analysis warning changes
许多软件度量被设计用来度量那些被认为与软件质量相关的方面。静态软件度量,例如,规模、复杂性和耦合性被用于缺陷预测研究以及软件质量模型来评估软件质量。虽然这表明了质量和软件度量之间的关系,但它的程度还没有得到很好的理解。此外,最近的研究发现,复杂性度量可能是源代码可理解性的不可靠指标。为了探索这种关系,我们利用开发人员的意图,即什么构成了他们自己代码库的质量改进。我们通过检查提交消息,将来自54个Java开源项目的2,533个提交的随机样本手动分类为质量改进,这取决于开发人员的意图。我们通过预定义的指导方针区分完美和纠正性维护,并将这些数据用作基础事实,用于微调自然语言处理的最先进的深度学习模型。我们使用该模型将数据集增加到125,482次提交。基于由此产生的数据集,我们调查的差异大小和14静态源代码指标之间的变化,提高质量,由开发人员表示,和其他变化。我们发现,质量改善提交比其他提交更小。完美的更改对静态源代码指标有积极的影响,而纠正性更改则倾向于增加复杂性。此外,我们发现,文件的目标是完善的维护已经有一个较低的中位数比其他文件的复杂性。我们的研究结果提供了经验证据,静态源代码度量捕获质量改进从开发人员的角度来看。这对程序理解以及代码气味检测和推荐系统都有影响。
2022-05-30 cs.SE
Implicit Mentoring: The Unacknowledged Developer Efforts in Open Source
传统上,导师制被视为一种自上而下的二元学徒制。然而,这种观点忽略了在日常活动中发生的其他形式的非正式指导,开发人员投入时间和精力,但仍然没有得到承认。在这里,我们调查了开源软件(OSS)中不同风格的指导,以定义和识别隐式指导。我们首先定义隐式指导-贡献者通过嵌入在日常(OSS)活动中的指示和建议指导他人的情况-通过与OSS贡献者的形成性访谈,文献综述和成员检查。接下来,通过对37个Apache项目中的Pull Requests(PR)的实证调查,我们构建了一个分类器来提取隐含的指导,并通过经验和性别的双重镜头来描述它。我们对107,895份PR的分析表明,存在隐式指导(所有PR中有27.41%包含隐式指导),并且它不遵循传统的二元,自上而下的学徒模式。当考虑到导师-学员对的性别时,我们发现在93.81%的情况下普遍存在同性恋倾向-倾向于指导那些性别相同的人。在跨性别辅导的情况下,妇女更有可能指导男子。
2023-02-03 cs.SE
The Making of Cloud Applications An Empirical Study on Software Development for the Cloud
云计算作为软件的部署和供应模型正获得越来越多的关注。虽然大量的研究已经涵盖了如何最佳地操作云系统,但我们仍然缺乏对专业软件工程师如何实际使用云以及云如何影响开发实践的见解。本文报告了关于软件开发人员如何在云中构建应用程序的第一次系统性研究。我们进行了一项混合方法研究,包括对25名专业开发人员的定性访谈和对294份回复的定量调查。我们的研究结果表明,采用云计算对整个软件开发过程以及开发人员在日常工作中如何利用工具和数据产生了深远的影响。除其他事项外,我们发现(1)开发人员需要更好的方法来预测运行时问题并严格定义改进故障定位的指标,(2)云提供了丰富的操作数据,然而,开发人员仍然经常依赖他们的经验和直觉,而不是利用指标。从我们的研究结果中,我们提取了一套云开发指南,并确定了研究人员和工具供应商面临的挑战。
2015-03-17 cs.SE
It's Alive! What a Live Object Environment Changes in Software Engineering Practice
LIFIA, Fac. de Informática, Univ. Nac. de La Plata(拉普拉塔国立大学信息学院计算智能与信息系统实验室);CONICET(阿根廷国家科学研究委员会);Inria(法国国家数字科学研究所)
本文探讨了Pharo环境中活体对象环境对软件工程实践的影响,介绍了Inspector、Microcommits、Xtreme TDD等工具如何提升开发效率和工作流程。
2026-03-03 cs.SE
OpenCBS: An Open-Source COBOL Defects Benchmark Suite
随着当前COBOL员工的退休,入门级开发人员将继续维护和操作复杂的遗留系统。这造成了知识和能力上的巨大差距,因为公司正在用新的,没有经验的劳动力取代他们的资深开发人员。此外,当前学术课程中缺乏COBOL和大型机技术进一步增加了新一代开发人员的学习曲线。由于这些系统的业务关键性,这些问题变得更加紧迫,这使得迁移或更换大型机和COBOL在短期内是不可能的。因此,现在需要大量的工具和资源来提高新开发人员的代码理解能力和执行调试和缺陷定位等日常任务的能力。在软件工程领域中,已经就创建这样的资源做了大量的工作。然而,COBOL和大型机系统的专有性质限制了工作量和可用于该领域的开放源码工具的数量。为了解决这个问题,我们的工作是利用公开的技术论坛数据来构建一个开源的COBOL程序集合,其中包含COBOL开发人员所面临的问题/缺陷。这些程序被重新构建并组织在一个基准测试套件中,以方便开发人员工具的测试。我们的目标是提供一个开源的COBOL基准和测试套件,鼓励社区贡献,并作为该领域研究人员和工具工匠的资源。
2022-06-13 cs.SE
Task Interruptions in Requirements Engineering: Reality versus Perceptions!
任务切换和中断是软件开发项目中的日常现实:开发人员在需求工程(RE)、编码、测试、日常会议和其他任务之间切换。任务转换可以通过增加信息流和有效的时间管理来提高生产力。然而,它也可能导致认知负荷重新定位主要任务,这导致开发人员的生产力下降和错误增加。这种认知负荷甚至更大的情况下,认知要求的任务,作为典型的RE活动。为了比较RE中任务切换的现实与开发人员的感知,我们进行了两项研究:(i)对19名开发人员的5,076个记录任务的案例研究分析和(ii)对25名开发人员的调查。我们的回顾性分析的结果表明,在所有的情况下,RE中断的破坏性在统计上不同于其他软件开发任务,RE相关的任务更容易受到中断相比,其他任务类型。此外,我们发现,上下文切换,中断任务的优先级,以及中断源和时间是影响RE中断的关键因素。我们还提供了一组RE任务切换模式,以及从业者和研究人员的建议。虽然我们的回顾性分析结果表明,自我干扰比外部干扰更具破坏性,但开发人员对各种干扰源的破坏性有不同的看法。
2017-07-04 cs.SE
We Live in a Society: Motivators for Contributions in an OSS Ecosystem
本文通过调查NPM开发者,揭示了开源维护者在维护自身库与为依赖库贡献时存在个人驱动与专业因素驱动的动机差异,并分析了不同角色开发者面临的动机与障碍。
2023-04-12 cs.SE
Characterising Developer Sentiment in Software Components: An Exploratory Study of Gentoo
本研究提出细粒度情绪分析方法,结合邮件列表与开发日志,刻画 Gentoo 开发路径的情绪影响,发现消极情绪近年总体减少。
2024-05-27 cs.SE
Industry Experiences with Large-Scale Refactoring
软件重构在软件工程中占有重要地位。当开发人员想要重构软件以提高其质量而不改变其外部行为时,他们通常会转向重构。研究表明,小规模(floss)重构在行业中很常见,通常可以由单个开发人员在短时间内执行,尽管开发人员手动完成大部分工作而不是使用重构工具。然而,一些重构工作的规模要大得多,需要整个团队和数月的努力,而工具在这些工作中的作用还没有得到很好的研究。在本文中,我们报告了我们对开发人员进行的一项调查,以了解大规模重构,其流行程度,以及工具如何支持它。我们来自107个行业开发人员的结果表明,项目通常会经历多次大规模重构,每一次都需要相当大的努力。虽然经常需要重构,但其他业务问题(如开发新功能)通常具有更高的优先级。我们的研究发现,开发人员使用几类工具来支持大规模重构,并且更依赖于IDE等通用工具,而不是专门为支持重构而设计的工具。不同活动的工具支持各不相同,一些特别具有挑战性的活动实际上很少使用工具。我们的研究表明了对更好的大规模重构工具的明确需求,以及重构研究人员在行业中发挥作用的机会。我们在本文中总结的结果是实现这一目标的具体步骤。
2022-02-15 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
Do #ifdefs Influence the Occurrence of Vulnerabilities? An Empirical Study of the Linux Kernel
预处理器通过#ifdef支持软件产品的多样化,但也需要开发人员付出额外的努力来维护和理解可变代码。我们推测,#ifdef会导致开发人员产生更脆弱的代码,因为他们需要同时推理多个功能,并维护可配置代码的依赖关系的复杂心理模型。我们在Linux内核的所有配置中提取了一个变分调用图,并使用配置复杂性指标来比较易受攻击和不受攻击的函数,同时考虑它们的漏洞历史。我们的目标是了解我们是否可以观察到配置复杂性对漏洞发生的可测量影响。我们的研究结果表明,除其他外,脆弱的功能有更高的可变性比非脆弱的,也受到较少的配置选项。这表明开发人员倾向于注意到函数出现在频繁编译的产品变体中。我们的目标是提高开发人员的意识,更系统地解决可变性,因为配置复杂性是一个重要的,但往往被忽视的软件产品线的方面。
2016-05-23 cs.SE
Find, Understand, and Extend Development Screencasts on YouTube
软件开发截屏是一个视频,它捕捉开发人员在执行特定任务时的屏幕,同时解释其实现细节。由于软件开发屏幕播放的日益普及(例如,在YouTube上提供),我们研究如何以及在多大程度上可以将它们用作额外的知识来源,以回答开发人员的问题,例如,使用特定的API。我们首先使用视频帧分析来区分开发和其他类型的屏幕直播。通过使用余弦算法,开发人员可以在100个不同的YouTube视频中的前20个视频中看到10个开发视频。然后,我们提取了YouTube上的流行开发主题:数据库操作,系统设置,插件开发,游戏开发和测试。此外,我们还发现了六个在开发视频中重复执行的任务,例如对象使用和UI操作。最后,我们通过仅考虑口语单词(即,屏幕录制的记录,而不是可能出现在场景中的文本),以将API文档(如Javadoc)链接到适当的屏幕录制。通过使用余弦相似度,我们在9455个API文档中的前20个中识别出38个相关文档。
2017-07-27 cs.SE
OSS Mentor A framework for improving developers contributions via deep reinforcement learning
East China Normal University(华东师范大学);Tongji University(同济大学)
在开源项目治理中,人们一直在关注如何衡量开发人员的贡献。然而,极其稀疏的工作集中在使开发人员能够改进他们的贡献上,尽管这是重要和有价值的。在本文中,我们介绍了一个名为开源软件(OSS)Mentor的深度强化学习框架,它可以从经验知识中进行训练,然后自适应地帮助开发人员提高他们的贡献。大量的实验表明,OSS Mentor显着优于优秀的实验结果。此外,这是第一次提出的框架探索深度强化学习技术来管理开源软件,这使我们能够设计一个更强大的框架,以提高开发人员的贡献。
2022-10-24 cs.AI cs.SE
On the Use of Emoticons in Open Source Software Development
背景资料:使用情感分析来研究软件开发人员的行为带来了挑战,例如存在大量的技术讨论,不太可能表达任何积极或消极的情绪。然而,表情符号提供了关于开发人员情绪的信息,这些信息可以很容易地从软件存储库中提取出来。目的:我们调查了软件开发人员如何在问题跟踪器中使用不同的表情符号,以便更好地了解开发人员之间的差异,并确定在何种程度上可以使用表情符号来代替情感分析。方法:我们从Apache的问题跟踪器的130万条评论和Mozilla的问题跟踪器的450万条评论中提取表情符号,使用的正则表达式是从SentiStrength和Wikipedia使用的表情符号列表中构建的。我们使用Mann-Whitney U检验检查统计学差异,并使用Cliff's delta确定效应量。结果:总体而言,Mozilla开发人员比Apache开发人员更依赖表情符号。虽然Apache和Mozilla中带有表情符号的评论的总体比例分别为2%和3.6%,但一些开发人员的比例可能超过20%。特别关注Mozilla开发人员,我们发现西方开发人员比东方开发人员使用更多的表情符号(具有大尺寸效应)。虽然大多数表情符号都用于表达喜悦,但我们发现Mozilla开发人员比Apache开发人员更频繁地使用表情符号来表达悲伤和惊讶。最后,我们发现开发人员在周末使用的表情符号比工作日更多,悲伤和惊讶的表情符号在周末增加。结论:虽然表情符号主要用于…
2018-10-09 cs.HC cs.SE
Representation of Developer Expertise in Open Source Software
The University of Tennessee(田纳西大学)
背景:开发人员专业知识的准确表示一直是一个重要的研究问题。虽然一些研究提出了在单个项目中代表专业知识的新方法,但这些方法很难在生态系统层面上应用。然而,随着软件开发的重点从单一转向模块,在整个开放源码软件开发的背景下,例如,当一个项目试图寻找新的维护人员和具有相关技能的开发人员时,就有必要采用一种方法来代表开发人员的专门知识。目的:我们的目标是通过提出和构建技能空间来解决这个知识缺口,每个API,开发人员和项目都代表了这个空间,并假设这个空间的拓扑结构应该如何反映开发人员的知识(和项目需要)。方法:我们使用World of Code基础设施来提取开源开发人员更改的文件中的完整API集,并基于这些数据,使用Doc 2 Vec嵌入来表示API,开发人员和项目的矢量。然后,我们通过预测开发人员使用/加入的新API/项目以及他们的拉取请求是否被接受来评估这些嵌入是否反映了技能空间的假设拓扑。我们还检查开发人员在技能空间中的表示如何与他们自我报告的API专业知识保持一致。测试结果:我们的研究结果表明,在技能空间中提出的嵌入似乎满足假设的拓扑结构,我们希望这样的表示可以帮助构建信号,提高整个开源生态系统的信任(和效率),并有助于调查与开发人员熟练程度和学习相关的其他现象。
2021-02-02 cs.LG cs.SE
SoK: Demystifying Privacy Enhancing Technologies Through the Lens of Software Developers
本文通过系统文献综述分析了39项实证研究,探讨了六种隐私增强技术在软件中的应用现状、开发者面临的内外在挑战及现有解决方案,并提出了未来研究方向以支持开发者更好地集成PETs。
2023-12-30 cs.CY 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
Redefining Developer Assistance: Through Large Language Models in Software Ecosystem
Indian Institute of Technology Kharagpur(印度理工学院卡拉格普尔分校);Singapore University of Technology and Design(新加坡科技设计大学)
本文提出DevAssistLlama,一种通过指令微调构建的领域特定大型语言模型,旨在处理软件相关自然语言查询,并在命名实体识别、关系抽取和链接预测任务上优于包括ChatGPT在内的其他模型,展示了专用LLM在软件开发中的潜力。
2024-03-15 cs.AI cs.SE
How Software Developers Mitigate Collaboration Friction with Chatbots
现代软件开发人员依赖于广泛的社交媒体工具和沟通渠道。团队通信平台的采用导致了基于对话的工具和集成的出现,其中许多是聊天机器人。了解软件开发人员如何结合他们使用的实践和工具管理复杂的协作者群,可以为软件开发和其他知识工作领域的社会技术协作工作带来有价值的见解。在本文中,我们探讨了聊天机器人如何帮助减少软件开发人员在协作时面临的摩擦点。使用的社会技术模型的协作工作,我们确定了三个主要领域的冲突:摩擦产生的团队相互作用,个人的互动与技术,团队与技术的互动。最后,我们提供了一组开放的问题,供研究界讨论。
2017-02-22 cs.HC cs.SE