Loading...

Predicting Usefulness of Code Review Comments Using Machine Learning Algorithms

Mohammadi, Atefeh | 2019

1385 Viewed
  1. Type of Document: M.Sc. Thesis
  2. Language: Farsi
  3. Document No: 52509 (19)
  4. University: Sharif University of Technology
  5. Department: Computer Engineering
  6. Advisor(s): Fazli, Mohammad Amin
  7. Abstract:
  8. The competition for staying in the business world has intensified today with the rise of open-source and commercial software. As long as a software is tailor-made to suit the needs of users, it is so-called alive and can stay in the competition. So the maintenance phase is necessary to make changes to the software to meet the needs of users. To reduce costs associated with this phase, it is necessary to avoid software bugs. One way to avoid software bugs is to use peer code review. Peer code review has been recognized as one of the best software engineering principles of the last 35 years. This principle helps maintain the quality of the code due to changes made to parts of the code that need to be integrated with the code repository. This is done by early detection of code defects and breaches of coding standards in the early stages of development. Studies show that a significant amount of these comments are not useful, which means they do not cause changes to the code; Therefore, in this study, considering the significance of this issue first, extracting the factors affecting the quality of code review comments was done based on previous research. The extracted factors fall into two categories: factors related to the developer experience and textual features of the comments. Then, due to the lack of appropriate data set that includes these factors, an appropriate dataset was collected. Then, a useful predictive model was implemented using the XGBoost algorithm and the performance of this method was compared with other methods. Finally, the method presented in this study is compared with other works done in this field. The results show that the proposed method considering the two completely separate datasets and according to precision, recall and F1-score criteria about three percent and according to accuracy criterion about one percent performs better than the only available method
  9. Keywords:
  10. Software Maintenance ; Machine Learning ; Peer Code Review ; Textual Features ; Developer Experience

 Digital Object List

 Bookmark

  • فهرست جدول‌ها
  • فهرست تصویرها
  • فهرست نمودارها
  • فصل1 : معرفی پژوهش
    • 1-1 تعریف مسئله
    • 1-2 انواع روشهای بررسی کد همکار
      • 1-2-1 بازرسی کد (بازرسی رسمی)
      • 1-2-2 بررسی غیر هم‌زمان با کمک پست الکترونیکی
      • 1-2-3 بررسی مبتنی بر ابزار
      • 1-2-4 مدل توسعه مبتنی بر درخواست
    • 1-3 تأثیر بررسی کد و انگیزه بررسی کد
    • 1-4 اهداف پژوهش
    • 1-5 مراحل انجام پژوهش
    • 1-6 نوآوری‎های پژوهش
    • 1-7 ساختار پایان‌نامه
  • فصل2 مبانی نظری تحقیق
    • 2-1 رمزگذاری وان-هات
    • 2-2 تعبیه کلمات
      • 2-2-1 یادگیری بازنمایی کلمات (word2vec)
      • 2-2-2 بردار پاراگراف: یک مدل توزیع‌شده حافظه (doc2vec)
    • 2-3 الگوریتم جنگل تصادفی
    • 2-4 الگوریتم XGBoost
    • 2-5 شبکه عصبی بازگشتی
  • فصل3 پیشینه پژوهش
    • 3-1 بررسی عوامل مؤثر در مفید بودن نظرات بررسی کد
    • 3-2 بررسی عوامل مؤثر در کیفیت بررسی کد
    • 3-3 بررسی نوع احساسات موجود در نظرات بررسی کد
    • 3-4 تحلیل نتایج بررسی پیشینه پژوهش
  • فصل4 راهکار پیشنهادی
    • 4-1 بررسی روش پیشنهادی ارائه‌شده در مقاله [4]
      • 4-1-1 بررسی تأثیر ویژگی‌های مختلف در ایجاد نظرات مفید
      • 4-1-2 پیاده‌سازی روش پیشنهادی مقاله [4] برای پیش‎بینی نظرات مفید
    • 4-2 جمع‌آوری مجموعه داده
    • 4-3 بررسی انواع روش‌های دسته‌بندی و انتخاب روش پیش‌بینیکننده
      • 4-3-1 الگوریتم XGBoost
      • 4-3-2 الگوریتم ماشین بردار پشتیبان
      • 4-3-3 الگوریتم نایو بیز
      • 4-3-4 الگوریتم رگرسیون لجستیک
      • 4-3-5 شبکه عصبی
    • 4-4 پیادهسازی روشهای دستهبندی انتخابشده
      • 4-4-1 انواع معماری شبکه عصبی
        • 4-4-1-1 شبکه‌های عصبی کاملاً متصل
        • 4-4-1-2 شبکه‌های عصبی GRU
        • 4-4-1-3 شبکه‌های عصبی LSTM
        • 4-4-1-4 ترکیب انواع مختلف شبکه‌های عصبی
      • 4-4-2 تنظیم پارامترهای الگوریتم XGBoost
  • فصل5 ارزیابی و اعتبارسنجی
    • 5-1 ارزیابی و مقایسه روش پیشنهادی با کارهای پیشین
    • 5-2 تهدیدات علیه اعتبار
      • 5-2-1 اعتبار درونی
      • 5-2-2 اعتبار بیرونی
      • 5-2-3 اعتبار ساخت
      • 5-2-4 اعتبار اطمینان
  • فصل6 جمعبندی و کارهای آتی
    • 6-1 نقاط قوت
    • 6-2 نقاط ضعف
  • منابع یا مراجع
  • واژهنامه فارسی به انگلیسی
...see more