Jurnal Teknologi Informasi dan Ilmu Komputer (Aug 2022)
Tool Refactoring Otomatis untuk Menangani Lazy Class Code Smell dengan Pendekatan Software Metrics
Abstract
Keberadaan lazy class sebagai code smell dapat meningkatkan jumlah class yang tidak begitu perlu pada perangkat lunak, sehingga meningkatkan biaya pemeliharaan dari segi waktu dan usaha. Ancaman tersebut dapat diatasi dengan restrukturisasi internal atau refactoring perangkat lunak. Namun, akibat keterbatasan tool, mengharuskan proses refactoring dilakukan secara manual, sehingga membutuhkan waktu dan biaya pemeliharaan yang tinggi. Penelitian ini mengajukan sebuah tool yang dapat mendeteksi dan me-refactoring lazy class secara otomatis. Penelitian yang diajukan ini bertujuan untuk menghindari refactoring lazy class secara manual. Input dari tool merupakan lokasi sebuah projek. Proses dimulai dari mendeteksi file dan class pada projek. Kemudian dilakukan proses deteksi lazy class dengan mengukur karakteristik perangkat lunak atau software metrics. Tahapan terakhir yaitu proses refactoring otomatis, yang dilakukan dengan membuat, me-replace, atau menghapus file, untuk menghasilkan projek yang telah di-refactor. Berdasarkan hasil percobaan, tool yang dikembangkan ini mampu mendeteksi dan me-refactoring lazy class dengan tingkat akurasi sama dengan manual dan proses kecepatannya hanya 5,71 detik. Sehingga hal ini menunjukkan bahwa tool dapat bekerja secara akurat dan lebih cepat dibandingkan dengan cara manual. Serta tool ini diharapkan dapat membantu para pengembang untuk meminimalisir effort dari segi biaya dan waktu dalam melakukan refactoring. Abstract The existence of lazy classes as code smells can increase the number of unnecessary classes in software, thus increasing maintenance costs in terms of time and effort. These threats can be overcome by internal restructuring or software refactoring. However, due to limited tools, the refactoring process is required to be done manually, which requires time and high maintenance costs. This research proposes a tool that can detect and refactor lazy class automatically. This research is proposed to avoid refactoring lazy class manually. The input of the tool is the location of a project. The process starts with detecting files and classes in the project. Then the lazy class detection process is carried out by measuring the characteristics of the software or software metrics. The final stage is the automatic refactoring process, which is done by creating, replacing, or deleting files, to produce a refactored project. Based on the experimental results, the tool developed is able to detect and refactoring lazy classes with the same accuracy level as manual and the process speed is only 5.71 seconds. So this shows that the tool can work accurately and faster than the manual method. And this tool is expected to help developers to minimize the effort in terms of cost and time in refactoring.