Show simple item record

dc.contributor.authorHassan, Ahmeden
dc.date.accessioned2006-08-22 14:25:29 (GMT)
dc.date.available2006-08-22 14:25:29 (GMT)
dc.date.issued2004en
dc.date.submitted2004en
dc.identifier.urihttp://hdl.handle.net/10012/1017
dc.description.abstractThis thesis explores mining the evolutionary history of a software system to support software developers and managers in their endeavors to build and maintain complex software systems. We introduce the idea of evolutionary extractors which are specialized extractors that can recover the history of software projects from software repositories, such as source control systems. The challenges faced in building C-REX, an evolutionary extractor for the C programming language, are discussed. We examine the use of source control systems in industry and the quality of the recovered C-REX data through a survey of several software practitioners. Using the data recovered by C-REX, we develop several approaches and techniques to assist developers and managers in their activities. We propose <em>Source Sticky Notes</em> to assist developers in understanding legacy software systems by attaching historical information to the dependency graph. We present the <em>Development Replay</em> approach to estimate the benefits of adopting new software maintenance tools by reenacting the development history. We propose the <em>Top Ten List</em> which assists managers in allocating testing resources to the subsystems that are most susceptible to have faults. To assist managers in improving the quality of their projects, we present a complexity metric which quantifies the complexity of the changes to the code instead of quantifying the complexity of the source code itself. All presented approaches are validated empirically using data from several large open source systems. The presented work highlights the benefits of transforming software repositories from static record keeping repositories to active repositories used by researchers to gain empirically based understanding of software development, and by software practitioners to predict, plan and understand various aspects of their project.en
dc.formatapplication/pdfen
dc.format.extent1372274 bytes
dc.format.mimetypeapplication/pdf
dc.language.isoenen
dc.publisherUniversity of Waterlooen
dc.rightsCopyright: 2004, Hassan, Ahmed. All rights reserved.en
dc.subjectComputer Scienceen
dc.subjectining Software Repositoriesen
dc.subjectSource Controlen
dc.subjectSoftware Reliabilityen
dc.subjectDevelopersen
dc.subjectManagersen
dc.subjectDevelopment Chaosen
dc.subjectChange Propagationen
dc.subjectSoftware Understandingen
dc.subjectSoftware Architectureen
dc.subjectFault Predictionen
dc.titleMining Software Repositories to Assist Developers and Support Managersen
dc.typeDoctoral Thesisen
dc.pendingfalseen
uws-etd.degree.departmentSchool of Computer Scienceen
uws-etd.degreeDoctor of Philosophyen
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