An Approach for Software Architecture Refactoring Based on Clustering of Extended Component Dependency Graph

For improving the evolvability of software architecture, the paper proposes a software architecture refactoring strategy based on extended clustering of component dependency relation, which consists of logical relation and evolution relation among components. By using the graph clustering algorithm, the software architecture can be restructured according to the software quality of “high cohesion and low coupling” under the control of our refactoring algorithm. Moreover, an example is shown for explaining its usability.

[1]  Richard C. Holt,et al.  ACCD: an algorithm for comprehension-driven clustering , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[2]  Rudolf Wille,et al.  Restructuring Lattice Theory: An Approach Based on Hierarchies of Concepts , 2009, ICFCA.

[3]  Emden R. Gansner,et al.  Bunch: a clustering tool for the recovery and maintenance of software system structures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[4]  Bernhard Rumpe,et al.  Refinement of information flow architectures , 1997, First IEEE International Conference on Formal Engineering Methods.

[5]  Spiros Mancoridis,et al.  Automatic clustering of software systems using a genetic algorithm , 1999, STEP '99. Proceedings Ninth International Workshop Software Technology and Engineering Practice.

[6]  Zhong Lin SUPPORTING COMPONENT-BASED SOFTWARE DEVELOPMENT BY EXTENDING THE CDL WITH SOFTWARE CONFIGURATION INFORMATION , 2002 .

[7]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.