The organization of software systems into subsystems is usually based on theconstructs of packages or modules and has a major impact on the maintainability ofthe software. However, during software evolution, the organization of the system issubject to continual modification, which can cause it to drift away from the originaldesign, often with the effect of reducing its quality.A number of techniques for evaluating a system;;s maintainability and for controllingthe effort required to conduct maintenance activities involve software clustering.Software clustering refers to the partitioning of software system componentsinto clusters in order to obtain both exterior and interior connectivity between thesecomponents. It helps maintainers enhance the quality of software modularizationand improve its maintainability.Research in this area has produced numerous algorithms with a variety ofmethodologies and parameters. This thesis presents a novel ensemble approachthat synthesizes a new solution from the outcomes of multiple constituent clusteringalgorithms. The main principle behind this approach derived from machinelearning, as applied to document clustering, but it has been modified, both conceptuallyand empirically, for use in software clustering. The conceptual modificationsinclude working with a variable number of clusters produced by the input algorithmsand employing graph structures rather than feature vectors. The empiricalmodifications include experiments directed at the selection of the optimal cluster merging criteria. Case studies based on open source software systems show thatestablishing cooperation between leading state-of-the-art algorithms produces betterclustering results compared with those achieved using only one of any of thealgorithms considered.
【 预 览 】
附件列表
Files
Size
Format
View
Cooperative Based Software Clustering on Dependency Graphs