Object-oriented software architecture recovery using a new hybrid clustering algorithm

In order to recover high-level software architecture from existing systems, we define Weighted Directed Class Graph(WDCG) to represent object-oriented software in this paper, which not only reflects static information of lowest level composition of software but also reflects dynamic information of software running. A new hybrid clustering algorithm based on hierarchical clustering and partition clustering is proposed for recovering high-level software architecture from WDCG. Four metrics are introduced to measure the effect of the new clustering algorithm for software architecture recovery. Experimental results show that our algorithm performs best in terms of software clustering quality, authoritativeness and extremity of cluster distribution.

[1]  S. Lotfi,et al.  An Evolutionary Approach for Partitioning Weighted Module Dependency Graphs , 2007, 2007 Innovations in Information Technologies (IIT).

[2]  Mark Harman,et al.  A multiple hill climbing approach to software module clustering , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[3]  Guy Melançon,et al.  Software components capture using graph clustering , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[4]  S. Mansoor Sarwar,et al.  Software clustering techniques and the use of combined algorithm , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[5]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[6]  Richard C. Holt,et al.  Comparison of clustering algorithms in the context of software evolution , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

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

[8]  Jens Dietrich,et al.  Cluster analysis of Java dependency graphs , 2008, SoftVis '08.

[9]  Soo Dong Kim,et al.  Component identification method with coupling and cohesion , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[10]  Ric Holt Software Architecture as a Shared Mental Model , 2005 .

[11]  Dalton Serey Guerrero,et al.  Comparison of Graph Clustering Algorithms for Recovering Software Architecture Module Views , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[12]  Yan Zhou,et al.  Minimum Spanning Tree Based Clustering Algorithms , 2006, 2006 18th IEEE International Conference on Tools with Artificial Intelligence (ICTAI'06).

[13]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[14]  Emden R. Gansner,et al.  Using automatic clustering to produce high-level system organizations of source code , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[15]  Richard C. Holt,et al.  MoJo: a distance metric for software clusterings , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).