About this Journal Submit a Manuscript Table of Contents
Advances in Software Engineering
Volume 2012 (2012), Article ID 792024, 18 pages
http://dx.doi.org/10.1155/2012/792024
Review Article

Clustering Methodologies for Software Engineering

Department of Computer Science and Engineering, York University, Toronto, ON, Canada M3J 1P3

Received 25 November 2011; Revised 28 February 2012; Accepted 28 February 2012

Academic Editor: Letha Hughes Etzkorn

Copyright © 2012 Mark Shtern and Vassilios Tzerpos. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Linked References

  1. H. A. Muller, M. A. Orgun, S. R. Tilley, and J. S. Uhl, “A reverse engineering approach to subsystem structure identification,” Journal of Software Maintenance, vol. 5, pp. 181–204, 1993.
  2. S. C. Choi and W. Scacchi, “Extracting and restructuring the design of large systems,” IEEE Software, vol. 7, no. 1, pp. 66–71, 1990. View at Publisher · View at Google Scholar · View at Scopus
  3. N. Anquetil and T. Lethbridge, “File clustering using naming conventions for legacy systems,” in Proceedings of the Conference of the Center for Advanced Studies on Collaborative research (CASCON '97), pp. 184–195, November 1997.
  4. C. Lindig and G. Snelting, “Assessing modular structure of legacy code based on mathematical concept analysis,” in Proceedings of the IEEE 19th International Conference on Software Engineering, pp. 349–359, May 1997. View at Scopus
  5. R. W. Schwanke, R. Altucher, and M. A. Platoff, “Discovering, visualizing, and controlling software structure,” in Proceedings of the International Workshop on Software Specification and Design (IWSSD '89), pp. 147–150, IEEE Computer Society Press, 1989.
  6. J. F. Cui and H. S. Chae, “Applying agglomerative hierarchical clustering algorithms to component identification for legacy systems,” Information and Software Technology, vol. 53, no. 6, pp. 601–614, 2011. View at Publisher · View at Google Scholar · View at Scopus
  7. Y. Wang, P. Liu, H. Guo, H. Li, and X. Chen, “Improved hierarchical clustering algorithm for software architecture recovery,” in Proceedings of the International Conference on Intelligent Computing and Cognitive Informatics (ICICCI '10), pp. 247–250, Kuala Lumpur, Malaysia, June 2010. View at Publisher · View at Google Scholar · View at Scopus
  8. C. Patel, A. Hamou-Lhadj, and J. Rilling, “Software clustering using dynamic analysis and static dependencies,” in Proceedings of the Software Maintenance and Reengineering (CSMR '09), pp. 27–36, IEEE Computer Society, Kaiserslautern, Germany, March 2009.
  9. V. Tzerpos, Comprehension-Driven Software Clustering, Ph.D. thesis, University of Toronto, Toronto, Canada, 2001.
  10. V. Tzerpos and R. C. Holt, “MoJo: a distance metric for software clusterings,” in Proceedings of the 6th Working Conference on Reverse Engineering (WCRE '99), pp. 187–193, October 1999. View at Scopus
  11. M. Shtern and V. Tzerpos, “A framework for the comparison of nested software decompositions,” in Proceedingsof the 11th Working Conference on Reverse Engineering (WCRE '04), pp. 284–292, Delft, The Netherlands, November 2004. View at Scopus
  12. B. S. Mitchell and S. Mancoridis, “Craft: a framework for evaluating software clustering results in the absence of benchmark decompositions,” in Proceedings of the 8th Working Conference on Reverse Engineering (WCRE 2001), pp. 93–102, Suttgart, Germany, October 2001. View at Scopus
  13. N. Anquetil and T. C. Lethbridge, “Experiments with clustering as a software remodularization method,” in Proceedings of the 6th Working Conference on Reverse Engineering (WCRE '99), pp. 235–255, Atlanta, Ga, USA, October 1999. View at Scopus
  14. R. Koschke and T. Eisenbarth, “A framework for experimental evaluation of clustering techniques,” in Proceedings of the International Workshop on Program Comprehension (IWPC '00), pp. 201–210, Limerick, Ireland, June 2000.
  15. G. C. Murphy, D. Notkin, and K. Sullivan, “Software reflexion models: bridging the gap between source and high-level models,” in Proceedings of the 1995 3rd ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 18–27, October 1995. View at Scopus
  16. A. Christl, R. Koschke, and M. A. Storey, “Automated clustering to support the reflexion method,” Information and Software Technology, vol. 49, no. 3, pp. 255–274, 2007. View at Publisher · View at Google Scholar · View at Scopus
  17. X. Xu, C.-H. Lung, M. Zaman, and A. Srinivasan, “Program restructuring through clustering techniques,” in Proceedings of the IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM '04), pp. 75–84, IEEE Computer Society, Ottawa, Canada, September 2004.
  18. S. Zhong, T. M. Khoshgoftaar, and N. Seliya, “Analyzing software measurement data with clustering techniques,” IEEE Intelligent Systems, vol. 19, no. 2, pp. 20–27, 2004. View at Publisher · View at Google Scholar · View at Scopus
  19. C. H. Lung, M. Zaman, and A. Nandi, “Applications of clustering techniques to software partitioning, recovery and restructuring,” Journal of Systems and Software, vol. 73, no. 2, pp. 227–244, 2004. View at Publisher · View at Google Scholar · View at Scopus
  20. R. W. Schwanke, “An intelligent tool for re-engineering software modularity,” in Proceedings of the 13th International Conference on Software Engineering, pp. 83–92, May 1991. View at Scopus
  21. M. Bauer and M. Trifu, “Architecture-aware adaptive clustering of OO systems,” in Proceedings of the 8th European Conference on Software Maintainance and Reengineering (CSMR '04), pp. 3–14, Tampere, Finland, March 2004. View at Scopus
  22. K. Mahdavi, M. Harman, and R. M. Hierons, “A multiple hill climbing approach to software module clustering,” in Proceedings of the19th IEEE International Conference on Software Maintenance (ICSM '03), p. 315, IEEE Computer Society, Amsterdam, The Netherlands, September 2003.
  23. C. Xiao and V. Tzerpos, “Software clustering based on dynamic dependencies,” in Proceedings of the Software Maintenance and Reengineering (CSMR '05), pp. 124–133, IEEE Computer Society, Manchester, UK, March 2005.
  24. P. Andritsos and V. Tzerpos, “Information-theoretic software clustering,” IEEE Transactions on Software Engineering, vol. 31, no. 2, pp. 150–165, 2005. View at Publisher · View at Google Scholar · View at Scopus
  25. A. Shokoufandeh, S. Mancoridis, and M. Maycock, “Applying spectral methods to software clustering,” in Proceedings of the Working Conference on Reverse Engineering (WCRE '02), p. 3, IEEE Computer Society, Richmond, VA, USA, November 2002.
  26. G. Canfora, J. Czeranski, and R. Koschke, “Revisiting the delta IC approach to component recovery,” in Proceedings of the 7th Working Conference on Reverse Engineering (WCRE '00), p. 140, IEEE Computer Society, Brisbane, Australia, 2000.
  27. D. Pollet, S. Ducasse, L. Poyet, I. Alloui, S. Cîmpan, and H. Verjus, “Towards a process-oriented software architecture reconstruction taxonomy,” in Proceedings of the 11th European Conference on Software Maintenance and Reengineering (CSMR '07), pp. 137–148, Amsterdam, Netherlands, March 2007. View at Publisher · View at Google Scholar · View at Scopus
  28. S. Demeyer, S. Tichekaar, and S. Ducasse, “FAMIX 2.1—the FAMOOS information exchange model,” Tech. Rep., University of Bern, Bern, Switzerland, 2001.
  29. R. C. Holt, “Structural manipulations of software architecture using Tarski relational algebra,” in Proceedings of the 1998 5th Working Conference on Reverse Engineering, pp. 210–219, October 1998. View at Scopus
  30. T. C. Lethbridge, S. Tichelaar, and E. Ploedereder, “The Dagstuhl Middle Metamodel: a schema for reverse engineering,” Electronic Notes in Theoretical Computer Science, vol. 94, pp. 7–18, 2004. View at Publisher · View at Google Scholar · View at Scopus
  31. R. C. Holt, A. Schürr, S. E. Sim, and A. Winter, “GXL: a graph-based standard exchange format for reengineering,” Science of Computer Programming, vol. 60, no. 2, pp. 149–170, 2006. View at Publisher · View at Google Scholar · View at Scopus
  32. B. S. Mitchell, A Heuristic Search Approach to Solving the Software Clustering Problem, Ph.D. thesis, Drexel University, Philadelphia, Pa, USA, 2002, Adviser-Spiros Mancoridis.
  33. H. A. Muller, S. R. Tilley, and K. Wong, “Understanding software systems using reverse engineering technology perspectives from the Rigi project,” in Proceedings of the Conference of the Center for Advanced Studies on Collaborative research (CASCON '93), pp. 217–226, IBM Press, Ontario, Canada, 1993.
  34. J. Bézivin, F. Jouault, and P. Valduriez, “On the need for megamodels,” in Proceedings of the Workshop on Best Practices for Model-Driven Software Development at ACM Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA '04), Vancouver, British Columbia, Canada, October 2004.
  35. L. Tahvildari, R. Gregory, and K. Kontogianni, “An approach for measuring software evolution using source code features,” in Proceedings of the Asia-Pacific Software Engineering Conference, p. 10, 1999.
  36. S. Kawaguchi, P. K. Garg, M. Matsushita, and K. Inoue, “MUDABlue: an automatic categorization system for open source repositories,” in Proceedings of the 11th Asia-Pacific Software Engineering Conference (APSEC '04), pp. 184–193, Busan, Korea, December 2004. View at Scopus
  37. A. Kuhn, S. Ducasse, and T. Gîrba, “Enriching reverse engineering with semantic clustering,” in Proceedings of the 12th Working Conference on Reverse Engineering (WCRE '05), pp. 133–142, Pittsburgh, Pa, USA, November 2005. View at Publisher · View at Google Scholar · View at Scopus
  38. J. Dietrich, V. Yakovlev, C. McCartiny, G. Jenson, and M. Duchrow, “Cluster analysis of Java dependency graphs,” in Proceedings of the 4th ACM Symposium on Software Visualization (SOFTVIS '08), pp. 91–94, Munich, Germany, September 2008. View at Publisher · View at Google Scholar · View at Scopus
  39. http://www.swag.uwaterloo.ca.
  40. J. Korn, Y. F. Chen, and E. Koutsofios, “Chava: reverse engineering and tracking of Java applets,” in Proceedings of the 6th Working Conference on Reverse Engineering (WCRE '99), pp. 314–325, October 1999. View at Scopus
  41. G. Huang, H. Mei, and F. Q. Yang, “Runtime recovery and manipulation of software architecture of component-based systems,” Automated Software Engineering, vol. 13, no. 2, pp. 257–281, 2006. View at Publisher · View at Google Scholar · View at Scopus
  42. E. Stroulia and T. Systa, “Dynamic analysis for reverse engineering and program understanding,” ACM SIGAPP Applied Computing Review, vol. 10, no. 1, pp. 8–17, 2002.
  43. R. J. Walker, G. C. Murphy, B. N. Freeman-Benson, D. Wright, D. Swanson, and J. Isaak, “Visualizing dynamic software system information through high-level models,” in Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications (OOPSLA '98), pp. 271–283, Vancouver, Canada, 1998.
  44. H. Yan, D. Garlan, B. Schmerl, J. Aldrich, and R. Kazman, “DiscoTect: a system for discovering architectures from running systems,” in Proceedings of the 26th International Conference on Software Engineering (ICSE '04), pp. 470–479, Scotland, UK, May 2004. View at Scopus
  45. Q. Zhang, Q. Qiu, and L. Sun, “Objectoriented software architecture recovery using a new hybrid clustering algorithm,” in Proceedings of the International Conference on Fuzzy Systems and Knowledge Discovery (FSKD '10), vol. 6, pp. 2546–2550, Shandong, china, August 2010.
  46. http://www.eclipse.org/tptp/platform/documents/probekit/probekit.html.
  47. D. B. Lange and Y. Nakamura, “Object-oriented program tracing and visualization,” Computer, vol. 30, no. 5, pp. 63–70, 1997. View at Scopus
  48. T. Systa, Static and Dynamic Reverse Engineering Techniques for Java Software Systems, Ph.D. thesis, Tampere University, Tampere, Finland, 2000.
  49. M. Dmitriev, “Profiling Java applications using code hotswapping and dynamic call graph revelation,” ACM SIGSOFT Software Engineering Notes, vol. 29, no. 1, pp. 139–150, 2004.
  50. M. Lungu, M. Lanza, and T. Gîrba, “Package patterns for visual architecture recovery,” in Proceedings of the 10th European Conference on Software Maintenance and Reengineering (CSMR '06), pp. 185–194, Bari, Italy, March 2006. View at Publisher · View at Google Scholar · View at Scopus
  51. M. Conway, “How do committees invent,” Datamation, vol. 14, no. 4, pp. 28–31, 1968.
  52. R. Wuyts, A Logic Meta-Programming Approach to Support the Co-Evolution of Object-Oriented Design and Implementation, Ph.D. thesis, Vrije Universiteit Brussel, Amsterdam, Netherlands, 2001.
  53. G. Canfora and L. Cerulo, “Impact analysis by mining software and change request repositories,” in Proceedings of the 11th IEEE International Software Metrics Symposium (METRICS '05), pp. 261–269, Como, Italy, September 2005. View at Publisher · View at Google Scholar · View at Scopus
  54. M. Fischer, M. Pinzger, and H. Gall, “Populating a release history database from version control and bug tracking systems,” in Proceedings of the International Conference on Software Maintenance, pp. 23–32, Amsterdam, The Netherlands, September 2003. View at Scopus
  55. A. Hassan and R. Holt, “Studying the evolution of software systems using evolutionary code extractors,” in Proceedings of the InternationalWorkshop on Principles of Software Evolution (IWPSE '04), pp. 76–81, Kyoto, Japan, September 2004.
  56. N. Medvidovic and V. Jakobac, “Using software evolution to focus architectural recovery,” Automated Software Engineering, vol. 13, no. 2, pp. 225–256, 2006. View at Publisher · View at Google Scholar · View at Scopus
  57. A. E. Hassan and R. C. Holt, “Reference architecture for web servers,” in Proceedings of the 7th Conference on Reverse Engineering (WCRE '00), pp. 150–159, November 2000. View at Scopus
  58. H. A. Muller, J. H. Jahnke, D. B. Smith, M.-A. D. Storey, S. R. Tilley, and K. Wong, “Reverse engineering: a roadmap,” in Proceedings of the Proceedings of International Conference on Software Engineering (ICSE '00), pp. 47–60, Limerick, Ireland, June 2000.
  59. B. Andreopoulos, A. An, V. Tzerpos, and X. Wang, “Clustering large software systems at multiple layers,” Information and Software Technology, vol. 49, no. 3, pp. 244–254, 2007. View at Publisher · View at Google Scholar · View at Scopus
  60. C. H. Lung, M. Zaman, and A. Nandi, “Applications of clustering techniques to software partitioning, recovery and restructuring,” Journal of Systems and Software, vol. 73, no. 2, pp. 227–244, 2004. View at Publisher · View at Google Scholar · View at Scopus
  61. D. M. German, D. Cubranic, and M.-A. D. Storey, “A framework for describing and understanding mining tools in software development,” in Proceedings of the International Workshop on Mining Software Repositories (MSR '05), Proceedings of the International Workshop on Mining software repositories, pp. 1–5, ACM, Saint Louis, Mo, USA, July 2005.
  62. S. Mancoridis, B. Mitchell, Y. Chen, and E. Gansner, “Bunch: a clustering tool for the recovery and maintenanceof software system structures,” in Proceedings of the International Conference on Software Maintenance (ICSM '99), IEEE Computer Society Press, Oxford, UK, August 1999.
  63. A. Hamou-Lhadj, E. Braun, D. Amyot, and T. Lethbridge, “Recovering behavioral design models from execution traces,” in Proceedings of the Ninth European Conference on Software Maintenance and Reengineering (CSMR '05), pp. 112–121, Manchester, UK, March 2005. View at Scopus
  64. Z. Wen and V. Tzerpos, “Software clustering based on omnipresent object detection,” in Proceedings of the 13th International Workshop on Program Comprehension (IWPC '05), pp. 269–278, St. Louis, Mo, USA, May 2005. View at Scopus
  65. A. K. Jain and R. C. Dubes, Algorithms for Clustering Data, Prentice-Hall, Upper Saddle River, NJ, USA, 1988.
  66. H. C. Romesburg, Clustering Analysis for Researchers, Krieger, Melbourne, Fla, USA, 1990.
  67. R. Naseem, O. Maqbool, and S. Muhammad, “Improved similarity measures for software clustering,” in Proceedings of the Software Maintenance and Reengineering (CSMR '11), pp. 45–54, march 2011.
  68. R. Naseem, O. Maqbool, and S. Muhammad, “An improved similarity measure for binary features in software clustering,” in Proceedings of the 2nd International Conference on Computational Intelligence, Modelling and Simulation (CIMSim '10), pp. 111–116, Islamabad, Pakistan, September 2010. View at Publisher · View at Google Scholar · View at Scopus
  69. H. Dhama, “Quantitative models of cohesion and coupling in software,” in Proceedings of the Annual Oregon Workshop on SoftwareMetrics (AOWSM '95), pp. 65–74, Elsevier Science, June 1995.
  70. J. Davey and E. Burd, “Evaluating the suitability of data clustering for software remodularisation,” in Proceedings of the 7th Conference on Reverse Engineering (WCRE '00), pp. 268–276, November 2000. View at Scopus
  71. T. M. Lim and H. W. Khoo, “Sampling properties of Gower's general coefficient of similarity,” Ecology, vol. 66, no. 5, pp. 1682–1685, 1985. View at Scopus
  72. T. A. Wiggerts, “Using clustering algorithms in legacy systems remodularization,” in Proceedings of the 4th Working Conference on Reverse Engineering, pp. 33–43, October 1997. View at Scopus
  73. P. H. A. Sneath and R. R. Sokal, Numerical Taxonomy: The Principles and Practice of Numerical Classification, Series of books in biology, W. H. Freeman, Gordonsville, VA, USA, 1973.
  74. R. W. Schwanke, “An intelligent tool for re-engineering software modularity,” in Proceedings of the 13th International Conference on Software Engineering, pp. 83–92, May 1991. View at Scopus
  75. R. Koschke, Atomic Architectural Component Recovery for Program Understanding and Evolution, Ph.D. thesis, Stuttgart University, Stuttgart, Germany, 2000.
  76. G. von Laszewski, May 1993, A collection of graph partitioning algorithms:Simulated annealing, simulated tempering, kemighan lin, two optimal, graph reduction, bisection.
  77. R. A. Botafogo and B. Shneiderman, “Identifying aggregates in hypertext structures,” in Proceedings of the ACM Hypertext and Hypermedia, pp. 63–74, ACM Press, NewYork, NY, USA, 1991.
  78. A. Trifu, Using Cluster Analysis in the Architecture Recovery of Object-Oriented Systems, M.S. thesis, University of Karlsruhe, Karlsruhe, Germany, 2001.
  79. I. Gitman and M. D. Levine, “An algorithm for detecting unimodal fuzzy sets and Its application as a clustering technique,” IEEE Transactions on Computers, vol. C-19, no. 7, pp. 583–593, 1970. View at Scopus
  80. D. Wishart, “Mode Analysis: a generalization of nearest neighbour which reduces chaining effects,” in Numerical Taxonomy, N. Taxonomy, Ed., pp. 282–311, Academic Press, New York, NY, USA, 1969.
  81. R. Lutz, “Evolving good hierarchical decompositions of complex systems,” Journal of Systems Architecture, vol. 47, no. 6, pp. 613–634, 2001. View at Scopus
  82. A. S. Mamaghani and M. R. Meybodi, “Clustering of software systems using new hybrid algorithms,” in Proceedings of the IEEE 9th International Conference on Computer and Information Technology (CIT '09), pp. 20–25, Xiamen, China, October 2009. View at Publisher · View at Google Scholar · View at Scopus
  83. J. Clarke, J. J. Dolado, M. Harman et al., “Reformulating software engineering as a search problem,” IEE Proceedings, vol. 150, no. 3, pp. 161–175, 2003. View at Publisher · View at Google Scholar · View at Scopus
  84. K. Praditwong, “Solving software module clustering problem by evolutionary algorithms,” in Proceedings of the 8th International Joint Conference on Computer Science and Software Engineering (JCSSE '11), pp. 154–159, Pathom, Thailand, May 2011. View at Publisher · View at Google Scholar · View at Scopus
  85. M. R. Anderberg, Cluster Analysis for Applications, Academic Press, New York, NY, USA, 1973.
  86. D. Doval, S. Mancoridis, and B. Mitchell, “Automatic clustering of software systems using a genetic algorithm,” in Proceedings of the Software Technology and Engineering Practice (STEP '99), pp. 73–81, Pittsburgh, PA , USA, August 1999.
  87. B. S. Mitchell and S. Mancoridis, “On the automatic modularization of software systems using the bunch tool,” IEEE Transactions on Software Engineering, vol. 32, no. 3, pp. 193–208, 2006. View at Publisher · View at Google Scholar · View at Scopus
  88. A. Shokoufandeh, S. Mancoridis, T. Denton, and M. Maycock, “Spectral and meta-heuristic algorithms for software clustering,” Journal of Systems and Software, vol. 77, no. 3, pp. 213–223, 2005. View at Publisher · View at Google Scholar · View at Scopus
  89. O. Seng, M. Bauer, M. Biehl, and G. Pache, “Searchbased improvement of subsystem decompositions,” in Proceedings of the Conference on Genetic and Evolutionary Computation (GECCO '05), pp. 1045–1051, ACM Press, Washington, DC, USA, June 2005.
  90. P. de Lit, E. Falkenauer, and A. Delchambre, “Grouping genetic algorithms: an efficient method to solve the cell formation problem,” Mathematics and Computers in Simulation, vol. 51, no. 3-4, pp. 257–271, 2000. View at Scopus
  91. B. Mitchell and S. Mancoridis, “Using heuristic search techniques to extract design abstractions from source code,” in Proceedings of the Conference on Genetic and Evolutionary Computation (GECCO '02), New York, NY, USA, July 2002.
  92. S. Mancoridis, B. Mitchell, C. Rorres, Y. Chen, and E. Gansner, “Using automatic clustering to produce high-level system organizations of source code,” in Proceedings of the International Workshop on Program Comprehension (IWPC '98), IEEE Computer Society Press, Ischia , Italy, Junuary1998.
  93. S. Xanthos, 2006, Clustering Object-Oriented Software Systems using Spectral Graph Partitioning.
  94. L. Kaufman and P. J. Rousseeuw, Finding Groups in Data: An Introduction to Cluster Analysis, John Wiley, New York, NY, USA, 1990.
  95. O. Maqbool and H. A. Babri, “The weighted combined algorithm: a linkage algorithm for software clustering,” in Proceedings of the European Conference on Software Maintainance and Reengineering (CSMR '04), pp. 15–24, Tampere, Finland, March 2004. View at Scopus
  96. V. Tzerpos and R. C. Holt, “ACDC: an algorithm for comprehension-driven clustering,” in Proceedings of the 7th Conference on Reverse Engineering (WCRE '00), pp. 258–267, November 2000. View at Scopus
  97. V. Tzerpos and R. C. Holt, “Orphan adoption problem in architecture maintenance,” in Proceedings of the 4th Working Conference on Reverse Engineering, pp. 76–82, October 1997. View at Scopus
  98. M. Lanza and S. Ducasse, “Polymetric views—a lightweight visual approach to reverse engineering,” IEEE Transactions on Software Engineering, vol. 29, no. 9, pp. 782–795, 2003. View at Publisher · View at Google Scholar · View at Scopus
  99. R. Wettel and M. Lanza, “Program comprehension through software habitability,” in Proceedings of the International Conference on Program Comprehension (ICPC '07), pp. 231–240, Banff, Canada, June 2007.
  100. A. Lakhotia and J. M. Gravley, “Toward experimental evaluation of subsystem classification recovery techniques,” in Proceedings of the 2nd Working Conference on Reverse Engineering, pp. 262–269, July 1995. View at Scopus
  101. B. S. Mitchell and S. Mancoridis, “Comparing the decompositions produced by software clustering algorithms using similarity measurements,” in Proceedings of the IEEE International Conference on Software Maintenance (ICSM '01), pp. 744–753, Florence, Italy, November 2001. View at Publisher · View at Google Scholar · View at Scopus
  102. Z. Wen and V. Tzerpos, “An optimal algorithm for MoJo distance,” in Proceedings of the International Workshop on Program Comprehension (IWPC '03), pp. 227–235, Portland, Ore, USA, May 2003.
  103. Z. Wen and V. Tzerpos, “An effectiveness measure for software clustering algorithms,” in Proceedings of the 12th International Workshop on Program Comprehension (IWPC '04), pp. 194–203, Bari, Italy, June 2004.
  104. M. Shtern and V. Tzerpos, “Lossless comparison of nested software decompositions,” in Proceedings of the 14th Working Conference on Reverse Engineering (WCRE '07), pp. 249–258, Vancouver, Canada, October 2007. View at Publisher · View at Google Scholar · View at Scopus
  105. Z. Wen and V. Tzerpos, “Evaluating similarity measures for software decompositions,” in Proceedings of the International Conference on Software Maintenance (ICSM '04), pp. 368–377, IEEE Computer Society, Chicago Ill, USA, September 2004.
  106. J. F. Girard and R. Koschke, “Comparison of abstract data types and objects recovery techniques,” Science of Computer Programming, vol. 36, no. 2, pp. 149–181, 2000. View at Publisher · View at Google Scholar · View at Scopus
  107. J. Wu, A. E. Hassan, and R. C. Holt, “Comparison of clustering algorithms in the context of software evolution,” in Proceedings of the International Conference on SoftwareMaintenance (ICSM '05), pp. 525–535, IEEE Computer Society, Budapest, Hungary, September 2005.
  108. V. V. Raghavan, “Approaches for measuring the stability of clustering methods,” SIGIR Forum, vol. 17, no. 1, pp. 6–20, 1982.
  109. V. Tzerpos and R. C. Holt, “On the stability of software clustering algorithms,” in Proceedings of the InternationalWorkshop on Program Comprehension (IWPC '00), pp. 211–218, Limerick, Ireland, June 2000.