Application of clustering techniques to software component architecture design
This paper describes the application of two variants of clustering techniques to a matrix of requirements (use cases) vs. design units (classes), with the aim of augmenting the design of software component architectures. One algorithm used a modified COMO matrix-clustering algorithm, while the other is average-linkage agglomerative clustering based on similarity among classes as a measure of distance. Our results provide a shortcut for software engineers with limited experience in Component-Based Software Development (CBSD) who are constructing component architectures. This paper also evaluates the correlations between these two clustered results. We solicited feedback from experienced software developers who confirmed that the inferred hierarchies conformed to their conceptualizations of the software structure.
software component cbsd clustering analysis object-oriented programing