综述:2015–2025年软件设计模式检测与推荐方法的系统化与演化分析

《Information and Software Technology》:A Systematic and Evolutionary Analysis of Software Design Pattern Detection and Recommendation Approaches (2015–2025)

【字体: 大 中 小 】 时间:2026年08月06日 来源:Information and Software Technology 4.6

编辑推荐:

  摘要:在软件维护、逆向工程以及架构质量优化方面,自动检测与推荐软件设计模式具有至关重要的意义。尽管相关研究已持续数十年,但随着深度学习和大语言模型的出现,该领域发生了显著变革,方法论与评估体系也变得日益多样化。 目标:本研究旨在对2015年至2025年间发表的设计模式检测与推荐

  摘要:在软件维护、逆向工程以及架构质量优化方面,自动检测与推荐软件设计模式具有至关重要的意义。尽管相关研究已持续数十年,但随着深度学习和大语言模型的出现,该领域发生了显著变革,方法论与评估体系也变得日益多样化。

目标:本研究旨在对2015年至2025年间发表的设计模式检测与推荐方法进行系统性的梳理与演化分析,将其归类为不同的技术范式,并识别出当前研究中存在的未解问题。

方法:遵循Kitchenham提出的基于证据的软件工程指南以及PRISMA原则,我们开展了系统性文献综述。通过在Web of Science数据库中进行结构化搜索,初步筛选出212篇相关记录。经过多阶段严格筛选与质量评估后,最终选出66项核心研究用于深入分析。

结果:该领域的演化可归纳为六种不同范式:基于规则的方法、基于图的方法、特征驱动的机器学习方法、表示学习(深度学习)方法、混合方法以及基于上下文智能(大语言模型)的方法。分析表明,研究方法正从注重结构精确性逐步转向语义与上下文理解。不过,现有研究仍存在过度依赖特定数据集(如JHotDraw和P-MARt)的问题,且针对变体检测与多模态分析的标准评测基准尚不完善。

结论:虽然基于大语言模型的方法在处理模式变体与语义上下文方面展现出巨大潜力,但该领域仍需更多多样化的评测基准以及可解释性更强的模型。本综述为相关研究提供了全面的路线图,强调了构建多模态框架以及开展行业规模验证的必要性,以弥合学术研究与实际软件工程之间的差距。

引言:随着软件工程研究规模的不断扩大,亟需严谨的方法来整合现有研究成果。系统性文献综述被公认为实现这一目标的最佳方式,其过程比传统综述更具透明度与可重复性[1]。因此,系统性文献综述被视为目前整合知识最可靠的科学方法,这一过程具备稳健性、开放性与可重复性。Kitchenham等人[2,3]制定的适用于软件工程的系统性文献综述指南,为整合分散的研究成果、为产业界与学术界提供实用见解奠定了系统基础。

设计模式是解决软件开发中常见设计问题的可复用微观架构解决方案[4]。面向对象软件领域最为知名且应用最广的设计模式目录由“四人组”(GoF)提出,包含了23种基础且核心的设计模式。当合理运用设计模式时,能够显著提升软件系统的可维护性、可扩展性、可读性及可重用性。然而,对于大规模复杂的软件项目而言,手动识别设计模式既耗时又易出错,难度极高。因此,自动识别、检测、分类及推荐设计模式一直是软件工程研究领域长期存在的核心问题[5]。过去十年间,已有众多方法被用于解决这一挑战。早期方法多结合静态分析、动态分析、基于规则的系统以及图匹配技术,以查找源代码与模式模板之间的结构对应关系;随后,机器学习方法开始利用面向对象的指标与手工设计的特征来实现设计模式的自动分析[6]。近年来,深度学习与嵌入技术也被用来理解代码的语义表示,从而实现更具适应性且能感知上下文的模式识别[7]。近年来出现的大语言模型为预测源代码的上下文提供了新思路[8],在很多情况下催生了用于完成相同任务的新技术。尽管相关方法众多,但不同方法的优缺点、评估数据集、性能指标以及研究过程中面临的困难在现有文献中分布较为零散。

现有的大多数综述仅聚焦于狭隘的方法视角——例如仅探讨基于图的检测方法或基于机器学习的分类方法——未能从整体上呈现不同技术范式间的演化脉络。尤其是缺乏对2015至2025年间自动设计模式检测与推荐方法的系统化比较研究。为填补这一空白,本文对这一时期的相关方法进行了全面梳理。通过Web of Science数据库中的搜索算法,共筛选出212篇相关记录。经标题与摘要筛选后,有86篇研究被纳入全文分析范围。通过严格应用纳入标准、排除标准及质量评估标准,最终在多次严谨审查后选出66篇研究作为分析对象。整个综述过程严格遵循Kitchenham的系统性文献综述指南[2,3],以确保研究的透明性与可重复性。本综述不仅旨在总结现有研究成果,更致力于从多范式角度对过去十年间自动设计模式检测与推荐领域的研究进展进行系统性分析与演化研究。具体而言,本研究旨在根据不同方法的理论基础对其加以分类,分析各类方法的性能、可扩展性及模式覆盖能力,探讨数据集集中现象与评估偏差问题,进而明确未来在构建可扩展、可解释且支持多模态模式检测系统方面的研究方向与挑战。

