I am a third year PhD student at the
University of California, Irvine in the
Donald Bren School of Information and
Computer Sciences with a concentration in the field of
Informatics. I also
graduated with a B.S. in Information and Computer Science from UCI in
2005.
My advisor is David
Redmiles, whose research
group is working on problems in Human-Computer Interaction,
Software Engineering, Computer-Supported Cooperative Work, among
others.
I have enjoyed listening to music running the gamut from
classical to rock for as long as I can remember. I am also a bit of a
musician. To date, I have played electric/acoustic guitar in three
bands: The Team, Dash Rend Band, and The Best Kind of Trouble.
Although I'm constantly busy with school and my research work, I can
sometimes be found jamming in Aldrich Park (the green thing smack dab
in the middle of campus), friends' garages, and talent shows.
I am not teaching any classes this quarter.
My research interests include software visualization, collaborative
software development, intelligent user interfaces, software
engineering, computer-supported cooperative work, and human-computer
interaction.
Continuous Coordination
I am a member of the
"Continuous
Coordination" (CC) research group which recognizes the need for
informal awareness-based approaches (e.g. e-mail, IM, central
"dashboard" displays, multiple monitors) in software development in
addition to traditional formal, process-oriented approaches (e.g.
configuration management, workflow). CC as a paradigm is especially
useful when applied to global software development, where
collaboration suffers due to a lack of context and awareness of other
colleagues' activities.
Ariadne
I am currently working with
David Redmiles,
Cleidson de
Souza, and
Stephen
Quirk on the
Ariadne project, a
Java-based plug-in to the
Eclipse
IDE that visualizes the social networks derived from distributed
software projects. Ariadne builds the call-graph from a software
project using a static analysis of the source code. The default
call-graph generator analyzes Java code, but since the call-graph
generator is pluggable, one can easily imagine a generator for C++,
C#, etc. After creating the call-graph, Ariadne automatically connects
to the configuration management repository associated with the project
to retrieve authorship information. Again, the authorship generator
is a plugin. We provide a CVS authorship annotator by default, but
this could be extended to other types of CM systems such as
Subversion. With the authorship information, Ariadne creates a
structure called a " social call-graph", or a call-graph
annotated with authorship information. From the social call-graph,
Ariadne generates a sociogram (social network) and displays it using a
desired visualization plugin, the default being
Prefuse. Graphs can be exported to
our own XML-based format,
GraphML, or matrix formats
suitable for importing into social network anaylsis programs such as
UCINET.
Through Eclipse's plug-in mechanism, Ariadne supports custom
visualizations, call graph generators, and project repositories
extending the tool's base feature set.
My research team received a grant from the Undergraduate Research Opportunities
Program (UROP) in 2004, as well as an
Eclipse Innovation Grant in 2005 for our work on Ariadne. For the
latter grant, I presented Ariadne with my colleague Stephen Quirk at the Eclipse
Technology Exchange (ETX) workshop at the OOPSLA conference in October of
2005.