OPTIMIZATION-BASED APPROACH FOR SOFTWARE REFACTORING DETECTION AND SEQUENCING

OPTIMIZATION-BASED APPROACH FOR SOFTWARE REFACTORING DETECTION AND SEQUENCING. PhD thesis, King Fahd University of Petroleum and Minerals.

[img] PDF
Final.pdf
Restricted to Repository staff only until 30 June 2021.

Download (35MB)

Arabic Abstract

يعد تحسين البرامج جزءًا مهمًا من عملية انشاء وتطوير البرامج، وتؤدي التغييرات المتكررة والعديدة التي يتم إجراؤها على البرامج إلى أنظمة معقدة وذات جودة رديئة وصعبة الصيانة. تشكل إعادة هيكلية البرامج عملية أساسية لتعزيز وتحسين كود وتصميم البرمجيات عن طريق تعديل بنيتها دون تغيير وظيفتها. أجزاء الكود وأجزاء التصميم التي تحتاج إلى إعادة هيكلة تسمى برائحة الشفرة والتصميم. هذه البحث يهدف الى طرح طرق للكشف عن روائح كود البرامج وروائح التصاميم UML باستخدام تقنية ال neuro-fuzzy ويهدف لوضع طريقة لترتيب أولويات إعادة البناء من خلال اصلاح روائح التصاميم في نماذج ال UML class باستخدام اثنتين من تقنيات التحسين متعددة الأهداف مع الأخذ بعين الاعتبار التأثير الجانبي الذي قد يسببه اصلاح هذه الروائح. وضعنا تقنية جديدة للكشف عن روائح المناذج والأكواد البرمجية باستخدام طريقة neuro-fuzzy. تم إنشاء مجموعتي بيانات لتدريب التقنية، كل مجموعة تتكون من أكثر من ثلاثين ألف سجل. ثم تم تطبيق وتقييم التقنية المقترحة باستخدام مجموعتي البيانات هاتين. وقد أكدت النتائج المسجلة تفوق التقنية المقترحة على التقنيات الحالية لأنها حققت درجة عالية من الدقة في الكشف عن الروائح. وقد قدمنا أيضًا تقنية جديدة لإعادة هيكلة البرامج لتحديد أولويات تصحيح روائح التصاميم باستخدام خوارزميتي تحسين متعدد الأهداف مع الأخذ بعين الاعتبار الآثار الجانبية الناتجة عن عملية التصحيح، تهدف عملية التحسين الى العثور على أفضل مفاضلة بين زيادة جودة UML class وبين تقليل الصيانة اللازمة. ولتحقيق هذه الهدف تم استخدام تقنية NSGA-II وتقنيةMO-CMA-ES . أولاً قمنا ببناء تمثيل حل جديد يضمن تطبيق واصلاح الرائحة. وقمنا أيضا ببناء مخطط توصيل جديد للتحويل من أرقام حقيقية إلى أرقام فريدة، ويمكن استخدام مخطط التوصيل الجديد دون قيود على طول التمثيل وفي أي من خوارزميات التحسين. لقد قارنا التقنية المقترحة باستخدام مقاييس التحسين المختلفة. بالإضافة إلى هذه الإجراءات، اقترحنا مقياسًا جديدًا لتغطية الهيمنة والذي يتجنب قيود C-metric. وقد اقترحنا أيضًا مقياس جديدا لقياس دقة تغطية النسبية لاختيار نقطة واحدة من حلFront Pareto وقمنا بملائمة هذه الطريقة لمساعدة مهندسي البرمجيات في اختيار الحلول وفقًا لاحتياجاتهم الدقيقة. أكدت نتائج المسجلة تفوق تقنية الكشف عن الرائحة الكريهة باستخدام neuro-fuzzy على تلك التقنيات الموجودة. حيث تمكنت تقنية neuro-fuzzy من تسجيل أعلى درجات الكشف ويمكنها الكشف بكفاءة عن وجود الروائح الكريهة. أما بالنسبة لتقنية تحديد الأولويات، تؤكد النتائج تفوق MO-CMA-ES علىNSGA-II حيث سجلت نتائج أفضل. حيث أن جميع تسلسلات إعادة الهيكلة المقترحة بواسطتها حسنت بشكل كبير جودة التصميم وقابليته للصيانة. علاوة على ذلك، تم تصحيح جميع الروائح في التسلسل الناتج.

English Abstract

Software evolution is a critical part of the software development process, frequent and numerous changes to the software lead to complex, poor-quality, and less maintainable systems. Refactoring denotes a fundamental process to enhance and improve software code and design by modifying its structure without altering its behavior. The code and design parts that need to be refactored are called code and model smells. The objectives of this research are to propose an approach for detecting UML class model and code smells using the neuro-fuzzy technique and propose a refactoring prioritization approach for UML class model smell correction using two multi-objective optimization techniques considering the side effect fixing a bad smell may cause. We proposed a new detection technique to different code and model smells using a neuro-fuzzy detection approach. Two large benchmark datasets, with more than 30,000 class records each, were first created. Then, the proposed technique is applied and evaluated using these two datasets. The reported detection measures confirm the superiority of the proposed technique over the existing techniques as they attained the highest detection scores. We also proposed a novel refactoring technique to prioritize model smells correction using two multi-objective optimization algorithms with side effect consideration, to find the best trade-offs between UML class diagram quality maximization and maintainability minimization, the used techniques are NSGA-II, and MO-CMA-ES. We first built a new solution representation that guarantees smell fixing and eliminates the rejection limitation. Furthermore, we built a novel mapping scheme to convert from real numbers to unique numbers, the new mapping scheme can be used with any length representation in any continuous heuristic algorithms. We compared the proposed approach with other algorithms using different optimization measures. In addition to those measures, we proposed a new dominance coverage metric that avoids C-metric limitations. We also proposed a relative accuracy coverage measure to select a single point solution from Front Pareto solution and adapted this method to assist software engineers in selecting solutions with their exact needs. The reported detection measures confirm the superiority of the proposed neuro-fuzzy bad smell detection technique over the existing ones. Neuro-fuzzy technique was able to attain the highest detection scores and can efficiently detect the existence of bad smells. For the proposed prioritization technique, the results of the MO-CMA-ES is better than NSGA-II results, as all the suggested refactoring sequences by MO-CMA-ES enhanced the design quality and maintainability compared to NSGA-II. Furthermore, all smells in the resulted sequences were corrected.

Item Type: Thesis (PhD)
Subjects: Computer
Department: College of Computing and Mathematics > Information and Computer Science
Committee Advisor: Alshayeb, M
Committee Co-Advisor: Ghouti, L
Committee Members: Selim, S and El-Maleh, A and Sajjad, M
Depositing User: AMJAD ABU HASSAN (g201205560)
Date Deposited: 30 Jun 2020 08:47
Last Modified: 30 Jun 2020 08:47
URI: http://eprints.kfupm.edu.sa/id/eprint/141651