When Contracts Meets Crypto: Exploring Developers' Struggles with Ethereum Cryptographic APIs
该研究针对以太坊官方密码学API因开发者缺乏专业知识引发的安全与可用性问题,通过分析大量交易、合约及社区帖子并调研从业者,梳理了开发者的密码学任务与五类障碍,提出了API优化、模板及工具开发等改进方向。
2023-12-15 cs.SE
When Security Meets Usability: An Empirical Investigation of Post-Quantum Cryptography APIs
Royal Melbourne Institute of Technology(皇家墨尔本理工大学);University of Moratuwa(莫拉图瓦大学);ExeQuantum
通过实证评估开发者与后量子密码学API的交互,识别影响可用性的认知因素,并提出改进建议以促进PQC的采用。
2026-02-16 cs.CR cs.HC cs.SE
SoK: Enhancing Privacy-Preserving Software Development from a Developers' Perspective
本文通过系统文献综述,识别并分析了经实证验证的隐私保护软件开发解决方案,指出现有研究多缺乏实证评估,旨在为研究者和从业者改进与采用有效方案提供见解。
2025-04-30 cs.CR cs.SE
When LLMs Meet API Documentation: Can Retrieval Augmentation Aid Code Generation Just as It Helps Developers?
该研究针对RAG助力LLMs适配小众API库的效果问题展开实验,发现RAG可显著提升LLMs代码生成性能,且示例代码贡献最大,为低代码开发流程优化提供参考。
2025-03-19 cs.SE
When Deep Learning Meets Smart Contracts
以太坊已经成为一个广泛使用的平台,可以实现安全的、基于区块链的金融和商业交易。然而,智能合约中的许多已识别的错误和漏洞导致了严重的财务损失,这引发了对智能合约安全性的严重担忧。因此,需要更好地维护智能合约代码并确保其高可靠性。在这项研究中:(1)首先,我们提出了一种基于自动化深度学习的方法来学习Solidity中智能合约的结构化代码嵌入,这对于智能合约的克隆检测,错误检测和合约验证非常有用。我们将我们的方法应用于从以太坊区块链收集的超过22K个solidity合约,结果显示solidity代码的克隆率约为90%,远高于传统软件。我们收集了属于10种常见漏洞的52个已知漏洞智能合约作为我们的漏洞数据库。我们的方法可以识别超过1000克隆相关的错误,我们的错误数据库的基础上,有效和准确。(2)其次,根据开发人员的反馈,我们已经实现了一个基于Web的工具,名为SmartEmbed的方法,以方便Solidity开发人员使用我们的方法。我们的工具可以帮助Solidity开发人员有效地识别现有以太坊区块链中的重复智能合约,并检查他们的合约是否存在已知的错误,这有助于提高用户对合约可靠性的信心。我们优化了SmartEmbed的实现,这足以支持开发人员在实际使用中的实时性。以太坊生态系统以及个人Solidity开发人员都可以从我们的研究中受益。
2020-08-07 cs.SE
Enhancing Software Development Process Using Automated Adaptation of Object Ensembles
软件开发一直在快速变化。这个开发过程可以通过改变开发人员友好的方法来影响。在软件开发过程中,如果能够自动引导程序员,可以节省开发时间,加快开发速度。有一些方法可以向开发人员推荐相关的代码片段和API项。一些方法应用通用代码、搜索技术,而一些方法使用基于在线存储库的挖掘策略。但是,当程序员需要解决特定的类型转换问题时,很难帮助他们。更具体地说,当他们想要根据他们的期望调整现有的接口时。在这种情况下,指导开发人员的一个常见的成功是通过对象集成的自动适应来适应集合和数组。但是,它如何帮助一个新手在实时的软件开发,没有明确规定?在本文中,我们已经开发了一个系统,作为一个插件工具集成到一个特定的数据采掘集成环境(DMIE)推荐相关的接口,而他们寻求一个类型转换的情况。我们有一个挖掘的存储库,其中包含相应的适配器类和相关的API,开发人员可以从其中搜索他们的查询,并使用相关的Transformer类获得结果。推荐开发人员的系统名为自动化目标集成(AOE插件)。从我们曾经做过的调查中,我们可以看到我们的方法比现有的一些方法要好得多。
2020-05-07 cs.SE
When Large Language Models Meet UAV Projects: An Empirical Study from Developers' Perspective
University of Electronic Science and Technology of China(电子科技大学);Peking University(北京大学);Zhejiang University(浙江大学);Guangdong University of Finance and Economics(广东财经大学);Qufu Normal University(曲阜师范大学)
通过分析997篇论文和1509个GitHub项目,并调查52位从业者,本研究分类了无人机项目中大型语言模型(LLM)的九种常见任务和四种工作流,揭示了研究与工业实践之间的差异,并指出了整合LLM的五大挑战因素。
2026-06-01 cs.SE
An Empirical Study of Agent Developer Practices in AI Agent Frameworks
Sun Yat-sen University(中山大学);Zhejiang University(浙江大学);The University of Melbourne(墨尔本大学);Technical University of Munich(慕尼黑技术大学)
本文通过实证研究分析了基于LLM的代理框架在开发效率、功能抽象、学习成本、性能优化和可维护性方面的差异,揭示了开发者在选择和使用框架时的挑战与需求。
2025-12-01 cs.AI cs.SE
Assessing Consensus of Developers' Views on Code Readability
本文通过调查10名经验相近的Java开发者,评估其对代码可读性评价的共识,发现显著一致性及相关代码特征,为LLM对齐开发者可读性感知提供依据。
2024-07-04 cs.HC cs.SE
Please Turn Your Cameras On: Remote Onboarding of Software Developers during a Pandemic
COVID-19疫情影响了软件开发团队入职新员工的方式。以前,大多数软件开发人员在物理办公室工作,新员工在物理办公室加入他们的团队,遵循标准的入职流程。然而,当公司因疫情而将员工转变为在家工作时,几乎没有时间制定新的入职程序。在本文中,我们对267名在疫情期间加入软件开发团队的微软新员工进行了调查。我们探讨了他们的远程入职流程,包括新员工遇到的挑战以及他们与团队的社会联系。我们发现,大多数开发人员都是远程入职的,从来没有机会亲自见到他们的队友。这导致了这些新员工面临的最大挑战之一,与他们的团队建立强大的社会联系。我们使用这些结果为远程员工的入职提供建议。
2021-03-07 cs.HC cs.SE
Enhancing Software Development Process (ESDP) using Data Mining Integrated Environment
如今,重用现有的应用程序编程接口(API)、类库和框架已成为快速软件开发的基本需求。软件开发人员经常通过调用相应的API或库来重用它。但在这样做的时候,开发人员在搜索适当的代码段时通常会遇到不同的问题。在大多数情况下,API和库是复杂的,没有良好的结构或良好的文档记录。在线搜索引擎的搜索耗时长,但匹配的相关性不高,表示性不好。为了根据查询获得建议,我们可以使用搜索引擎或代码搜索引擎在线找到该片段。在某些情况下,依赖于数据库的搜索和基于远程Web服务器的挖掘存储库搜索给开发人员带来了问题。在代码搜索引擎上查找API建议通常会处理超大文件,最终会减慢软件开发过程。我们在整个工作过程中一直在寻找解决办法,并努力取得更好的结果。作为替代行动,我们已经实施了一个系统,我们称之为增强软件开发过程(ESDP)工具,该工具能够为开发人员提供一个高效的集成环境,更好地抽象和表示搜索结果,程序员需要从源代码中派生。我们还构建并应用了一个基于XML的丰富存储库,以从客户端的挖掘存储库中获得推荐,而无需与依赖于互联网的服务器进行交互,以节省复杂性和时间。我们使用基于图的表示为程序员或开发人员提供最相关的代码框架或映射。
2020-05-06 cs.SE
How far are AI-powered programming assistants from meeting developers' needs?
该研究通过模拟真实开发场景并招募27名学生,评估了三种流行AI编程助手工具的有效性,发现其普遍提升任务完成率与代码质量,但效果受任务性质和用户经验影响,并揭示了推荐代码的修改原因与用户期望。
2024-04-24 cs.SE
Optimizing Workflow for Elite Developers: Perspectives on Leveraging SE Bots
本文针对精英开发者因全方位项目职责产生倦怠、需要自动化支持的问题,基于前期研究与访谈提出六条SE Bots设计准则,并探讨其未来在减轻精英开发者增长的工作负荷方面的方向。
2023-04-28 cs.SE
Do Mobile Developers Ask on Q&A Sites About Error Codes Thrown by a Cross-Platform App Development Framework? An Empirical Study
在过去的几年中,开发框架已经出现,使跨平台移动应用程序的开发和维护变得更加容易。Xamarin框架就是其中之一:它接受用C#编写的应用程序作为输入,并为Android,iOS和Windows Mobile平台生成本地代码。在使用Xamarin时,开发人员可能会遇到框架抛出的代码错误。不幸的是,Xamarin官方文档并没有提供所有这些代码的完整描述,解决方案或解决方案。本文分析了两个与Xamarin相关的问题和答案网站,以找到提到这些错误代码的问题。我们发现在这两个网站上都有开发人员写的关于Xamarin错误的问题,其中大多数至少有一个答案。我们的直觉是,这些发现的信息可能有助于为Xamarin开发人员提供支持。
2018-01-22 cs.SE
Consistency Meets Verification: Enhancing Test Generation Quality in Large Language Models Without Ground-Truth Solutions
York University(约克大学)
ConVerTest通过自我一致性、验证链和双执行协议,在无需真实解决方案的情况下提升大型语言模型的测试生成质量。
2026-02-11 cs.SE
An Exploratory Study of Writing and Revising Explicit Programming Strategies
知识共享在所有软件应用程序开发活动中发挥着至关重要的作用。当程序员通过Stack overflow、GitHub、Meetups、视频、论坛、wiki和博客等媒体学习和分享时,每个开发人员都会受益。然而,有一种知识开发人员很少分享:如何解决编程问题的战略知识(例如,如何调试服务器端的Python错误,如何解决合并冲突,如何评估API的稳定性(考虑采用)。在本文中,我们探讨了开发人员阐明和分享他们的战略知识的可行性,以及使用这些策略来支持其他开发人员解决问题。我们专门研究了开发人员在以其他开发人员可以用来提高生产力的形式阐述策略时所面临的挑战。为了观察这一点,我们模拟了一个知识共享平台,要求专家阐明他们自己的策略之一,然后要求第二组开发人员尝试使用这些策略,并向作者提供有关策略的反馈。在研究过程中,我们要求策略作者和用户反思他们面临的挑战。在分析作者创建的策略、策略的使用、用户提供给作者的反馈以及作者在处理这些反馈时所面临的困难时,我们发现开发人员可以分享策略知识,但创作策略需要来自不同受众的大量反馈,才能对具有不同先验知识的程序员有所帮助。我们的研究结果还提出了具有挑战性的问题,未来的工作应该如何支持搜索和浏览的策略,支持不同的先验知识。
2020-10-21 cs.HC cs.SE
Supporting acceptance testing in distributed software projects with integrated feedback systems: Experiences and requirements
在验收测试过程中,客户评估系统是否满足他们的期望,并经常发现应该改进的问题。这些发现必须传达给开发人员,我们观察到这是一项容易出错的任务,特别是在分布式团队中。在这里,通常不可能让每个站点的开发人员代表参加测试。不在场的开发人员可能会误解没有充分记录的结果。这阻碍了问题的解决,并危及客户满意度。集成反馈系统有望缓解这一问题。它们允许轻松捕获结果及其背景。正确应用,这种技术可以改善反馈,同时减少客户的努力。本文收集了我们的经验,比较验收测试与反馈系统,在分布式项目。我们的研究结果表明,如果满足某些要求,这种技术可以提高验收测试。我们确定了反馈系统应该满足的关键要求,以支持验收测试。
2014-09-01 cs.SE
How are Diverse End-user Human-centric Issues Discussed on GitHub?
许多软件系统无法满足社会上不同最终用户的需求,并且容易产生问题,例如可访问性和可用性问题。其中一些问题(部分)源于在软件开发过程中未能考虑不同最终用户的特性,限制和能力。我们把这类问题称为以人为中心的问题。尽管它们很重要,但对开发人员遇到的以人为中心的问题类型的理解有限。深入了解这些以人为中心的问题是设计软件系统,更好地满足其不同的最终用户的需求。本文旨在为软件开发和研究社区提供见解,其中以人为本的问题是GitHub上开发人员讨论的主题。我们进行了一项实证研究,从12个不同的项目中提取并手动分析了1,691条问题评论,从小型到大型项目,包括为有挑战性的最终用户设计的项目,例如,视障人士和有阅读障碍的人士。我们的分析表明,开发人员讨论了八类以人为中心的问题。这些包括包容性,隐私和安全性,兼容性,位置和语言,偏好,满意度,情感方面和可访问性。在我们的研究结果的指导下,我们强调了一些影响和未来可能的路径,以进一步理解和纳入以人为本的问题,在软件开发,能够设计软件,满足不同的最终用户在社会上的需求。
2022-01-15 cs.SE
The SPACE of AI: Real-World Lessons on AI's Impact on Developers
本研究通过混合方法从SPACE框架多维度考察AI对开发者的影响,发现AI广泛提升常规任务生产力但收益受多种因素影响,且AI是增强而非取代开发者,其有效整合依赖团队文化与支持,并给出相关实用建议。
2025-07-31 cs.AI cs.HC cs.SE
Exploring Interaction Patterns for Debugging: Enhancing Conversational Capabilities of AI-assistants
Microsoft(微软公司)
本文借鉴交互模式与对话分析,设计增强调试AI助手Robin,通过插入扩展、轮流发言及调试工作流,降低对话障碍,提升故障定位,使错误解决率提高5倍。
2024-02-09 cs.AI cs.HC cs.SE
Understanding Developers Well-Being and Productivity: a 2-year Longitudinal Analysis during the COVID-19 Pandemic
本文通过为期 24 个月的纵向研究,分析了 COVID-19 疫情期间软件工程师的幸福感、生产力及社交联系变化,发现开发者普遍偏好混合工作安排,并提出 IJARS 综合模型来解释相关机制。
2023-08-10 cs.HC cs.SE
Demystifying Code Snippets in Code Reviews: A Study of the OpenStack and Qt Communities and A Practitioner Survey
本文通过挖掘 OpenStack 与 Qt 社区代码评审数据并结合从业者调查,研究代码片段在评审评论中的使用场景与作用。
2024-04-04 cs.SE
Enhancing API Documentation through BERTopic Modeling and Summarization
École de technologie supérieure(高等技术学院)
针对官方 API 文档冗长且不友好的问题,本文结合 BERTopic 主题建模与 NLP 自动生成文档摘要和主题,并评估其性能、连贯性与互操作性。
2023-08-17 cs.AI cs.CL cs.LG
How do Developers Promote Open Source Projects?
开源项目在现代软件开发中的重要性越来越大。因此,这些项目与商业软件项目一样,应该利用推广渠道与用户和贡献者进行沟通和建立联系。在本文中,我们研究了用于推广一组100个流行GitHub项目的渠道。首先,我们发现,Twitter,用户会议和博客是最常见的推广渠道所研究的项目。第二,我们报告的主要区别研究项目和随机抽样的项目,关于使用调查的促销渠道。第三,我们展示了一个流行的新闻聚合网站(黑客新闻)对促进开源的重要性。最后,我们向开源项目经理和领导者提出了一套实用的建议,以促进他们的项目。
2019-08-12 cs.SE
Two Sides of the Same Coin: Software Developers' Perceptions of Task Switching and Task Interruption
在不断发展的软件开发世界中,在任务之间来回切换已经成为常态。虽然任务切换通常可以让开发人员有效地执行任务,并通过灵活的途径提高创造力,但频繁的任务切换也会带来一些后果。对于像软件开发这样的高动力任务来说,“心流”,即专注的高生产力状态,是至关重要的。每一次转换都会分散开发人员的心流,要求他们转换精神状态,并需要额外的沉浸时间才能回到心流中。然而,由于任务切换导致的时间碎片而浪费的时间在很大程度上是不可见的,并且不被开发人员和管理人员注意到。我们对141名软件开发人员进行了一项调查,调查他们对任务切换和任务中断之间差异的看法,并探讨他们是否认为任务切换和中断一样具有破坏性。我们发现,从业者认为任务切换(计划或计划外)和随机中断的破坏性之间有相当大的相似性。高水平的认知成本和低性能是我们的受访者所阐述的任务切换的主要后果。我们的研究结果拓宽了软件从业者之间的流动变化的特点和类别的破坏性开关,以及日常站立会议所造成的中断的后果的理解。
2018-05-15 cs.SE
OmniLLP: Enhancing LLM-based Log Level Prediction with Context-Aware Retrieval
Queen's University(皇后大学);ETS - Québec University(ETS-魁北克大学)
针对LLM日志级别预测器依赖随机上下文示例的问题,提出OmniLLP框架,通过结合代码语义相似性和开发者所有权凝聚力进行聚类检索上下文示例,显著提升了预测准确率(AUC达0.88-0.96)。
2025-08-12 cs.AI cs.SE
Enhancing Code Generation via Bidirectional Comment-Level Mutual Grounding
Purdue University(普渡大学)
本文提出以可编辑代码注释为媒介的双向互证交互框架,通过代码、行内注释与用户反馈迭代对齐意图,显著提升LLM代码生成准确率与开发者任务表现。
2025-05-12 cs.AI cs.CL cs.SE
RefactorInsight: Enhancing IDE Representation of Changes in Git with Refactorings Information
检查代码更改是一项耗时的任务,是软件工程师日常工作的重要组成部分。现有的IDE提供的关于文件编辑器视图中代码更改的语义的信息很少。因此,开发人员必须跨多个文件跟踪更改,这对于大型代码库来说是一项艰巨的任务。在本文中,我们介绍了RefactorInsight,一个用于IntelliJ IDEA的插件,它为Java和Kotlin中的代码更改引入了一个智能差异,其中重构是自动折叠的,并提供了它们的描述,从而允许用户专注于修改代码行为的更改,如bug修复和新功能。RefactorInsight支持三种使用场景:使用自动折叠的重构和提示查看智能差异,检查拉请求和项目更改历史中的任何特定提交中的重构,以及探索方法和类的重构历史。评估表明提交处理时间是可以接受的:中位数小于0.2秒,该延迟不会中断开发人员的IDE工作流。RefactorInsight可在https://github.com/JetBrains-Research/RefactorInsight上获得。演示视频可在https://youtu.be/-6L2AKQ66nA上获得。
2021-08-25 cs.SE
Comparing Software Developers with ChatGPT: An Empirical Investigation
University of Waterloo(滑铁卢大学)
本文通过实证研究对比软件工程师与ChatGPT在代码生成等任务上的表现,强调多维度评估对促进人机协作和提升AI可靠性的重要性。
2023-05-25 cs.AI cs.SE
On Usefulness of the Deep-Learning-Based Bug Localization Models to Practitioners
背景:开发人员花费了大量的时间和精力来定位bug。在文献中,许多研究人员提出了最先进的错误定位模型,以帮助开发人员轻松定位错误。另一方面,实践者期望bug定位工具满足某些标准,例如可信度、可伸缩性和效率。目前的模式无法满足这些标准,因此更难在实践中采用这些模式。最近,文献中已经提出了基于深度学习的错误定位模型,其表现出比最先进的模型更好的性能。目的:在这项研究中,我们想调查深度学习模型是否符合从业者的期望。方法:我们构建了一个卷积神经网络和一个简单的Logistic模型,以检查它们在定位错误的有效性。我们在五个用Java编写的开源项目上对这些模型进行训练,并将它们的性能与在这些数据集上训练的其他最先进模型的性能进行比较。结果如下:我们的实验表明,尽管深度学习模型的性能优于经典的机器学习模型,但它们仅部分满足从业者设定的采用标准。结论:这项工作提供的证据表明,从业者在将当前最先进的模型用于生产级用例时应该谨慎。它还强调了性能基准标准化的必要性,以确保错误定位模型得到公平和现实的评估。
2019-07-19 cs.SE
What happens when software developers are (un)happy
越来越多的关于软件开发人员影响的文献大多报道了幸福感,软件质量和开发人员生产力之间的联系。了解幸福和不幸福的所有组成部分-积极和消极的情绪和心情-是一个有吸引力的和重要的努力。工业和组织心理学的学者认为,了解幸福和不幸福可能会导致成本效益的方法,改善工作条件,工作表现,并限制心理障碍的发生。我们对开发人员幸福感的影响的理解仍然太肤浅,主要表现在开发生产力和软件质量方面。在本文中,我们研究了在开发软件时,开发人员高兴和不高兴时会发生什么。对317名问卷参与者的回答进行了定性数据分析,确定了42种不快乐的后果和32种快乐的后果。我们发现快乐和不快乐的后果对开发人员的心理健康,软件开发过程和所产生的工件是有益的和有害的。我们的分类方案,可作为开放数据,使新的幸福研究的因果类型的机会,它可以作为一个指导方针,为从业人员确定不快乐的破坏性影响和促进幸福的工作。
2018-04-23 cs.CY cs.SE
Personalizing LLM-Based Conversational Programming Assistants
Radboud University(拉德堡德大学)
本文探讨了认知多样性与组织背景如何影响开发者需求,并探索个性化方法以提升基于大语言模型的对话编程助手的包容性。
2026-04-14 cs.SE
Evolutionary Conflict Checking
在软件演化过程中,现有功能可能会受到新更改的不利影响,这就是众所周知的回归错误。维护高质量的测试套件有助于防止回归错误,而这在很大程度上取决于开发人员。基于新的变更不断地扩充现有的测试套件可以帮助开发人员调查这些新变更的影响。通过比较生成的测试用例在两个版本上的执行情况,现有技术能够检测出一些常见的错误。然而,缺少对现有程序行为的新更改的需求和预言。此外,当新的更改没有与其他未更改的代码进行充分检查时,可能会引入新的错误,最终无法满足开发人员对更改的真实意图。在本文中,我们提出了进化冲突检查的概念,以验证新的变化。通过提取新变更所反映的开发者意图,将线性演化过程转化为一个三向合并过程,检测现有行为与新变更之间的冲突。我们的实验结果表明,进化冲突检查是能够适用于保证软件质量的变化。
2020-09-22 cs.SE
An Empirical Study on How Well Do COVID-19 Information Dashboards Service Users' Information Needs
持续的COVID-19疫情凸显了仪表板在提供关键实时信息方面的重要性。为了让人们能够及时获取信息,了解复杂的统计数据,疫情期间,不少开发者设计并实现了面向公众的COVID-19“信息仪表盘”。然而,开发往往需要很长的时间,开发者并不清楚很多人的信息需求,导致信息需求和供给之间存在差距。根据我们的实证研究和对流行的COVID-19仪表板的观察,这严重阻碍了信息的获取。我们的研究比较了人们在Twitter上的需求与现有的信息供应商。我们确定,尽管COVID-19的信息目前在现有的仪表板上,但人们也对COVID-19和其他病毒之间的关系、COVID-19的起源、疫苗开发、关于COVID-19的假新闻、对女性的影响、对学校/大学的影响以及对商业的影响感兴趣。其中大多数问题尚未得到妥善解决。我们还总结了仪表板中常用的可视化和交互模式,找到了数据和可视化以及可视化和交互之间的关键模式。我们的研究结果可以帮助开发人员更好地优化他们的仪表板,以满足人们的需求,并为未来的危机管理仪表板开发做出改进。
2022-05-30 cs.HC cs.SE
A Methodology for Analyzing Uptake of Software Technologies Among Developers
动机:什么属性组合驱动采用特定软件技术的问题对开发人员至关重要。它决定了哪些技术得到社区的广泛支持,哪些技术可能被放弃,从而使开发人员的投资变得毫无价值。目标和背景:我们对开发人员采用软件技术进行建模,并提供与替代技术之间更好的可见性相关的特定技术属性的见解。方法:我们利用社会传染理论和统计建模来识别,定义和测试可能影响软件采用的经验措施。更具体地说,我们利用大量的开源版本控制存储库来构建一个特定的R语言源代码文件集的软件依赖链。我们制定逻辑回归模型,调查技术属性的组合,推动采用竞争的数据框架实现在R语言:整洁和data.table。我们量化了可能影响采用的关键项目属性以及做出选择的开发人员的特征。结果如下:我们发现,对提出的问题的快速响应,大量的整体部署,以及大量的高质量StackExchange问题与更高的采用率相关。决策者倾向于采用在技术依赖网络和作者协作网络中更接近他们的技术,同时满足他们的性能需求。今后的工作:我们希望我们的方法包括社会传染,捕获理性和非理性的偏好,并从大量的版本控制数据中阐明关键措施,为提高可见性,推动更明智的决策,以及生产更可持续和广泛采用的软件提供一条通用路径
2019-09-04 cs.SE
User Personas Improve Social Sustainability by Encouraging Software Developers to Deprioritize Antisocial Features
本研究通过针对79名本科生的随机对照实验,验证了persona模型能显著降低开发者对反社会软件功能的优先级排序,为提升软件工程社会可持续性提供了循证干预思路与可行的实验室评估方法。
2024-12-14 cs.SE
When simplicity meets effectiveness: Detecting code comments coherence with word embeddings and LSTM
针对代码注释不一致问题,提出Co3D方法,结合word2vec与LSTM等简单架构,在检测一致性上超越基线,证明简洁模型的有效性。
2024-05-28 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
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
LLMs in Mobile Apps: Practices, Challenges, and Opportunities
University of Toronto(多伦多大学)
本研究构建149个Android应用数据集,探索LLM在移动应用中的集成实践,揭示设备限制、API管理等挑战,为未来研究提供方向。
2025-02-21 cs.CL cs.SE
Educating Reflective Systems Developers at Scale: Towards productive feedback in a semi-capstone large-scale software engineering course
反馈在教育中至关重要。这篇创新实践论文报告了在半顶峰软件工程课程中提高反馈质量的经验教训,特别关注如何在项目工作期间大规模提供富有成效的反馈。学士学位水平的软件工程课程介绍由来自8个学习项目的约500名学生参加,分为72个项目团队。该课程旨在教育反射系统开发人员。教学人员包括29名助教,作为团队的主管和产品所有者。作为形成性项目组合评估的一部分,项目团队获得关于七个可交付成果的反馈。学生们对反馈不一致表示失望,他们在作业中没有说明的主题上得到批评,助教不愿意讨论反馈。本文提供了一个课程设计的描述,质量的反馈和经验教训的评估从三个主要的变化:修改作业和规则,重组教学人员和增加教学助理的培训。在讨论这些变化时,我们利用了对142名受访者的学生的调查,对18名受访者的教学助理的调查,学生参考组的会议记录和教学助理的经验报告以及文献和自己的经验。文章最后总结了三个可操作的经验教训,为大型半顶点课程。
2022-08-16 cs.SE
Enhancing the Alloy Analyzer with Patterns of Analysis
形式化技术已经被证明是有用的,在正确的软件开发。但是,这些技术的从业者所需的专业知识水平阻碍了它们的广泛采用。形式化技术需要为商业软件开发者量身定制。Alloy是Alloy Analyzer(AA)支持的轻量级规约语言,AA是一种基于现成SAT技术的工具。该工具允许用户以交互方式检查给定的属性是否与高级规范一致或有效,提供了一个可以建立这种规范的正确性的环境。然而,Alloy并不特别适合表达程序规范,并且AA提供的反馈可能会误导分析中的规范或检查中的属性包含不一致性。在本文中,我们解决这两个缺点。首先,我们提出了一个轻量级的语言称为“Loy”,量身定制的规范面向对象的程序。提供了一种将Loy编码为Alloy的方法,以便AA可用于Loy程序规范的自动分析。其次,我们提出了一些“模式的分析”,指导开发人员通过分析的洛伊规范,以建立其正确性之前实施。
2005-08-24 cs.LO cs.SE
Enhancing Security in Third-Party Library Reuse -- Comprehensive Detection of 1-day Vulnerability through Code Patch Analysis
针对第三方库复用引入的1-day漏洞检测难题,本文设计实现工具VULTURE,通过LLM构建数据库、哈希比较依赖及相似性、版本与块级分析,在10个真实项目中从178个复用TPLs识别出175个漏洞,提升复用安全性。
2024-11-29 cs.SE
DroneReqValidator: Facilitating High Fidelity Simulation Testing for Uncrewed Aerial Systems Developers
针对小型无人飞行系统实地测试成本高的问题,提出DroneReqValidator(DRV)仿真生态系统,通过自动生成逼真环境、监控安全参数并生成测试报告,为开发者提供高保真仿真测试支持。
2023-07-31 cs.SE
Feature Location Benchmark for Decomposing and Reusing Android Apps
软件重用使开发人员能够重用体系结构、程序和其他软件工件。在软件中实现系统的重用为涉众带来了大量的好处,包括更少的维护工作、更低的开发成本和更短的上市时间。不幸的是,目前在Android应用程序中实现大规模软件重用的框架仍然是一个巨大的问题,因为任务的复杂性以及缺乏来自工具或领域专家的实际技术支持。因此,为应用程序提出一个功能定位基准将有助于开发人员优化他们的功能定位技术,或者重用基准中创建的资产以进行重用。在本文中,我们发布了一个功能定位基准,它可以用于那些开发人员,谁打算组成软件产品线(SPL)和发布重用的应用程序。该基准不仅有助于研究社区的重用研究,而且还有助于行业参与者优化其体系结构和增强模块化。此外,我们还开发了一个名为caIDE的Android Studio插件,供开发者查看和操作基准测试。
2020-05-08 cs.SE
A Comprehensive Study on Challenges in Deploying Deep Learning Based Software
深度学习(DL)变得越来越普遍,被广泛用于各种软件应用程序中。这些软件应用程序被称为基于DL的软件(简称DL软件),将使用大型数据语料库训练的DL模型与基于DL框架(如TensorFlow和Keras)编写的DL程序集成在一起。DL程序编码期望的DL模型的网络结构和使用训练数据训练模型的过程。为了帮助深度学习软件的开发人员迎接深度学习带来的新挑战,人们在软件工程方面投入了大量的研究工作。现有的研究主要集中在深度学习软件的开发上,对深度学习程序中的错误进行了广泛的分析。然而,DL软件的部署还没有得到全面的研究。为了填补这一知识空白,本文提出了一个全面的研究,了解部署DL软件的挑战。我们从开发者常用的问答网站Stack Overflow中挖掘并分析了3,023篇相关帖子,显示了深度学习软件部署在开发者中的日益普及和高难度。我们通过对769个抽样帖子的手动检查,建立了开发人员在DL软件部署过程中遇到的具体挑战的分类,并为研究人员,开发人员和DL框架供应商报告了一系列可操作的影响。
2020-11-11 cs.SE
Investigating the Developer eXperience of LGBTQIAPN+ People in Agile Teams
本研究通过调查40名参与者,探讨了敏捷团队中LGBTQIAPN+人群的开发者体验,发现心理安全和包容性政策至关重要,并指出定制敏捷实践和远程工作能提升满意度与生产力,强调将包容性融入敏捷方法论以支持多样化专业人士。
2025-01-22 cs.SE
LAURA: Enhancing Code Review Generation with Context-Enriched Retrieval-Augmented LLM
School of Computer Science;Technology Beijing Institute of Technology Beijing, China;Institute of Software Chinese Academy of Sciences Beijing, China;School of Computer Science Tianjin University Tianjin, China
LAURA通过整合审查范例检索、上下文增强和系统引导,提升代码审查生成的准确性和质量。
2026-02-22 cs.SE
Enhancing Mobile App Bug Reporting via Real-time Understanding of Reproduction Steps
开发人员从用户那里接收关于软件现场故障的反馈的主要机制之一是通过错误报告。不幸的是,手工编写的错误报告的质量可能会有很大的差异,这是因为需要包括基本信息,例如详细的复制步骤(S2R)。尽管报告者面临着困难,但很少有现有的错误报告系统试图为用户提供自动化的帮助,以制作易于阅读和方便复制的错误报告。为了解决需要积极主动的错误报告系统,积极帮助用户捕捉关键信息,我们介绍了一种新的错误报告方法,称为EBug。EBug通过实时的【形】分析报告者输入的自然语言信息,并将这些数据与通过静态和动态程序分析相结合提取的信息联系起来,帮助报告者为移动应用程序编写S2R。当记者编写S2R时,EBug能够使用根据实际应用程序使用情况训练的预测模型自动建议潜在的未来步骤。为了评估EBug,我们基于来自$11$真实世界应用程序的20个故障进行了两项用户研究。实证研究涉及10名参与者,每个人提交了10个错误报告,10名开发人员复制了提交的错误报告。在这些研究中,我们发现报告者使用EBug构建错误报告的速度比使用最先进的错误报告系统作为基线要快31倍。EBug的报告相对于基线生成的报告也更具可重复性。此外,我们将EBug的预测模型与其他预测建模方法进行了比较,发现总体而言,我们方法的预测模型优于基线方法。我们的研究结果是有希望的,并展示了潜在的好处,提供了积极的辅助错误报告系统。
2022-03-22 cs.SE
Codev-Bench: How Do LLMs Understand Developer-Centric Code Completion?
Northwestern University(西北大学);Alibaba Group(阿里巴巴集团);Tongyi Lab(通义实验室)
该研究通过分析工业代码补全数据并构建自动化 Codev-Agent,提出仓库级、以开发者为中心的 Codev-Bench,以更真实地评估 LLM 的即时意图理解与补全能力。
2024-10-24 cs.AI cs.SE
An Exploratory Mixed-Methods Study on General Data Protection Regulation (GDPR) Compliance in Open-Source Software
该研究通过混合方法探究GDPR对开源软件开发的影响,发现其增加开发活动、带来实施挑战并引发开发者负面看法,为开源领域隐私合规支持工具与资源建设提供依据。
2024-06-20 cs.SE
I Know What You Are Searching For: Code Snippet Recommendation from Stack Overflow Posts
Stack Overflow已经被软件开发人员大量使用来寻找与编程相关的信息。越来越多的开发人员使用社区问答论坛(如Stack Overflow)来搜索如何完成特定编码任务的代码示例。这通常被认为比从源文档,教程或完整的工作示例中工作更有效。然而,由于这些在线问答论坛的复杂性以及它们包含的大量信息,开发人员可能会被大量的可用信息所淹没。这使得很难找到和/或甚至知道最相关的代码示例来满足他们的需求。为了缓解这个问题,在这项工作中,我们提出了一个查询驱动的代码推荐工具,名为Que 2Code,它可以从Stack Overflow帖子中识别用户查询的最佳代码片段。我们的方法有两个主要阶段:(i)语义等价的问题检索和(ii)最佳代码片段推荐。为了评估我们提出的模型的性能,我们进行了一个大规模的实验,以评估语义等价的问题检索任务和最佳代码片段推荐任务的有效性分别在Python和Java数据集堆栈溢出。我们还进行了一项人类研究,以衡量现实世界的开发人员如何看待我们的模型生成的结果。自动和人工评估结果都证明了我们模型的良好性能,我们已经发布了我们的代码和数据来帮助其他研究人员。
2022-10-28 cs.SE
Enhancing Inventory Management with Progressive Web Applications (PWAs): A Scalable Solution for Small and Large Enterprises
本研究开发了一款集成条码扫描、仓库定位等功能的PWA库存管理应用,具备离线可用、跨平台适配等特性,分析了其实施的挑战、收益及性能局限,为企业级应用集成PWA提供参考,也为传统库存软件提供了可扩展的低成本替代方案。
2025-04-26 cs.SE
Visually Exploring Software Maintenance Activities
雷曼定律告诉我们,随着时间的推移,软件系统将越来越不令用户满意,除非它不断地适应新的需求。以前的一系列工作试图通过研究如何将提交分为三个主要的软件维护活动来更好地理解软件维护。纠正:故障修复;完善:系统改进;自适应:新功能引入。在这项工作中,我们建议在项目和个人开发范围内探索软件维护活动的可视化。我们使用一个使用Shiny R框架构建的原型来演示我们的方法。此外,我们还发布了我们的原型作为在线演示。此演示允许用户探索一些流行的开源项目的维护活动。我们相信,我们提供的可视化可以帮助从业者监控和维护软件项目的健康。特别是,它们可以用于识别项目和开发人员维护活动中的一般不平衡、峰值、深度和其他异常。
2019-10-20 cs.SE