Abstract
It is a difficult task to manually cluster a large software system into loosely coupled modules with a large number of highly cohesive classes. On the other hand clustering is a NP-Hard problem. In this paper the design and implementation of a flexible software environment, called DAGC, to assemble and experiment with genetic clustering algorithms, for software (re)modularization, is described. The main idea behind the design of the DAGC is to define a general genetic clustering algorithm which may invoke different implementations for the parts from an extendable list of components. The DAGC provides visualization facilities to compare and evaluate different genetic clustering algorithms, regarding the two parameters of running time and the quality of clusters generated by the algorithms.
Similar content being viewed by others
References
F. B. Abreu, G. Pereira, and P. Sousa A coupling guided cluster analysisapproach to reengineer the modularity of object oriented systems. Conference on Software Maintenance and Reengineering, IEEE 2000.
N. Anquetil and T. Lethbridge Experiments with clustering as a software remodularization method. The Sixth Working Conference on Reverse Engineering (WCRE’99), 1999.
N. Anquetil, C. Fourrier, and T. Lithbridge Experiments with hierarchical clustering algorithms as software remodularization methods. In Proc. of Working Conference on Reverse Engineering, 1999.
D. Andersen and M. Andersen Human guided simple search. In Proc. of Annual Conference of the American Asociation for Artificial Inteligent, 2000.
T. N. Bui and B. R. Moon Genetic algorithm and graph partitioning. IEEE Trans. Comput., 45:841–855, 1996.
S. M. Brian and M. Spiros CRAFT: A framework for evaluating software clustering results in the absence of benchmark decomposition. In Proc. of IWPC, IEEE 2001.
S. M. Brian A heuristic search approach to solving the software clustering problem. Thesis, Drexel University, March 2002.
S. M. Brian and M. Spiros Bunch: A clustering tool for the recovery and maintenance of software system structure. In Proc. of International Conf. of Software Maintenance, IEEE 1999.
S. M. Brian and M. Spiros Comparing the decompositions produced by software clustering algorithms using similarity measurements. In The Proceedings of International Conference on Software Maintenance (ICSM’01), Italy, IEEE 2001.
A. Cincotti, V. Cuttelo, and M. Pavone Graph partitioning using genetic algorithms with ODPX. In Proceedings of the World Congress on Computational Intelligence, IEEE 2002.
K. DeJong and W. Spears Using genetic algorithms to solve NPcomplete problems. In 3rd Int. Conf. on Genetic Algorithms, pp. 24–132, 1989.
J. Davey and E. Burd Evaluating the suitability of data clustering for software remodularisation. In The Proceedings of Seventh Working Conference on Reverse Engineering, IEEE 2000.
L. W. David Optimization Software Class Libraries, Handbook, March 2002.
N. Göckel, R. Drechsler, and B. Becker GAME: A software environment for using genetic algorithms in circuit design.In Proceedings of The Fourth International Conference Applications of Computer Systems (ACS’97), Szczecin, pp. 240–247, 1997.
D. Goldberg Genetic Algorithms in Search, Optimization & Machine Learning. Addison Wesely, 1989.
M. R. Garey and D. S. Johnson Computers and Interactibility: A Guide to the Theory of NP-Completeness. Freeman, 1979.
J. Heitkoter and D. Beasley The hitch-hiker’s guide to evolutionary computation (FAQ for cmp.ai.genetic). http://surf.de.uu.net/encore/www/.
M. Keijzer, J. Merelo, and G. Romero Evolutionary Objects: A general purpose evolutionary computation library, University of Granada, Spain, 2002.
B. R. Moon Hybrid genetic algorithms with hyperplane synthesis: A theoretical and empirical study. Ph.D. dissertation, Pennsylvania State Univ., University Park, 1994.
S. Mancoridis, B. S. Mitchell, and C. Rorres Using automatic clustering to produce high-level system organization of source code. In The Proceedings of the International Workshop on Program Understanding (IWPC’98), Italy, IEEE 1998.
S. Parsa and O. Bushehria A framework to investigate and evaluate genetic clustering Algorithms for Software modularization. To be published In the Lecture Notes in Computer Science, Springer-Verlag vol. 3037, June 2004.
J. Rejeb and M. AlbElhajia New gender genetic algorithm for solving graph partitioning problems. In proc. 43rd IEEE Midwest Symp. on Circuits and Systems, Lansing M1, Aug 9–11, 2000.
V. Sundaresan and L. Hendren Practical virtual method call for java. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2000.
M. Saeed, O. Maqbool, H. A. Babri, S. Z. Hassan, and S. M. Sarwar Software clustering techniques and the use of combined algorithm. In Proceedings of the Seventh European Conference On Software Maintenance and Reengineering (CSMR’03) IEEE 2003.
D. Whitley A genetic algorithm tutorial. Computer Science Department, Colorado State University.
M. Wall Overview of GALIB, http:/lancet.mit.edu/ga, 1995.
http://i44s11.info.uni-karlsruhe.de/∼ compost
http://www.javasoft.com
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Parsa, S., Bushehrian, O. The Design and Implementation of a Framework for Automatic Modularization of Software Systems. J Supercomput 32, 71–94 (2005). https://doi.org/10.1007/s11227-005-0159-5
Issue Date:
DOI: https://doi.org/10.1007/s11227-005-0159-5