While applying clustering techniques to software system decomposition, the software designer faces two practical issues: (1) determination of the number of clusters that will be mapped to software modules and (2) determination of a specific cluster or software module for some highly coupled components. This paper presents an approach for software architecture decomposition with an emphasis on finding solutions to those two issues. The approach uses fuzzy c-means clustering together with three hierarchical agglomerative clustering methods and the adaptive K-nearest neighbor algorithm. We applied the approach to real industrial software systems. The results show that our approach provides objective and insightful information to the software designer in dealing with those two issues.

Additional Metadata
Keywords A-KNN, CLINK, Clustering, Fuzzy c-means, Reengineering, SLINK, Software architecture, Software decomposition, WPGMA
Persistent URL dx.doi.org/10.1109/COMPSAC.2013.132
Conference 2013 IEEE 27th International Parallel and Distributed Processing Symposium Workshops and PhD Forum, IPDPSW 2013
Citation
Alkhalid, A. (Abdulaziz), Lung, C.H, Liu, D. (Duo), & Ajila, S. (2013). Software architecture decomposition using clustering techniques. Presented at the 2013 IEEE 27th International Parallel and Distributed Processing Symposium Workshops and PhD Forum, IPDPSW 2013. doi:10.1109/COMPSAC.2013.132