Graph drawing by force-directed placement
Software—Practice & Experience
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
Recovering software architecture from the names of source files
Journal of Software Maintenance: Research and Practice
Extracting and Restructuring the Design of Large Systems
IEEE Software
The Eyes Have It: A Task by Data Type Taxonomy for Information Visualizations
VL '96 Proceedings of the 1996 IEEE Symposium on Visual Languages
A heuristic search approach to solving the software clustering problem
A heuristic search approach to solving the software clustering problem
prefuse: a toolkit for interactive information visualization
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Using dependency models to manage software architecture
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
Multiscale visualization of small world networks
INFOVIS'03 Proceedings of the Ninth annual IEEE conference on Information visualization
A tool for design pattern detection and software architecture reconstruction
Information Sciences: an International Journal
QoSA'10 Proceedings of the 6th international conference on Quality of Software Architectures: research into Practice - Reality and Gaps
Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
Clustering methodologies for software engineering
Advances in Software Engineering
Community detection and analysis of community evolution in Apache Ant class collaboration networks
Proceedings of the Fifth Balkan Conference in Informatics
Visualizing the refactoring of classes via clustering
ACSC '11 Proceedings of the Thirty-Fourth Australasian Computer Science Conference - Volume 113
On the existence of high-impact refactoring opportunities in programs
ACSC '12 Proceedings of the Thirty-fifth Australasian Computer Science Conference - Volume 122
Hi-index | 0.01 |
We present a novel approach to the analysis of dependency graphs of object-oriented programs. We propose to use the Girvan-Newman clustering algorithm to compute the modular structure of programs. This is useful in assisting software engineers to redraw component boundaries in software, in order to improve the level of reuse and maintainability. The results of this analysis can be used as a starting point for refactoring the software. We present BARRIO, an Eclipse plugin that can detect and visualise clusters in dependency graphs extracted from Java programs by means of source code and byte code analysis. These clusters are then compared with the modular structure of the analysed programs defined by package and container specifications. Two metrics are introduced to measure the degree of overlap between the defined and the computed modular structure. Some empirical results obtained from analysing non-trivial software packages are presented.