Loading...
- Type of Document: M.Sc. Thesis
- Language: Farsi
- Document No: 51503 (19)
- University: Sharif University of Technology
- Department: Computer Engineering
- Advisor(s): Heydar Noori, Abbas
- Abstract:
- Code clones are similar code snippets in software projects. Code clones, along with their disadvantages and applications, have long been studied by researchers. In recent years, due to the popularity of open source software, using software development ecosystems such as GitHub have increased dramatically. These ecosystems allow their users to perform high-quality software development without the need for physical presence. A number of previous studies have shown that software is being developed or modified repeatedly and many defects in software projects are duplicates. Finding these recurring codes and defects may be useful for software developers. Given that finding and fixing software defects is one of the hardest and most challenging steps in software production, providing a way to reuse code fixed by others will save a huge amount of time and cost. It seems that software development ecosystems can provide an environment for reusing bug fixes in different projects. In this study, we studied the feasibility of such a scenario and found that it is possible under some circumstances and we also provided a platform for GitHub users to easily detect their own project clones and use them for their own purposes
- Keywords:
- Clone Detection ; Bug Detection ; Fix Recommendation ; Geant4 Application for Tomographic (GATE)Emission
-
محتواي کتاب
- view
- 1 سرآغاز
- 1.1 طرح مسئله
- 1.2 اهداف پژوهش
- 1.3 مراحل انجام پژوهش
- 1.4 نگاه اجمالی به پژوهش پیش رو
- 1.5 نوآوریهای پژوهش
- 1.6 ساختار پایاننامه
- 2 پیشنیاز
- 2.1 کلون
- 2.2 کلون یکتا و نمونه کلون
- 2.3 کلونهای درونپروژهای، بینپروژهای و ترکیبی
- 2.4 پروژههای مبدا و مقصد
- 2.5 پروژههای همدامنه و غیرهمدامنه
- 2.6 واژهشناسی گیتهاب
- 3 کارهای پیشین
- 3.1 روشهای کشف کلون
- 3.1.1 رویکردهای متنی
- 3.1.2 رویکردهای نحوی
- 3.1.3 رویکردهای لغوی
- 3.1.4 رویکردهای معنایی
- 3.2 مطالعات مروری و بهبود روشهای پیشین
- 3.3 مطالعات تحلیلی و کاربردی
- 3.4 کشف نواقص و حساسیتها با استفاده از کشف کلون
- 3.5 جمعبندی
- 3.1 روشهای کشف کلون
- 4 کشف کلونهای بینپروژهای در گیتهاب
- 4.1 تحلیل و بررسی کلونهای بینپروژهای در گیتهاب
- 4.1.1 انتخاب پروژهها
- 4.2 کشف و ردیابی کلون در پروژههای همدامنه
- 4.3 ابزار آنلاین کلونهانترسCLONE-HUNTRESS
- 4.3.1 معرفی ابزار
- 4.3.2 سناریوهای استفاده
- 4.3.3 توضیحات و نحوهی استفاده از ابزار
- 4.1 تحلیل و بررسی کلونهای بینپروژهای در گیتهاب
- 5 جمعآوری داده برای به روزرسانی ابزار و تحلیل خطاهای مشترک
- 5.1 نیمنگاهی به همهی مراحل انجام گرفته در این بخش
- 5.2 فیلتر پروژههای جاوای گیتهاب
- 5.2.1 تارنمای جیاچتورنت GHTorrent: ` `
- 5.2.2 سامانه پرسمانهای بزرگ گوگلGoogle BigQuery
- 5.2.3 اجرای پرسمان برای انتخاب پروژهها
- 5.3 دریافت اطلاعات در مورد هر پروژه
- 5.3.1 واسط گیتهاب
- 5.3.2 چالشهای دریافت اطلاعات از واسط گیتهاب
- 5.3.3 اطلاعات دریافتی و لزوم هر کدام
- 5.3.4 پیشپردازش بر روی اطلاعات هر پروژه
- 5.4 کشف دامنهی پروژهها
- 5.4.1 مدل LDALatent Dirichlet Allocation
- 5.4.2 مراحل استخراج دامنهی پروژهها
- 5.5 استخراج خطاها و اصلاحات پروژهها
- 5.5.1 تضمین کیفیت پروژهها
- 5.5.2 بررسی پیغامهای ثبت پروژهها
- 5.5.3 ذخیرهی کدهای خطادار به همراه اصلاحشان
- 5.6 کشف کلونها
- 5.7 ابزار کشفکننده کلون دکارد
- 5.8 نتیجهگیری
- 6 تحلیل و آنالیز خطاهای مشترک
- 6.1 سوالات پژوهشی
- 6.2 برپایی ارزیابی
- 6.2.1 کلونهای درونپروژهای
- 6.2.2 کلونهای بینپروژهای
- 6.2.3 کلونهای اصلاحات
- 6.2.4 ارزیابی تجربی خطاهای مشترک
- 6.3 نتایج ارزیابی
- 6.4 تهدیدات علیه اعتبار
- 6.4.1 ساخت
- 6.4.2 داخلی
- 6.4.3 خارجی
- 7 نتیجهگیری و کارهای آتی
- 7.1 نقاط ضعف و قوت
- 7.1.1 نقاط قوت
- 7.1.2 نقاط ضعف
- 7.2 کارهای آتی
- 7.1 نقاط ضعف و قوت
- کتابنامه
- واژه نامه انگلیسی به فارسی
- واژه نامه فارسی به انگلیسی