ContextAs Software Engineering (SE) practices evolve due to extensive increases in software size and complexity, the importance of tools to analyze and understand source code grows *** study aims to evaluate the abili...
详细信息
ContextAs Software Engineering (SE) practices evolve due to extensive increases in software size and complexity, the importance of tools to analyze and understand source code grows *** study aims to evaluate the abilities of Large Language Models (LLMs) in identifying DPs in source code, which can facilitate the development of better design pattern recognition (DPR) tools. We compare the effectiveness of different LLMs in capturing semantic information relevant to the DPR *** studied Gang of Four (GoF) DPs from the P-MARt repository of curated Java projects. State-of-the-art language models, including Code2Vec, CodeBERT, CodeGPT, CodeT5, and RoBERTa, are used to generate embeddings from source code. These embeddings are then used for DPR via a k-nearest neighbors prediction. Precision, recall, and F1-score metrics are computed to evaluate *** is the top performer, followed by CodeGPT and CodeBERT, which showed mean F1 Scores of 0.91, 0.79, and 0.77, respectively. The results show that LLMs without explicit pre-training can effectively store semantics and syntactic information, which can be used in building better DPR *** performance of LLMs in DPR is comparable to existing state-of-the-art methods but with less effort in identifying pattern-specific rules and pre-training. Factors influencing prediction performance in Java files/programs are analyzed. These findings can advance software engineering practices and show the importance and abilities of LLMs for effective DPR in source code.
designpatterns helpful for software development are the reusable abstract documents which provide acceptable solutions for the recurring design problems. But in the process of reverse engineering, it is often desired...
详细信息
ISBN:
(纸本)9781509025978
designpatterns helpful for software development are the reusable abstract documents which provide acceptable solutions for the recurring design problems. But in the process of reverse engineering, it is often desired to identify as well as recognize designpattern from source code, as it improves maintainability and documentation of the source code. In this study, the process of software design pattern recognition is presented which is based on machine learning techniques. Firstly, a training dataset is developed which is based on software metrics. Subsequently, machine learning algorithms such as Layer Recurrent Neural Network and Decision Tree are applied for patterns detection process. In order to evaluate the proposed study, an open source software i.e., JHotDraw 7.0.6 has been used for the recognition of designpatterns.
designpatterns play a significant role in reverse engineering by providing information not only on how but also on why a solution has been implemented in a specific way because of their semantics. The application of ...
详细信息
designpatterns play a significant role in reverse engineering by providing information not only on how but also on why a solution has been implemented in a specific way because of their semantics. The application of designpatterns leads to their personalization to a specific context, hence to the generation of variants. This makes their recognition a challenging task, which may be addressed through the understanding and detection of the micro-structures designpatterns are made of. This is very useful for the detection as well as for the application of designpatterns. The principal aim of this paper is to present a survey on these micro-structures and a comparison among them in the perspective of reverse engineering. Because of their less complex structure and behavior, as well as closer link to the source code, the recognition of these micro-structures may be automated, which can be considered a step towards the automatic recognition of the more complex designpatterns. In this paper, we consider four of the most significant types of micro-structures: elemental designpatterns, clues, sub-patterns, and micro patterns. To analyze the role of the micro-structures in the designpattern detection process, we make a comparison among these four types of micro-structures and among the micro-structures of various types in order to identify the relations among them. Copyright (C) 2011 John Wiley & Sons, Ltd.
暂无评论