• Corpus ID: 17100980

Improving Software Clustering with Evolutionary Data

  title={Improving Software Clustering with Evolutionary Data},
  author={Diplomarbeit Fachbereich},
The evolution of a software project is a rich data source for analyzing and improving the software development process. But does the information about how developers change the source code of a software systems also support to meaningfully group the elements of the software system? Recently, some researchers have incorporated different kinds of evolutionary information into software clustering. Their results are promising but are not sufficient to finally assess the quality of evolution based… 
2 Citations
Coherent dependence cluster
An approximation to efficiently locate coherent clusters is introduced and its precision significantly improves over previous approximations and it is found that, despite their tight coherence constraints, coherent dependence clusters are to be found in abundance in production code.
Visual comparison of software architectures
This article presents a novel visualization technique to compare architectures consisting of a decomposition of the software system and the dependencies among the code entities, using a visual representation of an adjacency matrix to provide a scalable analysis tool.


Comparison of clustering algorithms in the context of software evolution
It is claimed that current automatic clustering algorithms need significant improvement to provide continual support for large software projects.
The weighted combined algorithm: a linkage algorithm for software clustering
  • O. Maqbool, H. A. Babri
  • Computer Science
    Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings.
  • 2004
A new algorithm for finding intercluster distance is presented and some popular similarity measures are compared and suggested to suggest variations of the similarity measures which show better results for software clustering.
Software clustering techniques and the use of combined algorithm
A new clustering algorithm called the 'combined' algorithm is explored which, as the experiments show, provides more promising results for software clustering than the previously used algorithms.
Experiments with clustering as a software remodularization method
This work confirms the importance of a proper description scheme of the entities being clustered, lists a few good coupling metrics to use and characterize the quality of different clustering algorithms, and proposes novel description schemes not directly based on the source code.
Comprehension-driven software clustering
An automatic clustering algorithm is presented that is designed to produce decompositions that help the understanding of the target system and identifies clusters based on known patterns of decomposition that are observed in large software systems.
Software clustering based on dynamic dependencies
This paper presents an approach for the evaluation of dynamic clusterings, applies this approach to a large open source software system, and presents experimental results that suggest that dynamic clustering have considerable merit.
Comparing the decompositions produced by software clustering algorithms using similarity measurements
  • B. Mitchell, S. Mancoridis
  • Computer Science
    Proceedings IEEE International Conference on Software Maintenance. ICSM 2001
  • 2001
It is argued that better similarity measurements can be designed if the relations between the components are considered, and two similarity measurements are proposed that overcome certain problems in existing measurements.
CRAFT: a framework for evaluating software clustering results in the absence of benchmark decompositions [Clustering Results Analysis Framework and Tools]
This paper presents a tool that supports the evaluation of software clustering results in the absence of a benchmark decomposition, and seeks alternative methods to gain confidence in the quality of results produced bySoftware clustering algorithms.
On the evaluation of the Bunch search-based software modularization algorithm
An automatic reverse engineering process to infer subsystem abstractions that are useful for a variety of software maintenance activities based on clustering the graph representing the modules and module-level dependencies into abstract structures not in the source code called subsystems is described.
Bunch: a clustering tool for the recovery and maintenance of software system structures
  • S. Mancoridis, B. Mitchell, Y. Chen, E. Gansner
  • Computer Science
    Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)
  • 1999
A clustering tool called Bunch is developed that creates a system decomposition automatically by treating clustering as an optimization problem and a feature that enables the integration of designer knowledge about the system structure into an otherwise fully automatic clustering process is described.