Algorithms for clustering data
Algorithms for clustering data
Discovering, visualizing, and controlling software structure
IWSSD '89 Proceedings of the 5th international workshop on Software specification and design
Identifying aggregates in hypertext structures
HYPERTEXT '91 Proceedings of the third annual ACM conference on Hypertext
Quantitative models of cohesion and coupling in software
Selected papers of the sixth annual Oregon workshop on Software metrics
Software reflexion models: bridging the gap between source and high-level models
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Assessing modular structure of legacy code based on mathematical concept analysis
ICSE '97 Proceedings of the 19th international conference on Software engineering
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
Visualizing dynamic software system information through high-level models
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A comparison of abstract data types and objects recovery techniques
Science of Computer Programming - Special issue on WCRE 97
Reverse engineering: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Grouping genetic algorithms: an efficient method to solve the cell formation problem
Mathematics and Computers in Simulation - Special issue from the IMACS/IFAC international symposium on soft computing methods and applications: “SOFTCOM '99” (held in Athens, Greece)
Evolving good hierarchical decompositions of complex systems
Journal of Systems Architecture: the EUROMICRO Journal - Special issue on evolutionary computing
Dynamic analysis for reverse engineering and program understanding
ACM SIGAPP Applied Computing Review
Extracting and Restructuring the Design of Large Systems
IEEE Software
Using Heuristic Search Techniques To Extract Design Abstractions From Source Code
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
File clustering using naming conventions for legacy systems
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
An Approach for Measuring Software Evolution Using Source Code Features
APSEC '99 Proceedings of the Sixth Asia Pacific Software Engineering Conference
Automatic Clustering of Software Systems Using a Genetic Algorithm
STEP '99 Proceedings of the Software Technology and Engineering Practice
Toward experimental evaluation of subsystem classification recovery techniques
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
The Orphan Adoption Problem in Architecture Maintenance
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Using Clustering Algorithms in Legacy Systems Remodularization
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Structural Manipulations of Software Architecture Using Tarski Relational Algebra
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
MoJo: A Distance Metric for Software Clusterings
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Experiments with Clustering as a Software Remodularization Method
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Chava: Reverse Engineering and Tracking of Java Applets
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
A Reference Architecture for Web Servers
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Revisiting the Delta IC Approach to Component Recovery
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
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)
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
On the Stability of Software Clustering Algorithms
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
A Framework for Experimental Evaluation of Clustering Techniques
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
An Optimal Algorithm for MoJo Distance
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Applying Spectral Methods to Software Clustering
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Comprehension-driven software clustering
Comprehension-driven software clustering
A heuristic search approach to solving the software clustering problem
A heuristic search approach to solving the software clustering problem
Polymetric Views-A Lightweight Visual Approach to Reverse Engineering
IEEE Transactions on Software Engineering
Populating a Release History Database from Version Control and Bug Tracking Systems
ICSM '03 Proceedings of the International Conference on Software Maintenance
A Multiple Hill Climbing Approach to Software Module Clustering
ICSM '03 Proceedings of the International Conference on Software Maintenance
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
Profiling Java applications using code hotswapping and dynamic call graph revelation
WOSP '04 Proceedings of the 4th international workshop on Software and performance
Analyzing Software Measurement Data with Clustering Techniques
IEEE Intelligent Systems
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)
Architecture-Aware Adaptive Clustering of OO Systems
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
DiscoTect: A System for Discovering Architectures from Running Systems
Proceedings of the 26th International Conference on Software Engineering
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
Studying The Evolution of Software Systems Using Evolutionary Code Extractors
IWPSE '04 Proceedings of the Principles of Software Evolution, 7th International Workshop
Program Restructuring Through Clustering Techniques
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
MUDABlue: An Automatic Categorization System for Open Source Repositories
APSEC '04 Proceedings of the 11th Asia-Pacific Software Engineering Conference
Applications of clustering techniques to software partitioning, recovery and restructuring
Journal of Systems and Software - Special issue: Applications of statistics in software engineering
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
Recovering Behavioral Design Models from Execution Traces
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Software Clustering Based on Dynamic Dependencies
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Software Clustering based on Omnipresent Object Detection
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Search-based improvement of subsystem decompositions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
A framework for describing and understanding mining tools in software development
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Spectral and meta-heuristic algorithms for software clustering
Journal of Systems and Software - Special issue: Software reverse engineering
Comparison of Clustering Algorithms in the Context of Software Evolution
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Impact Analysis by Mining Software and Change Request Repositories
METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium
Approaches for measuring the stability of clustering methods
ACM SIGIR Forum
Enriching Reverse Engineering with Semantic Clustering
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Package Patterns for Visual Architecture Recovery
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Using software evolution to focus architectural recovery
Automated Software Engineering
Runtime recovery and manipulation of software architecture of component-based systems
Automated Software Engineering
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
GXL: a graph-based standard exchange format for reengineering
Science of Computer Programming - Software analysis, evolution and re-engineering
Clustering large software systems at multiple layers
Information and Software Technology
Automated clustering to support the reflexion method
Information and Software Technology
Towards A Process-Oriented Software Architecture Reconstruction Taxonomy
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Program Comprehension through Software Habitability
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
An Algorithm for Detecting Unimodal Fuzzy Sets and Its Application as a Clustering Technique
IEEE Transactions on Computers
Lossless Comparison of Nested Software Decompositions
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
Cluster analysis of Java dependency graphs
Proceedings of the 4th ACM symposium on Software visualization
Software Clustering Using Dynamic Analysis and Static Dependencies
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
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
Improved Hierarchical Clustering Algorithm for Software Architecture Recovery
ICICCI '10 Proceedings of the 2010 International Conference on Intelligent Computing and Cognitive Informatics
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
Information and Software Technology
ADAM: External dependency-driven architecture discovery and analysis of quality attributes
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
The size and complexity of industrial strength software systems are constantly increasing. This means that the task of managing a large software project is becoming even more challenging, especially in light of high turnover of experienced personnel. Software clustering approaches can help with the task of understanding large, complex software systems by automatically decomposing them into smaller, easier-to-manage subsystems. The main objective of this paper is to identify important research directions in the area of software clustering that require further attention in order to develop more effective and efficient clustering methodologies for software engineering. To that end, we first present the state of the art in software clustering research. We discuss the clustering methods that have received the most attention from the research community and outline their strengths and weaknesses. Our paper describes each phase of a clustering algorithm separately. We also present the most important approaches for evaluating the effectiveness of software clustering.