Visualizing source code in 3D Maya software
本文通过对三维形体的代码总结,为程序员阐明了三维形体的概念,明确了程序员和开发人员、软件工程领域的学者和研究人员以及具有代表性的研究人员对三维形体的认识。通过一个基于Maya脚本的三维绘图程序,它是基于绘图形状和三维立体显示的每一部分代码,例如类、方法、连贯性和同质性,在这些绘图程序中显示清楚和有用。
2016-03-01 cs.SE
On the Relationship Between Modularity and Stability in Software Packages
模块化和编写良好的软件是程序员努力实现的理想。然而,现实世界的项目约束限制了程序员可以产生的可重用和模块化代码的数量。存在许多使用基于图的测量来自动重构代码并提高代码库的质量和模块化的技术。虽然这些措施在图形域中工作,但它们对软件稳定性的影响尚不确定。在这项工作中,我们提供了数学证明,模块化措施确实有利于软件的稳定性。
2018-12-03 cs.SE
From Organizations to Individuals: Psychoactive Substance Use By Professional Programmers
本研究通过对26名在职使用精神活性物质的专业程序员访谈做主题分析,首次探究软件行业该类物质使用的个体动机、影响、社会化效应及组织政策启示,揭示其对软件开发各层面的渗透。
2023-05-01 cs.SE
The Impact of AI on Developer Productivity: Evidence from GitHub Copilot
生成式人工智能工具有望提高人类生产力。本文介绍了使用GitHub Copilot(一个AI配对程序员)进行的受控实验的结果。被招募的软件开发人员被要求尽快用JavaScript实现HTTP服务器。使用AI配对编程器的治疗组比对照组快55.8%完成任务。观察到的异质效应显示,AI配对程序员有望帮助人们过渡到软件开发职业。
2023-02-13 cs.SE
CyberSecurity Challenges for Software Developer Awareness Training in Industrial Environments
对网络安全主题的认识有助于软件开发人员生成安全代码。这种意识在工业环境中对于关键基础设施中的产品和服务尤其重要。在这项工作中,我们将讨论如何提高软件开发人员对安全编码的认识。我们提出了“网络安全挑战”,这是一个严肃的游戏,旨在工业环境中使用,并满足软件开发人员的需求。我们的工作总结了在工业环境中进行这些网络安全挑战所获得的经验。主要贡献是网络安全挑战活动的设计,对感知收益的分析,以及希望设计或改进这些游戏的从业者的实用建议。
2021-02-10 cs.SE
Hashing It Out: A Survey of Programmers' Cannabis Usage, Perception, and Motivation
大麻是最常见的精神改变物质之一。它被用于医疗和娱乐,并陷入了复杂和不断变化的法律环境。有证据表明,一些软件开发人员可能会使用大麻来帮助完成一些编程任务。与此同时,禁毒政策和测试在许多软件工程环境中仍然很常见,有时会导致某些工作的招聘短缺。尽管存在这些联系,但实际上对方案拟订时使用大麻的流行率和动机知之甚少。在本文中,我们报告了程序员使用大麻的第一次大规模调查的结果。我们报告了关于803名开发人员(包括450名全职程序员)大麻使用率,感知和动机的调查结果。例如,我们发现一些程序员在编程时经常使用大麻:我们的样本中有35%的人在使用大麻时尝试过编程,18%的人目前至少每月一次。此外,这种大麻的使用主要是出于对某些软件开发技能的增强(例如头脑风暴或进入编程区),而不是医学原因(例如缓解疼痛)。最后,我们发现,尽管大麻的认知和可见性存在差异,但编程员工,经理和学生在编程时使用大麻的比率相似。我们的研究结果对规划工作药物政策和激励未来的研究大麻使用,而编程的影响。
2021-12-17 cs.SE
Hidden Figures in Software Engineering: A Replication Study Exploring Undergraduate Software Students' Awareness of Distinguished Scientists from Underrepresented Groups
本研究通过全球复制调查发现软件工程本科生对代表性不足群体的杰出科学家认知有限,强调需提升多样性认知并开发包容性教育实践。
2024-12-20 cs.SE
Do Programmers Work at Night or During the Weekend?
不正常的工作时间会降低工作健康,总体福祉和生产力,独立于职业。为了通知未来的方法自动压力和过载检测,本文建立了经验收集的措施,软件工程师的工作模式。为了这个目标,我们进行了第一次大规模的研究软件工程师的工作时间通过调查的时间戳的提交活动的86个大型开源软件项目,包括雇用和志愿者开发人员。我们发现,三分之二的软件工程师主要遵循典型的办公时间,经验上确定为10小时到18小时,并且通常不在晚上和周末工作。项目和个人之间存在很大差异。令人惊讶的是,我们发现没有支持项目成熟会减少不正常的工作时间。在Firefox的案例研究中,我们发现雇佣的开发人员在办公时间工作更多,而资历,无论是提交数量还是工作状态,都不会影响工作时间。我们的结论是,使用工作时间或工作产品的时间戳进行压力检测需要在个人层面建立基线。
2018-02-14 cs.SE
AI Act for the Working Programmer
Saarland University(萨尔大学);TU Dresden University of Technology(德累斯顿工业大学)
本文面向软件领域的在职程序员,旨在帮助其理解并导航欧洲《人工智能法案》的113条条款、180条叙文和13个附件,以应对该法案对AI开发与使用提出的法律要求。
2024-07-23 cs.AI cs.CY cs.SE
CyberSecurity Challenges: Serious Games for Awareness Training in Industrial Environments
了解网络安全主题,例如,与安全编码指南相关,使软件开发人员能够编写安全代码。这种意识在工业环境中对于关键基础设施中的产品和服务至关重要。在这项工作中,我们介绍和讨论了一个新的严重的游戏,专为软件开发人员在行业中。这个游戏解决了软件开发人员的需求,并被证明是非常适合提高安全编码意识的软件开发人员在行业中。我们的工作成果来自作者在行业中进行十多项网络安全挑战时获得的经验。所提出的游戏设计,这是被软件开发人员所接受的,是一种新颖的替代传统的课堂培训。我们希望通过在早期生产阶段改善产品的网络安全,对行业产生积极影响。
2021-02-20 cs.SE
Raising AI Ethics Awareness through an AI Ethics Quiz for Software Practitioners
本文开发了AI Ethics Quiz工具,通过29名软件从业者参与的互动工作坊验证其能显著提升AI伦理意识与理解,并为软件公司采纳类似举措提供建议。
2024-09-03 cs.SE
A tool for visualizing the execution of programs and stack traces especially suited for novice programmers
软件工程教育和培训存在由于缺乏关于程序执行过程的基本知识而引起的障碍。这篇文章致力于帮助可视化过程的特殊工具的开发。我们分析了现有的工具,并提出了一种新的方法来堆栈和堆可视化。该解决方案能够很好地克服现有工具和套件的主要缺点,用于分析Java和C/C++编写的程序。
2017-11-30 cs.SE
Extracting Traceability Information from C# Projects
软件生命周期的维护部分是大多数软件公司资源的主要消耗。从程序员到维护人员的过渡是高风险的,因为通常维护人员必须从头开始学习系统,然后才能开始适当地修改它。介绍了一种从C#软件项目源代码中自动提取重要可追溯性信息的方法。使用这种可追溯性信息,维护人员(和程序员)能够更好地评估他们的行为对整个项目的影响。
2015-12-01 cs.SE
Code Comments for Quantum Software Development Kits: An Empirical Study on Qiskit
Beihang University(北京航空航天大学)
本文通过Qiskit提出首个量子计算代码注释数据集CC4Q,分析了量子软件注释的结构、开发者意图及量子主题,揭示了经典与量子软件注释的关键差异。
2025-11-30 cs.SE
Navigating Complexity in Software Engineering: A Prototype for Comparing GPT-n Solutions
导航的非平凡的软件工程任务的不同解决方案空间需要技术知识,解决问题的技能和创造力的组合。由于有多种可能的解决方案,每种方案都有自己的权衡,因此程序员必须评估各种选项并选择最适合项目特定要求和约束的选项。无论是从一系列库中进行选择,权衡不同架构和设计解决方案的利弊,还是找到满足用户需求的独特方法,创造性思维的能力对于做出明智的决策至关重要,这将导致高效和有效的软件。然而,目前面向程序员的聊天机器人工具的界面,如OpenAI的ChatGPT或GitHub Copilot,都是针对单一解决方案进行优化的,即使是复杂的查询。虽然可以请求其他解决方案,但默认情况下不会显示这些解决方案,并且无法直观地访问。在本文中,我们提出了我们的工作在进行中的原型“GPTCompare”,它允许程序员直观地比较多个源代码的解决方案GPT-n模型生成的相同的编程相关的查询突出其相似性和差异。
2023-01-28 cs.HC cs.SE
Awareness of Secure Coding Guidelines in the Industry -- A first data analysis
软件需要安全,特别是在部署到关键基础设施时。安全编码指南捕获工业软件工程中的实践,以确保代码的安全性。本研究旨在评估工业软件工程中安全编码的意识水平,软件开发人员发现软件代码中的弱点的技能,避免它们,以及组织支持坚持编码指南。该方法借鉴了完善的理论,政策的遵从性,中立化理论,和安全相关的压力和作者的多年经验,在工业软件工程和经验教训,从培训安全编码的行业。本文介绍了在线调查的问卷设计和初步分析的数据从试点研究。
2021-01-06 cs.SE
Raising Secure Coding Awareness for Software Developers in the Industry
许多工业IT安全标准和政策要求在软件开发过程中使用安全编码方法。这意味着两个不同的方面:第一,安全编码必须基于一组安全编码指南,第二,软件开发人员必须了解这些安全编码实践。一方面,安全编码指南看起来有点像魔法:虽然存在被广泛接受的抽象指南,但用于不同程序设计语言的低级安全编码指南却很少。另一方面,一旦选择了一套安全编码指南,就需要一种好的方法来让应该使用它们的人(即软件开发人员)了解它们。出于行业标准的安全编码要求和全球行业倡议“信任宪章”对IT安全训练人员的要求,本文概述了如何选择安全编码指南和如何提高软件开发人员使用严肃游戏进行安全编码的意识等重要研究问题。
2021-02-20 cs.SE
STEAM: Simulating the InTeractive BEhavior of ProgrAMmers for Automatic Bug Fixing
本文提出名为STEAM的分阶段框架,通过模拟多个程序员在缺陷报告、诊断、补丁生成与验证四个阶段的交互协作行为,利用ChatGPT显著提升了大型语言模型的自动缺陷修复能力,达到了最先进的性能水平。
2023-08-28 cs.SE
Software Sustainability: A Design Case for Achieving Sustainable Pension Services in Developing Country
对高效和可持续的软件的需求,以改善业务和实现目标,不能过分强调。如果不采用可持续的软件设计实践,就无法实现可持续的数字服务和产品交付。尽管目前对软件可持续性的研究取得了进展,但发展中国家的大多数软件开发从业人员不清楚什么是软件可持续性,而且往往缺乏对如何在其特定行业领域实施软件可持续性的适当理解。软件工程的研究工作集中在促进发达国家对软件可持续性的认识,而较少的努力被用于研究发展中国家对软件可持续性的认识。这影响了大多数发展中国家对可持续软件设计做法的认识水平。本研究调查了尼日利亚养老金行业的软件可持续性意识及其从业人员面临的挑战。软件开发从业人员参与并接受了采访。我们提供了一些方法来缓解已确定的挑战,并提高养老金行业对软件可持续性的认识。我们的研究结果进一步表明,与正确的可持续发展知识,在养老金行业的软件从业人员有潜力支持他们的组织的可持续发展文化,提高产品设计和服务交付的效率。
2022-09-23 cs.CY cs.SE
PATCH: Empowering Large Language Model with Programmer-Intent Guidance and Collaborative-Behavior Simulation for Automatic Bug Fixing
针对现有大语言模型(LLMs)自动漏洞修复方法忽视协作性、仅以漏洞代码为输入的局限,提出分阶段框架PATCH,通过补充依赖上下文与意图信息、模拟程序员协作的四阶段任务流程,在BFP基准上性能优于现有LLMs。
2025-02-16 cs.SE
Automated Program Analysis for Novice Programmers
本文介绍了如何调整静态代码分析器,以帮助新手程序员。当前的分析器是为了向构建新应用程序或系统的有经验的程序员提供反馈而构建的。这些工具的反馈类型和分析类型侧重于与该上下文相关的错误,并有助于调试系统。在教新手程序员时,这种建议通常不是特别有用。相反,使用这些技术来发现学生对重要编程概念的理解中的问题会更有用。本文首先探讨了静态分析器在哪些方面支持程序设计的学习和教学,并在现有的静态分析技术的基础上加以实现。它对静态分析器PMD进行了扩展,以便出现反馈消息,这对于新手程序员来说更容易理解。为了回答这个问题,如果这些技术能够找到的概念错误,是新手程序员的特点,我们运行了一些学生的项目,并比较这些结果与公开的成熟软件项目。
2017-09-30 cs.SE
EyeDoc: Documentation Navigation with Eye Tracking
我们演示了EyeDoc,一个用眼睛导航软件文档的工具。在编程时,开发人员通常会打开许多窗口,例如IDE,第三方实用程序的控制台和GUI,正在开发的应用程序以及用于导航文档的Web浏览器。几项研究表明,在这些不同的任务之间导航会带来很小的精神负荷,随着时间的推移,会导致生产力的显着下降。这个问题的一个解决方案是用更大的显示器和更高的分辨率来增加“屏幕空间”,以便一次可以向程序员呈现更多的信息。但这种解决方案也有局限性:软件的复杂性和规模也在迅速增加。在本文中,我们使用眼动跟踪技术来构建一个用于导航文档的工具。程序员使用EyeDoc所需要做的就是查看包含文档的监视器。该工具检测眼睛何时扫视文档的不同组件,并允许程序员通过凝视和眨眼导航到这些组件。程序员不需要移动他或她的手,或者冒着丢失桌面上其他任务的上下文的风险。我们构建EyeDoc作为研究原型和概念验证,使用低成本的消费者眼动跟踪硬件和我们自己的软件,作为对JavaSync的JavaScript补充。本文介绍了该工具的设计,使用和战略的评价和未来的发展。
2019-02-28 cs.SE
Alleviating Merge Conflicts with Fine-grained Visual Awareness
软件团队成员在处理相同代码时所产生的合并冲突可能需要花费很大的代价才能解决,并且会对生产力产生负面影响。在这项工作中,我们建议细粒度的合并冲突意识,软件团队成员的潜在合并冲突通知通过图形装饰的相关语义元素,在近实时的方法。这种方法的新颖之处在于,它允许软件开发人员精确定位冲突中的元素,例如方法的主体、参数、返回值等,从而在冲突发生后不久在语义级别上促进关于冲突更改的通信。我们还对我们的方法进行了初步的定性评估,我们在本文中报告了评估结果。
2015-08-08 cs.SE
The Software Documentor Mindset
本研究通过访谈26名志愿文档贡献者,识别出文档贡献过程中的16项考量与五种思维模式,构建了分析框架,可为信息检索与文档创建工具提供参考。
2024-12-12 cs.SE
Identifying Flakiness in Quantum Programs
本文通过分析 14 个量子软件仓库,识别出 12 个仓库中的 flaky tests,归纳其成因与修复方法,并指出量子程序员尚未充分采用现有应对措施,为研究和实践提供定量依据。
2023-07-07 cs.SE
Exploring the Security Awareness of the Python and JavaScript Open Source Communities
软件安全性无疑是当今软件工程的一个主要关注点。虽然人们对安全问题的认识水平往往很高,但实际经验表明,预防行动和对可能出现的问题的反应在现实中并不总是得到适当处理。通过分析开源社区中的大量提交,我们可以对开发人员缓解的漏洞进行分类,并研究其分布,解决时间等,以学习和改进安全管理流程和实践。在软件遗产图数据集的帮助下,我们调查了两种最流行的脚本语言- Python和JavaScript -从公共存储库收集的项目的提交,并确定了那些减轻代码中某个漏洞的提交(即漏洞解决提交)。一方面,我们确定了提交消息中提到的漏洞类型(根据CWE组),并比较了两个社区中的漏洞数量。另一方面,我们检查了漏洞发布日期与提交中首次引用漏洞之间的平均时间。我们发现,两个社区缓解的漏洞类型有很大的交集,但最普遍的漏洞是特定于语言的。此外,无论是JavaScript还是Python社区都不会对出现的安全漏洞做出快速反应,只有一些CWE组例外。
2020-06-24 cs.PL cs.SE
Investigating the Awareness of Applying the Important Web Application Development and Measurement Practices in Small Software Firms
本文旨在讨论约旦小型软件公司目前的发展和测量实践的试点研究和分析。之所以这样做,是因为大多数开发人员在构建Web应用程序时没有使用任何特定的开发方法,也不知道如何在过程中集成合适的度量,以改善和减少开发生存周期的缺陷、时间和返工。此外,这项试点研究的目标是首先确定约旦小型软件公司的实际特点。其次,调查当前的开发和测量实践。第三,研究小型软件公司对构建Web应用程序的新开发方法的需求。因此,在约旦小型软件公司进行了试点调查。采用描述性统计分析,根据其重要性对开发和测量方法进行排序。本文介绍了试点调查的数据、分析和发现。这些实际调查结果将有助于建立新的方法,开发Web应用程序的小型软件公司考虑到如何将合适的测量程序集成到整个开发过程中,也将提供有用的信息,那些谁是在同一领域的研究。
2012-01-10 cs.SE
"Can you feel the vibes?": An exploration of novice programmer engagement with vibe coding
University of Southhampton(南安普顿大学);Eindhoven University of Technology, The Netherlands(埃因霍温理工大学);Carnegie Mellon University, USA(卡内基梅隆大学)
本文通过黑客松活动探讨新手程序员在氛围编码中的参与情况,发现其在快速原型设计和跨学科协作中的潜力,但也存在过早收敛和代码质量不均的问题。
2025-12-02 cs.HC cs.SE
Closed source versus open source in a model of software bug dynamics
我们介绍了一个简单的微观描述的软件错误动态用户,程序员和维护人员通过一个给定的程序进行交互,特别强调错误的创建,检测和修复。当程序从零开始编写时,开发的第一阶段的特点是错误数量快速下降,然后是一个缓慢的阶段,大多数错误已经被修复,因此很难找到。立即发布bug修复可以加快调试过程,这也是bazaar开源方法论的实质。我们提供了一个数学分析,支持我们的数值模拟。最后,我们将我们的模型应用于Linux的历史,并确定其程序员的质量存在一个下限。
2005-09-05 cond-mat.stat-mech cs.SE
Developers' Perception: Fixed Bugs Often Overlooked as Quality Contributions
本研究通过调查102名程序员,发现仅三分之一认为修复缺陷数量体现质量,揭示程序员常忽视缺陷报告的价值,强调测试与缺陷报告对软件质量的重要性。
2024-03-16 cs.SE
Raising Security Awareness using Cybersecurity Challenges in Embedded Programming Courses
安全漏洞是代码中的错误,当被利用时,可能导致严重的软件漏洞。这些漏洞可能允许攻击者接管应用程序并窃取信息。解决这一问题的方法之一是通过提高认识的培训。Sifu平台是在行业中为行业开发的,旨在提高软件开发人员对安全编码的认识。本文扩展了Sifu平台的三个挑战,专门解决嵌入式编程课程,并介绍了如何实现这些挑战,同时还评估了这些挑战的有用性,以提高安全意识的学术环境。我们的工作提出了软件漏洞的检测机制的技术细节,并就如何实现它们给出了实用的建议。挑战的评价是通过两次试验进行的,共有16名参与者。我们的初步结果表明,这些挑战适合学术界,甚至有可能被纳入官方教学课程。一个主要发现表明本科生缺乏安全编码意识。最后,我们将我们的结果与行业中以前的工作进行比较,并为从业者提供建议。
2021-02-20 cs.SE
A Wizard of Oz Study Simulating API Usage Dialogues with a Virtual Assistant
虚拟助手技术正在迅速普及,以提高各种任务的生产力。虽然用于日常任务的几个虚拟助理是众所周知的(例如,Siri、Cortana、Alexa),从事软件工程等专业任务的助理则更为罕见。软件工程助理很少的一个关键原因是,很少有实验数据集可用于训练人工智能,而人工智能是当前虚拟助理的基础。在本文中,我们提出了一组绿野仙踪实验,我们设计来构建一个数据集,用于创建一个虚拟助手。我们的目标是一个虚拟助手,帮助程序员使用API。在我们的实验中,我们招募了30名专业程序员,使用两个API完成编程任务。程序员与一个模拟的虚拟助手进行交互以寻求帮助-程序员并不知道助手实际上是由人类专家操作的。然后,我们注释语料库中的对话行为沿着四个维度:言外之意,API信息类型(S),面向后的功能,和特定的API组件的可追溯性。我们观察到了各种各样的交互,这将有助于为API使用的虚拟助手开发对话策略。
2021-06-23 cs.HC cs.SE
Diversity Awareness in Software Engineering Participant Research
多样性和包容性是塑造有益于整个社会的技术创新的必要先决条件。多样性考虑的一个常见指标是软件工程(SE)研究人员、开发人员和学生中不同社会群体的代表性。然而,这并不一定意味着多样性被认为是在SE研究本身。在我们的研究中,我们探讨了多样性是如何嵌入在SE研究,特别是涉及参与者研究的研究。为此,我们选择了79篇研究论文,其中包含105项跨越三年ICSE技术轨道的参与者研究。使用内容分析方法,我们确定了SE研究人员如何报告其研究参与者的各种多样性类别,并调查:1)参与者被描述的程度,2)通常报告的多样性类别,以及3)功能多样性在SE研究中的作用。我们确定了12个不同的多样性类别报告在SE参与者的研究。我们的研究结果表明,即使大多数SE研究报告的参与者的多样性,SE研究往往强调专业的多样性数据,如职业和工作经验,社会多样性数据,如性别或参与者的位置。此外,我们的研究结果表明,参与者的多样性很少被分析或反映后,当SE研究人员讨论他们的研究结果,结果或限制。为了帮助研究人员自我评估他们的研究多样性意识,我们提出了一个多样性意识模型和准则,SE研究人员可以应用到他们的研究。通过这项研究,我们希望阐明一种新的方法来解决SE领域的多样性和包容性危机。
2023-01-31 cs.SE
C*: Unifying Programming and Verification in C
本文提出C*,一种通过符号执行引擎和LCF风格证明内核扩展C语言的证明集成设计,统一了编程与验证环境,支持实时验证并有效处理了真实场景中的复杂推理任务。
2025-04-03 cs.PL cs.SE
IPSynth: Interprocedural Program Synthesis for Software Security Implementation
IPSynth提出一种跨过程程序合成方法,自动学习安全战术规格并合成相互关联的代码片段,添加到现有代码库中,实验表明其优于ChatGPT。
2024-03-16 cs.SE
Cybersecurity Awareness Platform with Virtual Coach and Automated Challenge Assessment
在过去的几年里,对工业控制系统的网络攻击数量一直在稳步增加。在众多因素中,适当的软件开发在保持这些系统安全方面起着至关重要的作用。为了实现安全的软件,开发人员需要了解安全编码指南和安全编码最佳实践。这项工作提出了一个面向软件开发人员的平台,旨在提高安全软件开发的意识。作者还介绍了一个交互式游戏组件,虚拟教练,它实现了一个简单的人工智能引擎的基础上阶梯技术的采访。通过一项调查,与现实世界的球员(来自学术界和工业界)实现工件的初步评估显示了开发的平台的积极接受。此外,玩家们一致认为该平台足以训练他们的安全编码技能。我们工作的影响是引入一种新的自动挑战评估方法以及虚拟教练,以改善现有的网络安全意识培训计划。这些培训讲习班可以很容易地远程或离线举行。
2021-02-20 cs.CR cs.SE
Synthesizing Research on Programmers' Mental Models of Programs, Tasks and Concepts -- a Systematic Literature Review
程序员的心智模型代表了他们对程序、编程概念和编程的一般知识和理解。它们指导程序员的工作并影响他们的任务表现。理解心智模型对于设计支持程序员的工作系统和实践非常重要。虽然程序员心智模型的重要性被广泛认可,但多年来对心智模型的研究已经减少。结果是分散的,没有考虑到软件工程的最新发展。我们分析了程序员心智模型的研究现状,并对现有研究进行了概述。我们将来自不同研究领域的心理模型的结果联系起来,以形成一个关于该主题的更统一的知识库。我们对程序员的心智模型进行了系统的文献回顾。我们分析了在不同背景下处理心理模型的文献,包括程序的心理模型,编程任务和编程概念。使用九个搜索引擎,我们发现3678文章(不包括重复)。84人被选中进行进一步分析。使用滚雪球技术,我们获得了包含187篇文章的最终结果集。我们表明,文学共享的共同理解的心理模型的内核。通过整理和连接来自不同研究领域的心智模型的结果,我们发现了一些研究得很好的方面,我们认为这是程序员心智模型的基本特征。这项工作提供了一个基础,为未来的工作心理模型。程序员心智模型的研究领域仍然面临着许多挑战,缺乏一个共享的知识库和定义不明确的结构。我们创建了一个关于该主题的统一知识库。我们还指出了未来研究的方向。特别是,我们呼吁研究程序员与现代实践和工具的工作。
2022-12-15 cs.HC cs.SE
Which Code Statements Implement Privacy Behaviors in Android Applications?
本研究通过实证分析确定了Android代码中与隐私行为最相关的语句类型,并提出了一种基于微调三个大型语言模型的自动检测方法,其与人工判断的一致性达到或超过人工间一致性水平。
2025-03-03 cs.SE
Architectural Stability Reasoning using Self-Awareness Principles: Case of Self-Adaptive Cloud Architectures
随着对软件依赖的增加,迫切需要设计长寿的软件。由于体系结构对软件的生命周期和所提供的服务质量有着深远的影响,因此稳定的体系结构是重要的资产。体系结构的稳定性往往反映了系统在支持持续变化而不逐步淘汰方面的成功。稳定性的\textit{behavioural}方面对于无缝操作是必不可少的,以持续保持质量需求的稳定,并防止体系结构的漂移和逐步淘汰。在本文中,我们提出了一个框架,在运行时的稳定性推理,利用自我意识的原则。具体来说,我们采用运行时目标管理稳定性目标,在线学习的推理稳定的长期运行,和随机游戏管理相关的权衡。我们评估所提出的工作使用的情况下,云架构在运行时的高度动态。实验结果表明,在实现预期的行为稳定运行时操作的自我意识技术的效率。
2019-12-11 cs.DC cs.SE
A Reference Architecture and Modelling Principles for Architectural Stability based on Self-Awareness: Case of Cloud Architectures
随着对软件依赖的增加,迫切需要设计长寿的软件。由于体系结构对软件的生命周期和所提供的服务质量有着深远的影响,因此稳定的体系结构是重要的资产。体系结构的稳定性往往反映了系统在支持持续变化而不逐步淘汰方面的成功。稳定性的\textit{behavioural}方面对于无缝操作是必不可少的,以持续保持质量需求的稳定,并防止体系结构的漂移和逐步淘汰。在本文中,我们介绍了一个参考体系结构和模型的稳定性。具体来说,我们利用自我意识原则和运行时目标建模来显式地支持架构稳定性。为了说明适用性和评估所提出的方法,我们考虑云架构的情况。实验结果表明,我们的方法提高了效率的架构在保持预期的行为稳定运行时操作。
2019-12-11 cs.DC cs.SE
Synergizing Domain Expertise with Self-Awareness in Software Systems: A Patternized Architecture Guideline
Loughborough University(拉夫堡大学);University of Birmingham(伯明翰大学);Southern University of Science and Technology(南方科技大学)
为了促进软件系统的可重用性和自适应性,体系结构模式及其方法学为解决软件工程过程中经常出现的问题提供了统一的解决方案。然而,在现有的模式和方法中,随着时间的推移而建立的领域知识和工程师的专业知识并没有明确地与自我意识过程相关联。这种联系是重要的,因为知识是解决相关问题的宝贵资产,如果没有知识,就会造成不必要的开销,可能产生误导性的结果,并不明智地浪费领域专门知识可能带来的巨大好处。本文强调了协同领域的专业知识和自我意识,使更好的自适应软件系统的重要性,依赖于定义良好的专业知识表示,算法和技术。特别是,我们提出了一个整体框架的概念,丰富的模式和方法,被称为DBASES,提供了一个原则性的指导方针,为工程师进行困难和利益分析可能的协同作用,试图保持“工程师在循环”。通过三个教程的案例研究,我们展示了DBASES如何可以应用在不同的领域,其中一组精心挑选的候选人具有不同的协同作用,可用于定量调查,提供更明智的决策的设计选择。
2020-03-31 cs.AI cs.SE
Distribution Awareness for AI System Testing
Nanyang Technological University(南洋理工大学)
随着深度学习(DL)在许多安全关键应用中的不断采用,其质量和可靠性开始引起人们的关注。与传统的软件开发过程类似,在早期阶段测试DL软件以发现其缺陷是降低部署后风险的有效方法。尽管最近在设计用于DL软件的新颖测试技术方面取得了进展,但是没有考虑生成的测试数据的分布。因此,很难判断所识别的错误是否确实是对DL应用有意义的错误。因此,我们提出了一种新的面向对象指导的测试技术,其目的是产生新的看不见的测试用例相关的底层DL系统任务。我们的结果表明,该技术是能够过滤高达55.44%的错误的测试用例CIFAR-10和10.05%的有效提高鲁棒性。
2021-05-06 cs.AI cs.SE
Can We Trust the AI Pair Programmer? Copilot for API Misuse Detection and Correction
本研究利用 MUBench 基准评估 GitHub Copilot 在 API 误用检测与纠正中的表现,发现其检测准确率达 86.2% 且能修复超过 95% 的已识别误用,验证了 AI 结对编程的可行性。
2025-09-20 cs.SE
CodeSum: Translate Program Language to Natural Language
在软件维护过程中,程序员花费大量时间在代码理解上。阅读注释是程序员在理解源代码时减少阅读和导航时间的有效方法。因此,作为软件工程中的一项重要任务,代码摘要旨在为源代码生成简短的自然语言描述。本文提出了一种新的代码摘要模型CodeSum。CodeSum利用基于注意力的序列到序列(Seq2Seq)神经网络和抽象树(AST)的基于结构的训练(SBT)。SBT生成的AST序列能更好地呈现AST的结构,且保持了序列的无歧义性。我们在三个不同语言的大规模语料库上进行了实验,Java,C#和SQL,其中Java语料库是我们从Github中提取的新提议的行业代码。实验结果表明,我们的方法CodeSum优于国家的最先进的显着。
2018-01-31 cs.SE
Influence of Personality Types in Software Tasks Choices
根据心理学,不是每个人都能胜任所有的工作。因此,如果具有特定个性类型的人被分配到项目中他们喜欢的任务,那么软件开发成功的机会就会增加。同样,软件开发在很大程度上取决于软件从业者如何执行他们的任务。这项实证研究调查了100名古巴软件开发人员,他们也在古巴哈瓦那的信息科学大学任教或学习。这项工作的目的是找到可能的模式,链接个性类型的角色偏好在软件生存周期。在各种角色中,系统分析师,软件设计师和程序员被认为是最受欢迎的参与者。相比之下,软件测试人员和软件维护人员恰好是软件工程师中最不受欢迎的角色。
2015-11-13 cs.CY cs.SE
Making Lab Sessions Mandatory -- On Student Work Distribution in a Gamified Project Course on Market-Driven Software Engineering
学生团队工作分配不公平是项目学习中的一个常见问题。一个促成因素是学生是不同技能的开发人员。在工程和业务方面相互交织的小组工作课程中,我们设计了一种干预措施来帮助新手程序员,即,我们引入了强制性的编程实验课。然而,干预措施并没有影响工作分配,这表明需要做更多的工作来平衡工作量。与我们的目标相反,这种干预在有经验的学生中非常受欢迎,但在编程能力差的学生中不受欢迎。
2020-05-27 cs.SE
How Do Agentic AI Systems Deal With Software Energy Concerns? A Pull Request-Based Study
University of Manitoba(曼尼托巴大学)
本文研究了代理AI系统在生成软件时对能耗问题的意识,通过分析拉取请求发现,尽管构建和运行这些系统耗能高,但生成的软件制品表现出一定的能耗意识,但优化相关的PR因影响可维护性而被接受较少。
2025-12-31 cs.SE
A Taxonomy of Approaches for Integrating Attack Awareness in Applications
软件应用程序受到越来越多的攻击,导致数据泄露和财务损失。人们已经考虑了许多解决方案来帮助减轻这些攻击,例如集成攻击感知技术。在本文中,我们提出了一个分类说明如何现有的攻击感知技术可以集成到应用程序。这项工作为安全研究人员和开发人员提供了一个指南,帮助他们选择最适合其应用程序需求的方法。
2020-05-01 cs.CR cs.SE
Git Takes Two: Split-View Awareness for Collaborative Learning of Distributed Workflows in Git
ETH Zurich(苏黎世联邦理工学院)
GitAcademy通过分屏协作模式帮助新手学习Git的分布式工作流,提升协作意识和社交存在感。
2026-02-23 cs.HC cs.SE
Ethics Understanding of Software Professional In Risk Reducing Reusability Coding Using Inclusion Set Theory
在项目的软件开发中,个人的技术技能或能力是不同的。所以,有必要识别出一个人的才能和态度,可以将其贡献均匀地分配到软件开发周期的不同阶段。代码分析指标,以了解程序员在代码开发中的各种技能。利用n的包含集理论(AUB),指软件专业人员联合开发的强度和风险自由的代码,系统必须包括系统目标的实现,有效的内存利用和产品的及时交付。
2009-12-05 cs.SE
"So what if I used GenAI?" -- Implications of Using Cloud-based GenAI in Software Engineering Research
本文聚焦软件工程研究中使用基于云的GenAI的法律风险,指出数据保护与版权两类核心风险,总结了软件研究人员需知晓的关键要点并提出认知引导清单,以帮助研究者规避责任索赔风险。
2024-12-10 cs.SE
The Types, Roles, and Practices of Documentation in Data Analytics Open Source Software Libraries: A Collaborative Ethnography of Documentation Work
计算研究和数据分析越来越依赖于开源软件(OSS)“库”的复杂生态系统-程序员导入以执行特定任务的可重用代码的精心收集。这些库的软件文档对于帮助程序员/分析师了解哪些库可用以及如何使用它们至关重要。然而,开源软件库的文档被广泛认为质量低。本文是CSCW研究人员和数据分析OSS库的贡献者之间的合作,基于人种学实地考察和定性访谈。我们研究了围绕这些主要基于志愿者的项目中文档的格式,实践和挑战的几个问题。有许多不同类型和格式的文件存在于这些图书馆,发挥着各种教育,宣传和组织的作用。文档背后的工作同样是多方面的,包括编写、审查、维护和组织文档。文件工作的不同方面要求贡献者拥有不同的技能,并克服各种社会和技术障碍。最后,我们的大多数受访者并没有报告做文档工作的内在乐趣(与编写代码相比)。他们的动机受到个人和项目特定因素的影响,例如,做文档工作与添加新功能或修复bug等更具“技术性”的任务相比,所感知的信用级别。在研究数据分析OSS库的文档工作时,我们获得了一个新的窗口,可以了解数据密集型研究不断变化的实践,并帮助从业者更好地了解如何在他们的项目中支持这种通常看不见的基础设施工作。
2018-05-31 cs.CY cs.SE
Awareness requirement and performance management for adaptive systems: a survey
University of Kurdistan Hewler(库尔德斯坦赫勒大学);Charles Sturt University(查尔斯特大学);Western Sydney University(西悉尼大学);Kent Institute Australia(澳大利亚肯特学院);University College of Goizha(戈伊扎大学学院);Ramco Institute of Technology(拉姆科理工学院);Guru Nanak Dev University(古鲁那纳克德夫大学);King Fahd University of Petroleum & Minerals(法赫德国王石油与矿产大学);Charmo University(查尔莫大学);Sulaimani Polytechnic University(苏莱曼尼理工大学)
自适应软件可以评估和修改其行为,当评估表明程序没有按预期执行时,或者当改进的功能或性能可用时。自20世纪60年代中期以来,系统自适应性的主题得到了广泛的研究,在过去的十年中,许多涉及自适应的应用领域和技术已经变得突出。所有这些努力的共同点是通过软件引入自适应性。因此,有必要研究系统的软件工程方法,以创建可用于不同领域的自适应系统。本研究的主要目的是总结目前的进展,在审查国家的最先进的方法在文献中描述的基础上的自适应策略的意识要求。本文介绍了自适应系统的需求意识的背景下,并总结了最常用的方法。首先回顾了自适应系统的研究现状和成果。然后根据六个标准对现有的自适应系统进行了分类。然后,介绍和评价了最常用的自适应方法。最后,从需求描述、监控、关系、依赖/影响和工具四个方面对自适应模型进行了评价。
2023-01-22 cs.AI cs.SE
Code Definition Analysis for Call Graph Generation
企业级软件采用多层体系结构实现。这些层通常使用具有数百万行代码的解耦解决方案来实现。程序员在对问题进行故障排除时,经常需要跟踪和调试从用户界面层到数据访问层的函数调用。他们必须根据搜索结果检查代码,或者使用设计文档来构建调用图。这个过程既费时又费力。开发环境工具不足或仅限于分析加载的解决方案中的代码。本文提出了一种方法来构建一个调用的调用图,跨几个层次的代码驻留在不同的代码库,以帮助程序员更好地理解软件的设计和体系结构。对类、方法和属性的签名进行评估,然后与代码文件进行匹配。创建了匹配函数图。当没有匹配项或检测到数据层代码时,递归搜索停止。与人工搜索相比,该方法的准确率为78.26%。
2016-07-27 cs.SE