为达成上述目标,本研究提出了以下研究问题:

RQ1:2015年至2025年间,自动设计模式检测与推荐方法经历了怎样的演化?

RQ2:基于规则的方法、基于图的方法、静态-动态混合方法、机器学习方法、深度学习方法以及基于大语言模型的方法,在性能(如精确度、召回率、F1分数)、可扩展性、模式覆盖范围以及变体检测能力等方面存在哪些差异?

RQ3:现有研究中使用了哪些数据集、编程语言及评估流程?这些因素如何影响研究结果及其方法的通用性?

RQ4:自动设计模式检测与推荐研究仍面临哪些未解决的问题?未来应朝哪些方向发展以克服这些局限?

通过这种结构化且具有演化视角的分析,本研究旨在为研究人员与实践者提供一份全面的路线图,明确该领域的方法发展趋势、长期存在的局限性以及新的机遇。

除对现有研究的综述外,本文还提出了以下关于自动设计模式分析的见解:

首先,本文呈现了2015年至2025年的首个演化型多范式整合分析,系统阐述了该方法论从基于规则与基于图的方法,逐步发展为基于机器学习、深度学习以及大语言模型方法的演进过程。

其次,本文对现有方法进行了详尽的分析性分类,将各类系统归纳为六大主要方法论范式,即基于规则与本体驱动的方法、基于图匹配的方法、静态-动态混合技术、传统机器学习技术、基于深度学习与嵌入的技术,以及基于大语言模型的系统[38,39,42,22,68,74]。这一分类体系有助于对跨范式策略进行结构化比较,同时清晰展现不同技术之间的方法论关联。

第三,本文对性能指标、可扩展性、模式覆盖范围、变体捕获能力以及可解释性等方面进行了可比的元分析总结。该综述不仅单独分析每项研究,还对比了不同范式间的优势与劣势,以及它们之间的共性特征。

第四,本文指出了现有研究中的数据集偏好问题与评估偏差,分析了JHotDraw、JUnit和P-MARt等基准测试系统的主导地位,并探讨了其对外部有效性与方法通用性的影响。

总之,本研究旨在为未来的相关工作制定规划,重点开发能够整合结构数据、行为数据与语义数据的综合型多模态检测系统,如前文所述的各种模式分析系统。此类努力也有助于推动综述工作从单纯的描述性概述转向明确未来研究的架构方向。

章节节选:

《软件工程中的设计模式》
Gamma、Helm、Johnson和Vlissides在他们的经典著作《设计模式:可复用面向对象软件的要素》[4]中首次提出了设计模式。这项开创性研究将23种常见模式系统地划分为创建型、结构型和行为型三类。创建型模式(如单例模式、工厂方法模式、抽象工厂模式)用于定义对象的实例化机制;结构型模式(如适配器模式、组合模式、装饰器模式)则侧重于类的组合与结构设计。

《研究设计与方案》
我们采用系统性文献综述方法,对2015年1月至2025年12月间发表的自动设计模式检测与推荐系统进行了研究。该综述严格遵循Kitchenham和Charters提出的基于证据的软件工程指南[2,3],以确保方法论的严谨性、透明度与可重复性。在开始搜索与筛选之前,我们先制定了完整的综述方案。

RQ1——方法论范式的演化(2015–2025)
针对RQ1,我们将选定的66项研究根据第3.5节中提出的统一六类方法论范式进行归类。这些研究之间的方法差异也呈现出明显的年度变化趋势。图3展示了按方法论范式划分的研究数量分布,图4则反映了研究趋势的年度变化,可见研究方法正逐渐从基于结构技术的确定性选择方式,转向数据驱动及基于大语言模型的方法。

讨论
除了方法上的多样性之外,本次系统性综述的结果表明,过去十年间自动设计模式检测与推荐研究呈现出清晰的演化轨迹。我们对这些结果进行了整合,分析了不同范式之间的权衡关系,并将研究结果置于软件工程与人工智能领域的发展趋势背景下进行解读。

有效性威胁
尽管本综述是在严格的方法论框架下设计并开展的,但仍需认识到若干可能影响其有效性的因素。为提升研究的学术严谨性与透明度,我们将这些影响因素分为三类:构念有效性、内部有效性与外部有效性。

结论
针对2015年至2025年间发表的相关研究,本文通过演化性与系统性分析方法,对自动设计模式检测与推荐方法进行了深入综述。通过公开、结构化的综述流程,我们整合了66项经过实证验证的研究成果。本文对过去十年间设计模式研究的方法论演化进行了深入的多范式分析,这些结果清晰展现了该领域的演化脉络。

资金支持
本研究得到了阿塔图尔克大学科学研究项目协调处的支持(项目编号:16771)。

生成式AI使用声明
作者仅将生成式AI工具用于语言编辑与语法修正。

作者贡献
ST负责构建本研究的概念框架,设计研究方法,参与数据收集与整理工作,并参与论文撰写。AC负责方法设计,管理数据收集与整理工作,同时也参与了论文撰写,包括初稿的起草工作。

未引用参考文献
[21,25,31,57]
Salih TURK | Ahmet COSKUNCAY
土耳其埃尔祖鲁姆阿塔图尔克大学计算机工程系,邮编25240
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号