بازآرایی تکاملی چندهدفه آگاه از انرژی برای تصحیح نشانه‌های کد بد در کاربردهای اندرویدی

نویسندگان

1 دانشکده مهندسی کامپیوتر، دانشگاه صنعتی خواجه نصیرالدین طوسی، تهران، ایران.

2 دانشکده مهندسی کامپیوتر، دانشگاه صنعتی خواجه نصیرالدین طوسی، تهران، ایران.

3 دانشکده مهندسی کامپیوتر، دانشگاه صنعتی خواجه نصیرالدین طوسی، تهران، ایران.

doi
10.22052/scj.2023.246479.1074
چکیده

در میان مباحث حوزه مهندسی نرم‌افزار، بهره‌وری انرژی از عوامل موثر در دو مرحله توسعه و نگهداری نرم‌افزار، به مخصوص در دستگاه‌های با انرژی محدود است. انجام بازآرایی نرم‌افزار، اگرچه بهبود کیفی نرم‌افزار را به دنبال دارد، اما برخی از پژوهش‌های اخیر تصریح دارد که اعمال عملگرهای بازآرایی ممکن است به مصرف انرژی بیشتر و یا افزایش زمان اجرای برنامه‌های کاربردی اندرویدی منجر شود. در این مقاله، تاثیر بازآرایی و حذف هشت نشانه کد بد و پادالگوی اندرویدی/ جاوایی را بر زمان اجرا، مصرف انرژی و معیارهای کیفی کد بررسی می‌کنیم. برای انجام بررسی‌ها و دریافت نتایج از پنج برنامه کاربردی اندرویدی متن‌باز و یک برنامه کاربردی اندرویدی توسعه داده شده، استفاده کردیم. در گام نخست، تغییرهای میزان مصرف انرژی، زمان اجرای برنامه کاربردی و معیارهای کیفی کد را پیش و پس از انجام بازآرایی محاسبه کردیم. نتایج نشان می‌دهد اعمال بازآرایی در برخی موارد منجر به کاهش مصرف انرژی و زمان اجرا و در برخی دیگر، افزایش مصرف انرژی و زمان اجرای برنامه کاربردی را رقم زده است. در گام دوم برای ارائه پیشنهاد مجموعه‌ای از عملگرهای بازآرایی از میان عملگرهای بازآرایی تشخیص داده شده و ممکن، راهکاری تازه، با استفاده از راهکار بهینه‌سازی تکاملی چندهدفه ارائه شده است. بر همین اساس، الگوریتم ژنتیک چندهدفه با مرتب‌سازی غیرمغلوب (NSGA-II) را با در نظرگرفتن سه هدف بهبود زمان اجرا، مصرف انرژی و میزان تلاش انجام شده برای بازآرایی، به کار بردیم. خروجی این رویکرد توانسته است میزان زمان اجرا و مصرف انرژی را با دقت میانه 76% و 65% بهبود دهد و به طور میانه 42% پادالگوها و نشانه‌های کد بد تشخیص‌داده شده در برنامه‌های کاربردی اندرویدی را برطرف سازد.