A unified framework for expressing software subsystem classification techniques
Journal of Systems and Software
Using Heuristic Search Techniques To Extract Design Abstractions From Source Code
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
A New Representation And Crossover Operator For Search-based Optimization Of Software Modularization
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
Automatic Clustering of Software Systems Using a Genetic Algorithm
STEP '99 Proceedings of the Software Technology and Engineering Practice
Using Clustering Algorithms in Legacy Systems Remodularization
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Experiments with Clustering as a Software Remodularization Method
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
ACDC: An Algorithm for Comprehension-Driven Clustering
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Evaluating the Suitability of Data Clustering for Software Remodularization
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Software Clustering Techniques and the Use of Combined Algorithm
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
A Multiple Hill Climbing Approach to Software Module Clustering
ICSM '03 Proceedings of the International Conference on Software Maintenance
Cluster ensembles --- a knowledge reuse framework for combining multiple partitions
The Journal of Machine Learning Research
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)
An Effectiveness Measure for Software Clustering Algorithms
IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
Evaluating Similarity Measures for Software Decompositions
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
A Framework for the Comparison of Nested Software Decompositions
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Information-Theoretic Software Clustering
IEEE Transactions on Software Engineering
An empirical study of the robustness of two module clustering fitness functions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Multiple Layer Clustering of Large Software Systems
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
Clustering large software systems at multiple layers
Information and Software Technology
On the evaluation of the Bunch search-based software modularization algorithm
Soft Computing - A Fusion of Foundations, Methodologies and Applications
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
k-Attractors: A Clustering Algorithm for Software Measurement Data Analysis
ICTAI '07 Proceedings of the 19th IEEE International Conference on Tools with Artificial Intelligence - Volume 01
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
Software Clustering Using Dynamic Analysis and Static Dependencies
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Enhanced bisecting k-means clustering using intermediate cooperation
Pattern Recognition
Cooperative clustering model and its applications
Cooperative clustering model and its applications
Collaborative clustering with background knowledge
Data & Knowledge Engineering
Clustering of Software Systems Using New Hybrid Algorithms
CIT '09 Proceedings of the 2009 Ninth IEEE International Conference on Computer and Information Technology - Volume 02
Pattern Recognition
Improved Hierarchical Clustering Algorithm for Software Architecture Recovery
ICICCI '10 Proceedings of the 2010 International Conference on Intelligent Computing and Cognitive Informatics
Architectural layer recovery for software system understanding and evolution
Software—Practice & Experience
An Improved Similarity Measure for Binary Features in Software Clustering
CIMSIM '10 Proceedings of the 2010 Second International Conference on Computational Intelligence, Modelling and Simulation
Improved Similarity Measures for Software Clustering
CSMR '11 Proceedings of the 2011 15th European Conference on Software Maintenance and Reengineering
CSMR '11 Proceedings of the 2011 15th European Conference on Software Maintenance and Reengineering
Software Module Clustering as a Multi-Objective Search Problem
IEEE Transactions on Software Engineering
Towards Open Source Software System Architecture Recovery Using Design Metrics
PCI '11 Proceedings of the 2011 15th Panhellenic Conference on Informatics
Collaborative rough clustering
PReMI'05 Proceedings of the First international conference on Pattern Recognition and Machine Intelligence
An analysis of the effects of composite objectives in multiobjective software module clustering
Proceedings of the 14th annual conference on Genetic and evolutionary computation
International Journal of Information Systems in the Service Sector
Hi-index | 0.00 |
Clustering is a useful technique to group data entities. Many different algorithms have been proposed for software clustering. To combine the strengths of various algorithms, researchers have suggested the use of Consensus Based Techniques (CBTs), where more than one actors (e.g. algorithms) work together to achieve a common goal. Although the use of CBTs has been explored in various disciplines, no work has been done for modularizing software. In this paper, the main research question we investigate is whether the Cooperative Clustering Technique (CCT), a type of CBT, can improve software modularization results. The main contributions of this paper are as follows. First, we propose our CCT in which more than one similarity measure cooperates during the hierarchical clustering process. To this end, we present an analysis of well-known measures. Second, we present a cooperative clustering approach for two types of well-known agglomerative hierarchical software clustering algorithms, for binary as well as non-binary features. Third, to evaluate our proposed CCT, we conduct modularization experiments on five software systems. Our analysis identifies certain cases that reveal weaknesses of the individual similarity measures. The experimental results support our hypothesis that these weaknesses may be overcome by using more than one measure, as our CCT produces better modularization results for test systems in which these cases occur. We conclude that CCTs are capable of showing significant improvement over individual clustering algorithms for software modularization.