A Genetic Algorithm for Software Design Migration from Structured to Object Oriented Paradigm

The potential benefit of migrating software design from Structured to Object Oriented Paradigm is manifolded including modularity, manageability and extendability. This design migration should be automated as it will reduce the time required in manual process. Our previous work has addressed this issue in terms of optimal graph clustering problem formulated by a quadratic Integer Program (IP). However, it has been realized that solution to the IP is computationally hard and thus heuristic based methods are required to get a near optimal solution. This paper presents a Genetic Algorithm (GA) for optimal clustering with an objective of maximizing intra-cluster edges whereas minimizing the inter-cluster ones. The proposed algorithm relies on fitness based parent selection and cross-overing cluster elements to reach an optimal solution step by step. The scheme was implemented and tested against a set of real and synthetic data. The experimental results show that GA outperforms our previous works based on Greedy and Monte Carlo approaches by 40% and 49.5%.

[1]  Shah Mostafa Khaled,et al.  Optimizing software design migration from structured programming to object oriented paradigm , 2014, 16th Int'l Conf. Computer and Information Technology.

[2]  Olli Nevalainen,et al.  Self-Adaptive Genetic Algorithm for Clustering , 2003, J. Heuristics.

[3]  Duncan J. Watts,et al.  Collective dynamics of ‘small-world’ networks , 1998, Nature.

[4]  Yaneer Bar-Yam,et al.  The Statistical Mechanics of Complex Product Development: Empirical and Analytical Results , 2007, Manag. Sci..

[5]  Ujjwal Maulik,et al.  Genetic algorithm-based clustering technique , 2000, Pattern Recognit..

[6]  Onaiza Maqbool,et al.  Hierarchical Clustering for Software Architecture Recovery , 2007, IEEE Transactions on Software Engineering.

[7]  Dineshkumar,et al.  Code to Design Migration from Structured to Object Oriented Paradigm , 2011 .

[8]  Harry M. Sneed,et al.  Extracting object-oriented specification from procedurally oriented programs , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[9]  Nelson F. F. Ebecken,et al.  A genetic algorithm for cluster analysis , 2003, Intell. Data Anal..

[10]  Olli Nevalainen,et al.  Genetic Algorithms for Large-Scale Clustering Problems , 1997, Comput. J..

[11]  Yingjie Wang FUZZY CLUSTERING ANALYSIS BY USING GENETIC ALGORITHM , 2008 .

[12]  Michael A. Heroux,et al.  Barely sufficient software engineering: 10 practices to improve your CSE software , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[13]  Barbara G. Ryder,et al.  Constructing the Call Graph of a Program , 1979, IEEE Transactions on Software Engineering.