PLDog
submit an article | search | rss feed
register | feedback | about
Role-Based Exploration of Object-Oriented Programs
Posted by: Meyerovich 5:17pm, Tuesday, 13 November 2007
We present a new technique for helping developers understand
heap properties of object-oriented programs and how
the actions of the program affect these properties. Our dynamic
analysis uses the aliasing properties of objects to synthesize
a set of roles; each role represents an abstract object
state intended to be of interest to the developer. We allow
the developer to customize the analysis to explore the object
states and behavior of the program at multiple different and
potentially complementary levels of abstraction.

The analysis uses roles as the basis for three abstractions:
role transition diagrams, which present the observed transitions
between roles and the methods responsible for the
transitions; role relationship diagrams, which present the observed
referencing relationships between objects playing different
roles; and enhanced method interfaces, which present
the observed roles of method parameters.

Together, these abstractions provide useful information
about important object and data structure properties and
how the actions of the program affect these properties. We
have used our implemented role analysis to explore the behavior
of several Java programs. Our experience indicates
that, when combined with a powerful graphical user interface,
roles are a useful abstraction for helping developers
explore and understand the behavior of object-oriented programs.

Brian Demsky, Martin Rinard
Appears in ICSE 2002
http://demsky.eecs.uci.edu/publications/icse02.pdf
Comments
[ You must be logged in to view comments. ]