Hello everyone,
On Tuesday, December 16, at 17:00 I will defend my PhD thesis. The defense will take place in room 001, Engehaldenstrasse 8, Bern (for directions please see http://www.iam.unibe.ch/institute/location ).
After the defense, there will be an apéro.
You are cordially invited to the defense and to the apéro.
Cheers, Adrian Lienhard Software Composition Group University of Bern, Switzerland http://www.adrian-lienhard.ch/
------------------------------------- TITLE: Dynamic Object Flow Analysis
ABSTRACT: The behavior of an object-oriented software system is notoriously hard to understand from the source code alone. The main reason is the large gap between the program’s static structure and its actual runtime behavior. Features inherent to object-orientation, like object aliasing and late binding, – while providing a high degree of expressiveness to model an application domain — make programs hard to understand, maintain, and analyze.
Complementary to static analysis, dynamic analysis can help to close this gap by investigating the properties of a running program. The state of the art in dynamic analysis focuses on investigating runtime control flow and structures of object graphs, but a thorough analysis of how objects are passed through a system is missing. Tracking how object references are transferred, however, is essential to analyze the dependencies introduced by object aliasing.
In this dissertation we propose Object Flow Analysis, our approach to track object flow by explicitly representing object references and reference transfer. Object Flow Analysis provides an effective way of analyzing and runtime monitoring dependencies introduced by object aliasing. To validate Object Flow Analysis, we propose three different reverse engineering applications that, based on Object Flow Analysis, reason about aliasing dependencies in object-oriented programs. Yet Object Flow Analysis extends beyond traditional reverse engineering applications. A key contribution of our work is that we advance the state of the art in back-in-time debugging by proposing and providing an implementation of the concept of Object Flow Analysis in a high- level language virtual machine.