Abstract: Software clustering is an established approach to automatic architecture recovery. 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. Library dependencies are intentionally ignored during the clustering process