To What Extent Cognitive-Driven Development Improves Code Readability?
认知驱动开发(CDD)是一种编码设计技术,旨在减少开发人员在理解给定代码单元(例如,类)。通过遵循CDD设计实践,预计编码单元将更小,因此更容易维护和发展。然而,到目前为止还不知道这些使用CDD标准编码的较小代码单元是否确实更容易理解。在这项工作中,我们的目标是评估CDD如何提高代码的可读性。为了实现这一目标,我们进行了两个阶段的研究。我们首先邀请专业软件开发人员投票(并证明他们的理由)最可读的代码片段对(从一组10对);其中一对是使用CDD实践编码的。共收到133个回复。在第二阶段,我们将最先进的可读性模型应用于10对CDD指导的重构。我们观察到一些相互矛盾的结果。一方面,开发人员认为(10个中的)7个CDD引导的重构比它们的对应重构更具可读性;对于另外两个CDD引导的重构,开发人员尚未决定,而只有在一个CDD引导的重构中,开发人员更喜欢原始代码片段。另一方面,我们注意到只有一个CDD引导的重构具有更好的性能可读性,由最先进的可读性模型评估。我们的研究结果提供了初步的证据,CDD可能是一个有趣的软件设计方法。
2022-06-21 cs.SE
From Human to Machine Refactoring: Assessing GPT-4's Impact on Python Class Quality and Readability
University of Catania(卡塔尼亚大学);University of Sannio(桑尼奥大学)
本文评估GPT-4在Python类重构中的效果,发现其能提升代码质量和减少异味,但可能降低可读性。
2026-01-19 cs.SE
CODEFUSE-DEBENCH: An Empirical Study on Readability, Recompilability, and Functionality
Ant Group(蚂蚁集团);Tsinghua University(清华大学);Xidian University(西安电子科技大学)
提出基于可重用性的多维反编译评估范式,通过DEBENCH框架在可读性、可重编译性和功能性三个维度上评估主流反编译器,发现反编译器引擎比修复模型对功能影响更大。
2026-05-28 cs.CR cs.SE
How do annotations affect Java code readability?
本文通过332人调查和15对Java代码片段,研究了代码注解对可读性的影响,发现开发者对注解提升可读性的看法存在分歧但无共识,为API设计提供了参考。
2024-04-26 cs.SE
Do AI Agents Really Improve Code Readability?
National Institute of Technology, Nara College(奈良工业高等专门学校);Nara Institute of Science and Technology(奈良先端科学技术大学院大学)
研究探讨AI代理重构对代码可读性的影响,通过分析403个提交发现,AI主要改进逻辑复杂度和文档,但导致传统质量指标下降。
2026-03-14 cs.SE
Green Prompt Engineering: Investigating the Energy Impact of Prompt Design in Software Engineering
本文提出绿色提示工程,通过实证研究发现提示可读性影响能源消耗和性能,简单提示可降低能耗且不显著损失F1分数,为可持续提示设计提供指导。
2025-09-26 cs.SE
Investigating the Impact of Vocabulary Difficulty and Code Naturalness on Program Comprehension
本研究从语言习得视角出发,采用交叉熵与人工分级词汇表分别衡量代码自然度和词汇难度,通过统计分析探究二者与代码可读性、可理解性的关联及对预测性能的提升作用。
2023-08-25 cs.SE
Readability and Understandability of Snippets Recommended by General-purpose Web Search Engines: a Comparative Study
本文通过排名、搜索引擎和推荐站点三个变量,对Google、Yahoo!和Bing针对9,480个查询推荐的代码片段进行了可读性与可理解性的实证分析,发现部分站点表现显著更好,且排名靠前不代表质量更高。
2021-10-14 cs.SE
An Exploratory Study on the Usage and Readability of Messages Within Assertion Methods of Test Cases
单元测试是软件开发过程的重要组成部分,涉及开发人员编写代码来验证或断言产品代码。此外,为了帮助理解测试用例和解决问题,开发人员可以选择提供一条消息来解释断言失败的原因。在这个探索性的实证研究中,我们研究了20个开源Java系统的测试方法中包含的断言消息的特征。我们的研究结果表明,虽然开发人员很少使用提供消息的选项,但使用消息的人要么仅由字符串字面量、标识符或这两种类型的组合组成。使用标准的英语可读性测量技术,我们观察到,一个初学者的英语知识需要理解的消息只包含标识符,而四年级的教育水平需要理解的字符串文字组成的消息。我们还讨论了在断言消息构造中使用这种可读性度量技术和常见反模式的缺点。我们设想我们的结果纳入代码质量工具,评估断言消息的可理解性。
2023-03-01 cs.SE
Exploring Code Comprehension in Scientific Programming: Preliminary Insights from Research Scientists
本研究通过调查57名不同学科的科研人员,探究科学编程中的代码理解现状,揭示了科研人员编程背景、代码可读性实践与挑战及工具使用趋势,为改进科学编程实践提供参考。
2025-01-17 cs.SE
From Restructuring to Stabilization: A Large-Scale Experiment on Iterative Code Readability Refactoring with Large Language Models
Saarland University(萨尔兰大学)
本文通过大规模实验研究大语言模型在迭代代码重构中的能力,揭示了重构过程的收敛趋势及可读性提升的机制。
2026-02-25 cs.SE
Back to the Future: Regressing Readability Features from LLMs
University College London(伦敦大学学院)
针对现有可读性模型与人类判断不一致的问题,提出BTTF方法,将线性回归与信息论特征结合,利用LLM作为测量仪器,在五个基准和1,100个样本上显著提升Spearman相关性,并具备特征级可解释性。
2026-10-06 cs.SE
Reassessing Java Code Readability Models with a Human-Centered Approach
本研究以人为中心的方法评估现有Java代码可读性模型用于大语言模型调整的效果,发现AI生成的简洁可执行代码易被双方判定为可读,但两类评估相关性有限,为后续LLM适配和CR模型优化指明方向。
2024-01-26 cs.HC cs.SE
Formal Methods Meets Readability: Auto-Documenting JML Java Code
本文评估 JML 形式化规范对 LLM 生成 Java Javadoc 质量的影响,发现其显著提升类级完整性与契约覆盖,尤其适合不变式丰富的类。
2025-06-10 cs.SE
Human-Aligned Code Readability Assessment with Large Language Models
本文提出 CoReEval 大规模基准,系统评估 10 个 LLM 在多语言、多提示和解码设置下的代码可读性判断,揭示开发者引导提示可提升人类对齐与解释质量。
2025-10-18 cs.SE
Evaluating Code Readability and Legibility: An Examination of Human-centric Studies
阅读代码是软件维护和演化中的一项基本活动。几项针对人类受试者的研究调查了不同的因素,如所采用的编程结构和命名约定,如何影响代码的可读性,即,什么使程序更容易或更难被开发者阅读和理解,以及代码易读性,即,是什么影响了识别程序元素的容易性。这些研究通过不同的理解任务和反应变量来评估可读性和易读性。在本文中,我们在比较编程结构、编码习惯、命名约定和格式指南的研究中检查了这些任务和变量,例如,递归代码与迭代代码。为此,我们进行了系统的文献综述,发现了54篇相关论文。这些研究大多通过测量受试者结果的正确性(83.3%)或简单地询问他们的意见(55.6%)来评估代码的可读性和易读性。一些研究(16.7%)完全依赖于后一个变量。仍然有少数研究监测受试者的身体体征,如大脑激活区域(5%)。此外,我们的研究表明,一些变量是多方面的。例如,正确性可以被衡量为预测程序输出的能力,回答有关其行为的问题,或回忆部分内容。这些结果清楚地表明,不同的评估方法需要不同的能力,例如,跟踪程序vs.总结其目标vs.记住其文本。为了帮助研究人员设计新的研究,并提高我们对现有研究的理解,我们通过调整预先存在的学习分类法,将程序理解建模为一种学习活动。这一调整表明,在这些评价中经常运用某些能力,而很少针对其他能力。
2021-10-02 cs.SE
SCELMo: Source Code Embeddings from Language Models
The University of Edinburgh(爱丁堡大学);Google Research(谷歌研究院)
在计算机程序中连续嵌入令牌已被用于支持各种软件开发工具,包括可读性、代码搜索和程序修复。上下文嵌入在自然语言处理中很常见,但以前没有在软件工程中应用。我们引入了一套新的深度上下文化的词表示的计算机程序的基础上语言模型。我们使用Peters et al(2018)的ELMo(embeddings from语言模型)框架训练了一组嵌入。我们调查这些嵌入是否是有效的,当微调的下游任务的错误检测。我们表明,即使是在相对较小的程序语料库上训练的低维嵌入也可以提高最先进的机器学习系统的缺陷检测能力。
2020-04-28 cs.LG cs.SE
Readability-Robust Code Summarization via Meta Curriculum Learning
School of Computer Science, Shanghai Jiao Tong University(上海交通大学计算机学院);WeChat AI, Tencent(腾讯微信人工智能)
本文提出RoFTCodeSum方法,通过结合课程学习和元学习提升代码摘要对低可读性代码的鲁棒性。
2026-07-30 cs.SE
Code Librarian: A Software Package Recommendation System
JP Morgan Chase(摩根大通)
使用打包库可以通过提高代码的质量和可读性来显著缩短软件开发周期。在本文中,我们提出了一个推荐引擎称为Librarian的开源图书馆。推荐一个候选库包用于给定的上下文,如果:1)它经常与程序中导入的库一起使用; 2)它与程序中导入的库具有相似的功能; 3)它与开发人员的实现具有相似的功能; 4)它可以在所提供的代码的上下文中有效地使用。我们应用最先进的基于CodeBERT的模型来分析源代码的上下文,以向用户提供相关的库建议。
2023-02-07 cs.AI cs.SE
Encoding Software For Perpetuity: A Compact Representation Of Apollo 11 Guidance Code
本研究提出将阿波罗11号制导计算机代码压缩为3KB可扫描QR码的方法,平衡易获取性与历史价值,为计算遗产保护提供补充方案。
2025-04-24 cs.SE
How Does API Migration Impact Software Quality and Comprehension? An Empirical Study
不同第三方软件库之间的迁移过程困难、复杂且容易出错。通常,在库迁移过程中,开发人员选择用新库中的其他方法替换已停用库中的方法,而不改变软件行为。然而,这种迁移到新库的过程将在多大程度上得到改进的软件质量仍然是未知的。本文旨在研究和分析库API迁移对软件质量的影响。我们对9个流行的API迁移进行了大规模的实证研究,这些迁移是从57,447个开源Java项目的语料库中收集的。我们计算迁移发生之前和之后常用的软件质量度量的值。所获得的结果的统计分析提供的证据表明,库迁移可能会提高不同的软件质量属性,包括显着降低耦合,增加内聚性,并提高代码的可读性。此外,我们还发布了一个在线门户网站,帮助软件开发人员了解库迁移对软件质量的预先影响,并推荐采用最佳设计和实现实践来提高软件质量的迁移示例。最后,我们为软件工程社区提供了一个大规模的数据集,以促进软件库迁移的研究。
2020-10-02 cs.SE
How Do AI Coding Agents Contribute to Software Development? an Empirical Study of Agentic Pull Requests
Polytechnique Montréal(蒙特利尔大学)
研究人工智能编码代理对软件开发的贡献,通过AIDev数据集,分析代理与人工生成PR的合并率差异、任务分布及关键特征,从实证和纵向角度理解其在软件开发中的作用、优点及局限性。
2026-07-27 cs.LG cs.SE
On Using Retrained and Incremental Machine Learning for Modeling Performance of Adaptable Software: An Empirical Comparison
Nottingham Trent University(诺丁汉特伦特大学)
考虑到可适应软件系统的复杂性不断增加,以及它们通常隐藏的内部信息(例如,软件在公共云中运行),基于机器学习的性能建模已经获得了评估、理解和预测软件性能的动力,这有助于更好地了解自适应。随着性能数据在软件运行期间的积累,更新性能模型变得必要。为此,有两种传统的建模方法:重新训练的建模总是丢弃旧模型并使用所有可用数据重新训练新模型;或者增量建模保留现有模型并使用一个新到达的数据样本对其进行调整。通常,基于机器学习的自适应软件性能建模的文献根据一般信念选择这些方法中的任一种,但它们提供的证据或参考不足以证明它们的选择。本文是第一个全面的实证研究报告,研究两种建模方法下的不同领域的适应性软件,5个性能指标,8个学习算法和设置,涵盖了1,360个不同的条件。我们的研究结果挑战了一般的信念,这被证明是只有部分正确的,并揭示了一些重要的,统计上显着的因素,往往被忽视,在现有的工作,提供基于证据的见解的选择。
2019-03-25 cs.LG cs.SE
The Hidden Cost of Readability: How Code Formatting Silently Consumes Your LLM Budget
Monash University(墨尔本大学);Singapore Management University(新加坡管理学院)
该研究通过实证分析发现移除代码格式化元素可使LLM输入token平均减少24.5%且不影响性能,还开发双向转换工具平衡可读性与效率,为降低LLM预算提供了实用优化策略。
2025-08-19 cs.AI cs.SE
The Evolution of Empirical Methods in Software Engineering
像实验这样的经验方法已经成为推动软件工程领域的一种强有力的手段,它可以为软件开发、操作和维护提供科学依据,也可以支持从业者的决策和学习。今天经验方法在软件工程中得到了充分的应用。然而,自20世纪60年代以来,它们已经发展了几次迭代。在本章中,我们讲述了经验软件工程的历史,并在五个迭代中介绍了经验方法在软件工程中的演变,即,(1)20世纪60年代中期至70年代中期,(2)70年代中期至80年代中期,(3)80年代中期至90年代末,(4)2000年代,(5)2010年代。我们主要从方法论的角度介绍了经验软件工程发展的五次迭代,并考虑了关键论文、地点和书籍,这些内容在推荐的进一步阅读的单独部分中按时间顺序进行了介绍。我们通过介绍第4节中的现状和展望以及经验软件工程的现有书籍来补充经验软件工程的演变。此外,基于本书所涵盖的章节,我们讨论了软件工程中与研究方法的多样性、人为因素、数据汇集和处理、证据的聚集和综合以及软件工程研究的影响有关的当代经验方法的趋势。
2020-05-08 cs.SE
Benchmarking as Empirical Standard in Software Engineering Research
在经验软件工程中,基准测试可以用来比较不同的方法、技术和工具。然而,最近的ACM SIGSOFT经验标准软件工程研究不包括一个明确的检查表基准。在本文中,我们讨论的基准软件的性能和可扩展性评估的例子研究领域,在软件工程,基准与其他一些实证研究方法,并讨论了基准的要求,可能构成一个清单的基准标准实证软件工程研究的基础。
2021-05-01 cs.SE
Empirical Study of Phased Model of Software Change
软件变更是软件演化和维护的基本任务。PMSC(Phased Model for Software Change)是一个软件变更的过程模型,它是在代码中本地化的。它由几个阶段组成,涵盖了程序理解和代码修改。本文提出了一个实证研究的制定私营军事和安保服务公司,加强了使用工具JRipples。受试者是具有不同程度编程经验的研究生。实证研究结果表明,程序员与知识的PMSC和支持JRipples执行完善的软件变化,在不熟悉的软件在显着更少的时间(约一半的时间)比独立的程序员。在代码理解和实施工作方面都有了实质性的时间改进。
2019-04-11 cs.SE
Reward Engineering for Software Tasks: A Survey of Reinforcement Learning Approaches
University of California, Riverside(加州大学河滨分校);Shahjalal University of Science and Technology(沙贾拉勒科技大学);University of California, Los Angeles(加州大学洛杉矶分校);Qatar Computing Research Institute (QCRI)(卡塔尔计算机研究所)
本文系统综述了强化学习在软件任务中奖励工程的方法与挑战,旨在整合现有奖励设计方法并提供全面的指导。
2026-08-24 cs.SE
Applying empirical software engineering to software architecture: challenges and lessons learned
在过去的15年中,软件体系结构已经成为管理大型软件密集型系统的开发和维护的重要软件工程领域。软件架构社区已经开发了许多方法、技术和工具来支持架构过程(分析、设计和评审)。从历史上看,软件架构的大多数进步都是由人才和行业经验推动的,但现在越来越需要系统地收集有关工具和方法的优势或其他方面的经验证据,而不仅仅是依靠宣传轶事或修辞。本文的目的是促进和促进软件体系结构的经验范式的应用。为此,我们描述了在评估软件架构研究时所遇到的挑战和经验教训,这些研究使用了受控实验、复制、专家意见、系统的文献综述、观察性研究和调查。我们的研究将支持一个知识体系的出现,包括更广泛接受的和良好的形式的软件架构理论。
2017-01-21 cs.SE
Teaching Empirical Research Methods in Software Engineering: An Editorial Introduction
针对当前实证软件工程领域研究指南完善但教学相关关注不足的缺口,该编者按导言通过阐述学科宏观背景为相关教学主题的编辑文集奠定定位基础。
2025-01-13 cs.SE
Empirical Software Engineering: From Discipline to Interdiscipline
经验软件工程近年来受到了广泛的关注,并创造了从一个更多的设计科学驱动的工程学科转变为一个以洞察力为导向的,以理论为中心的。然而,我们仍然面临许多挑战,其中一些挑战增加了跨学科研究的必要性。这对于软件工程中以人为中心的方面的研究尤其如此。虽然我们已经可以观察到越来越多的认识需要更多的跨学科研究(经验)软件工程,这样的研究配置来与挑战几乎没有讨论从科学的角度来看。在这份立场文件中,我们批判性地反思了经验软件工程的认识论背景,并阐述了它作为一个交叉学科的配置。特别是,我们(1)阐述了一个务实的观点,实证研究软件工程反映了知识创造的循环过程,(2)激励对称跨学科研究的道路,(3)采用五个经验法则,从其他跨学科的合作,在我们的领域之前,新出现的挑战。这将支持停止把经验软件工程作为一个发展中的学科走向规范科学的范式阶段,但作为一个对称的跨学科团队和研究方法的配置。
2018-11-17 cs.SE
A Software Repository and Toolset for Empirical Research
本文提出了一个软件存储库模型连同相关的工具,并由几个复杂的,开源的GUI驱动的应用程序准备用于实证软件研究。我们首先提供了我们的存储库的基本原理和指导我们寻找合适应用程序的标准。我们详细介绍了存储库的模型以及相关的工件和支持工具。我们详细介绍了存储库中的当前应用程序以及可以进一步扩展的方式。最后,我们提供了我们的存储库如何促进软件可视化和测试的研究的例子。
2017-02-26 cs.SE
Institutionalization of Software Product Line: An Empirical Investigation of Key Organizational Factors
人与组织之间的良好匹配对于更好的组织绩效至关重要。在组织内软件产品线实践的制度化的情况下,这一点甚至更加重要。员工参与、组织行为和管理思考在企业软件产品线的成功制度化中起着至关重要的作用。在软件产品线理论和实践中,组织维度被认为是一个重要的维度。本文通过一个全面的实证研究,探讨了一些组织因素对软件产品线实践绩效的影响。这是第一个实证研究,并证明了一些关键的组织因素和软件产品线的组织绩效之间的关系。调查结果提供了经验证据,并进一步支持的理论基础,为了制度化的软件产品线在一个组织,组织因素起着重要的作用。
2022-03-28 cs.SE
Empirical Evidence of Large-Scale Diversity in API Usage of Object-Oriented Software
在本文中,我们研究如何面向对象的类中使用数以千计的软件包。我们专注于“使用多样性”,定义为在同一对象上调用的方法的不同静态可观察组合。我们提出的经验证据表明,有一个显着的使用多样性,许多类。例如,我们在数据集中观察到Java的String有2460种使用方式。我们讨论了这种观察到的多样性和后果的软件工程知识和研究的原因。
2013-08-21 cs.SE
Analysis of Empirical Software Effort Estimation Models
可靠的工作量估计仍然是软件工程师面临的一个持续挑战。准确的工作量估算是软件工程的发展现状,软件工作量估算是客户和企业之间的初始阶段。客户和企业之间的关系始于对软件的评估。客户对企业的可信度随着准确的评估而增加。工作量估计通常需要从少量的历史项目中进行归纳。从这种有限的经验中进行推广,本质上是一个受约束的问题。准确的估计是一个复杂的过程,因为它可以被可视化为软件工作量预测,因为这个术语表明预测永远不会成为现实。这项工作遵循的经验软件工作量估计模型的基础。本文的目的是研究经验的软件工作量估计。主要结论是,没有一种技术是最适合所有情况的,仔细比较几种方法的结果最有可能产生现实的估计。
2010-04-08 cs.SE
Software Quality - Traditional vs. Agile: an Empirical Investigation
众所周知,软件过程会影响最终产品的质量。也有传闻称,敏捷过程比传统方法的质量更高。然而,这方面的确凿证据仍然缺失。这项工作的报告,在软件过程和软件质量之间的相关性的实证分析,具体参考敏捷和传统的过程。来自21个国家的100多名软件开发人员和工程师接受了在线问卷调查。我们使用软件开发人员和工程师估计的满意客户的百分比作为主要因变量。结果证明了一些有趣的模式:架构风格可能不会对质量产生重大影响,敏捷方法可能会让客户更快乐,大型公司和较短的项目似乎会产生更好的产品。
2017-01-21 cs.SE
A Literature Survey on Empirical Evidence in Software Engineering
背景:软件工程研究利用软件工件(语料库)的集合来获得经验证据。目的:为了提高研究的质量和可重复性,我们需要了解所用语料库的特点。方法:为此,我们使用扎根理论进行了文献调查。我们分析了七个相关会议的最新进展。结果如下:虽然几乎所有的论文都使用某种类型的语料库,常见的情况是开源Java项目的源代码集合,但所有论文中都没有经常使用的项目或语料库。对于某些会议,我们可以检测到复发。我们发现了几种形式的要求和应用调优语料库,这表明更具体的需求的研究工作。结论:我们的调查反馈到一个定量的基础上,讨论软件工程的实证研究的现状,从而最终提高研究质量,特别是在使用(和重用)的实证证据。
2013-04-03 cs.SE
An Empirical Study on the Procedure to Derive Software Quality Estimation Models
软件质量保证一直是一个热门话题几十年。如果能够识别出影响软件质量的因素,它们可能会为更好的软件开发管理提供更多的见解。在项目的早期阶段,根据准确的质量评估来使用资源,可以实现更精确的质量保证。在本文中,提出了一个通用的程序来推导软件质量评估模型和各种技术,以完成在各个步骤的任务。利用多种统计技术和机器学习方法来验证软件度量的有效性。此外,采用神经模糊方法来提高估计模型的精度。该程序是根据ISBSG储存库中的数据进行的,以展示其经验值。
2015-07-24 cs.SE
Predicting Software Defects through SVM: An Empirical Approach
软件缺陷预测是软件预防性维护的一个重要方面。许多技术已经被用来通过缺陷预测来提高软件质量。本文介绍了一种基于代码气味的机器学习算法--支持向量机(SVM)的缺陷预测方法。基于支持向量机的缺陷预测模型被用于预测Eclipse软件后续版本中的缺陷。结果表明气味在预测软件缺陷中的作用。结果可以进一步用作基线,以进一步研究气味在预测缺陷中的作用。
2018-03-08 cs.SE
On Gender, Ethnicity, and Culture in Empirical Software Engineering Research
本说明强调了在实证研究中结合调查多样性方面的重要性。它借鉴了心理学的话语,并建议为什么以及如何软件工程学者可以使用多样性方面在他们所有的研究工作。
2019-04-05 cs.CY cs.SE
An Empirical Study on Maintainable Method Size in Java
代码度量已被广泛用于评估软件维护工作。一般来说,开发人员会使用这些工具来减少或避免未来的维护负担。规模是最简单和最广泛使用的度量标准。大小度量是普遍的,因为大小与许多其他常见度量(例如,McCabe复杂性、可读性等)。考虑到计算方法大小的容易性以及这些指标在工业环境中的普遍性,令人惊讶的是,没有进行系统的研究来为开发人员提供关于未来维护工作的有意义的方法大小指南。在本文中,我们研究了大约785K Java方法的演变,并表明开发人员应该努力将其Java方法的长度保持在24行以下。此外,我们还表明,将较大的方法分解为较小的方法也会减少整体维护工作。总之,这些发现提供了经验指导,以帮助开发人员设计他们的系统的方式,可以减少未来的维护。
2022-05-04 cs.SE
Integrating Positionality Statements in Empirical Software Engineering Research
本研究借鉴社会科学领域的立场性声明反思实践,探究其在软件工程特别是多样性与包容性相关研究中的认知、使用情况及潜在价值,以提升研究的透明度、反思性与伦理完整性。
2024-12-09 cs.SE
An Empirical Study on Collaborative Architecture Decision Making in Software Teams
架构决策被认为是软件开发中最具挑战性的认知任务之一。本研究的目的是探索软件团队中架构决策的实践状态,包括架构师的角色和相关的挑战。在欧洲的一家大型软件公司进行了一项探索性的案例研究,并采访了15位软件架构师作为数据汇集的主要方法。结果表明,大多数软件团队的架构决策协作。特别是,协商式决策风格是首选,因为它有助于在考虑团队成员意见的同时有效地做出决策。据观察,大多数软件架构师与软件团队保持着密切的关系。还确定了几个组织,流程和人类相关的挑战及其对架构决策的影响。
2017-07-01 cs.SE
Enablers and Impediments for Collaborative Research in Software Testing: An Empirical Exploration
当涉及到工业组织时,当前在软件工程研究中的协作努力通常保持在内部,剥夺了这些组织建立独立协作研究所需的技能。目前的趋势,经验软件工程研究,需要建立一定的标准,这将指导这些合作努力,建立一个强大的伙伴关系,促进独立的,以证据为基础的,软件工程研究。本文探讨了在软件测试领域中有效和高效的行业-学术界合作的关键因素。该研究的一个主要发现是,虽然技术是更好合作的强大推动力,但必须辅之以行业开放性,以披露研究结果和使用专用工具平台。我们使用自动化测试生成方法作为一个例子,该方法是在过去两年中与瑞典的庞巴迪运输公司合作开发的。
2015-03-10 cs.SE
A large-scale comparative analysis of Coding Standard conformance in Open-Source Data Science projects
背景资料:为了满足数据科学日益增长的行业需求,需要跨学科团队将机器学习研究转化为生产就绪的代码。软件工程团队重视对编码标准的遵守,将其视为代码可读性、可维护性和开发人员专业知识的一种体现。然而,目前还没有专门针对数据科学项目的编码标准的大规模实证研究。目的:本研究调查数据科学项目遵循代码标准的程度。特别是,哪些标准被遵循,哪些被忽略,这与传统的软件项目有什么不同?方法:我们将1048个开放源数据科学项目的语料库与1099个具有相似质量和成熟度的非数据科学项目的参考组进行了比较。结果:数据科学项目遭受使用过多参数和局部变量的函数的比率明显较高。数据科学项目也遵循与非数据科学项目不同的变量命名约定。结论:这些差异表明数据科学代码库与传统软件代码库不同,并且不遵循传统的软件工程惯例。我们推测,这可能是因为传统的软件工程惯例在数据科学项目的背景下是不合适的。
2020-07-28 cs.SE
User Requirements for Software Game Process; An Empirical Investigation
本研究试图提供一个更好的理解用户维度作为软件游戏成功的一个因素。它主要集中在用户因素对软件游戏开发过程的影响,并最终对游戏的质量进行实证调查。为确定关键的用户方面,制定并进行了一项定量调查。本研究以问卷调查的方式来验证研究模型与假设。本文的主要贡献是实证研究用户的关键因素对软件游戏开发过程中,最终导致更高质量的最终产品的影响。研究结果提供了证据,游戏开发组织必须处理多个用户的关键因素,以保持竞争力,并处理在软件游戏行业的高压力。
2021-10-07 cs.SE
Benefits of Applying Software Design Patterns to Backend Rust Applications
NORDAKADEMIE Hochschule der Wirtschaft(诺达卡德米经济高等学校);Otto GmbH & Co. KGaA(奥托有限公司)
通过对生产后端应用三个代表性组件的案例研究,探讨模式对软件质量和不变量编译时强制的影响,开发评估框架,应用模式改进代码,为Rust中设计模式研究奠定基础。
2026-07-07 cs.SE
Contributors Preference in Open Source Software Usability: An Empirical Study
开放源码软件的用户数量实际上是无限的,软件质量最终取决于最终用户的体验,这一事实使得可用性成为比专有软件更为关键的质量属性。随着个人和组织使用开源项目的急剧增加,可用性水平和相关问题必须得到更认真的解决。本实证调查的研究模型从贡献者的角度研究并建立了关键可用性因素与OSS可用性之间的关系。78 OSS贡献者,包括架构师,设计师,开发人员,测试人员和用户从22个不同规模的开源项目的数据集已被用来研究的研究模型。本研究的结果提供了经验证据,指出突出的关键因素发挥了重要作用,在提高开放源码软件的可用性。
2015-07-24 cs.SE
An Object-Oriented Framework for Designing Reusable and Maintainable DEVS Models using Design Patterns
设计模式是分享软件开发经验的良好实践。这些模式允许增强软件应用程序的架构和代码的可重用性、可读性和可维护性。由于仿真是通过计算机模型产生轨迹来获得结果和结论的,因此仿真设计者在进行面向复杂软件的仿真建模设计的同时,也在探索设计模式,使仿真代码更具有可重用性、可读性和易维护性。在DEVS(离散事件系统规范)中,设计人员已经成功地设计了模拟,框架,工具等,但是,一些问题仍然是开放的,应该探索,如如何实现一组状态,事件和转换的代码可以重用设计一个新的DEVS模型?DEVS模型如何扩展为新的形式主义?在本文中,我们解决这些问题,我们提出了一套模式,可以作为指导方针的DEVS模型及其扩展的设计师,并可能有助于设计的操作模拟框架。这些模式的灵感部分来自DEVS社区和软件工程开发人员的设计。
2020-08-14 cs.PL cs.SE
Querying Spreadsheets: An Empirical Study
任何公司最重要的资产之一是能够轻松访问有关其自身及其业务的信息。在这一行中,已经观察到,由于使用和操纵这种工件的简单性,这种重要信息通常存储在每年创建的数百万个电子表格中的一个中。不幸的是,在许多情况下,从电子表格中检索预期的信息是相当困难的:信息通常存储在一个巨大的非结构化矩阵中,不关心可读性或全面性。为了帮助用户从电子表格中提取信息,研究人员一直在研究模型、语言和查询工具。在本文中,我们提出了一个实证研究评估这些建议,评估其使用查询电子表格。我们调查使用谷歌查询功能,文本模型驱动的查询,可视化模型驱动的查询。为了比较这些不同的查询方法,我们提出了一个实证研究,其结果表明,最终用户的生产力增加时,使用模型驱动的查询,特别是使用其可视化表示。
2015-02-27 cs.SE
An Interactive Empirical Approach to the Validation of Software Package Specifications
本研究开发了一套基于一致性检查、以功能/数据/数据类型为框架的交互式软件包规格验证系统,支持客户通过场景在实现前体验系统,并以GKS规格为典型验证对象。
2024-01-31 cs.SE
Technical Debts and Faults in Open-source Quantum Software Systems: An Empirical Study
量子计算是一个快速发展的领域,吸引了研究人员和软件开发人员的兴趣。在其众多开源工具的支持下,开发人员现在可以构建,测试或运行他们的量子算法。虽然传统软件系统的维护实践已经得到了广泛的研究,但量子软件的维护仍然是一个新的研究领域,但它是确保整个量子计算系统质量的关键部分。在这项工作中,我们着手研究量子软件中技术债务的分布和演变及其与故障发生的关系。了解这些问题可以指导未来的量子开发,并为量子软件开发人员和研究人员应该更加关注的关键领域提供维护建议。在本文中,我们实证研究了从GitHub中选择的118个开源量子项目。这些项目分为10类。我们发现,所研究的量子软件遭受的问题的代码约定违反,错误处理和代码设计。我们还观察到量子软件中的代码设计、冗余码或代码约定与故障发生之间存在统计学显著相关性。
2022-06-01 cs.SE
State-Of-The-Art In Empirical Validation Of Software Metrics For Fault Proneness Prediction: Systematic Review
随着软件可靠性和故障成本的急剧上升,对软件质量的要求越来越高。然而,保证高质量的软件系统的规模和复杂性的增长,加上对他们的发展所施加的限制,已成为越来越困难,时间和资源消耗的活动。因此,交付没有严重错误的软件是不可避免的。在这种情况下,面向对象(OO)产品作为软件开发的事实标准,其独特的功能可能会有一些缺陷,很难发现或查明的变化的影响。故障识别、发现和修复得越早,成本就越低,质量就越高。为了评估产品质量,使用软件度量。许多面向对象的度量标准已经被提出和发展。此外,许多实证研究已经验证了度量和类错误倾向(FP)的关系。挑战在于哪些指标与FP类相关以及执行哪些活动。因此,这项研究汇集了最先进的故障预测的FP,利用CK和大小度量。我们对相关已发表的经验验证文章进行了系统的文献综述。所得结果进行了分析和介绍。它表明,29个相关的实证研究存在和措施,如复杂性,耦合和规模被发现是密切相关的FP。
2016-01-07 cs.SE
Teddy: Automatic Recommendation of Pythonic Idiom Usage For Pull-Based Software Projects
Python代码是遵循Python社区指导原则和实践的惯用代码。提供性能和可读性的好处,Python代码被声称被经验丰富的Python开发人员广泛采用,但对于新手程序员来说可能是一个学习曲线。为了帮助学习Pythonic,我们创建了一个名为Teddy的自动化工具,它可以帮助检查Pythonic习语的使用情况。该工具提供了一个带有即时分析的预防模式,建议在代码审查期间使用Python习惯用法,并提供了一个带有历史分析的检测模式,对习惯用法和非习惯用法的代码进行彻底扫描。在本文中,我们首先描述了我们的工具和评估其性能。此外,我们提出了一个案例研究,演示了如何使用泰迪在现实生活中的场景中的开源项目。测试结果表明,Teddy对Python语言和非Python语言的代码具有较高的检测精度。使用交互式可视化,我们演示了新手程序员如何在他们的项目中导航和识别Pythonic习语和非Pythonic代码。我们的视频演示与完整的交互式可视化可在www.example.com。
2020-09-05 cs.SE