یک ابراکتشافی مبتنی بر عامل برای پیمانه‌بندی سامانه‌های نرم‌افزاری

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

نویسندگان

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

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

چکیده

الگوریتم‌های پیمانه‌بندی برای بازیابی معماری نرم‌افزار استفاده می‌شوند. این الگوریتم‌ها کد منبع سامانه نرم‌افزاری را به پیمانه‌های کوچک‌تر و قابل فهم‌تر تقسیم می‌کنند. از آنجایی که پیمانه‌بندی نرم‌افزار یک مسئله چندجمله‌ای غیرقطعی‌سخت است، معمولا از روش‌های مبتنی بر جستجو برای حل آن استفاده می‌شود. در سال‌های اخیر، استفاده از ابراکتشافی‌ها با رویکردهای جستجوی هوشمند، برای دستیابی به سطح بالاتری از عمومیت رو به افزایش است. در این مقاله، یک ابراکتشافی عمومی مبتنی بر عامل، با استفاده از مفهوم سامانه‌های چندعاملی، برای پیمانه‌بندی نرم‌افزار ارائه می‌شود. در الگوریتم پیشنهادی، از عامل‌هایی با دیدگاه‌های جستجوی تقویتی و تنوعی استفاده می‌شود و عامل‌های دارای دیدگاه یکسان در یک اجتماع قرار می‌گیرند. در هر گام از جستجو، مناسب‌ترین اجتماع با استفاده از یادگیری تقویتی به‌طور خودکار انتخاب و عامل‌های آن به‌صورت موازی اجرا می‌شوند. همچنین، در طراحی برخی از عامل‌ها، برای حفظ تنوع، از مفهوم نظریه آشوب استفاده می‌شود. برای نشان‌ دادن قابلیت اجرای الگوریتم پیشنهادی یازده سامانه نرم‌افزاری دنیای واقعی با اندازه کوچک و متوسط و ده پوشه از موزیلا فایرفاکس با دامنه‌ها و قابلیت‌های متفاوت انتخاب می‌شوند. نتایج آزمایش‌ها نشان می‌دهند که ابراکتشافی پیشنهادی در بیشتر موارد پیمانه‌بندی‌هایی با کیفیت بالاتر را در زمان کمتری نسبت به الگوریتم‌های مقایسه‌شده تولید می‌کند. میانگین بهبود عددی الگوریتم پیشنهادی از نظر کیفیت پیمانه‌بندی و زمان اجرا روی ده پوشه از موزیلا فایرفاکس به ترتیب 77.607 و 59.448 درصد می‌باشد.

کلیدواژه‌ها

موضوعات


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

An Agent-based Hyper-heuristic for Software Systems Modularization

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

  • Habib Izadkhah 1
  • Shahriar Lotfi 1
  • Mahjoubeh Tajgardan 2
1 Department of Computer Science, Faculty of Mathematics, Statistics, and Computer Science, University of Tabriz, Tabriz, Iran,
2 Department of Computer Science, Faculty of Mathematics, Statistics, and Computer Science, University of Tabriz, Tabriz, Iran,
چکیده [English]

Modularization algorithms are used to recover the software architecture. These algorithms divide the source code of the software system into smaller and more understandable modules. Since software modularization is an NP-hard problem, search-based methods are usually used to solve it. In recent years, the use of hyper-heuristics with intelligent search approaches has increased to achieve a higher level of generality. In this paper, a general agent-based hyper-heuristic, using the concept of multi-agent systems, is presented for software modularization. In the proposed algorithm, agents with diversification and intensification search perspectives are used, and agents with the same perspective are placed in a coalition. In each step of the search, the most appropriate coalition is automatically selected using reinforcement learning, and its agents are executed in parallel. Also, in the design of some agents, chaos theory is used to maintain diversity. To demonstrate the applicability of the proposed algorithm, eleven real-world software systems with small and medium sizes, along with ten folders of Mozilla Firefox with different functionalities and sizes are selected. The results of the experiments show that the proposed hyper-heuristic, in most cases, produces higher-quality modularizations in less time than the compared algorithms. The proposed algorithm's average numerical improvement in modularization quality and execution time on ten folders of Mozilla Firefox is 77.607 and 59.448%, respectively.

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

  • Software modularization
  • Architecture recovery
  • Hyper - heuristic
  • Multi-agent systems
  • Reinforcement learning