Identification of System Software Components Using Clustering Approach

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

[1]  G. Karypis,et al.  Criterion Functions for Document Clustering ∗ Experiments and Analysis , 2001 .

[2]  Sven Overhage,et al.  Towards a Systematic Method for Identifying Business Components , 2008, CBSE.

[3]  Siddheswar Ray,et al.  Determination of Number of Clusters in K-Means Clustering and Application in Colour Image Segmentation , 2000 .

[4]  George Karypis,et al.  CLUTO - A Clustering Toolkit , 2002 .

[5]  Rich Caruana,et al.  Greedy Attribute Selection , 1994, ICML.

[6]  Peter J. Rousseeuw,et al.  Finding Groups in Data: An Introduction to Cluster Analysis , 1990 .

[7]  Haitham S. Hamza,et al.  A Framework for Identifying Reusable Software Components Using Formal Concept Analysis , 2009, 2009 Sixth International Conference on Information Technology: New Generations.

[8]  Soo Dong Kim,et al.  A systematic method to identify software components , 2004, 11th Asia-Pacific Software Engineering Conference.

[9]  V. J. Rayward-Smith,et al.  Fuzzy Cluster Analysis: Methods for Classification, Data Analysis and Image Recognition , 1999 .

[10]  Chung-Horng Lung,et al.  Applications of clustering techniques to software partitioning, recovery and restructuring , 2004, J. Syst. Softw..

[11]  G. Karypis,et al.  Criterion functions for document clustering , 2005 .

[12]  Ali S. Hadi,et al.  Finding Groups in Data: An Introduction to Chster Analysis , 1991 .

[13]  Rui Xu,et al.  Survey of clustering algorithms , 2005, IEEE Transactions on Neural Networks.

[14]  Hemant K. Jain,et al.  Business component identification - a formal approach , 2001, Proceedings Fifth IEEE International Enterprise Distributed Object Computing Conference.

[15]  Xu Xiao-Fei,et al.  Business component identification of enterprise information system: a hierarchical clustering method , 2005, IEEE International Conference on e-Business Engineering (ICEBE'05).

[16]  George Karypis,et al.  A Comparison of Document Clustering Techniques , 2000 .

[17]  Lifang Peng,et al.  Design of business component identification method with graph segmentation , 2008, 2008 3rd International Conference on Intelligent System and Knowledge Engineering.

[18]  Jan L. G. Dietz,et al.  The Benefit of Enterprise Ontology in Identifying Business Components , 2006, IFIP TC8 WCC ISS.

[19]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[20]  R. Wu Componentization and Semantic Mediation , 2007, IECON 2007 - 33rd Annual Conference of the IEEE Industrial Electronics Society.

[21]  Antonia Albani,et al.  Identifying Business Components on the Basis of an Enterprise Ontology , 2006 .

[22]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .

[23]  Howard B. Demuth,et al.  Neutral network toolbox for use with Matlab , 1995 .