Introducing Traceability in GitHub for Medical Software Development
本文针对医疗软件等安全关键系统在持续软件工程与 DevOps 范式下面临的需求到实现可追溯性挑战,提出在 GitHub 中引入可追溯性能力的方法,使开发人员在保持原有工作方式的同时自动生成满足监管要求的文档。
2021-10-25 cs.SE
Study of software developers' experience using the Github Copilot Tool in the software development process
在软件开发中,有一个不断的压力,即在不影响质量的情况下越来越快地生成代码。支持开发人员的新工具是为了响应这一需求而创建的。目前,新一代的解决方案即将推出-人工智能驱动的工具。2021年6月29日,Github Copilot发布。它使用经过训练的模型来生成基于人类可理解语言的代码。这项研究的重点是调查软件开发人员的方法,这个工具。为此,编写了一份包含18个问题的调查表,并与程序员分享。共收集到42个答案。研究结果表明,开发商的意见是分歧的。他们中的大多数人在参加调查之前都见过Github Copilot。对该工具的态度大多是积极的,但没有多少参与者愿意使用它。担忧是由使用Github Copilot相关的安全问题引起的。
2023-01-12 cs.SE stat.ML
A Systematic Literature Review on Trust in the Software Ecosystem
我们对全球软件生态系统中的信任概念进行了系统的文献综述。我们承认信任是软件生态系统中两个参与者之间的事情,我们研究了信任在最终用户与(1)软件产品,(2)软件包管理员,(3)软件生产组织和(4)软件工程师之间的关系中扮演的角色。系统性文献综述中出现了两个主要发现。首先,我们提供了一个软件生态系统中的信任的定义,包括一个理论框架,分解和表示信任的理论理解。其次,我们提供了一个信任因素的列表,可用于组装软件信任的概述。
2022-02-14 cs.SE
Improving Code Review with GitHub Issue Tracking
软件质量对于技术公司来说是一个重要的问题,因为它极大地影响了最终产品的效率,有用性和可维护性;因此,代码审查是软件开发人员必须做的活动。在代码审查过程中,高级工程师监视其他开发人员的工作,以发现可能的问题并执行编码标准。GitHub是使用最广泛的开源软件平台之一,吸引了数百万开发人员使用它来存储他们的项目。本研究旨在从代码审查的角度分析GitHub上的代码质量。我们使用GitHub的Issues Tracker检查了代码审查过程,该跟踪器允许团队成员在批准之前评估,讨论和分享他们对拟议代码的意见。基于我们的分析,我们提出了一种新的方法,通过促进规律性和社区参与来改善代码审查过程。
2022-10-10 cs.SE cs.SI
How Gamification Affects Software Developers: Cautionary Evidence from a Natural Experiment on GitHub
我们研究了软件开发人员的行为如何改变,以响应从GitHub(一个协作编程和软件开发的在线平台)中删除游戏化元素。我们发现,从用户界面(从用户简档页面)突然删除日常活动条纹计数器后,行为发生了显著变化。长期连续的活动被放弃,变得不那么常见。周末的活动减少了,开发人员做出单一贡献的日子变得不那么常见。平台社交网络中裸奔行为的同步性也有所下降,这表明游戏化是社交影响力的强大渠道。关注一组公开追求连续100天贡献目标的软件开发人员,我们发现其中一些开发人员在公共连胜计数器被删除后放弃了这一追求。我们的研究结果为游戏化对大型协作编程和软件开发平台上开发人员行为的重大影响提供了证据。他们敦促谨慎:游戏化可能会将软件开发人员的行为引向意想不到和不想要的方向。
2021-05-10 cs.CY cs.SE cs.SI
Impact of the Availability of ChatGPT on Software Development: A Synthetic Difference in Differences Estimation using GitHub Data
本文利用GitHub Innovation Graph数据及政府封禁ChatGPT的自然实验,通过DID、SC和SDID方法评估发现,ChatGPT显著提升软件开发活动与开发者生产力。
2024-06-16 cs.SE cs.SI econ.EM
Dynamics of Team Library Adoptions: An Exploration of GitHub Commit Logs
当一群人努力理解新信息时,各种各样的想法争夺注意力。陡峭的学习曲线随着团队的共同学习而被克服。为了理解这些团队动态在软件开发中是如何发挥作用的,我们探索了Git日志,它提供了软件存储库的完整更改历史。在这些存储库中,我们观察到代码添加,这代表成功实现的想法,以及代码删除,这代表失败或被取代的想法。通过检查这些提交类型之间的模式,我们可以开始理解团队如何采用新信息。我们专门研究软件库被项目采用后会发生什么,即,在项目中首次使用库时。我们发现,各种因素,包括团队规模,库的流行程度和流行的堆栈溢出与团队学习和成功地采用新的软件库的速度有关。
2019-07-10 cs.SE cs.SI
Systematic Mapping Protocol: Variability Management in Dynamic Software Product Lines for Self-Adaptive Systems
上下文:动态可变性管理在动态软件产品线中的重要性。目的:定义进行系统映射研究的协议,以总结和综合自适应系统中动态软件产品线动态可变性管理的证据。方法:应用该方案,按照K.彼得森结果:一个经过验证的方案,进行系统的映射研究。结论:第一个研究结果表明,有必要可视化的新方法来管理动态软件产品线的可变性。
2022-06-29 cs.SE
Summarising Big Data: Common GitHub Dataset for Software Engineering Challenges
在开源软件开发环境中,研究人员对生成的文本、数字和基于关系的数据感兴趣。各种数据集可用于该数据,其经常用于诸如软件工程和自然语言处理的领域。然而,由于这些数据集包含了环境中的所有数据,因此问题出现在TB级的数据处理中。因此,几乎所有使用GitHub数据的研究都根据某些标准使用过滤后的数据。在这种情况下,在每项研究中使用不同的数据集使得比较研究的准确性变得非常困难。为了解决这个问题,我们创建了一个公共数据集,并与研究人员共享,这将使我们能够解决许多软件工程问题。
2020-06-08 cs.SE
Analyzing the Productivity of GitHub Teams based on Formation Phase Activity
我们的目标是了解GitHub上高绩效团队的特征。为此,我们从软件存储库中收集数据,并通过检查生产力的差异来评估团队。我们的研究集中在团队形成阶段,即存储库创建后的前六个月。为了更好地理解团队活动,我们根据他们的工作活动的比例对存储库进行了聚类,并发现了团队中的三种工作风格:沟通者,沟通者和合作者。根据我们的研究结果,我们认为GitHub上软件开发存储库中的早期活动建立了协调流程,随着时间的推移实现了有效的协作。
2020-11-06 cs.SE cs.SI
Requirements Engineering, Software Testing and Education: A Systematic Mapping
本文通过系统性映射研究,梳理教育情境中需求工程与软件测试被结合探讨的方式。
2023-04-26 cs.SE
Painting the Landscape of Automotive Software in GitHub
汽车行业已经从机电行业转变为软件密集型行业。目前的高端生产车辆包含1亿多行代码,超过了现代飞机,大型强子对撞机,Android操作系统和Facebook的前端软件,在代码大小上有很大的优势。今天,据报道,包括苹果、谷歌、华为、百度和索尼在内的全球软件公司都在努力将他们的汽车推向道路。本文探讨了开源汽车软件的前景,第一次看到了这个多学科的行业,该行业有着悠久的闭源开发历史。我们通过描述汽车软件的特点和开发风格,描绘了GitHub上汽车软件的前景。这一格局是由15,000多名用户在2010年至2021年的12年内创建的约600个积极开发的汽车软件项目所定义的。这些项目包括与车辆动力学相关的软件; LiDAR和摄像头等传感器的固件和驱动程序;感知和运动控制算法;以及集成上述内容的完整操作系统。该领域的发展由工业界和学术界共同引领,三分之一的积极开发的汽车软件库由一个组织拥有。我们观察到了多个维度的变化,包括从MATLAB到Python的首选语言,以及感知和决策相关软件相对于传统汽车软件的流行。这项研究见证了开源汽车软件的蓬勃发展,为未来的研究和实践带来了许多影响。
2022-03-27 cs.SE
Understanding Quantum Software Engineering Challenges An Empirical Study on Stack Exchange Forums and GitHub Issues
随着量子计算的发展,量子软件对于探索量子计算系统的全部潜力至关重要。近年来,量子软件工程(QSE)成为一个新兴的领域,受到越来越多的关注。然而,目前尚不清楚软件工程社区面临的量子计算的挑战和机遇是什么。这项工作旨在了解开发人员所感知的QSE相关挑战。我们在Stack Exchange论坛上进行了实证研究,开发人员在那里发布了QSE相关的问题和答案,Github发布了开发人员在实际量子计算项目中提出QSE相关问题的报告。基于Stack Overflow上现有的问题类型分类,我们首先对Stack Exchange论坛上提出的QSE相关问题类型进行定性分析。然后,我们使用自动化主题建模来揭示与QSE相关的Stack Exchange帖子和GitHub问题报告中的主题。我们的研究强调了QSE的一些特别具有挑战性的领域,这些领域与传统的软件工程不同,例如解释量子计算代码背后的理论,解释量子程序输出,弥合量子计算和经典计算之间的知识差距,以及相关的机会。
2022-05-06 cs.SE
TestMiner: Software Testing Analysis for GitHub Repositories
UFMG(米纳斯吉拉斯联邦大学);University of Sheffield(谢菲尔德大学);University of Bordeaux, CNRS(波尔多大学,法国国家科学研究中心)
研究针对软件系统测试特性差异带来的理解困难,提出TestMiner工具,可提供项目测试实践概述。通过本科课程中50名学生使用该工具探索真实仓库测试实践,学生反馈良好,此为其主要贡献。
2026-07-15 cs.SE
Augmenting Software Bills of Materials with Software Vulnerability Description: A Preliminary Study on GitHub
本文针对SBOMs缺乏软件漏洞信息的问题,提出用项目依赖项暴露的CVE信息增强40个开源项目的SBOMs,并通过提交pull requests和问卷调查进行评估,反馈表明该方法具有实用价值。
2025-05-27 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
Human Capital in Software Engineering: A Systematic Mapping of Reconceptualized Human Aspect Studies
投入到软件开发中的人力资本对任何软件项目的成功都起着至关重要的作用。人力资本并不是指个人本身,而是指知识和技能的范围(即,人的方面),在发展过程中投资创造价值。然而,对于这些广义的人的方面如何与项目的健康相关,仍然没有达成共识。在这项研究中,我们将软件工程(SE)的人的方面重新概念化为一个框架(即,人力资本)。该研究提出了一个系统的映射,以调查和分类现有的人的方面的研究,分为四个方面的框架:能力,部署,发展和专门知识(基于全球人力资本指数)。从高级SE出版场所(五篇期刊文章和四次会议)中,我们提取了2013年至2017年期间发表的2,698篇论文。使用搜索标准,我们将结果缩小到340篇论文。最后,我们使用纳入和排除标准手动选择78篇论文(49篇定量研究和29篇定性研究)。使用研究问题,我们发现相关的主题,理论和数据来源。本文的主要成果是一套指标的SE人力资本。这项工作是为了创建一个SE人力资本指数(SE-HCI),以捕捉和排名人的方面,有可能评估项目内的进展,并指出跨项目学习和跨软件项目交流的机会。
2018-05-10 cs.SE cs.SI
A systematic mapping on quantum software development in the context of software engineering
本文通过系统性映射研究,综述了量子计算机软件的特殊性与特征,基于24篇论文回答了三个研究问题,填补了量子软件工程领域的研究空白。
2024-03-15 cs.SE
Software Engineering Process and Methodology in Blockchain-Oriented Software Development: A Systematic Study
软件工程是一个系统的、有纪律的、可量化的方法的过程,对大规模和复杂的软件开发有重要影响。在软件开发的生存周期中,已经有许多成熟的软件过程模型被广泛采用,这些模型将利益相关者推向最终软件产品开发的完成。在先进技术的范围内,各种新兴的和未来的技术正在发展,这确实需要软件工程社区的关注,传统的软件过程技术是否能够继承到未来的软件开发的核心基础。在本文中,我们研究了现有软件工程流程和模型的影响,包括敏捷和面向区块链的软件工程中的DevOps。我们还研究了采用最先进的概念和发展面向区块链系统的当前软件工程过程的重要性。我们讨论的洞察力的软件项目管理实践中的BOS开发。这项研究的结果表明,利用国家的最先进的技术在软件过程中的未来技术将是具有挑战性的和有前途的研究,需要广泛解决和改善国家的最先进的软件工程过程和方法的新技术。
2022-07-02 cs.SE
A Systematic Methodology for Developing Discrete Event Simulation Models of Software Development Processes
到目前为止,已经有几个开发软件过程模拟器的努力。然而,开发模拟器的方法似乎是临时的,没有系统的方法存在。由于支持软件开发的建模和仿真应该变得更加流行(有迹象表明它确实如此),因此需要将建模从工艺迁移到工程。本文提出了这样一个系统的方法,专注于离散的基于仿真的决策模型的开发,但可扩展到其他建模方法。
2014-03-14 cs.SE
A Systematic Literature Review of Modern Software Visualization
我们报告的国家的最先进的软件可视化。为了确保重现性,我们采用了系统性文献综述方法。也就是说,我们分析了来自IEEE Xplore和ACM数字图书馆数据库的1440个条目。我们选择了2013-2019年发表的105篇相关论文全文,我们根据支持的软件系统方面(即,结构、行为和进化)。对于每篇论文,我们提取了表征软件可视化的主要维度,如软件工程任务、用户角色、信息可视化技术和用于显示可视化的媒体。我们为该领域的研究人员提供了软件可视化的最新技术概述,并突出了研究机会。我们还通过将软件可视化与开发关注点和具体细节进行匹配,以获得可用的可视化工具,从而帮助开发人员为其特定环境确定合适的可视化。
2020-03-02 cs.SE
On the Popularity of GitHub Applications: A Preliminary Note
GitHub是世界上最大的开源软件集合。因此,对软件开发人员和用户来说,比较和跟踪GitHub存储库的受欢迎程度是很重要的。在本文中,我们提出了一个框架来评估GitHub软件的受欢迎程度,使用它们的星数。我们还提出了一套流行的增长模式,它描述了随着时间的推移,一个系统的恒星数量的演变。我们发现,星级往往与其他指标相关,如分叉,以及第三方程序对GitHub软件的有效使用。在整个论文中,我们使用从GitHub提取的真实数据来说明我们的框架的应用。
2017-03-21 cs.SE
Testing Scientific Software: A Systematic Literature Review
内容:科学软件在关键决策中发挥着重要作用,例如根据气候模型进行天气预测,以及为研究出版物计算证据。最近,由于软件故障导致的错误,科学家不得不撤回出版物。系统测试可以识别代码中的此类错误。目的:本研究旨在确定测试科学软件时面临的具体挑战,提出的解决方案和未解决的问题。方法:采用系统的文献检索法,对相关文献进行分析。我们确定了62项研究,提供了有关测试科学软件的相关信息。结果如下:我们发现,测试科学软件时面临的挑战分为两大类:(1)由于科学软件的特性(如Oracle问题)而发生的测试挑战,以及(2)由于科学家和软件工程社区之间的文化差异而发生的测试挑战,如将代码和模型视为不可分割的实体。此外,我们确定了可能克服这些挑战及其局限性的方法。最后,我们描述未解决的挑战,以及如何软件工程研究人员和从业人员可以帮助克服它们。结论:科学软件对测试提出了特殊的挑战。具体来说,科学家开发人员和软件工程师之间的文化差异,以及科学软件的特点,使测试更加困难。现有的技术,如代码克隆检测,可以帮助改善测试过程。软件工程师在开发测试技术时,应该考虑科学软件带来的特殊挑战,例如Oracle问题。
2018-04-05 cs.SE
PyPackIT: Automated Research Software Engineering for Scientific Python Applications on GitHub
本文提出PyPackIT,一款基于云的自动化工具,利用现代持续软件工程与DevOps方法论,为科学Python应用提供构建包骨架、文档测试套件及自动化流水线,助力研究人员遵循FAIR与开放科学原则高效开发高质量软件。
2025-03-06 cs.CE cs.SE
Policy-driven Software Bill of Materials on GitHub: An Empirical Study
本研究通过挖掘GitHub软件仓库,分析政策驱动型软件物料清单(SBOM)的现状,发现热门仓库中仅0.56%含此类SBOM,其依赖项存在2202个唯一漏洞、22%缺许可信息,为SBOM助力安全评估与许可管理提供参考。
2025-09-01 cs.SE
How does Software Change?
随着时间的推移,软件随着代码库的变化而发展。在内部,软件响应于将一些代码更改包含到代码库中并丢弃其他代码的决策而进行更改。本文在解释软件演化机制的基础上,提出了软件变更理论。我们的理论基于多种证据来源(例如,GitHub文档和相关的科学文献)与GitHub中基于拉的开发模型相关。由此产生的理论解释了与项目相关的核心概念的影响(例如,人和治理)及其生态系统对软件变更决策的影响。
2021-06-03 cs.SE
Architectural Support for Software Performance in Continuous Software Engineering: A Systematic Mapping Study
本研究针对持续软件工程中性能评估的难点,采用系统性映射方法从215篇相关论文中筛选66项核心研究,对面向性能的持续软件工程架构支持的研究现状进行分类梳理,为领域研究重点和未来方向提供参考。
2023-04-05 cs.SE
Cognitive Biases in Software Engineering: A Systematic Mapping Study
软件项目挑战和失败的一个来源是由人类认知偏见引入的系统性错误。虽然在认知心理学中得到了广泛的探讨,但有关认知偏差的调查只是最近才在软件工程(SE)研究中得到普及。因此,本文系统地映射,汇总和综合的文献认知偏见在软件工程产生一个全面的知识体系,了解国家的最先进的研究,并为未来的研究和实践提供指导。我们重点关注偏见的前因、影响和缓解技术,确定了1990年至2016年间发表的65篇文章,其中调查了37种认知偏见。尽管人们对认知偏差的兴趣越来越浓厚,但研究结果显示,在理解和解释认知偏差方面,对缓解技术的研究很少,理论基础也很薄弱。虽然偏见相关的研究已经产生了许多新的见解,在软件工程社区,具体的偏见缓解技术仍然需要软件专业人员克服认知偏见对他们的工作的有害影响。
2018-10-23 cs.SE
Wait, wasn't that code here before? Detecting Outdated Software Documentation
本文针对软件文档易过时的问题,基于作者此前提出的过时代码引用检测方法,开发了一个 GitHub Actions 工具,可在每次提交拉取请求时自动扫描项目文档中的过时引用,帮助开发者维护文档时效性。
2023-07-10 cs.SE
Concerns in Software Development: A Systematic Mapping Study
内容:成功地解决与软件系统开发和运行相关的利益相关者的关注对于实现开发目标至关重要。随着越来越多的系统被用来处理关键任务,在整个软件开发生存周期中使用系统化方法来解决这些问题的重要性也在不断增加。目的:本研究的目标是提供一个概述,以解决整个软件开发生存周期中的问题。方法:使用预定义的方案进行系统的映射研究。在四个数字数据库中检索研究文献,并在多名研究人员进行三轮选择过程后选择主要研究。结果:对提取的数据进行处理,并从不同的角度报告结果。我们的研究目标也对结果进行了分析。结论:我们发现,在软件开发生存周期的不同阶段,术语的使用和解决问题有相当大的变化。
2023-02-13 cs.SE
Sustainability in Software Architecture: A Systematic Mapping Study
可持续性在一般的软件工程中,特别是在软件架构中,是一个越来越多的研究主题。已经有一些二级研究解决软件工程的可持续性,但没有这样的研究明确侧重于软件架构。这项工作旨在通过对可持续性和软件架构研究之间的交叉点进行系统的映射研究来填补这一空白,其目的是(i)反映当前的技术水平,以及(ii)确定进一步研究的需求。我们的研究结果表明,总体而言,现有的作品不成比例地集中在可持续发展的具体方面,特别是最技术和“内向”的。这是以牺牲解决可持续性等多方面问题所需的整体视角为代价的。此外,更多的反思导向的研究工作,并更好地覆盖在建筑生存周期的活动需要进一步成熟的领域。基于我们的研究结果,我们提出了一个可持续性感知的软件架构的研究议程。
2022-04-25 cs.SE
Software Analytics to Software Domains: A Systematic Literature Review
软件分析(SA)是最近出现的大数据分析的一个新分支(2011年)。SA与直接软件分析的区别在于,它将从许多不同软件工件中挖掘的数据链接起来,以获得有价值的见解。这些见解对于贯穿软件生命周期的不同阶段的决策过程是有用的。由于SA是目前一个热门和有前途的话题,我们进行了系统的文献综述,在本文中提出,以确定在SA的知识和开放的研究领域的差距。由于许多研究人员仍然对SA的真正潜力感到困惑,我们不得不筛选出可用的研究论文,以获得与SA最相关的工作供我们审查。在135项研究中,筛选出19项研究。我们的系统评价基于四个主要因素:软件从业者SA的目标,SA所涵盖的领域,SA提取的工件,以及这些工件是否有联系。我们的审查结果表明,大部分可用的SA研究只服务于开发人员的需求。此外,许多可用的研究只使用一个工件,这反过来意味着工件之间的联系更少,见解更少。这表明,现有的SA研究工作仍然是胚胎留下了大量的空间,为未来的研究在SA领域。
2015-11-12 cs.SE
Software Architectures for Robotics Systems: A Systematic Mapping Study
软件体系结构相关的问题是机器人系统的重要。二十多年来,以架构为中心的机器人系统软件开发和演化一直吸引着研究人员的关注。这项工作的目标是系统地识别,分类和整体映射现有的解决方案,研究进展和趋势,影响架构驱动的建模,开发和机器人软件的演变。我们进行了一项系统映射研究,以确定和分析基于56篇同行评审论文的相关文献。我们从选定的论文中提取和综合数据,对现有的研究进行分类,并系统地映射解决方案,框架,符号和评估方法,以突出软件架构在机器人系统中的作用。我们已经确定了八个不同的研究主题,支持架构解决方案,以实现机器人软件的操作,进化和开发特定活动。在这一领域的研究已经从面向对象的组件为基础,现在服务驱动的机器人代表不同的体系结构代。自2005年以来,报告的解决方案利用模型驱动,面向服务和逆向工程技术。一个新兴的趋势是云机器人技术,它利用服务驱动架构的基础来支持机器人互联网。该SMS的结果促进了知识转移,使研究人员和从业人员受益,重点是利用软件架构来建模,开发和发展机器人系统。
2017-01-19 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
How Do Software Developers Use GitHub Actions to Automate Their Workflows?
本文首次实证研究开发者对 GitHub Actions 的使用及其影响,发现采用者评价积极,但该技术会增加月度拒绝 PR 数并减少已合并 PR 的月度提交数。
2021-03-22 cs.SE
Problems in Systematic Application of Software Metrics and Possible Solution
软件度量技术的系统应用可以导致最终软件产品质量的显著提高。然而,由于诸多原因,软件度量技术和工具的广泛应用仍然明显不足。在本文中,我们研究了当代软件度量工具的一些局限性,然后提出了一个新的工具,将解决一些问题的建设。我们描述了有前途的原型,它的内部结构,然后专注于它的输入语言的独立性。
2013-11-15 cs.PL cs.SE
Carbon-Efficient Software Design and Development: A Systematic Literature Review
本文通过系统性文献综述梳理65项碳高效软件设计与开发研究,提出5W1H分类法并总结现有方法、挑战与未来方向。
2025-04-09 cs.SE
Blockchain software patterns for the design of decentralized applications: A systematic literature review
软件模式是一种可重用的解决方案,用于在设计软件时解决给定上下文中经常出现的问题。使用模式是软件架构师确保软件质量的常见做法。许多模式集合已被提出用于大量的应用程序域。然而,由于该技术的新近发展,只有少数可用的集合在工业区块链应用中缺乏广泛的测试。软件架构师也很难在其应用程序中充分应用区块链模式,因为它需要深入了解区块链技术。通过系统的文献综述,本文确定了120种独特的区块链相关模式,并提出了一种由多个类别组成的模式分类法,该分类法是从提取的模式集合中构建的。该集合的目的是映射、分类和描述文献中所有可用的模式,以帮助读者在区块链模式选择方面做出适当的决定。本研究还展示了这些模式的潜在应用,并确定了区块链模式与其他非区块链软件模式之间的关系。
2022-01-12 cs.SE
Software Architecture for Quantum Computing Systems -- A Systematic Review
量子计算系统依赖于量子力学的原理,比经典计算系统更有效地执行大量具有计算挑战性的任务。软件密集型系统的架构可以使架构师能够利用以架构为中心的过程、实践、描述语言等,在更高的抽象层次上对量子计算软件(简称量子软件)进行建模、开发和进化。我们进行了系统的文献综述(SLR),以调查(i)架构过程,(ii)建模符号,(iii)架构设计模式,(iv)工具支持,以及(iv)量子软件架构的挑战性因素。SLR的结果表明,量子软件代表了一种新的软件密集型系统;然而,可以定制现有的过程和符号来导出量子软件的架构活动和开发建模语言。映射到量子门(Qugates)的量子比特(Qubits)可以表示为实现量子软件的架构组件和连接器。工具链可以包含可重用的知识和人类角色(例如,量子域工程师、量子代码开发人员)来自动化和定制架构过程。该SLR的结果可以帮助研究人员和从业人员开发新的假设进行测试,导出参考架构,并利用以架构为中心的原则和实践来设计新兴的和下一代的量子软件。
2023-03-22 cs.SE
A Systematic Mapping Study of Empirical Studies performed with Collections of Software Projects
内容:在软件工程实验中,软件项目是常见的资源,尽管这些资源通常是在没有遵循特定策略的情况下选择的,这降低了结果的代表性和可复制性。一种选择是使用软件项目的保留集合,但这些集合必须是最新的,并有明确的指导方针来保证它们在很长一段时间内的更新。目标:对实证研究中选择软件项目的策略进行了系统的二次研究,以发现考虑的指导方针,项目集合的使用程度,提取的元数据以及随后进行的统计分析。方法:一项系统性映射研究,以识别2013年1月至2020年12月发表的研究。结果:122项研究被确定,其中72%使用自己的指南进行项目选择,27%使用现有的项目集合。同样,也没有证据表明项目选择过程有一个标准化框架,也没有应用与样本收集战略有关的统计方法。
2021-09-15 cs.SE
Towards Mixed-Criticality Software Architectures for Centralized HPC Platforms in Software-Defined Vehicles: A Systematic Literature Review
Daimler Truck AG(戴姆勒卡车股份公司);Technical University of Munich(慕尼黑工业大学)
本文通过系统文献综述探讨软件定义车辆集中HPC平台中混合关键性软件架构的整合方法,提出面向实践的指南,评估现有研究的系统性和实证性,并提出示例SWA设计。
2025-06-06 cs.SE
Software Engineering Practices for Scientific Software Development: A Systematic Mapping Study
背景资料:科学软件应用程序的开发远非微不足道,因为这些应用程序的必要复杂性不断增加,它们的规模不断增加,并且需要密集的维护和重用。目标:为此,科学软件开发人员(通常缺乏正式的计算机科学背景)需要使用适当的软件工程(SE)实践。本文介绍了一个系统的映射研究的结果,使用SE的科学应用开发和它们对软件质量的影响。方法:为了实现这一目标,我们进行了系统的映射研究的359篇论文。我们首先描述了一个目录中使用的科学软件开发的SE实践。然后,我们讨论了驱动这些实践应用的感兴趣的质量属性,以及将实践应用于质量的尝试性副作用。结果如下:主要研究结果表明,科学软件开发人员正在关注提高实现生产力的实践,如代码重用,使用第三方库,以及应用“好”的编程技术。此外,除了发现性能是许多这些应用程序的关键驱动力之外,科学软件开发人员还发现可维护性和生产力也很重要。结论:研究结果与现有文献进行了比较,解释下的软件工程棱镜,研究人员和从业人员提供的各种影响。该研究的主要发现之一,被认为是推动未来研究工作的重要因素,是缺乏在应用软件实践时需要做出权衡的证据,即,对其他质量属性的负面(间接)影响。
2020-10-19 cs.SE
A Curated List of Open-source Software-only Energy Efficiency Measurement Tools: A GitHub Mining Study
Federal University of Technology - Paraná (UTFPR)(巴拉那联邦技术大学);University of Southern Denmark (SDU)(南丹麦大学)
本文通过 GitHub 数据挖掘研究,梳理了开源能源效率测量工具,分析了其设计特点和演变,为软件架构设计提供参考。
2026-03-23 cs.ET cs.SE
GitHub Marketplace for Automation and Innovation in Software Production
本文通过分析 GitHub Marketplace 上 8,318 个自动化工具并对比 515 篇学术论文,揭示了工业界与学术界在软件生产自动化工具使用上的差异,为开源自动化工具生态提供了系统性的实证描述。
2024-07-07 cs.SE
GitHub-OSS Fixit: Fixing bugs at scale in a Software Engineering Course
许多研究表明,将开源项目引入软件工程(SE)课程教学的好处。然而,现有的研究有几个局限性,限制了开源项目在课堂环境中的广泛适应,包括(1)所选择的项目仅限于一个特定的项目,(2)大多数研究只调查了它对教授特定SE概念的影响,以及(3)学生可能会在他们的贡献中犯错误,导致质量差的代码。与此同时,软件公司已经成功推出了Google Summer of Code(GSoC)和FindBugs“fixit”等项目,为开源项目做出贡献。受这些项目成功的启发,我们提出了GitHub-OSS Fixit,这是一个课程项目,通过修复GitHub中报告的错误,教导学生为开源Java项目做出贡献。我们描述了我们的课程大纲,通过鼓励使用几个自动化的程序分析工具来教授学生SE概念。我们还提供了精心设计的指导,供学生参与GitHub-OSS Fixit。由于所有的讲座和实验都是在线进行的,我们认为我们的课程设计可以帮助指导未来的在线SE课程。总体而言,我们的调查结果显示,学生认为GitHub-OSS Fixit可以帮助他们提高许多技能,并应用课堂上教授的知识。总共有154名学生向24个不同的Java项目提交了214个pull request,其中59个项目被合并,82个项目被开发人员关闭。
2021-02-14 cs.SE
Global Software Engineering in the Age of GitHub and Zoom
自2006年首届ICGSE会议以来,情况发生了很大变化。工具得到了改进,对文化差异的认识得到了广泛传播,开源的前景化等发展都增强了我们跨越地理鸿沟的能力。但是软件在世界上的广泛而深远的影响-特别是对于社会规模的系统,如社交媒体-迫使开发人员和学者承担新的和极具挑战性的责任。我们必须找到更好的方法,将道德纳入我们的发展实践,并更加关注所部署的系统与关键的社会系统相互作用并经常破坏这些系统时产生的有害的意外后果。
2021-04-06 cs.CY cs.SE
A Systematic Literature Review on Intertemporal Choice in Software Engineering - Protocol and Results
当在软件项目中做出选择时,工程师和其他利益相关者参与了涉及不确定未来结果的决策。心理学、行为经济学和神经科学的研究已经质疑了许多关于如何做出这些决定的经典假设。这篇文献综述的目的是描述支持软件工程中这些决策研究的假设。我们确定了关于这个问题的实证研究,并分析了时间的作用是如何在SE的决策研究的特点。文献综述的目的是支持跨期决策的实证研究在实践中的描述性框架的发展。
2017-01-28 cs.SE
State-of-the-Art in Software Security Visualization: A Systematic Review
本文系统综述了软件安全可视化研究,构建了包含图形、符号、矩阵和隐喻四类的分类体系,并指出开发适应安全态势演变的创新可视化技术对增强威胁检测和指导未来研究至关重要。
2025-09-22 cs.SE
Data Preparation for Software Vulnerability Prediction: A Systematic Literature Review
软件漏洞预测(SVP)是一种数据驱动的软件质量保证技术,近年来在软件工程研究领域得到了广泛的关注。然而,准备软件漏洞(SV)相关数据的困难被认为是工业采用SVP方法的主要障碍。鉴于关于这一主题的文献越来越多,但分散,因此需要及时系统地选择,审查和综合报告现有SV数据准备技术和挑战的相关同行评审论文。我们对SVP研究进行了系统性文献综述(SLR),以开发数据准备挑战,解决方案和所需研究的系统化知识体系。我们对61篇相关论文的回顾使我们能够为SVP相关挑战制定一个数据准备分类。我们已经分析了识别的挑战和可用的解决方案,使用建议的分类。我们对最先进技术的分析使我们能够确定未来研究的机会。这篇综述还为SVP方法的研究者和实践者提供了一套建议。
2022-04-27 cs.SE
The Role of Generative AI in Strengthening Secure Software Coding Practices: A Systematic Perspective
本文系统研究生成式AI在增强安全编码实践中的作用,通过文献综述与实证分析探讨AI代码生成工具如何缓解安全风险并提升开发效率,为其在安全开发工作流中的集成提供洞见。
2025-04-28 cs.SE
Architecture Decisions in Quantum Software Systems: An Empirical Study on Stack Exchange and GitHub
本研究基于Stack Exchange和GitHub的相关数据,通过定性方法实证分析量子软件开发中的架构决策,明确了其表述模式、决策类别、常见应用领域、核心质量属性及主要挑战,指出挑战与量子系统特有属性紧密相关。
2024-09-18 cs.SE
Adopting a software product line engineering approach in industrial development contexts: A protocol for a systematic literature review
系统性二次研究(系统性映射研究(SMS)或系统性文献综述(SLR))的价值直接来自其系统性。正式、明确、客观和公正的过程保证了这些系统性研究的结果是有效的。这一过程体现在行动方案中,在进行二次研究之前,必须得到所有研究人员的同意。因此,该方案是一个详细的行动计划,其中包含所有任务和要执行的有序步骤序列。本文档详细介绍了在工业开发环境中采用软件产品线工程(SPLE)方法的SLR协议。该研究的目标是确定和分析在工业发展背景下采用这一方法的利弊,与学术环境中报告的经验形成对照。
2019-04-03 cs.SE
A Systematic Literature Review of Soft Computing Techniques for Software Maintainability Prediction: State-of-the-Art, Challenges and Future Directions
Vellore Institute of Technology(韦洛尔理工学院)
随着先进技术和方法的发明,软件正在迅速变化。快速、成功地升级软件以响应不断变化的业务需求的能力比以往任何时候都更加重要。对于软件产品的长期管理,度量软件可维护性是至关重要的。软计算技术在软件维护性预测中的应用,通过对软件维护性的准确预测,在软件维护过程中显示了巨大的潜力。为了更好地理解软计算技术对软件可维护性预测的作用,我们的目标是提供一个系统的文献综述软计算技术的软件可维护性预测。首先,我们提供了一个详细的概述软件的可维护性。在此之后,我们将探讨软件可维护性的基本原理和采用软计算方法预测软件可维护性的原因。随后,我们研究了软件可维护性预测过程中采用的软计算方法。此外,我们还讨论了使用软计算技术来预测软件可维护性的困难和潜在的解决方案。最后,我们总结了一些有前途的未来方向,以推动进一步的研究创新和发展,在这个有前途的领域的审查。
2022-09-21 cs.AI cs.SE
Modelling Guidance in Software Engineering: A Systematic Literature Review
尽管在软件工程(SE)的潜在好处,采用软件建模在工业中是低的。诸如工具支持之类的技术问题以前已经得到了大量的研究,但个人指导和培训却很少受到关注。作为建模提供必要指导的第一步,我们进行了系统的文献综述(SLR),以探索当前的最新技术水平。我们搜索了建模指导的学术文献,并通过三轮筛选选择了25篇论文进行全文筛选。我们发现关于建模指导的研究是零散的,术语的使用不一致,缺乏经验验证或支持证据。我们概述了常用的不同维度,以提供指导软件建模。此外,我们提供了三个术语建模方法,风格和指导方针的定义,因为目前的文献缺乏一个明确的区别。这些定义可以帮助区分重要的概念,并提供精确的建模指导。
2022-06-14 cs.SE