University of Waterloo >
Electronic Theses and Dissertations (UW) >
Please use this identifier to cite or link to this item:
|Title: ||Object Histories in Java|
|Authors: ||Nair, Aakarsh|
|Keywords: ||Object histories|
|Approved Date: ||30-Apr-2010 |
|Date Submitted: ||21-Apr-2010 |
|Abstract: ||Developers are often faced with the task of implementing new features or diagnosing problems in large software systems. Convoluted control and data flows in large object-oriented software systems, however, make even simple tasks extremely difficult, time-consuming, and frustrating. Specifically, Java programs manipulate objects by adding and removing them from collections and by putting and getting them from other objects' fields. Complex object histories hinder program understanding by forcing software maintainers to track the provenance of objects through their past histories when diagnosing software faults.
In this thesis, we present a novel approach which answers queries about the evolution of objects throughout their lifetime in a program. On-demand answers to object history queries aids the maintenance of large software systems by allowing developers to pinpoint relevant details quickly.
We describe an event-based, flow-insensitive, interprocedural program analysis technique for computing object histories and answering history queries. Our analysis technique identifies all relevant events affecting an object and uses pointer analysis to filter out irrelevant events. It uses prior knowledge of the meanings of methods in the Java collection classes to improve the quality of the histories.
We present the details of our technique and experimental results that highlight the utility of object histories in common programming tasks.|
|Program: ||Electrical and Computer Engineering|
|Department: ||Electrical and Computer Engineering|
|Degree: ||Master of Applied Science|
|Appears in Collections:||Faculty of Engineering Theses and Dissertations |
Electronic Theses and Dissertations (UW)
All items in UWSpace are protected by copyright, with all rights reserved.