CIVILICA We Respect the Science
(ناشر تخصصی کنفرانسهای کشور / شماره مجوز انتشارات از وزارت فرهنگ و ارشاد اسلامی: ۸۹۷۱)

تشخیص و مرتب سازی ریفکتورینگ های اعمال شده در برنامه های روبی با استفاده از الگوریتم ژنتیک

عنوان مقاله: تشخیص و مرتب سازی ریفکتورینگ های اعمال شده در برنامه های روبی با استفاده از الگوریتم ژنتیک
شناسه ملی مقاله: ICTI04_050
منتشر شده در چهارمین کنفرانس ملی فناوریهای نوین در مهندسی برق و کامپیوتر در سال 1400
مشخصات نویسندگان مقاله:

فائزه زارع پور - دانش آموخته کارشناسی ارشد کامپیوتر، گروه کامپیوتر، دانشکده فنی و مهندسی، موسسه آموزش عالی علامه جعفری رفسنجان، رفسنجان، ایران
ایمان همتی مقدم - استادیار دانشگاه ولی عصر (عج) رفسنجان، گروه کامپیوتر، دانشکده فنی و مهندسی، دانشگاه ولی عصر (عج) رفسنجان، رفسنجان، ایران

خلاصه مقاله:
تشخیص تغییرات اعمال شده در سیستم های نرم افزاری و دسته بندی تغییرات شناسایی شده به عنوان ریفکتورینگ می تواند منجر به درک بهتر سیستم های نرم افزاری و روند تکامل آنها شود که این دانش خود به توسعه موثرتر سیستم های نرم افزاری کمک می نماید. علاوه بر تعیین ریفکتورینگ های اعمال شده در یک سیستم نرم افزاری، تعیین ترتیب زمانی ریفکتورینگ های اعمال شده نیز می تواند در درک بهتر چگونگی توسعه سیستم های نرم افزاری تاثیرگذار باشد.در این مقاله، یک الگوریتم ژنتیک برای شناسایی ریفکتورینگ های اعمال شده در سیستم های نرم افزاری و تعیین ترتیب زمانی اجرای ریفکتورینگ ها بر اساس وابستگی و تداخل بین آنها ارائه شده است. هرچند که الگوریتم پیشنهادی به هیچ زبان برنامه نویسی وابسته نمی باشد، اما ابزار پیاده سازی شده در این مقاله قادر به استخراج ریفکتورینگ ها در سیستم های نرم افزاری توسعه داده شده با زبان Ruby می باشد. در واقع ابزار ارائه شده اولین ابزار برای تشخیص و مرتب سازی ریفکتورینگ ها در برنامه های توسعه داده شده با زبان Ruby می باشد. یکی دیگر از نکات بارز الگوریتم پیشنهادی استفاده از الگوریتم ژنتیک جهت کاهش عدم وابستگی آن به آستانه شباهت جهت مشخص نمودن عناصر مشابه (کلاس ها، متدها و فیلدها) در دو نسخه سیستم نرم افزاری تحت بررسی است. امکان پذیری روش پیشنهادی با استفاده از ۴ برنامه نوشته شده به زبان Ruby مورد ارزیابی قرار گرفت و نتایج به دست آمده موفقیت ابزار پیاده سازی شده در بازیابی ریفکتورینگ های اعمال شده را نشان داد. در واقع، در حالیکه تمامی ریفکتورینگ های اعمال شده به درستی تشخیص داده شده بودند، الگوریتم تنها تعداد کمی ریفکتورینگ را به اشتباه تشخیص داده بود. نتایج به دست آمده همچنین توانایی روش ارائه شده در تعیین ترتیب اجرای ریفکتورینگ های شناسایی شده را نشان می دهد به گونه ای که تمامی ترتیب های اجرایی پیشنهاد شده توسط الگوریتم به درستی تشخیص داده شده بودند.

کلمات کلیدی:
ریفکتورینگ، تشخیص ریفکتورینگ ها، الگوریتم ژنتیک، آستانه شباهت، Ruby

صفحه اختصاصی مقاله و دریافت فایل کامل: https://civilica.com/doc/1290797/