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

نوع مقاله : مقاله پژوهشی

نویسندگان

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

چکیده

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

کلیدواژه‌ها

موضوعات


عنوان مقاله [English]

Energy-Aware Evolutionary Multi-Objective Refactoring for Bad Code Smells Correction of Android Applications

نویسندگان [English]

  • Maede Zamzame
  • Saeed Sedighian Kashi
  • Amin Nikanjam
Faculty of Computer Engineering, K. N. Toosi University of Technology, Tehran, Iran
چکیده [English]

In software engineering, energy efficiency is an influential factor in the software development and maintenance especially for battery-limited devices. While refactoring can improve the quality of software, recent studies suggest that some refactoring operations may lead to conflicts with energy consumption and execution time of Android applications. In this paper, we analyze the impact of code refactoring for eight Android/Java bad code smells and anti-patterns on a testbed of five real and one synthetic Android application. We measure energy consumption, execution time and quality design of application before and after refactoring. We then propose a novel refactoring recommendation approach based on evolutionary multi-objective optimization that accounts for energy consumption, execution time and refactoring effort for Android/Java anti-patterns. For this purpose, we use Nondominated Sorting Genetic Algorithm-II (NSGA-II) with three objectives: 1) energy consumption, 2) execution time, and 3) refactoring effort. The obtained results show that this approach can generate refactoring recommendations with a median precision of 65% and 76% for improving energy and execution time respectively while the median of removed antipatterns in testbed applications is 42%.

کلیدواژه‌ها [English]

  • Software maintenance
  • Refactoring
  • Android applications
  • Anti-patterns
  • Energy consumption
  • Execution time
  • Search-based Software Engineering
  • Design quality