System Structure Analysis: Clustering with Data Bindings
IEEE Transactions on Software Engineering - Annals of discrete mathematics, 24
SCM '89 Proceedings of the 2nd International Workshop on Software configuration management
An Information Retrieval Approach for Automatically Constructing Software Libraries
IEEE Transactions on Software Engineering
Visualizing and querying software structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
A reverse engineering environment based on spatial and visual software interconnection models
SDE 5 Proceedings of the fifth ACM SIGSOFT symposium on Software development environments
Reverse engineering to the architectural level
Proceedings of the 17th international conference on Software engineering
Reengineering of configurations based on mathematical concept analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
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
On the inference of configuration structures from source code
ICSE '94 Proceedings of the 16th international conference on Software engineering
Identifying objects using cluster and concept analysis
Proceedings of the 21st international conference on Software engineering
Identifying Modules via Concept Analysis
IEEE Transactions on Software Engineering
ACM Computing Surveys (CSUR)
Data mining library reuse patterns using generalized association rules
Proceedings of the 22nd international conference on Software engineering
Concept Analysis for Module Restructuring
IEEE Transactions on Software Engineering
Machine Learning
Inference of object-oriented design patterns
Journal of Software Maintenance: Research and Practice
A Metric-Based Approach to Detect Abstract Data Types and State Encapsulations
Automated Software Engineering
Identifying Objects in Procedural Programs Using Clustering Neural Networks
Automated Software Engineering
Extracting and Restructuring the Design of Large Systems
IEEE Software
Software Botryology, Automatic Clustering of Software Systems
DEXA '98 Proceedings of the 9th International Workshop on Database and Expert Systems Applications
Architectural Design Recovery Using Data Mining Techniques
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
A Use-Case Driven Method of Architecture Recovery for Program Understanding and Reuse Reengineering
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
Derivation of Feature Component Maps by means of Concept Analysis
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Toward experimental evaluation of subsystem classification recovery techniques
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Using Clustering Algorithms in Legacy Systems Remodularization
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
A Visual Representation Model for Software Subsystem Decomposition
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Requirements for Integrating Software Architecture and Reengineering Models: CORUM II
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Experiments with Clustering as a Software Remodularization Method
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Reverse Architecting: An Industrial Experience Report
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)
Identification of Data Cohesive Subsystems Using Data Mining Techniques
ICSM '98 Proceedings of the International Conference on Software Maintenance
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
View Extraction and View Fusion in Architectural Understanding
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
A Framework for Experimental Evaluation of Clustering Techniques
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Facilitating Program Comprehension by Mining Association Rules from Source Code
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Using a Concept Lattice of Decomposition Slices for Program Understanding and Impact Analysis
IEEE Transactions on Software Engineering
Wins and Losses of Algebraic Transformations of Software Architectures
Proceedings of the 16th IEEE international conference on Automated software engineering
Software Clustering Techniques and the Use of Combined Algorithm
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
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
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
Pattern Classification (2nd Edition)
Pattern Classification (2nd Edition)
A user-assisted approach to component clustering
Journal of Software Maintenance: Research and Practice
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)
Reverse engineering web applications: the WARE approach
Journal of Software Maintenance and Evolution: Research and Practice - Special issue: Web site evolution
Symphony: View-Driven Software Architecture Reconstruction
WICSA '04 Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture
An Effectiveness Measure for Software Clustering Algorithms
IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
Predicting Source Code Changes by Mining Change History
IEEE Transactions on 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
Software Clustering Based on Dynamic Dependencies
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Clustering Data Retrieved from Java Source Code to Support Software Maintenance: A Case Study
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Using Formal Concept Analysis to Establish Model Dependencies
ITCC '05 Proceedings of the International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II - Volume 02
Software Clustering based on Omnipresent Object Detection
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Mining Version Histories to Guide Software Changes
IEEE Transactions on Software Engineering
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
Multiple Layer Clustering of Large Software Systems
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Equipping the Reflexion Method with Automated Clustering
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Enriching Reverse Engineering with Semantic Clustering
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Top 10 downloads from ACM's digital library
Communications of the ACM - Two decades of the language-action perspective
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
Top 10 downloads from ACM's digital library
Communications of the ACM - Spam and the ongoing battle for the inbox
Towards A Process-Oriented Software Architecture Reconstruction Taxonomy
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
Api hyperlinking via structural overlap
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Discovering Patterns of Change Types
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Automatic generation of abstract views for legacy software comprehension
Proceedings of the 3rd India software engineering conference
A desiderata for refactoring-based software modularity improvement
Proceedings of the 3rd India software engineering conference
SMC'09 Proceedings of the 2009 IEEE international conference on Systems, Man and Cybernetics
An incremental nested partition method for data clustering
Pattern Recognition
An approach for architectural layer recovery
Proceedings of the 2010 ACM Symposium on Applied Computing
Kadre: domain-specific architectural recovery for scientific software systems
Proceedings of the IEEE/ACM international conference on Automated software engineering
Visual comparison of software architectures
Proceedings of the 5th international symposium on Software visualization
Achievements and challenges in software reverse engineering
Communications of the ACM
Journal of Software Maintenance and Evolution: Research and Practice
Information and Software Technology
Mining service abstractions (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
CBSE'10 Proceedings of the 13th international conference on Component-Based Software Engineering
Enhancing architectural recovery using concerns
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
Pushouts in software architecture design
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
An overview of the knowledge discovery meta-model
Proceedings of the 13th International Conference on Computer Systems and Technologies
Putting the developer in-the-loop: an interactive GA for software re-modularization
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
Leveraging design rules to improve software architecture recovery
Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures
Obtaining ground-truth software architectures
Proceedings of the 2013 International Conference on Software Engineering
Cooperative clustering for software modularization
Journal of Systems and Software
Efficient software clustering technique using an adaptive and preventive dendrogram cutting approach
Information and Software Technology
ADAM: External dependency-driven architecture discovery and analysis of quality attributes
ACM Transactions on Software Engineering and Methodology (TOSEM)
Improving software modularization via automated analysis of latent topics and dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.02 |
Abstract-Gaining an architectural level understanding of a software system is important for many reasons. When the description of a system's architecture does not exist, attempts must be made to recover it. In recent years, researchers have explored the use of clustering for recovering a software system's architecture, given only its source code. The main contributions of this paper are as follows. First, we review hierarchical clustering research in the context of software architecture recovery and modularization. Second, to employ clustering meaningfully, it is necessary to understand the peculiarities of the software domain, and the behavior of clustering measures and algorithms in this domain. To this end, we provide a detailed analysis of the behavior of various similarity and distance measures that may be employed for software clustering. Thirdly, we analyze the clustering process of various well-known clustering algorithms using multiple criteria, and show how arbitrary decisions taken by these algorithms during clustering affect the quality of their results. Finally, we present an analysis of two recently proposed clustering algorithms, revealing close similarities in their apparently different clustering approaches. Experiments on four legacy software systems provide insight into the behavior of well-known clustering algorithms, and their characteristics in the software domain.