The Journal of Supercomputing

, Volume 32, Issue 1, pp 71–94 | Cite as

The Design and Implementation of a Framework for Automatic Modularization of Software Systems



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.

framework genetic clustering algorithm modularization confidence analysis 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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.Google Scholar
  2. 2.
    N. Anquetil and T. Lethbridge Experiments with clustering as a software remodularization method. The Sixth Working Conference on Reverse Engineering (WCRE’99), 1999.Google Scholar
  3. 3.
    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.Google Scholar
  4. 4.
    D. Andersen and M. Andersen Human guided simple search. In Proc. of Annual Conference of the American Asociation for Artificial Inteligent, 2000.Google Scholar
  5. 5.
    T. N. Bui and B. R. Moon Genetic algorithm and graph partitioning. IEEE Trans. Comput., 45:841–855, 1996.Google Scholar
  6. 6.
    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.Google Scholar
  7. 7.
    S. M. Brian A heuristic search approach to solving the software clustering problem. Thesis, Drexel University, March 2002.Google Scholar
  8. 8.
    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.Google Scholar
  9. 9.
    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.Google Scholar
  10. 10.
    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.Google Scholar
  11. 11.
    K. DeJong and W. Spears Using genetic algorithms to solve NPcomplete problems. In 3rd Int. Conf. on Genetic Algorithms, pp. 24–132, 1989.Google Scholar
  12. 12.
    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.Google Scholar
  13. 13.
    L. W. David Optimization Software Class Libraries, Handbook, March 2002.Google Scholar
  14. 14.
    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.Google Scholar
  15. 15.
    D. Goldberg Genetic Algorithms in Search, Optimization & Machine Learning. Addison Wesely, 1989.Google Scholar
  16. 16.
    M. R. Garey and D. S. Johnson Computers and Interactibility: A Guide to the Theory of NP-Completeness. Freeman, 1979.Google Scholar
  17. 17.
    J. Heitkoter and D. Beasley The hitch-hiker’s guide to evolutionary computation (FAQ for Scholar
  18. 18.
    M. Keijzer, J. Merelo, and G. Romero Evolutionary Objects: A general purpose evolutionary computation library, University of Granada, Spain, 2002.Google Scholar
  19. 19.
    B. R. Moon Hybrid genetic algorithms with hyperplane synthesis: A theoretical and empirical study. Ph.D. dissertation, Pennsylvania State Univ., University Park, 1994.Google Scholar
  20. 20.
    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.Google Scholar
  21. 21.
    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.Google Scholar
  22. 22.
    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.Google Scholar
  23. 23.
    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.Google Scholar
  24. 24.
    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.Google Scholar
  25. 25.
    D. Whitley A genetic algorithm tutorial. Computer Science Department, Colorado State University.Google Scholar
  26. 26.
    M. Wall Overview of GALIB, http:/, 1995.Google Scholar
  27. 27.∼ compostGoogle Scholar
  28. 28.
    http://www.javasoft.comGoogle Scholar

Copyright information

© Springer Science+Business Media, Inc. 2005

Authors and Affiliations

  1. 1.Colledge of Computer EngineeringIran University of Science and TechnologyNarmakTehranIran

Personalised recommendations