Cooperative Based Software Clustering on Dependency Graphs

dc.comment.hiddenMaster thesisen
dc.contributor.authorIbrahim, Ahmed Fakhri
dc.date.accessioned2014-06-20T14:54:15Z
dc.date.available2014-06-20T14:54:15Z
dc.date.issued2014-06-20
dc.date.submitted2014-06-18
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.identifier.urihttp://hdl.handle.net/10012/8543
dc.language.isoenen
dc.pendingfalse
dc.publisherUniversity of Waterlooen
dc.subjectSoftware Engineeringen
dc.subjectCooperative Clusteringen
dc.subjectSoftware Clusteringen
dc.subjectMachine Learningen
dc.subjectDependency Graphsen
dc.subject.programElectrical and Computer Engineering (Software Engineering)en
dc.titleCooperative Based Software Clustering on Dependency Graphsen
dc.typeMaster Thesisen
uws-etd.degreeMaster of Applied Scienceen
uws-etd.degree.departmentElectrical and Computer Engineeringen
uws.peerReviewStatusUnrevieweden
uws.scholarLevelGraduateen
uws.typeOfResourceTexten

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Ibrahim_AhmedFakhri.pdf
Size:
2.02 MB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
2.67 KB
Format:
Item-specific license agreed upon to submission
Description: