Thesis (Ph.D.)--University of Washington, 2015Most software development tasks require developers to interact with multiple versions of a codebase directly or through an analysis tool. Consider a developer, Alice, who wants to implement a new feature. To ensure that her changes are of high quality, Alice might want to continuously analyze the current codebase. To make the changes fast but with confidence, Alice might use automated transformations such as refactorings. While using these transformations Alice might want to analyze the likely future codebases, which these transformations would generate, to make more informed decisions. Finally, to pinpoint the cause of any regression defect, Alice might want to analyze historical codebases e.g....
Maintenance is the phase of the software lifecycle that comprises any modification after the deliver...
Computer software is, by its very nature highly complex and invisible yet subject to a near-continua...
Software engineering research often requires analyzing multiple revisions of several software projec...
Abstract—During software development, the sooner a developer learns how code changes affect program ...
Developers use analysis tools to help write, debug, and understand software systems under developmen...
Multiple studies found that developer questions about the history of code were among the hardest and...
Copying a code fragment and reusing it by pasting with or without minor modifications is a common pr...
Source code histories are valuable resources for developers, and development tools, to reason about ...
AbstractSoftware evolution research is limited by the amount of information available to researchers...
Code cloning is a common practice in software development. However, code cloning has both positive a...
Abstract—Copy-paste programming may speed-up software development process, but code clones, in the l...
Software is becoming increasingly pervasive and complex. During software development and maintenance...
Software developers are often faced with modification tasks that involve source which is spread acro...
When software repositories are mined, two distinct sources of information are usually explored: the ...
The means of producing information and the infrastructure for disseminating it are constantly changi...
Maintenance is the phase of the software lifecycle that comprises any modification after the deliver...
Computer software is, by its very nature highly complex and invisible yet subject to a near-continua...
Software engineering research often requires analyzing multiple revisions of several software projec...
Abstract—During software development, the sooner a developer learns how code changes affect program ...
Developers use analysis tools to help write, debug, and understand software systems under developmen...
Multiple studies found that developer questions about the history of code were among the hardest and...
Copying a code fragment and reusing it by pasting with or without minor modifications is a common pr...
Source code histories are valuable resources for developers, and development tools, to reason about ...
AbstractSoftware evolution research is limited by the amount of information available to researchers...
Code cloning is a common practice in software development. However, code cloning has both positive a...
Abstract—Copy-paste programming may speed-up software development process, but code clones, in the l...
Software is becoming increasingly pervasive and complex. During software development and maintenance...
Software developers are often faced with modification tasks that involve source which is spread acro...
When software repositories are mined, two distinct sources of information are usually explored: the ...
The means of producing information and the infrastructure for disseminating it are constantly changi...
Maintenance is the phase of the software lifecycle that comprises any modification after the deliver...
Computer software is, by its very nature highly complex and invisible yet subject to a near-continua...
Software engineering research often requires analyzing multiple revisions of several software projec...