• IAHPC
  • 0qomuni
  • taba
  • isc

Title:

Multi-objective evolutionary based software modularization by considering structural and non-structural features

Habib Izadkhah Nafiseh Sadat Jalali

Department of Computer Science, University of Tabriz, Tabriz, Iran Department of Computer Science, University of Tabriz, Tabriz, Iran

Abstract:

Software modularization is used as one of the stages of reverse engineering to understand a software system. The purpose of modularization is to decompose a software system from the source code into meaningful and understandable subsystems (modules). Since modularization of a software system is an NP-hard problem, the modularization quality obtained using evolutionary algorithms is more logical than greedy algorithms. All evolutionary algorithms in the field of software modularization only consider structural features that are dependent on the syntax of programming languages. Due to the fact that for most programming languages, there is no tool to extract structural features so it is not possible to modularize them. To overcome this problem, this paper presents a new objective function, taken into account structural and non-structural features. To modularize the software system with structural and non-structural features, three algorithms have been applied: genetic algorithm with two encodings (Bunch and DAGC), and estimation of distribution algorithm. Our results on Mozilla Firefox, as a large-scale software system, showed that the use of the distribution estimation algorithm is better than the rest of the algorithms in software system modularization.

Keyword:

Genetic Algorithm, Call Dependency Graph, Estimation of distribution algorithm, non-structural feature, Reverse Engineering, Modularization.

ISC Index Link:

Full Text: