Search In this Thesis
   Search In this Thesis  
العنوان
Software Refactoring Using Artificial Intelligence Techniques/
المؤلف
Rana Samy Menshawy Othman
هيئة الاعداد
باحث / إعادة بناء البرمجيات باستخدام تقنيات الذكاء الاصطناعي
مشرف / أشرف محمد محمد سالم
مشرف / أحمد حسن يوسف
مناقش / أحمد حسن يوسف
تاريخ النشر
2022.
عدد الصفحات
106p. :
اللغة
الإنجليزية
الدرجة
ماجستير
التخصص
الهندسة (متفرقات)
تاريخ الإجازة
1/1/2022
مكان الإجازة
جامعة عين شمس - كلية الهندسة - هندسة الحاسبات
الفهرس
Only 14 pages are availabe for public view

from 106

from 106

Abstract

Code smells might indicate a deeper design problem in the software code, these smells can lead to costly maintenance and quality problems in addition to code fault-proneness and bugs in the near future. There are several approaches to detect those anomalies. In addition, automatic and semi-automatic tools help the developer detect the code smells instead of the manual effort.
Code smells are subjective and can be interpreted in many different ways. The automatic detection tools succeed in eliminating the dependency on developers’ perception and experience and the need for their prior knowledge of the code smells characteristics. Recently machine learning (ML) and deep learning (DL) are extensively used in code smells detection.
Refactoring is an adequate technique followed by software engineers to eliminate code smells. Software refactoring modifies the internal code structure without changing its functionality and suggests the best redesign changes to be performed. Developers who apply correct refactoring sequences to remove code smells, improve the software maintenance and development time significantly. Many tools have been created to automatically or semi-automatically detect code smells and refactor them.
In this thesis, we dive into discussing what that are code smells, and the most commonly used detection and refactoring tools utilized by the previous studies. Furthermore, a detection approach based on machine learning (ML) and deep learning (DL) approaches to detect the selected code smells is proposed. Furthermore, the Extract Method refactoring technique algorithm is discussed in order to refactor the Long Method code smell.
The purpose of this thesis is to investigate both ML and DL techniques and compare the performance of their classifiers. Eleven ML algorithms are applied to the extracted code metrics, and six DL architectures are applied to the extracted
textual features of the source code. Furthermore, the Extract Method refactoring technique is investigated and applied to our tool.
The thesis is divided into six chapters as follows:
• Chapter 1: Presents an introduction to code smells and how they greatly impact the software Business. In addition, it includes the related work and our contribution.
• Chapter 2: Presents the required background about code smells, detection approaches defined by the previous studies, and the detection and refactoring tools implemented by developers to automatically or semi-automatically detect and refactor code smells. Moreover, the challenges and limitations are discussed.
• Chapter 3: Discusses the research methodology, in addition to providing an overview of the proposed system.
• Chapter 4: Describes in detail the detection approach followed; applying Machine learning techniques based on the structural features, in addition to the Deep learning techniques based on the semantical features of the source code. Moreover, evaluating and comparing the results of all the classifiers is also presented.
• Chapter 5: Presents the used tool to refactor the Long Method code smell by the Extract Method technique.
• Chapter 6: Discloses our conclusion and future work