Decision Models for Selecting Architecture Patterns and Strategies in Quantum Software Systems
School of Computer Science, Wuhan University(武汉大学计算机学院);Tampere University(坦佩雷大学);Massey University(梅西大学);RMIT University(皇家墨尔本理工大学);LUT University(拉彭兰塔-拉赫蒂理工大学);University of Oulu(奥卢大学);University of Derby(德比大学)
本研究针对量子软件系统的六大关键设计领域,基于挖掘研究与SLR数据构建决策模型,经30名从业者访谈验证,可助力其选择合适的架构模式与策略以应对设计挑战
2026-08-10 cs.SE
A Tool for Automatically Cataloguing and Selecting Pre-Trained Models and Datasets for Software Engineering
Universitat Politècnica de Catalunya(加泰罗尼亚理工大学)
MLAssetSelection是一种自动归档和选择软件工程预训练模型和数据集的网页工具,提供排行榜、需求匹配、实时更新和用户定制功能。
2026-01-19 cs.SE
BinaryAI: Binary Software Composition Analysis via Intelligent Binary Source Code Matching
提出BinaryAI,一种通过两阶段二进制源代码匹配捕获语法和语义特征的新型二进制到源码SCA技术,显著提升了函数匹配和TPL检测的精确率与召回率。
2024-08-26 cs.SE
Selecting third-party libraries: The practitioners' perspective
选择第三方库是几乎任何软件开发项目的基本要素。然而,决定选择哪些库是一个具有挑战性的实际问题。选择错误的库会在成本、时间和开发工作方面严重影响软件项目,影响的严重程度取决于库在软件架构中的角色。尽管遵循仔细的图书馆选择过程很重要,但在实践中,第三方图书馆的选择仍然是以临时的方式进行的,其中数十个因素在决定中发挥着影响作用。在本文中,我们研究的因素,影响图书馆的选择过程中,所感知的行业开发人员。为此,我们对来自11个不同企业的16名开发人员进行了一项横断面访谈研究,并调查了115名参与选择库的开发人员。我们系统地设计了一套全面的26个技术、人力和经济因素,供开发人员在选择软件库时考虑。其中八个因素是新的文献。我们将解释这些因素中的每一个,以及它们如何在决策中发挥作用。最后,我们讨论了我们的工作的图书馆维护人员,潜在的图书馆用户,包管理器开发人员和经验的软件工程研究人员的影响。
2020-09-09 cs.SE
Project-wise Comparison of Software Birthmarks Using Weighted Partial Similarity
Okayama University(冈山大学);Kyoto Sangyo University(京都产业大学);Kindai University(近畿大学)
针对项目级代码复用检测中的部分复用和小模块偶然相似性问题,提出基于对称聚合模块级相似性的框架,通过加权方案和部分相似性方法实现鲁棒检测,在35个Java项目上验证优于现有方法。
2026-06-25 cs.SE
Cherry-Picking of Code Commits in Long-Running, Multi-release Software
本文介绍了Tartarian,一个工具,支持维护软件的长期运行,多发布分支的分布式版本控制系统。当新的维护代码(如错误修复和代码改进)提交到分支中时,这些代码可能会应用于其他分支或与其他分支重用。要做到这一点,开发人员可以手动识别一个提交并进行挑选。Tartarian可以通过提供提交主题标签来支持此活动,开发人员在提交代码时将其用作元数据来指定他们的意图。有了这些标签,Tartarian使用依赖关系图(dependency graph)和分支标识符(Branch Identifier)来识别提交的适用分支,依赖关系图表示分支的依赖关系约束,分支标识符将提交主题标签与依赖关系图匹配。使用Tartarian,开发人员可以更有效地维护多个版本的软件。
2017-08-08 cs.SE
Selecting Cybersecurity Requirements: Effects of LLM Use and Professional Software Development Experience
本研究通过分组实验探究LLM使用与软件开发经验对网络安全需求优先级排序的影响,发现LLM使用无显著作用,而经验丰富者在用户体验影响评分和风险估算上存在显著差异。
2025-10-05 cs.SE
Systematic Literature Reviews in Software Engineering -- Enhancement of the Study Selection Process using Cohen's Kappa Statistic
背景:系统性文献综述(SLR)依赖于严格和可审计的方法,以最大限度地减少偏倚并确保可靠性。当使用一组纳入/排除标准选择研究时,会出现一种常见的偏倚。这种偏倚可以通过双重修订来减少,这使得选择过程更加耗时,并且仍然容易产生偏倚,这取决于每个研究人员如何解释入选/排除标准。目的:为了减少研究选择过程中的偏差和时间花费,本文提出了一种基于Cohen's Kappa统计量的研究选择过程。我们已经定义了一个迭代过程的基础上使用这个统计量,在此期间的标准进行细化,直到获得几乎完美的协议(k>0.8)。在这一点上,两位研究人员以相同的方式解释选择标准,因此,偏差减少了。从这一协议开始,可以消除双重审查;因此,所花费的时间大大缩短。方法:通过对2005年至2018年出版的软件工程作品进行三级研究,证明了这种迭代过程选择研究的可行性。结果如下:在研究选择过程中节省的时间为28%(152项研究),如果研究数量足够大,节省的时间趋于渐近50%。结论:研究人员和学生在进行SLR时可以利用这种迭代过程来选择研究,以减少对纳入和排除标准解释的偏倚。它对于资源很少的研究特别有用。
2020-05-21 cs.SE
Distributed Software Evolution: a Survey
分布可以是软件演化过程的一个特征。换句话说,在时间和空间上分布的团队和组织可以开发和处理软件应用程序。最简单的情况是将生产外包,并在分布式站点雇用劳动力,以便多个分布式团队可以在并行框架中处理一个项目。如果这种分布是全球性的,它将被称为全球软件演化或开发。更高层次的分布被定义为去中心化和去中心化的软件演化,这意味着软件开发可以独立于最初的提供商。这也意味着软件执行独立于初始提供者和初始系统,因此软件应用程序可以很容易地在不同的和新的项目中重用。然而,在去中心化的软件演化中,高层架构是在实际上集中的框架内管理的。大多数大型开源项目都是这个级别的典范。在分布方面,有一个更高层次的去中心化软件进化,称为“分布式认知和领导力”。在这个分布式层次上,所有系统层次都在分布式框架内演化,项目网络及其演化过程中没有集中点。一些开源软件应用程序是这最后一个层次的典范。分布式软件演化不仅在实现其目标方面面临着一定的挑战和机遇,而且在其他领域也带来了一些挑战和机遇。本文对分布式软件演化进行了综述。为此,本文首先阐述了分布式软件演化的重要性,然后介绍了分布式软件演化值得注意的范式。
2022-04-28 cs.SE
Testing Causality in Scientific Modelling Software
本文提出因果测试框架,利用因果推断技术从现有混杂数据中推断因果效应,支持后验的蜕变测试,有效解决了科学建模软件因复杂输入、漫长执行和非确定性而难以测试的问题。
2023-06-30 cs.SE
One-off Events? An Empirical Study of Hackathon Code Creation and Reuse
背景:黑客松已经成为团队合作项目和开发软件原型的热门活动。大多数现有的研究集中在事件期间的活动,对黑客代码的演变关注有限。目的:我们的目标是了解在黑客攻击事件中使用和创建的代码的演变,特别关注代码blob,具体来说,黑客攻击团队重用已有代码的频率,他们开发了多少新代码,如果代码在之后被重用,以及影响重用的因素。方法:我们从DevPost收集了22,183个黑客项目的信息,并从World of Code获得了相关的代码blob、作者、项目特征、原作者、代码创建时间、语言和大小信息。我们通过识别所有包含在黑客马拉松期间创建的blob的提交并识别所有包含这些提交的项目来跟踪代码blob的重用。我们还进行了一系列的调查,以更深入地了解黑客代码的演变,我们发送给黑客参与者的代码被重用,其代码没有被重用,以及重用一些黑客代码的开发人员。测试结果:在hacksons仓库中,9.14%的代码blob和8%的代码行(codelines)是在hacksons中创建的,大约三分之一的hacksons代码在其他项目中被blob和codelines重用。相关技术的数量和黑客松参与者的数量增加了重用概率。结论:我们的研究结果表明,黑客马拉松并不总是像常识所指示的那样是“一次性”的事件,它们可以作为这一领域进一步研究的起点。
2022-07-03 cs.CY cs.SE
Dependency-Aware Release Planning for Software Projects using Fuzzy Graphs and Integer Programming
软件发布计划(SRP)是在遵守预算的情况下,为软件找到具有最高价值的需求子集。然而,需求的价值可能在不同程度上取决于选择或忽略其他需求。然而,现有的SRP模型要么完全忽略了价值相关的依赖关系,要么忽略了这些依赖关系的优势,即使他们考虑到了这些优势。本文提出了一种考虑软件需求间正、负相关依赖强度差异的软件发布规划模型。为了捕捉与值相关依赖的强度相关的不精确性,我们利用了模糊图的代数结构。我们进一步,贡献了一个可扩展的技术,自动识别的价值相关的依赖关系的基础上,用户偏好的软件需求。通过仿真验证了工作的有效性。
2020-03-03 cs.SE
Teaching Literature Reviewing for Software Engineering Research
本章面向软件工程研究生教学,系统梳理文献综述流程、类型、实施与质量评估方法,以帮助教师开展二次研究训练。
2024-06-12 cs.SE
Prompts as Software Engineering Artifacts: A Research Agenda and Preliminary Findings
本文提出将提示词作为软件工程制品的研究议程,并通过74名专业人员的调查揭示当前提示词使用多为临时试错、缺乏复用与标准化,为系统化提示词管理提供实证基础。
2025-09-22 cs.SE
OSS PESTO: An Open Source Software Project Evaluation and Selection TOol
开放源码软件(Open Source Software,OSS)在当今社会扮演着越来越重要的角色,已被广泛地应用于各种软件产品中。对于许多从业者来说,选择和采用合适的OSS可以帮助他们很大。虽然已经进行了许多研究,提出了开放源码软件的评估和选择模型,有限的数量遵循和使用的行业。与此同时,许多现有的开放源码软件评估工具,虽然提供了有价值的细节,缺乏提供直观的建议,在框架支持的评估因素。为了填补这一空白,我们提出了一个开源软件项目评估和选择工具(OSS PESTO)。它针对Github上最大的开放源码软件源代码主机开放源码软件,使从业人员能够根据选定的开放源码软件评估模型比较其中的候选者,从而便利了评估做法。它还允许实时Github数据汇集和定制评估,从而丰富了其有效性和易用性。
2021-02-24 cs.SE
Selecting Features for the Next Release in a System of Systems Context
智慧城市与全球城市化趋势同步发展。智慧城市项目的最终目标是为公民、社会经济和生态环境带来积极影响。这涉及到从生活质量(QoL)和主观幸福感(SWB)等总体概念中得出(技术)项目的具体要求的挑战。将长期、注重影响的目标与项目产出和成果联系起来是一个复杂的问题。单个智慧城市项目(或系统)的需求和结果特征的决策更加复杂,因为城市不像整体,分层和结构良好的系统。然而,系统工程提供的概念,支持决策在这种情况下。智能城市等复杂的社会技术系统可以被描述为系统的系统(SoS)。一个体系结构由独立开发的系统组成,但提供更高层次的集成功能。为了给体系结构增加新的功能,要么扩展现有的体系结构,要么开发和集成新的体系结构。在这两种情况下,功能的扩展通常是以小增量完成的,并通过软件版本进行结构化。但是,决定在下一个版本中包含哪些功能是复杂的,并且在手动完成时难以管理。为了解决这一问题,我们利用多目标下一个版本的问题(MONRP)搜索一组最佳的功能,在一个软件版本的SoS的上下文中。为了在早期规划阶段优化搜索,我们提出了一种使用Kotlin场景建模语言(SMLK)对功能进行建模和验证的技术。这是证明了一个概念的实现。
2021-03-03 cs.SE
Domain Types: Selecting Abstractions Based on Variable Usage
软件模型检验的成功依赖于找到主题程序的适当抽象。抽象域和分析配置的选择目前留给用户,他们可能不熟悉可用抽象域的权衡和性能细节。我们引入域类型的概念,将程序变量分类为比标准声明类型(如int或long)更细粒度的类型,以指导模型检查器选择适当的抽象域。我们的实现在预处理步骤中确定每个变量的域类型,根据程序中的变量使用情况,然后将每个变量分配给一个抽象域。我们使用的模型检查框架支持为每个抽象域指定单独的分析精度,这样我们就可以自由地配置分析。我们的实验表明,每个变量的抽象域的选择的显着影响。我们考虑一个显式(整数值的哈希表)和一个符号(二元决策图)域。实验是基于标准的验证任务,从最近的软件验证比赛。每个抽象域在表示某个域类型的变量的状态空间方面具有独特的优势。我们的实验表明,软件模型检查器可以改善与域类型的指导组合的抽象域。
2013-05-28 cs.PL cs.SE
Emerging Results on Automated Support for Searching and Selecting Evidence for Systematic Literature Review Updates
针对软件工程中系统文献综述更新,提出自动化滚雪球搜索与机器学习选择方法,线性SVM表现最佳,可减少约2.5倍人工筛选工作量。
2024-02-07 cs.SE
Software System Design based on Patterns for Newton-Type Methods
广泛的工程应用使用优化技术作为其解决方案过程的一部分。研究人员使用专门的软件,实现众所周知的优化技术来解决他的问题。然而,当涉及到开发适合特定问题的原始优化技术时,研究人员别无选择,只能从头开始实施自己的新方法。这导致了大量的开发时间和容易出错的代码,通常不会被任何其他应用程序重用。在这项工作中,我们提出了一种新的方法,简化,加快和提高科学软件的开发过程。这种方法指导我们识别设计模式。这种方法的应用产生可重用的,灵活的和高质量的科学软件。此外,所生产的软件成为一个文档化的工具,以转移科学软件开发过程中的知识。我们应用这种方法的优化框架的设计,实现牛顿的类型的方法,可用作一个快速原型工具的新的优化技术的基础上牛顿的类型的方法。所开发框架的抽象性、可重用性和灵活性通过Martin的度量进行了度量。结果表明,所开发的软件具有较高的可重用性。
2019-05-12 cs.MS cs.PL cs.SE
ResyDuo: Combining data models and CF-based recommender systems to develop Arduino projects
针对Arduino开发中组件选择过载问题,提出结合MDE与CF推荐算法的ResyDuo原型,可基于标签或ProjectHub项目推荐硬件及对应软件库,经十折交叉验证评估表现良好仍有提升空间。
2023-08-26 cs.SE
Software Dependencies 2.0: An Empirical Study of Reuse and Integration of Pre-Trained Models in Open-Source Projects
Queen's University(女王大学);Socket Inc.(Socket公司);Purdue University(普渡大学)
本研究通过分析开源项目中预训练模型的重用与集成,揭示软件依赖2.0的结构、重用流程及与其他组件的交互。
2026-02-18 cs.AI cs.SE
Some Initial Guidelines for Building Reusable Quantum Oracles
量子硬件的发展凸显了量子软件工程的进步,帮助开发人员创建具有高质量属性的量子软件。具体来说,可重用性传统上被认为是一个重要的质量属性,在成本和工作效率方面。提高量子软件的可重用性将有助于开发人员通过重用具有更好质量属性的简单组件来创建更复杂的解决方案,只要重用的组件也具有这些属性。这项工作的重点是预言机的可重用性,这是一种众所周知的量子算法模式,可用于执行其他算法用作输入的功能。特别是,在这项工作中,我们提出了几个准则,使可重复使用的量子预言机。这些准则包括三个不同层次的Oracle重用:启发Oracle的思想,创建Oracle的功能,以及Oracle本身。为了演示这些准则,通过重用更简单的oracle,构建了一系列整数oracle的两个不同实现。这些实现的质量进行评估的功能和量子线路的深度。然后,我们提供了一个文档的例子,按照建议的指导方针,这两个实现,以促进重用所提供的甲骨文。这项工作旨在成为量子软件可重用性的第一个讨论点。需要做更多的工作来建立量子软件可重用性的更具体的标准。
2023-03-27 cs.SE quant-ph
Teaching Research Design in Software Engineering
本章面向软件工程教育,系统讲解实证软件工程中的研究范围界定、问题提出与方法选择,以帮助学生掌握严谨的研究设计基础技能。
2024-07-06 cs.SE
A Layered Architecture for Developing and Enhancing Capabilities in Large Language Model-based Software Systems
CSIRO’s Data61(联邦科学与工业研究组织数据61部门);ArcBlock
本文提出一种分层架构来组织基于大语言模型的软件系统开发,通过将能力与不同层次对齐,帮助开发者系统化选择合适技术,以平衡工程复杂性、可扩展性和成本,从而提升系统稳健性与可扩展性。
2024-11-19 cs.AI cs.CL cs.MA
BACKUS: Comprehensive High-Performance Research Software Engineering Approach for Simulations in Supercomputing Systems
高性能计算(HPC)平台通过采用研究软件工程(RSE)技术,使科学软件在许多研究领域(如物理学、生物学和化学)中实现突破。这些包括1)新颖的并行范例,如共享内存并行主义(例如,使用OpenMP 4.5);分布式存储器架构(例如MPI 4);将它们组合在一起的混合并行性;以及异构并行性2)引入先进的软件工程概念,如面向对象的并行编程(OOP)、并行单元测试、并行I/O接口;混合并行可视化; 3)在其他必要领域选择最佳实践,如用户界面;自动文档;版本控制和项目管理。在这项工作中,我们提出了一种综合性的高性能研究软件工程方法在超级计算系统中的模拟,我们发现它最适合于长寿命的并行科学代码。
2019-10-14 cs.DC cs.SE
Finding Relationships between Socio-Technical Aspects and Personality Traits by Mining Developer E-mails
人格特质影响着大多数(如果不是全部的话)人类活动,从人们走路、说话、穿衣和写作的方式,到与他人互动的方式。最重要的是,个性会影响人们做决定的方式,包括在开发人员的情况下,他们在选择他们想要参与的软件项目时所考虑的标准。大多数研究软件开发项目中社会、技术和人为因素的影响的工作都集中在软件质量中沟通的影响上。例如,在发布软件产品的增强版本之前,识别预测器以检测可能包含错误的文件。这些作品中只有少数关注自由/自由和开源软件项目中具有提交权限的开发人员(提交者)的个性特征及其与他们交互的软件工件的关系。本文提出了一种方法,自动识别的基础上,从电子邮件发送的提交人在FLOSS项目的个性特征,揭示在软件开发过程中发生的社会和技术方面之间的关系。我们的实验结果表明,提交者通过他们的电子邮件和他们进行的社会(沟通)和技术活动所投射的人格特质之间存在一些关系。这项工作是一个初步的研究,旨在支持建立有效的工作团队,在软件开发项目的基础上,考虑到他们的个性特征的利益相关者的适当组合。
2016-03-03 cs.SE
Multitasking Across Industry Projects: A Replication Study
背景:多任务处理在软件开发中很常见。它是一种停止工作的能力,切换到另一个任务,并最终返回到第一个任务,根据需要或按计划进行。然而,多任务处理是以认知为代价的:频繁的上下文切换会导致分心,低于标准的工作,甚至更大的压力。目的:本文报告了一个复制实验,我们收集了来自行业软件开发公司的一组开发人员的数据,这些数据来自GitLab存储库中存储的大量项目。方法:我们重新使用开发的模型和方法,从原来的研究测量开发人员的上下文切换行为的速度和广度,我们研究如何上下文切换影响他们的生产力。我们对一些开发人员进行了半结构化的访谈,以取代原来的调查,以了解多任务处理的原因和看法。结果如下:我们发现,行业开发人员的多任务处理与OSS开发人员的多任务处理一样多(在更少的项目上),并且从一天到下一天的重复工作与更高的生产力相关,但对于更高的多任务处理没有影响。一些共同的原因使他们多任务:依赖,个人利益和社会关系。结论:短的上下文变化,不到三分钟,并没有影响行业开发人员的结果;然而,更重要的是,它带来了一种把以前的任务抛在脑后的感觉。因此,它与上下文切换的程度成正比:上下文越大、中断越大,回来的情况就越糟糕。
2020-06-22 cs.SE
PR-SZZ: How pull requests can support the tracing of defects in software repositories
SZZ算法代表了一种标准的方法来识别bug修复提交以及诱导对应提交。它构成了许多实证研究中使用的数据集的基础。自创建以来,已提出多个扩展以提高其性能。由于历史原因,相关的工作依赖于提交消息来将错误票据映射到可能相关的代码,而没有额外的数据用于跟踪这些修复引起的提交。因此,我们提出了一个更新版本的SZZ利用拉请求,这是广泛采用的今天。我们评估我们的方法相比,现有的SZZ变种进行实验和分析使用的拉请求,内部提交,合并策略。我们的结果基于6个开源项目,超过50k提交和35k拉取请求。关于bug修复提交,平均18%的bug票据可以额外映射到修复提交,导致整体F分数为0.75,提高了40个百分点。通过选择诱导提交,我们设法减少了误报,并与现有方法相比平均提高了16个百分点的精度。
2022-06-20 cs.SE
CloudGenius: Decision Support for Web Server Cloud Migration
云计算是将硬件和软件资源作为虚拟化服务提供的最新计算范例,在虚拟化服务中,用户无需担心底层系统管理细节的负担。将Web应用程序迁移到云服务并将云服务集成到现有的计算基础设施中并非易事。它带来了新的挑战,往往需要在技术、文化、法律、监管和社会等各个层面创新范式和做法。将Web应用程序映射到虚拟化云服务的关键问题是选择最佳和兼容的软件映像组合(例如,Web服务器映像)和基础设施服务,以确保实现应用程序的服务质量(QoS)目标。在选择云服务时,工程师必须考虑基础设施服务和软件映像之间的异构标准集和复杂依赖关系,这是一个关键问题,无法手动解决。为了克服这些挑战,我们提出了一个框架(称为CloudGenius),该框架基于专门用于Web服务器迁移到云的模型和因素来自动化决策过程。CloudGenius利用一种众所周知的多标准决策技术(称为层次分析法),根据与应用程序相关的模型、因素和QoS参数自动执行选择过程。一个示例应用程序演示了理论CloudGenius方法的适用性。此外,我们提出了一个CloudGenius的实现,已通过实验验证。
2012-03-18 cs.DC cs.SE
WebAPIRec: Recommending Web APIs to Software Projects via Personalized Ranking
School of Information Systems, Singapore Management University(新加坡管理大学信息系统学院)
应用程序编程接口(API)为开发人员提供了大量的功能,可以重用,而无需重新发明轮子。根据项目需求确定适当的API对于项目的成功至关重要,因为许多功能可以重用以实现更快的开发。然而,大量的API往往会阻碍开发人员快速找到合适的API的能力。在这种情况下,我们提出了一种新的自动化方法,称为WebAPIRec,它将项目配置文件作为输入,并输出可用于实现项目的{web} API的排名列表。在其核心,WebAPIRec采用了个性化的排名模型,对特定于(个性化)项目的Web API进行排名。基于{web} API使用的历史数据,WebAPIRec学习了一个模型,该模型最大限度地减少了web API的错误排序,即,当使用的{web} API的排名低于未使用的(或尚未使用的)web API时。我们已经在一个数据集上评估了我们的方法,该数据集包括来自ProgrammableWeb的9,883个Web API和4,315个Web应用程序项目,结果令人鼓舞。对于84.0%的项目,WebAPIRec能够成功返回正确的API,这些API用于实现前5名的项目。这比ProgrammableWeb的本机搜索功能提供的建议要好得多。WebAPIRec也优于McMillan等人。的应用搜索引擎和基于流行度的推荐。
2017-05-01 cs.AI cs.IR cs.SE
SciCat: A Curated Dataset of Scientific Software Repositories
本文提出 SciCat 数据集,从 World of Code 的 1.31 亿个去分叉仓库中筛选 FLOSS 项目,并利用 OpenAI 模型分析 README 以分类科学、研究相关及支持软件,支撑科学软件趋势与比较研究。
2023-12-11 cs.CE cs.DL cs.SE
The Hitchhikers Guide to Production-ready Trustworthy Foundation Model powered Software (FMware)
Centre for Software Excellence, Huawei Canada(华为加拿大软件卓越中心);Queen’s University, Canada(加拿大女王大学);York University, Canada(加拿大约克大学)
本文以KDD 2025教程形式系统梳理FMware从模型选择、数据对齐、提示工程到测试部署的全链路挑战,并结合工业经验给出可信赖生产级系统的技术路线图。
2025-06-02 cs.AI cs.LG cs.SE