Using Reinforcement Learning in Enhancing Software Refactoring Prioritization

Using Reinforcement Learning in Enhancing Software Refactoring Prioritization. Masters thesis, King Fahd University of Petroleum and Minerals.

[img]
Preview
PDF
Thesis_Armin_Kobilica_FINAL_With_GreenPage.pdf - Accepted Version

Download (3MB) | Preview

Arabic Abstract

ملخص الرسالة الإسم الكامل: أرمين كوبيليتسا عنوان السالة: استخدام التعلم بالتعزيز في تحسين تحديد الأولويات في إعادة هيكلة البرمجيات التخصص: علوم الحاسب الآلي تاريخ الدرجة العلمية: ديسمبر 2017 م الخلفية: يمثل وضع تسلسل مهام إعادة هيكلة البرمجيات دورا هاما في تحسين فوائد إعادة الهيكلة في عملية تطوير البرمجيات. تم اقتراح العديد من التقنيات لأتمتة إعادة هيكلة البرمجيات على أساس تفضيلات مختلفة. لكن هذه التقنيات لم تحقق بعد حلول مثلى لهذه المسألة. الهدف: نقترح توظيف تقنيات التعلم بالتعزيز (reinforcement learning) لأتمتة وضع تسلسل مهام إعادة هيكلة البرمجيات. يتم تنفيذ الأتمتة عبر مقاييس الإقتران و والتماسك على مستوى الفئة. الطريقة: يتم تطوير الحلول المقترحة و دمجها كبرنامج مساعد في بيئة التطوير المتكاملة المعروفة بإسم إيكلبس (Eclipse). كما تم التحقق من صحتها من خلال دراسة حالات مع تحليل مفصل ومناقشات. النتائج: يظهر التقييم التجريبي أن الحلول المقترحة تسهم في أتمتة إعادة هيكلة البرمجيات مع تحقيق مقاييس جودة البرمجيات المستهدفة. الخلاصة: أثبتت هذه الرسالة ملائمة تقنيات التعلم بالتعزيز للطبيعة المتغيرة لمسألة وضع تسلسل إعادة هيكلة البرمجيات. حيث أن تقنيات التعلم بالتعزيز المعتمدة على التخطيط و التعلم حققت نتائج فعالة مع وقت التنفيذ مقبول و متطلبات تخزين في الذاكرة بسيطة.

English Abstract

Background: Sequencing refactoring tasks play an important role in maximizing the benefits of refactoring in software development. Several techniques are proposed for the refactoring automation based on different preferences, yet far from reaching the optimal solutions. Objective: We employ reinforcement learning (RL) techniques to automate the refactoring sequencing process. Automation is carried out to optimize coupling and cohesion at the class-level. Method: The proposed solutions are developed and integrated as an Eclipse plugin and validated through case studies with detailed analysis and discussions. Results: Empirical evaluation shows that the proposed methods contribute to automating refactoring while achieving the targeted software quality measures. xivConclusion: RL techniques are shown to be fit to the dynamic nature of the problem of refactoring sequencing. Both planning- and learning-based RL techniques attained efficient results with acceptable execution time and space requirements.

Item Type: Thesis (Masters)
Subjects: Computer
Department: College of Computing and Mathematics > Information and Computer Science
Committee Advisor: Ghouti, Lahouari
Committee Members: Alshayeb, Mohammad and Mahmood, Sajjad
Depositing User: ARMIN KOBILICA (g201403920)
Date Deposited: 16 Jan 2018 09:48
Last Modified: 31 Dec 2020 09:11
URI: http://eprints.kfupm.edu.sa/id/eprint/140591