Show simple item record

dc.contributor.authorIbrahim, Ahmed Fakhri
dc.date.accessioned2014-06-20 14:54:15 (GMT)
dc.date.available2014-06-20 14:54:15 (GMT)
dc.date.issued2014-06-20
dc.date.submitted2014-06-18
dc.identifier.urihttp://hdl.handle.net/10012/8543
dc.description.abstractThe organization of software systems into subsystems is usually based on the constructs of packages or modules and has a major impact on the maintainability of the software. However, during software evolution, the organization of the system is subject to continual modification, which can cause it to drift away from the original design, often with the effect of reducing its quality. A number of techniques for evaluating a system's maintainability and for controlling the effort required to conduct maintenance activities involve software clustering. Software clustering refers to the partitioning of software system components into clusters in order to obtain both exterior and interior connectivity between these components. It helps maintainers enhance the quality of software modularization and improve its maintainability. Research in this area has produced numerous algorithms with a variety of methodologies and parameters. This thesis presents a novel ensemble approach that synthesizes a new solution from the outcomes of multiple constituent clustering algorithms. The main principle behind this approach derived from machine learning, as applied to document clustering, but it has been modified, both conceptually and empirically, for use in software clustering. The conceptual modifications include working with a variable number of clusters produced by the input algorithms and employing graph structures rather than feature vectors. The empirical modifications include experiments directed at the selection of the optimal cluster merging criteria. Case studies based on open source software systems show that establishing cooperation between leading state-of-the-art algorithms produces better clustering results compared with those achieved using only one of any of the algorithms considered.en
dc.language.isoenen
dc.publisherUniversity of Waterlooen
dc.subjectSoftware Engineeringen
dc.subjectCooperative Clusteringen
dc.subjectSoftware Clusteringen
dc.subjectMachine Learningen
dc.subjectDependency Graphsen
dc.titleCooperative Based Software Clustering on Dependency Graphsen
dc.typeMaster Thesisen
dc.pendingfalse
dc.subject.programElectrical and Computer Engineering (Software Engineering)en
uws-etd.degree.departmentElectrical and Computer Engineeringen
uws-etd.degreeMaster of Applied Scienceen
uws.typeOfResourceTexten
uws.peerReviewStatusUnrevieweden
uws.scholarLevelGraduateen


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record


UWSpace

University of Waterloo Library
200 University Avenue West
Waterloo, Ontario, Canada N2L 3G1
519 888 4883

All items in UWSpace are protected by copyright, with all rights reserved.

DSpace software

Service outages