Identification of System Software Components Using Clustering Approach
By: Gholamreza Shahmohammadi, Saeed Jalili, Seyed Mohammad Hossein Hasheminejad
The selection of software architecture style is an important decision of design stage, and has a significant impact on various system quality attributes. To determine software architecture based on architectural style selection, the software functionalities have to be distributed among the components of software architecture. In this paper, a method based on the clustering of use cases is proposed to identify software components and their responsibilities. To select a proper clustering method, first the proposed method is performed on a number of software systems using different clustering methods, and the results are verified by expert opinion, and the best method is recommended. By sensitivity analysis, the effect of features on accuracy of clustering is evaluated. Finally, to determine the appropriate number of clusters (i.e. the number of software components), metrics of the interior cohesion of clusters and the coupling among them are used. Advantages of the proposed method include; 1) no need for weighting the features, 2) sensitivity analysis of the effect of features on clustering accuracy, and 3) presentation of a clear method to identify software components and their responsibilities.
Automatic components identification, Clustering of use-cases, Software architecture
Gholamreza Shahmohammadi, Saeed Jalili, Seyed Mohammad Hossein Hasheminejad, “Identification of System Software Components Using Clustering Approach”, Journal of Object Technology, Volume 9, no. 6 (November 2010), pp. 77-98, doi:10.5381/jot.2010.9.6.a4.