System Structure Analysis: Clustering with Data Bindings
IEEE Transactions on Software Engineering - Annals of discrete mathematics, 24
Investigating quality factors in object-oriented designs: an industrial case study
Proceedings of the 21st international conference on Software engineering
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Software Botryology, Automatic Clustering of Software Systems
DEXA '98 Proceedings of the 9th International Workshop on Database and Expert Systems Applications
Using Clustering Algorithms in Legacy Systems Remodularization
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Evaluating the Suitability of Data Clustering for Software Remodularization
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
A Metrics Suite for Measuring Reusability of Software Components
METRICS '03 Proceedings of the 9th International Symposium on Software Metrics
The Weighted Combined Algorithm: A Linkage Algorithm for Software Clustering
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Applications of clustering techniques to software partitioning, recovery and restructuring
Journal of Systems and Software - Special issue: Applications of statistics in software engineering
Information-Theoretic Software Clustering
IEEE Transactions on Software Engineering
OOMeter: A Software Quality Assurance Tool
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Extracting Components from Object-Oriented System: A Transformational Approach
IEICE - Transactions on Information and Systems
Business Component Identification of Enterprise Information System: A hierarchical clustering method
ICEBE '05 Proceedings of the IEEE International Conference on e-Business Engineering
Model-Based performance prediction with the palladio component model
WOSP '07 Proceedings of the 6th international workshop on Software and performance
New Frontiers of Reverse Engineering
FOSE '07 2007 Future of Software Engineering
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
A Dynamic Load Balancing Approach Based on the Standard RFID Middleware Architecture
ICEBE '07 Proceedings of the IEEE International Conference on e-Business Engineering
Lossless Comparison of Nested Software Decompositions
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
Evaluating legacy system migration technologies through empirical studies
Information and Software Technology
A coupling metric applying the characteristics of components
ICCSA'06 Proceedings of the 2006 international conference on Computational Science and Its Applications - Volume Part IV
Clustering methodologies for software engineering
Advances in Software Engineering
A graph based requirements clustering approach for component selection
Advances in Engineering Software
AusDM '11 Proceedings of the Ninth Australasian Data Mining Conference - Volume 121
Hi-index | 0.00 |
Context: Component identification, the process of evolving legacy system into finely organized component-based software systems, is a critical part of software reengineering. Currently, many component identification approaches have been developed based on agglomerative hierarchical clustering algorithms. However, there is a lack of thorough investigation on which algorithm is appropriate for component identification. Objective: This paper focuses on analyzing agglomerative hierarchical clustering algorithms in software reengineering, and then identifying their respective strengths and weaknesses in order to apply them effectively for future practical applications. Method: A series of experiments were conducted for 18 clustering strategies combined according to various similarity measures, weighting schemes and linkage methods. Eleven subject systems with different application domains and source code sizes were used in the experiments. The component identification results are evaluated by the proposed size, coupling and cohesion criteria. Results: The experimental results suggested that the employed similarity measures, weighting schemes and linkage methods can have various effects on component identification results with respect to the proposed size, coupling and cohesion criteria, so the hierarchical clustering algorithms produced quite different clustering results. Conclusions: According to the experimental results, it can be concluded that it is difficult to produce perfectly satisfactory results for a given clustering algorithm. Nevertheless, these algorithms demonstrated varied capabilities to identify components with respect to the proposed size, coupling and cohesion criteria.