Skip to Main Content
Majority of the software clustering algorithms use structural dependencies to decompose large software systems. While these techniques have merit, they do not always match the decompositions generated by experts who often group software entities based on their purpose. This paper presents an approach to identifying decompositions of a software system, based on the joint participation of software entities in realizing the functionality of the system. Software transactions representing units of functionality are extracted from the source code. Transactions are clustered based on the commonality of software entities used in the transactions. Our approach also assesses the use of check-in data from configuration management system for software clustering where software entities that are modified or updated together form a software transaction. We introduce CoST, a clustering tool that uses Transaction Clustering to identify software decompositions. We apply CoST to three large software systems. The results indicate that this approach produces groupings that come close to decompositions prepared by experts.