Repository logo
 

Visualization and analysis of software clones

dc.contributor.advisorRoy, Chanchal K.en_US
dc.contributor.advisorSchneider, Kevin A.en_US
dc.contributor.committeeMemberVassileva, Julitaen_US
dc.contributor.committeeMemberDutchyn, Christopheren_US
dc.contributor.committeeMemberKhan, Shahedul A.en_US
dc.creatorAsaduzzaman, Muhammaden_US
dc.date.accessioned2013-01-03T22:28:17Z
dc.date.available2013-01-03T22:28:17Z
dc.date.created2012-01en_US
dc.date.issued2012-01-18en_US
dc.date.submittedJanuary 2012en_US
dc.description.abstractCode clones are identical or similar fragments of code in a software system. Simple copy-paste programming practices of developers, reusing existing code fragments instead of implementing from the scratch, limitations of both programming languages and developers are the primary reasons behind code cloning. Despite the maintenance implications of clones, it is not possible to conclude that cloning is harmful because there are also benefits in using them (e.g. faster and independent development). As a result, researchers at least agree that clones need to be analyzed before aggressively refactoring them. Although a large number of state-of-the-art clone detectors are available today, handling raw clone data is challenging due to the textual nature and large volume. To address this issue, we propose a framework for large-scale clone analysis and develop a maintenance support environment based on the framework called VisCad. To manage the large volume of clone data, VisCad employs the Visual Information Seeking Mantra: overview first, zoom and filter, then provide details-on-demand. With VisCad users can analyze and identify distinctive code clones through a set of visualization techniques, metrics covering different clone relations and data filtering operations. The loosely coupled architecture of VisCad allows users to work with any clone detection tool that reports source-coordinates of the found clones. This yields the opportunity to work with the clone detectors of choice, which is important because each clone detector has its own strengths and weaknesses. In addition, we extend the support for clone evolution analysis, which is important to understand the cause and effect of changes at the clone level during the evolution of a software system. Such information can be used to make software maintenance decisions like when to refactor clones. We propose and implement a set of visualizations that can allow users to analyze the evolution of clones from a coarse grain to a fine grain level. Finally, we use VisCad to extract both spatial and temporal clone data to predict changes to clones in a future release/revision of the software, which can be used to rank clone classes as another means of handling a large volume of clone data. We believe that VisCad makes clone comprehension easier and it can be used as a test-bed to further explore code cloning, necessary in building a successful clone management system.en_US
dc.identifier.urihttp://hdl.handle.net/10388/ETD-2012-01-303en_US
dc.language.isoengen_US
dc.subjectCode cloneen_US
dc.subjectVisualizationen_US
dc.subjectAnalysisen_US
dc.subjectEvolutionen_US
dc.subjectGenealogyen_US
dc.subjectPredictionen_US
dc.titleVisualization and analysis of software clonesen_US
dc.type.genreThesisen_US
dc.type.materialtexten_US
thesis.degree.departmentComputer Scienceen_US
thesis.degree.disciplineComputer Scienceen_US
thesis.degree.grantorUniversity of Saskatchewanen_US
thesis.degree.levelMastersen_US
thesis.degree.nameMaster of Science (M.Sc.)en_US

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
ASADUZZAMAN-THESIS.pdf
Size:
14.39 MB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1013 B
Format:
Plain Text
Description: