Do Open Source Software Developers Listen to Their Users?
在应用软件中,目标用户的满意使软件更容易被接受。开放源码软件(OSS)系统既没有专有软件的物理边界,也没有商业边界,因此世界各地的用户都可以与之互动。这种免费使用是有利的,因为越来越多的用户能够使用开放源码软件;有更多的改进机会。这项研究探讨了OSS开发人员处理用户反馈的方式。在我们的调查中,我们还询问了开放源码软件开发人员是否咨询专业的可用性专家来改进他们的项目。根据结果,大多数OSS开发人员既不将可用性视为他们的首要任务,也不咨询可用性专家。
2015-07-24 cs.SE
Importance of Secure Software Development Processes and Tools for Developers
在这篇关于安全软件系统的研究论文中,作者讨论了创建安全软件时正确的开发过程是什么,这将适合开发人员和相关利益相关者。开发人员的安全软件开发过程对于软件工程师来说至关重要,因为越来越多的基于软件的设备变得越来越普遍,云服务正在发展,这需要软件不断连接到互联网。考虑到这一点,安全软件开发需要转变为大多数开发人员可以依赖的东西,以使应用软件安全,并有能力减轻黑客的潜在攻击。此外,在本文中,现有的安全软件开发过程的思想和实现进行了审查和调查,使用的研究论文池在线。在此基础上,提出了一种在软件开发过程中加强安全性的方法来解决安全问题。最后,本文最后对安全功能在软件开发阶段的实际实施进行了总结,以生产安全可靠的软件程序和系统。
2020-12-30 cs.SE
Software Security during Modern Code Review: The Developer's Perspective
为了避免软件漏洞,组织正在将安全性转移到软件开发的早期阶段,例如在代码评审时。在本文中,我们旨在了解开发人员在代码审查期间评估软件安全性的观点,他们遇到的挑战以及公司和项目提供的支持。为此,我们进行了两步调查:我们采访了10名专业开发人员,并调查了182名从业人员在代码审查期间的软件安全评估。结果是开发人员在代码审查期间如何看待软件安全性以及一组已识别的挑战的概述。我们的研究表明,大多数开发人员在代码审查期间不会立即报告安全问题。只有在被问及软件安全性之后,开发人员才会在审查期间始终考虑它并承认其重要性。大多数公司不提供安全培训,但希望开发人员在审查期间仍然确保安全性。因此,开发人员报告说,缺乏培训和安全知识是他们在检查安全问题时面临的主要挑战。此外,他们还面临着第三方库的挑战,以及识别可能具有安全影响的代码部分之间的交互。此外,由于开发人员对他们开发的应用程序的安全动态的假设,在审查期间可能会忽视安全性。数据和材料:https://doi.org/10.5281/zenodo.6875435
2022-08-08 cs.SE
CyberSecurity Challenges for Software Developer Awareness Training in Industrial Environments
对网络安全主题的认识有助于软件开发人员生成安全代码。这种意识在工业环境中对于关键基础设施中的产品和服务尤其重要。在这项工作中,我们将讨论如何提高软件开发人员对安全编码的认识。我们提出了“网络安全挑战”,这是一个严肃的游戏,旨在工业环境中使用,并满足软件开发人员的需求。我们的工作总结了在工业环境中进行这些网络安全挑战所获得的经验。主要贡献是网络安全挑战活动的设计,对感知收益的分析,以及希望设计或改进这些游戏的从业者的实用建议。
2021-02-10 cs.SE
Supporting Developers in Porting Software via Combined Textual and Structural Analysis of Software Artifacts
这是计算科学与工程软件可持续性和生产力挑战(CSESSP挑战)研讨会的立场文件,由网络和信息技术研究与开发(NITRD)软件设计和生产力(SDP)协调小组主办,于2015年10月15日至16日在美国华盛顿特区举行。它讨论了角色推荐系统,基于源代码中的文本和结构信息,并通过挖掘相关应用程序进一步增强,可以在提高科学和工程软件的可移植性。
2015-08-17 cs.SE
Debugging Behaviour of Embedded-Software Developers: An Exploratory Study
许多研究人员研究了成功的开发人员在调试桌面软件时的行为。在本文中,我们调查嵌入式软件调试的中级程序员通过探索性研究。这些错误是语义上的低级错误,参与者是完成了实时操作系统课程以及其他五门编程课程的学生。我们比较成功的调试尝试与不成功的行为。我们描述了一些平稳和成功的调试行为的特点。
2017-04-11 cs.SE
Developers' Perceptions on the Impact of ChatGPT in Software Development: A Survey
该研究针对207名软件开发者开展调查,探究ChatGPT对软件开发质量、生产力、工作满意度的影响,同时了解开发者对其未来适配的期望、岗位替代担忧及监管看法,填补了AI与SE融合对开发者认知影响的研究空白。
2024-05-20 cs.SE
A Survey-Based Qualitative Study to Characterize Expectations of Software Developers from Five Stakeholders
背景资料:对开发人员生产力和幸福感的研究发现,对软件团队生产力的看法可能是一个社会技术问题。通过管理软件团队的期望,可以更好地处理直觉、问题和挑战。目标:我们的目标是了解软件开发人员的期望是否对软件团队中的不同利益相关者有所不同。方法:我们调查了181名专业软件开发人员,以了解他们对五个不同利益相关者的期望:(1)组织,(2)管理人员,(3)同行,(4)新员工,(5)政府和教育机构。这五个利益相关者是通过对软件开发人员进行半正式访谈确定的。我们提出开放式调查问题,并使用开放式编码分析回答。结果:我们观察到18个多方面的期望类型。虽然有些期望对利益相关者更具体,但其他期望是跨领域的。例如,开发人员期望从他们的组织获得工作利益,但期望从他们的组织、同事和新员工那里采用标准的软件工程(SE)实践。结论:在18个类别中,有三个类别与职业发展有关。这一观察结果支持了先前的研究,即幸福不能仅仅通过提供更多的钱或晋升来保证。在大多数的回应中,我们发现教育机构希望提供相关的教学,政府希望提高工作稳定性,这表明这些组织在帮助软件开发人员方面的作用越来越重要。在COVID-19大流行期间,这一观察结果尤其如此。
2021-07-20 cs.SE
Open Source Software Development Tool Installation: Challenges and Strategies For Novice Developers
本文通过分析24次实时软件安装会话,研究新手开发者安装开源软件开发工具时的挑战、应对策略与信息来源,并向工具供应商、用户和研究者提出建议。
2025-09-02 cs.SE
Design Thinking and Creativity of Co-located vs. Globally Distributed Software Developers
内容:软件设计是软件开发人员思考并做出设计决策的活动,这些决策塑造了软件产品的结构和行为。软件设计是人们最不了解的软件工程活动之一。在协作设计环境中,各种类型的距离可能会导致潜在影响软件设计方式的挑战和影响。目的:为了有助于更好地理解协作软件设计,我们研究了地理距离如何影响其设计思维和讨论的创造性。方法:为此,我们进行了一个多案例研究,探讨在协同设计环境中的协同和分布式软件开发人员的设计思维和创造力。结果如下:与位于同一地点的开发人员相比,分布式开发人员在探索问题空间上花费的时间更少,这可能与不同的社会技术挑战有关,例如缺乏意识和共识。分布式开发似乎并不影响他们活动的创造性。结论:参与协同设计的开发人员需要意识到,在分布式环境中,问题空间探索会减少。除非分布式团队采取补偿措施,否则这可能会对开发产生不利影响。至于距离对创造力的影响,我们的结果是不确定的,需要进一步的研究。
2021-08-26 cs.SE
Helping Software Developers through Offline Repository Based API Searching in Data MiningIntegrated Environment
软件开发变化如此之快。如果能够通过对开发人员的指导来加快软件开发的进程,将是非常有益的。在开发过程中给开发人员提供适当的指导和准确的建议,可以减少软件开发费用,也可以节省开发人员宝贵的时间。有很多方法可以加速软件开发过程。这可以通过代码辅助工具来完成,这些工具通过从应用程序编程接口(API)的特定存储库中推荐相关项目来帮助开发人员。一些方法是基于在线搜索,由于请求和响应延迟,因为它必须处理服务器中的超大文件,因此具有一些缺点。开发人员通常使用以前完成的资源以及库或框架来生成相关的代码片段,这些代码片段由API的引用存储库提供。开发人员发现很难选择合适的方法,因为有成千上万的方法,其中一些没有正确的文档。在本文中,我们提出了一个概念及其相应的框架,以指导开发人员从离线挖掘的存储库中建议相关的API方法。从我们所做的调查,我们可以说,我们的方法比一些现有的方法工作得更好。
2020-06-21 cs.SE
With Great Humor Comes Great Developer Engagement
本文通过分析faker、lolcommits和volkswagen三个项目及125位开发者调查,证明负责任地运用幽默能提升开发者参与度,并指出测试和文档是实践幽默的最佳位置。
2024-01-16 cs.SE
Developers Perception of Peer Code Review in Research Software Development
研究软件是由研究人员开发和/或使用的软件,跨越各种领域,以执行他们的研究。由于研究软件的复杂性,开发人员无法进行详尽的测试。因此,研究人员对软件输出的正确性信心较低。同行代码评审,一个标准的软件工程实践,已经帮助解决了其他类型软件中的这个问题。目的:同行代码评审在研究软件中比在其他类型的软件中更不普遍。此外,文献不包含任何关于在研究软件中使用同行代码评审的研究。因此,通过分析开发人员的看法,这项工作的目标是了解同行代码审查在研究软件开发的现行做法,确定与同行代码审查在研究软件的挑战和障碍,并提出方法,以改善同行代码审查在研究软件。方法:我们对研究软件开发人员进行了访谈和社区调查,以收集有关他们当前的同行代码评审实践,他们面临的困难以及他们如何解决这些困难的信息。结果:我们从访谈和调查中收到了84份独特的回复。结果表明,虽然研究软件团队审查了大量的代码,他们缺乏正式的过程,适当的组织,和足够的人来执行审查。结论:使用同行代码审查有望提高研究软件的质量,从而提高基础研究结果的可信度。此外,通过使用同行代码审查,研究软件开发人员可以生成更可读和更容易理解的代码,这将更容易维护。
2021-09-22 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
Developer Prioritization in Bug Repositories
开发人员在开发过程中构建所有软件构件。现有的工作已经研究了软件仓库中的社会行为。在最重要的软件存储库之一缺陷存储库中,开发人员创建并更新缺陷报告以支持支持软件开发和维护。然而,以前的工作没有考虑开发人员在错误存储库中的优先级。在本文中,我们解决的问题,开发人员的优先级,其目的是排名的开发人员的贡献。我们主要探索两个方面,即在错误存储库中对开发人员的优先级进行建模,并使用我们的模型辅助预测任务。首先,我们模拟如何分配的优先级的开发人员的基础上的社会网络技术。研究了三个问题,包括开发人员在产品中的排名,随着时间的推移的演变,和嘈杂的评论的容忍度。其次,我们考虑利用开发人员优先级来改进bug存储库中的三个预测任务,即,错误分类、严重性识别和重新打开的错误预测。我们实证研究我们的模型和它的应用程序在Eclipse和Mozilla的错误库的性能。结果表明,开发人员优先级可以提供开发人员优先级的知识,以帮助软件任务,特别是错误分类的任务。
2017-04-16 cs.SE
Developers' Perspectives on Software Licensing: Current Practices, Challenges, and Tools
William & Mary(威廉玛丽学院);University of Sannio(萨尼奥大学);University of Victoria(维多利亚大学)
本研究探讨开发者在软件许可合规中的实践、挑战及工具,通过调查和访谈揭示当前行业现状并提出改进建议。
2026-01-23 cs.SE
Worse Than Spam: Issues In Sampling Software Developers
背景:接触专业软件开发人员是经验软件工程研究的重要组成部分。调查研究是研究实践状况的重要方法之一。由于随机抽取专业软件开发人员进行调查是不可能的,研究人员依赖于各种抽样策略。目的:在本文中,我们报告了我们的经验与不同的抽样策略,我们采用,突出道德问题,并激励需要保持一个关键的人口统计数据收集软件开发人员,以减轻外部有效性的评估研究。方法:我们的报告是基于我们过去进行的两项研究的数据。结果:通过公共媒体联系开发人员被证明是最有效和高效的抽样策略。然而,我们不仅描述了那些有兴趣达到目标的研究人员的观点,比如大量的参与者或高响应率,而且我们还揭示了不同抽样策略的伦理含义。我们提出了一个具体的道德准则,并指出在其他研究社区的辩论开始在软件工程研究社区的讨论,抽样策略应被视为道德。
2017-07-04 cs.SE
Exploring Context-Aware Conversational Agents in Software Development
软件开发是一项复杂的工作,它依赖于涉及大量分布式信息的各种上下文因素。这种知识可包括:与技术有关的任务、软件操作环境和利益攸关方的要求。在软件开发中使用这些知识的一个主要障碍是,这些信息中的大多数是隐含的,并在开发人员的头脑中捕获(隐性)或通过大量文档传播。开发人员在开发软件时,经常需要维护这些任务的心理模型。因此,上下文很容易丢失或忘记,开发人员在完成项目时经常使用试错法。本研究旨在分析在任务执行期间使用聊天机器人支持软件开发人员是否可以改善整体开发体验。聊天机器人可以帮助开发人员基于隐式上下文信息执行不同的任务。我们提出了一个实现,以探索使用文本聊天机器人来帮助开发人员自动和主动地与软件开发项目活动,复发的可行性。
2020-06-03 cs.SE
Understanding Emotions of Developer Community Towards Software Documentation
开源项目的可用性促进了开发人员在广泛的项目上做出贡献和协作。因此,为此类开源项目做出贡献的开发人员社区也在增加。许多项目都涉及频繁更新和广泛重复使用。一个更新良好的文档有助于更好地理解软件项目,也有助于有效的贡献和重用。虽然软件文档在软件开发和维护过程中扮演着重要的角色,但它也存在着诸如不充分、不一致、可维护性差等问题,探讨开发人员对文档的看法有助于理解软件文档中普遍存在的问题背后的原因。它可以进一步帮助决定可以向开发人员社区提供的培训,以便为社会建立更可持续的项目。分析项目贡献者的情绪可以为理解开发人员的看法提供见解。因此,作为朝着这个方向迈出的第一步,我们分析了特定于软件项目文档的提交消息的情感。为此,我们考虑了GHTorrent数据集中998个GitHub项目的提交历史,并确定了10,996个提交对应于存储库的文档。此外,我们应用情感分析技术来获得对所选提交的提交消息中表达的情感类型的见解。我们观察到,大约45%的已识别提交消息表达了信任情绪。
2021-03-01 cs.SE
The Connection Between Burnout and Personality Types in Software Developers
本文探讨了五因素模型人格特质和软件开发人员职业倦怠之间的关系。本研究旨在验证其他领域的研究结果的普遍性。一项在线调查包括一个小型化的国际人格项目池问卷,用于测量五因素模型的人格特质,和Shirom-Melamed倦怠测量测量倦怠,分发到开源开发人员邮件列表,获得47个有效的答复。贝叶斯线性回归分析的结果表明,神经质和倦怠之间有很强的联系,证实了以前的工作,而其他五因素模型特征并没有增加模型的力量。值得注意的是,我们没有调查与个性有关的工作质量,也没有考虑任何其他混淆因素,例如团队合作。尽管如此,雇主可能会意识到并支持高度神经质的软件开发人员。
2019-06-22 cs.SE
Gamekins: Gamifying Software Testing in Jenkins
开发人员必须为他们的软件编写全面的测试,以发现bug并防止回归。然而,编写测试并不是每个开发人员最喜欢的职业,如果缺乏动机导致缺乏测试,那么这可能会产生可怕的后果,例如程序质量差甚至项目失败。本文介绍了Gamekins,一个使用游戏化来激励开发人员编写更多更好的测试的工具。Gamekins集成到Jenkins持续集成平台中,游戏元素基于对源代码存储库的提交:开发人员可以通过完成Gamekins提出的测试挑战和任务获得积分,与其他开发人员或开发团队在排行榜上竞争,并因其测试相关成就而获得奖励。
2022-02-14 cs.SE
Chat activity is a better predictor than chat sentiment on software developers productivity
最近的研究表明,软件开发人员的积极情绪对软件开发人员的生产力有积极的影响。在本文中,我们调查了两个数据源:开发人员聊天消息(来自Slack和Hipchat)和单个位于同一地点的敏捷团队超过200个工作日的源代码提交。我们的回归分析表明,聊天消息的数量是最好的预测因素,可以预测提交数量和代码行数的生产力,$R^2$分别为0.33和0.27。然后,我们添加情感分析变量,直到我们模型的AIC不再改善,并获得$R^2$值0.37(提交)和0.30(代码行)。因此,分析聊天情绪可以单独提高聊天活动的生产力预测,但差异并不大。这项工作支持了情绪状态和生产力在软件开发中相互联系的观点。我们发现,三个积极的情绪指标,但令人惊讶的是,也有一个消极的情绪指标与更高的生产力。
2020-04-21 cs.SE
Raising Secure Coding Awareness for Software Developers in the Industry
许多工业IT安全标准和政策要求在软件开发过程中使用安全编码方法。这意味着两个不同的方面:第一,安全编码必须基于一组安全编码指南,第二,软件开发人员必须了解这些安全编码实践。一方面,安全编码指南看起来有点像魔法:虽然存在被广泛接受的抽象指南,但用于不同程序设计语言的低级安全编码指南却很少。另一方面,一旦选择了一套安全编码指南,就需要一种好的方法来让应该使用它们的人(即软件开发人员)了解它们。出于行业标准的安全编码要求和全球行业倡议“信任宪章”对IT安全训练人员的要求,本文概述了如何选择安全编码指南和如何提高软件开发人员使用严肃游戏进行安全编码的意识等重要研究问题。
2021-02-20 cs.SE
An Empirical Comparison of Developer Retention in the RubyGems and npm Software Ecosystems
软件生态系统可以被看作是由技术组件(软件包)和维护技术组件的社会组件(开发人员社区)组成的社会技术网络。随着时间的推移,生态系统通过社会技术变化而演变,这些变化可能会极大地影响生态系统的可持续性。像开发人员流动这样的社会变化可能会导致技术退化。这激发了识别导致开发人员放弃的那些因素的需要,以便自动化识别具有高放弃风险的开发人员的过程。本文比较了两个软件包生态系统RubyGems和npm的这些因素。我们分析了他们在GitHub上托管的软件包的演变,考虑了提交方面的开发活动,以及与其他开发人员在提交、问题或拉取请求相关的评论方面的社交互动。我们分析了RubyGems和npm分别超过3万和6万开发人员的社会技术活动。我们使用生存分析来确定哪些因素与较低的生存概率相一致。我们的研究结果表明,开发人员放弃生态系统的可能性更高:不与其他开发人员进行讨论;没有很强的社交和技术活动强度;沟通或提交频率较低;并且长时间不参与技术和社交活动。这些观察结果可用于自动识别放弃生态系统的可能性很高的开发人员,从而降低与知识损失相关的风险。
2017-08-08 cs.SE
Influence of Communication Among Shared Developers on the Productivity of Open Source Software Projects
许多软件开发人员依赖开源软件来开发他们的应用程序和编写他们的源代码。衡量一个独立项目的整体生产力对许多技术公司来说仍然是一个悬而未决的问题。在这个项目中,我们致力于弥合分析的差距,这是预测基于生产力的系统的最重要的功能。我们选择通过GitHub的应用程序编程接口(API)从GitHub收集数据,并分析我们收集的数据,以了解解决问题的平均时间与我们收集的功能之间的关系。由于我们收集的大多数数据都不是高斯数据,因此我们必须在统计建模之前使用离群值检测和应用转换来预处理数据。我们观察到的最佳模型是5次多项式回归。总的来说,我们注意到软件开发有很多方面可以提高开发人员的生产力。
2022-03-25 cs.SE
"STILL AROUND": Experiences and Survival Strategies of Veteran Women Software Developers
本研究通过14次访谈,探究资深女性软件开发者面对年龄与性别双重歧视的经历与生存策略,发现其独特策略及价值,建议组织善加利用。
2023-05-10 cs.SE
Two Sides of the Same Coin: Software Developers' Perceptions of Task Switching and Task Interruption
在不断发展的软件开发世界中,在任务之间来回切换已经成为常态。虽然任务切换通常可以让开发人员有效地执行任务,并通过灵活的途径提高创造力,但频繁的任务切换也会带来一些后果。对于像软件开发这样的高动力任务来说,“心流”,即专注的高生产力状态,是至关重要的。每一次转换都会分散开发人员的心流,要求他们转换精神状态,并需要额外的沉浸时间才能回到心流中。然而,由于任务切换导致的时间碎片而浪费的时间在很大程度上是不可见的,并且不被开发人员和管理人员注意到。我们对141名软件开发人员进行了一项调查,调查他们对任务切换和任务中断之间差异的看法,并探讨他们是否认为任务切换和中断一样具有破坏性。我们发现,从业者认为任务切换(计划或计划外)和随机中断的破坏性之间有相当大的相似性。高水平的认知成本和低性能是我们的受访者所阐述的任务切换的主要后果。我们的研究结果拓宽了软件从业者之间的流动变化的特点和类别的破坏性开关,以及日常站立会议所造成的中断的后果的理解。
2018-05-15 cs.SE
Examining Software Developers' Needs for Privacy Enforcing Techniques: A survey
University of Cyprus(塞浦路斯大学)
本文通过调查68名开发者,探讨了软件开发者在隐私法律合规中对自动化工具的需求及影响因素,指出隐私促进者的重要性。
2025-12-15 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
Transforming Software Development with Generative AI: Empirical Insights on Collaboration and Workflow
本文通过访谈13名软件相关从业者,实证研究生成式人工智能对软件开发工作流和团队协作的影响,发现ChatGPT带来范式转变,提升效率与积极性,但也改变了敏捷团队的学习循环。
2024-02-12 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
To the Attention of Mobile Software Developers: Guess What, Test your App!
软件测试是软件开发生命周期中的一个重要阶段,因为它有助于在软件系统交付给最终用户之前识别软件系统中的错误。有许多关于开发人员如何测试通用软件应用程序的研究。然而,移动软件应用程序的特性将移动应用程序与通用系统(例如,桌面、独立应用程序、Web服务)。本文研究了移动软件开发人员在测试方面的工作习惯和挑战。我们使用1000个Android应用程序进行了详尽的研究,其中一个关键发现表明,移动应用程序仍然以非常特殊的方式进行测试,如果进行测试的话。然而,我们表明,与其他类型的软件一样,测试提高了应用程序的质量(在用户评分和代码问题数量中得到证明)。此外,我们发现有证据表明,在吸引社区为移动开源软件做出贡献时,测试至关重要。我们讨论的原因和潜在的方向,以解决我们的研究结果。我们研究的另一个相关发现是,持续集成和持续部署(CI/CD)管道在移动应用程序世界中很少见(只有26%的应用程序是在使用CI/CD的项目中开发的)-我们认为主要原因之一是由于缺乏详尽和自动测试。
2019-02-14 cs.SE
Is Secure Coding Education in the Industry Needed? An Investigation Through a Large Scale Survey
美国国土安全部估计,90%的软件漏洞可以追溯到设计和软件编码的缺陷。仅在工业控制系统中,这些漏洞的财务影响就超过3.8亿美元。由于软件开发人员编写软件,他们也会将这些漏洞引入源代码。但是,存在安全编码指南以防止软件开发人员编写易受攻击的代码。本研究的重点是人的因素,软件开发人员和安全编码,特别是安全编码指南。我们想了解软件开发人员对安全编码指南的意识和遵从性,以及为什么他们不遵从或不知道。我们的研究结果基于对安全编码指南的大规模调查,有190多名工业软件开发人员参与。我们的工作的主要贡献激励需要教育工业软件开发人员的安全编码准则,它给出了一个列表的15个可操作的项目,以供业界从业者使用。我们还公开提供原始数据以供进一步研究。
2021-02-10 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
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
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
Enablers and Barriers of Empathy in Software Developer and User Interaction: A Mixed Methods Case Study
本文通过混合方法案例研究考察软件开发人员与用户互动中的同理心实践,识别其触发条件、促进因素与障碍,并提出克服策略及面向从业者和研究者的建议。
2024-01-17 cs.SE
Developer Attitudes and Practices Towards Optimizing Software Energy Consumption
Leipzig University(莱比锡大学);ScaDS.AI Dresden/Leipzig, Leipzig University(德累斯顿/莱比锡 ScaDS.AI,莱比锡大学);Saarland Informatics Campus, Saarland University(萨尔兰信息学校园,萨尔兰大学)
该研究通过对134名开发者的调查,揭示了软件能耗在开发中未受足够重视的现状、存在的盲区及阻碍,提出了制度化方法、扩展相关研究教育、开发实用工具等建议。
2026-09-01 cs.SE
Critical Success Factors to Improve the Game Development Process from a Developers Perspective
软件游戏开发行业的增长是巨大的,并且日益重要。这种增长给游戏开发社区带来了巨大的压力和许多问题和挑战。游戏开发是一个复杂的过程,一个重要的游戏开发选择是考虑开发人员的角度,通过改进游戏开发过程来生产高质量的软件游戏。本研究的目的是提供一个更好的理解的开发者尺寸作为一个因素,在软件游戏的成功。它主要侧重于对软件游戏开发过程中的关键开发人员因素的影响,并最终对所产生的游戏质量的实证调查。一项定量调查的开发和进行,以确定关键的开发人员因素,增强游戏开发过程。在本研究中,开发的调查被用来测试研究模型和假设。研究结果表明,游戏开发组织必须处理多个关键因素,以保持竞争力,并处理软件游戏行业的高压。本文的主要贡献是实证研究的关键开发人员的因素对游戏开发过程的影响。
2018-01-12 cs.SE
Improving Software Developer's Competence: Is the Personal Software Process Working?
新兴的敏捷软件开发方法是软件行业使用的以人为本的开发方法。个人软件过程(PSP)是一种公认的提高单个软件工程师能力的方法。五个原始假设的PSP个人性能的影响进行了测试。数据是从58名计算机科学学生在三个大学课程的硕士水平,这是在芬兰和丹麦的两个不同的教育机构举行。统计数据处理表明,PSP的使用并没有提高尺寸和时间估计技能,但生产率并没有下降,最终的产品质量得到改善。这些研究结果的影响进行了简要讨论。
2013-11-01 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
A Methodology for Analyzing Uptake of Software Technologies Among Developers
动机:什么属性组合驱动采用特定软件技术的问题对开发人员至关重要。它决定了哪些技术得到社区的广泛支持,哪些技术可能被放弃,从而使开发人员的投资变得毫无价值。目标和背景:我们对开发人员采用软件技术进行建模,并提供与替代技术之间更好的可见性相关的特定技术属性的见解。方法:我们利用社会传染理论和统计建模来识别,定义和测试可能影响软件采用的经验措施。更具体地说,我们利用大量的开源版本控制存储库来构建一个特定的R语言源代码文件集的软件依赖链。我们制定逻辑回归模型,调查技术属性的组合,推动采用竞争的数据框架实现在R语言:整洁和data.table。我们量化了可能影响采用的关键项目属性以及做出选择的开发人员的特征。结果如下:我们发现,对提出的问题的快速响应,大量的整体部署,以及大量的高质量StackExchange问题与更高的采用率相关。决策者倾向于采用在技术依赖网络和作者协作网络中更接近他们的技术,同时满足他们的性能需求。今后的工作:我们希望我们的方法包括社会传染,捕获理性和非理性的偏好,并从大量的版本控制数据中阐明关键措施,为提高可见性,推动更明智的决策,以及生产更可持续和广泛采用的软件提供一条通用路径
2019-09-04 cs.SE
Guidelines for Cultivating a Sense of Belonging to Reduce Developer Burnout
Colorado State University(科罗拉多州立大学);Oregon State University(俄勒冈州立大学);Northern Arizona University(北亚利桑那大学)
本文基于软件开发团队中归属感的研究,提出培养归属感的实践指南,以降低开发者倦怠,通过提升信任、接纳和心理安全等要素促进开发者福祉。
2026-05-07 cs.SE
At What Cost? Software Developers' Well-Being in the Age of GenAI
Queen’s University(女王大学);The University of Western Australia(西澳大学);University of Otago(奥塔哥大学);Uppsala University(乌普萨拉大学)
本文探讨了生成人工智能时代软件开发者福祉问题,指出过度关注生产力和性能可能忽视开发者身心健康,提出理论框架以平衡绩效指标与人类体验和社会可持续性。
2026-05-21 cs.SE
Dynamics of Open-Source Software Developer's Commit Behavior: An Empirical Investigation of Subversion
提交是开源软件版本控制的一个重要操作。最近的研究一直在探索这种操作的统计规律,但很少有这些论文对提交间隔进行实证研究(即,两个连续提交之间的等待时间)。本文从提交间隔分布的角度研究了软件开发人员的集体和个人提交行为,发现1)所分析的项目生命周期和每个版本的项目级提交间隔数据集大致遵循幂律分布; 2)类文件的生命周期和版本级集体提交间隔也可以最好地拟合幂律分布。这些发现揭示了开放源码软件项目的一些一般(集体)协作开发模式,例如,在两次连续提交到中央存储库之间的大多数等待时间都很短,但只有少数提交经历了长时间的等待。然后,我们发现的OSS研究的影响进行了概述,这可以提供一个洞察到更好地理解OSS开发过程中基于软件开发人员的历史提交行为。
2013-11-23 cs.SE
AI Policies: Help or Hindrance? A Software Developer's Perspective
Monash University(莫纳什大学);Singapore Management University(新加坡管理大学)
本研究通过19次开发者访谈,探讨AI政策对软件开发者的帮助与阻碍,并提出以开发者为中心的政策引入方法,以支持管理决策。
2026-09-16 cs.AI cs.SE
Improving software team collaboration with Synchronized Software Development
有效的协作是团队开发的软件项目成功的关键因素。在这项工作中,我们建议的方法同步软件开发(SSD),这促进了一个新的机制,一般的协作,特别是代码同步。在SSD中,一个开发人员所做的代码更改会自动传播给其他开发人员,只要他们保持代码没有编译错误。引入编译错误的更改在错误被修复之前不会传播。此外,其他开发人员被限制同时编辑这些更改中涉及的实体。然而,在这种状态下,开发人员可以自由地修改其余的实体。我们的方法的新颖之处在于,它积极地为开发人员提供最新的无错误版本的源代码,防止由于团队成员的并发更改而可能出现的冲突和合并。SSD还允许对多个开发人员引入的新代码进行更透明、几乎实时的感知。我们构建了CSI(代码同步智能),这是一个展示SSD关键功能的原型。
2015-04-28 cs.SE
Understanding the Motivations, Challenges and Needs of Blockchain Software Developers: A Survey
区块链技术在智能合约、物联网(IoT)、土地登记、供应链管理、存储医疗数据和身份管理等各个领域都有潜在的应用。虽然Github目前拥有超过6000个活跃的区块链软件(BCS)项目,但很少有软件工程研究调查这些项目及其贡献者。尽管BCS项目的数量正在迅速增长,但BCS开发人员的动机、挑战和需求仍然是一个谜。因此,本研究的主要目的是了解BCS开发人员的动机,挑战和需求,并分析BCS和非BCS开发之间的差异。为了实现这个目标,我们向1,604名活跃的BCS开发人员发送了一份在线调查,这些开发人员是通过挖掘145个流行BCS项目的Github存储库确定的。该调查收到了156份符合我们分析标准的回复。研究结果表明,大多数BCS开发人员在非BCS开发方面经验丰富,主要动机是建立一个分散的金融体系的意识形态。虽然大部分BCS项目本质上是开源软件(OSS)项目,但超过93%的受访者认为BCS开发与非BCS开发有些不同,因为BCS项目比大多数非BCS项目更强调安全性和可靠性。其他差异包括:缺陷成本较高、分散和恶劣的环境、技术复杂性以及软件发布后难以升级。针对非BCS开发而调整的软件开发工具不适合BCS,生态系统需要一系列新的或改进的工具,例如:用于BCS开发任务的定制IDE,智能合约的调试器,测试支持,易于部署的模拟器和BCS领域特定的设计符号。
2019-03-20 cs.SE
Recommending More Efficient Workflows to Software Developers
现有的推荐系统可以通过推荐新的编程工具(例如重构工具或程序导航工具)来帮助开发人员提高他们的软件开发能力。然而,仅仅孤立地推荐工具本身并不能让开发人员成功地完成他们的任务。在本文中,我将介绍一个新的推荐系统,它可以向开发人员推荐工作流或工具序列。通过学习更有效的工作流程,该系统可以使软件开发人员更有效率。
2021-02-06 cs.IR cs.SE
Towards a Science of Developer eXperience (DevX)
本文倡导将开发者体验确立为独立研究领域,指出其深刻影响开发活动与生产力,并梳理了支持该学科的基本原理、跨学科交叉点及未来核心科学挑战,呼吁研究界采取行动推动以人为本的软件工程。
2025-06-30 cs.SE
Using CognitIDE to Capture Developers' Cognitive Load via Physiological Activity During Everyday Software Development Tasks
本文提出使用基于 IntelliJ 的插件 CognitIDE,在开发者执行日常软件开发任务时收集、映射并可视化其生理活动数据,以无干扰地捕获认知负荷,实验证明该插件能有效支持长达一小时的数据收集并反映任务期间的认知负荷变化。
2025-03-05 cs.SE
Collaborative Design and Planning of Software Architecture Changes via Software City Visualization
本文提出一种基于软件城市可视化的协同方法,支持开发人员共同设计和规划软件架构变更,以补充传统图表和源代码讨论方式。
2024-08-15 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
Towards a Theory of Software Development Expertise
软件开发包括各种任务,如实现新功能,分析需求和修复错误。成为这些任务的专家需要一定的技能,知识和经验。一些研究调查了软件开发专业知识的各个方面,但缺少的是一个全面的理论。我们提出了第一个概念理论的软件开发的专业知识,是基于数据的混合方法的调查与335软件开发人员和文献的专业知识和专家的表现。我们的理论目前专注于编程,但已经为研究人员,开发人员和雇主提供了有价值的见解。该理论描述了软件开发专业知识的重要属性,以及哪些因素促进或阻碍其形成,包括开发人员的绩效如何随着时间的推移而下降。此外,我们的定量结果表明,开发人员的专业知识自我评估是上下文相关的,经验不一定与专业知识。
2018-11-04 cs.SE