| 摘要: |
| 设计模式检测是软件工程领域中非常重要的研究课题. 国内外很多学者致力于设计模式检测问题的研究与解决, 取得了丰硕的研究成果. 对当前软件设计模式检测技术进行综述并展望了其前景. 首先, 简要介绍软件设计模式检测领域的发展历程, 讨论并总结了设计模式的检测对象和特征类型, 给出了设计模式检测评估指标. 然后, 总结了设计模式检测技术现有的分类方法, 引出了分类方法. 根据设计模式检测技术发展的时间线从非机器学习设计模式检测、机器学习设计模式检测、基于预训练语言模型的设计模式检测这3类方法出发探讨了当前软件设计模式检测技术的研究现状和最新进展, 并对当前成果进行了总结和比较. 最后, 分析了该领域存在的主要问题与挑战, 指出了今后值得进一步研究的方向以及可能的解决方案. 涵盖了从早期的非机器学习方法到利用机器学习技术, 再到现代预训练语言模型的应用, 全面系统地展现了该领域的发展历程、最新进展和未来发展前景, 对于该领域今后的研究方向和思路具有指导意义. |
| 关键词: 设计模式检测 研究综述 机器学习 预训练语言模型 软件逆向工程 软件开发方法 软件设计 软件体系结构 |
| DOI:10.13328/j.cnki.jos.007290 |
| 分类号: |
| 基金项目:国家自然科学基金(61932004); 陕西省教育厅专项科研计划(23JK0724); 中国轻工业工业互联网与大数据重点实验室开放课题基金(IIBD-2021-KF10) |
|
| Software Design Pattern Detection Techniques: Current Status, Challenges and Prospects |
|
WANG Lei1,2,3, YUAN Ye1, WANG Guo-Ren1
|
|
1.School of Computer Science & Technology, Beijing Institute of Technology, Beijing 100081, China;2.College of Mathematics and Computer Science, Yan’an University, Yan’an 716000, China;3.Key Laboratory of Industrial Internet and Big Data, China National Light Industry, Beijing 100081, China
|
| Abstract: |
| Design pattern detection is an essential research topic in software engineering. Many scholars both domestically and internationally have dedicated their efforts to researching and resolving design pattern detection, thereby yielding fruitful results. This study reviews the current technologies in software design pattern detection and points out their prospects. Firstly, this study briefly introduces the development history of software design pattern detection, discusses the objects of design pattern detection, summarizes the feature types of design patterns, and provides the evaluation indexes of design pattern detection. Then, the existing classification methods for design pattern detection techniques are summarized, and the classification method proposed in this study is introduced. Next, according to the development timeline of design pattern detection technologies, the research status and latest advancements of current software design pattern detection technologies are discussed from three approaches, including non-machine learning design pattern detection, machine learning design pattern detection, and design pattern detection based on pre-trained language models, with the current achievements summarized and compared. Finally, the main problems and challenges in this field are analyzed, and further research directions and potential solutions are pointed out. Covering contents from early non-machine learning methods and utilization of machine learning technologies to the application of modern pre-trained language models, this study comprehensively and systematically presents the development history, latest advancements, and prospects of this field. It provides valuable guidance for future research directions and ideas within this area. |
| Key words: design pattern detection research review machine learning pre-trained language model software reverse engineering software development method software design software architecture |