Yeşil yazılımda enerji tüketimini düşürmeye yönelik kombinatoryal bir algoritma geliştirilmesi
Development of a combinatorial algorithm to reduce energy consumption in the green software
Yazar: İBRAHİM ŞANLIALP
Danışman: PROF. DR. TUNCAY YİĞİT ; DOÇ. DR. MUHAMMED MARUF ÖZTÜRK
Süleyman Demirel Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Bilgisayar yazılımları = Computer softwares ; Enerji tüketimi = Energy consumption ; Maliyet yazılımı = Cost software ; Nesneye dayalı yazılım = Object oriented software ; Yazılım kalitesi = Software quality

Özet:
Kodu yeniden düzenleme, kaynak kodlarında iyileştirmeler yapmak için uygulanan, zaman alan ve yoğun çaba gerektiren bir süreçtir. Son yıllarda yazılım mühendisliği geliştiricileri arasında oldukça ilgi görmüştür. Geliştiriciler için, seçilen yeniden düzenleme tekniğine bağlı olarak yazılım tarafından tüketilen enerjideki değişimi bilmek önemlidir. Bu tez çalışması kod yeniden düzenleme tekniklerinin etkileşimlerinin incelenmesi ve enerji verimliliği için optimal sıranın elde edilmesine yönelik araştırmaların yapılması üzerinedir. 
Çalışma kapsamında Prim tabanlı önceliklendirme algoritması, matematiksel model ve Windows tabanlı grafiksel kullanıcı arayüz (GUI) uygulaması geliştirilmiştir.  Uygulama öncelikle verilen statik kod metriklerini çıkartmakta ve hangi tür yeniden düzenleme tekniklerinin kaynak kodla uyumlu olduğuna karar vermektedir. Sonrasında geliştirilen kompleks metriğin ölçümünü kullanan Prim tabanlı önceliklendirme algoritması ile yeniden düzenleme tekniklerinin sırasını üretmektedir. Son olarak, algoritmanın ürettiği öncelik sırası uygulandıktan sonra elde edilen yeniden düzenlenmiş kaynak kod ile orijinal kod enerji tüketimi açısından karşılaştırılır.
Sonuçlar, kodun karmaşıklığını ve boyutunu gösteren kriterlerin enerji tüketimi açısından bir öncelik belirleme algoritması tasarlamak için yararlı olduğunu göstermektedir. Yeniden düzenleme teknikleri sırasının esas olarak yararlanılacak yazılım projesinin kaynak koduna bağlı olduğu sonucu çıkarılmıştır. Elde edilen bulgular geliştiricilerin nesne yönelimli programlama dili ile oluşturulan kodlarını yalnızca enerji verimliliği açısından değil, aynı zamanda sürdürülebilirlik açısından da geliştirmelerine yardımcı olacaktır.

Abstract:
Code refactoring is a time-consuming and effort-intensive process that is applied to make improvements to source code. In recent years, it has gained more interest among software engineering developers. For developers, it is essential to know the change in the energy consumed by the software dependent on the chosen refactoring technique. This thesis is about examining the interactions of code refactoring techniques and conducting research on obtaining the optimal order for energy efficiency.
The scope of the study, Prim-based prioritization algorithm, mathematical model, and Windows-based graphical user interface (GUI) application are developed. Firstly, the application extracts the given static code metrics and decides which refactoring techniques are compatible with the source code. Then, it produces a refactoring sequence thanks to the Prim-based prioritization algorithm using the measurement of the developed complex metric. Finally, refactored source code obtained after applying the priority order produced by the algorithm is compared with the original code in terms of energy consumption.
The results show that criteria indicating the complexity and size of the code are useful for designing a prioritization algorithm in terms of energy consumption. It is concluded that the order of refactoring techniques mainly depends on the source code of the software project to be exploited. The findings will help developers improve their code created with the object-oriented programming language, not only in terms of energy efficiency but also in terms of sustainability.