پیمانه بندی نرم افزار با در نظر گرفتن ویژگی های ساختاری و غیرساختاری

سال انتشار: 1397
نوع سند: مقاله کنفرانسی
زبان: فارسی
مشاهده: 707

فایل این مقاله در 10 صفحه با فرمت PDF قابل دریافت می باشد

استخراج به نرم افزارهای پژوهشی:

لینک ثابت به این مقاله:

شناسه ملی سند علمی:

DCBDP04_017

تاریخ نمایه سازی: 24 شهریور 1397

چکیده مقاله:

پیمانه بندی به عنوان یکی از مراحل مهندسی معکوس برای فهم یک سیستم نرم افزاری استفاده می شود. هدف از پیمانه بندی، تجزیه یک سیستم نرم افزاری از روی کد منبع به زیرسیستم های معنی دار و قابل فهم است. از آنجایی که پیمانه بندی یک سیستم نرم افزاری جز مسایل np-hard است بنابراین کیفیت پیمانه بندی به دست آمده با استفاده از الگوریتم های تکاملی نسبت به الگوریتم های حریصانه بسیار منطقی تر است. از این رو استفاده از الگوریتم های تکاملی نسبت به الگوریتم های حریصانه در این زمینه منطقی تر است. تمام الگوریتم های تکاملی موجود در این زمینه برای پیمانه بندی نرمافزار فقط ویژگی های ساختاری که وابسته به نحو زبان های برنامه نویسی هستند را در نظر می گیرند. با توجه به این که برای اکثر زبان های برنامه نویسی ابزاری برای استخراج گراف فراخوانی وجود ندارد بنابراین امکان پیمانه بندی آنها وجود ندارد. برای غلبه بر این مشکل، در این مقاله ویژگی های نحوی و معنایی به طور همزمان و همچنین به طور مستقل در نظر گرفته شده است برای این کار یک تابع هدف جدید ارایه شده است. برای پیمانه بندی سیستم نرم افزاری از روی ویژگی های نحوی و معنایی الگوریتم ژنتیک با کدگذاری Bunch ، ژنتیک با کدگذاری DAGC اعمال شده است. نتایج آزمایش ما روی موزیلا فایرفاکس نشان داد که استفاده از الگوریتم ژنتیک با کدگذاری Bunch بهتر از ژنتیک با کدگذاری DAGC قادر به پیمانه بندی سیستم نرم افزاری است.

نویسندگان

نفیسه سادات جلالی

گروه علوم کامپیوتر، دانشکده علوم ریاضی، دانشگاه تبریز، تبریز، ایران

حبیب ایزدخواه

گروه علوم کامپیوتر، دانشکده علوم ریاضی، دانشگاه تبریز، تبریز، ایران

شهریار لطفی

گروه علوم کامپیوتر، دانشکده علوم ریاضی، دانشگاه تبریز، تبریز، ایران