Using Library Dependencies for Clustering.
Jochen Quante · 2008
Abstract: Software clustering is an established approach to automatic architecture re-covery. It groups components that are in some way similar to each other. Usually, the similarity measure is based on the dependencies between components of a system. Li-brary dependencies are intentionally ignored during the clustering process – otherwise, system components would be clustered with library components they use. We propose to particularly look at the dependencies on external components or libraries to learn more about an application’s high-level structure. The number of dependencies of a component from different kinds of libraries provides insightful in-formation about the component’s functionality. Our case study illustrates the potential of this idea. 1